#include <metal_stdlib>
using namespace metal;

struct S_packed_vec3 {
  packed_half3 v;
};

struct tint_module_vars_struct {
  const constant S_packed_vec3* U;
};

void f(tint_module_vars_struct tint_module_vars) {
  half3 v = half3((*tint_module_vars.U).v);
  half x = (*tint_module_vars.U).v[0u];
  half y = (*tint_module_vars.U).v[1u];
  half z = (*tint_module_vars.U).v[2u];
  half2 xx = half3((*tint_module_vars.U).v).xx;
  half2 xy = half3((*tint_module_vars.U).v).xy;
  half2 xz = half3((*tint_module_vars.U).v).xz;
  half2 yx = half3((*tint_module_vars.U).v).yx;
  half2 yy = half3((*tint_module_vars.U).v).yy;
  half2 yz = half3((*tint_module_vars.U).v).yz;
  half2 zx = half3((*tint_module_vars.U).v).zx;
  half2 zy = half3((*tint_module_vars.U).v).zy;
  half2 zz = half3((*tint_module_vars.U).v).zz;
  half3 xxx = half3((*tint_module_vars.U).v).xxx;
  half3 xxy = half3((*tint_module_vars.U).v).xxy;
  half3 xxz = half3((*tint_module_vars.U).v).xxz;
  half3 xyx = half3((*tint_module_vars.U).v).xyx;
  half3 xyy = half3((*tint_module_vars.U).v).xyy;
  half3 xyz = half3((*tint_module_vars.U).v).xyz;
  half3 xzx = half3((*tint_module_vars.U).v).xzx;
  half3 xzy = half3((*tint_module_vars.U).v).xzy;
  half3 xzz = half3((*tint_module_vars.U).v).xzz;
  half3 yxx = half3((*tint_module_vars.U).v).yxx;
  half3 yxy = half3((*tint_module_vars.U).v).yxy;
  half3 yxz = half3((*tint_module_vars.U).v).yxz;
  half3 yyx = half3((*tint_module_vars.U).v).yyx;
  half3 yyy = half3((*tint_module_vars.U).v).yyy;
  half3 yyz = half3((*tint_module_vars.U).v).yyz;
  half3 yzx = half3((*tint_module_vars.U).v).yzx;
  half3 yzy = half3((*tint_module_vars.U).v).yzy;
  half3 yzz = half3((*tint_module_vars.U).v).yzz;
  half3 zxx = half3((*tint_module_vars.U).v).zxx;
  half3 zxy = half3((*tint_module_vars.U).v).zxy;
  half3 zxz = half3((*tint_module_vars.U).v).zxz;
  half3 zyx = half3((*tint_module_vars.U).v).zyx;
  half3 zyy = half3((*tint_module_vars.U).v).zyy;
  half3 zyz = half3((*tint_module_vars.U).v).zyz;
  half3 zzx = half3((*tint_module_vars.U).v).zzx;
  half3 zzy = half3((*tint_module_vars.U).v).zzy;
  half3 zzz = half3((*tint_module_vars.U).v).zzz;
  half4 xxxx = half3((*tint_module_vars.U).v).xxxx;
  half4 xxxy = half3((*tint_module_vars.U).v).xxxy;
  half4 xxxz = half3((*tint_module_vars.U).v).xxxz;
  half4 xxyx = half3((*tint_module_vars.U).v).xxyx;
  half4 xxyy = half3((*tint_module_vars.U).v).xxyy;
  half4 xxyz = half3((*tint_module_vars.U).v).xxyz;
  half4 xxzx = half3((*tint_module_vars.U).v).xxzx;
  half4 xxzy = half3((*tint_module_vars.U).v).xxzy;
  half4 xxzz = half3((*tint_module_vars.U).v).xxzz;
  half4 xyxx = half3((*tint_module_vars.U).v).xyxx;
  half4 xyxy = half3((*tint_module_vars.U).v).xyxy;
  half4 xyxz = half3((*tint_module_vars.U).v).xyxz;
  half4 xyyx = half3((*tint_module_vars.U).v).xyyx;
  half4 xyyy = half3((*tint_module_vars.U).v).xyyy;
  half4 xyyz = half3((*tint_module_vars.U).v).xyyz;
  half4 xyzx = half3((*tint_module_vars.U).v).xyzx;
  half4 xyzy = half3((*tint_module_vars.U).v).xyzy;
  half4 xyzz = half3((*tint_module_vars.U).v).xyzz;
  half4 xzxx = half3((*tint_module_vars.U).v).xzxx;
  half4 xzxy = half3((*tint_module_vars.U).v).xzxy;
  half4 xzxz = half3((*tint_module_vars.U).v).xzxz;
  half4 xzyx = half3((*tint_module_vars.U).v).xzyx;
  half4 xzyy = half3((*tint_module_vars.U).v).xzyy;
  half4 xzyz = half3((*tint_module_vars.U).v).xzyz;
  half4 xzzx = half3((*tint_module_vars.U).v).xzzx;
  half4 xzzy = half3((*tint_module_vars.U).v).xzzy;
  half4 xzzz = half3((*tint_module_vars.U).v).xzzz;
  half4 yxxx = half3((*tint_module_vars.U).v).yxxx;
  half4 yxxy = half3((*tint_module_vars.U).v).yxxy;
  half4 yxxz = half3((*tint_module_vars.U).v).yxxz;
  half4 yxyx = half3((*tint_module_vars.U).v).yxyx;
  half4 yxyy = half3((*tint_module_vars.U).v).yxyy;
  half4 yxyz = half3((*tint_module_vars.U).v).yxyz;
  half4 yxzx = half3((*tint_module_vars.U).v).yxzx;
  half4 yxzy = half3((*tint_module_vars.U).v).yxzy;
  half4 yxzz = half3((*tint_module_vars.U).v).yxzz;
  half4 yyxx = half3((*tint_module_vars.U).v).yyxx;
  half4 yyxy = half3((*tint_module_vars.U).v).yyxy;
  half4 yyxz = half3((*tint_module_vars.U).v).yyxz;
  half4 yyyx = half3((*tint_module_vars.U).v).yyyx;
  half4 yyyy = half3((*tint_module_vars.U).v).yyyy;
  half4 yyyz = half3((*tint_module_vars.U).v).yyyz;
  half4 yyzx = half3((*tint_module_vars.U).v).yyzx;
  half4 yyzy = half3((*tint_module_vars.U).v).yyzy;
  half4 yyzz = half3((*tint_module_vars.U).v).yyzz;
  half4 yzxx = half3((*tint_module_vars.U).v).yzxx;
  half4 yzxy = half3((*tint_module_vars.U).v).yzxy;
  half4 yzxz = half3((*tint_module_vars.U).v).yzxz;
  half4 yzyx = half3((*tint_module_vars.U).v).yzyx;
  half4 yzyy = half3((*tint_module_vars.U).v).yzyy;
  half4 yzyz = half3((*tint_module_vars.U).v).yzyz;
  half4 yzzx = half3((*tint_module_vars.U).v).yzzx;
  half4 yzzy = half3((*tint_module_vars.U).v).yzzy;
  half4 yzzz = half3((*tint_module_vars.U).v).yzzz;
  half4 zxxx = half3((*tint_module_vars.U).v).zxxx;
  half4 zxxy = half3((*tint_module_vars.U).v).zxxy;
  half4 zxxz = half3((*tint_module_vars.U).v).zxxz;
  half4 zxyx = half3((*tint_module_vars.U).v).zxyx;
  half4 zxyy = half3((*tint_module_vars.U).v).zxyy;
  half4 zxyz = half3((*tint_module_vars.U).v).zxyz;
  half4 zxzx = half3((*tint_module_vars.U).v).zxzx;
  half4 zxzy = half3((*tint_module_vars.U).v).zxzy;
  half4 zxzz = half3((*tint_module_vars.U).v).zxzz;
  half4 zyxx = half3((*tint_module_vars.U).v).zyxx;
  half4 zyxy = half3((*tint_module_vars.U).v).zyxy;
  half4 zyxz = half3((*tint_module_vars.U).v).zyxz;
  half4 zyyx = half3((*tint_module_vars.U).v).zyyx;
  half4 zyyy = half3((*tint_module_vars.U).v).zyyy;
  half4 zyyz = half3((*tint_module_vars.U).v).zyyz;
  half4 zyzx = half3((*tint_module_vars.U).v).zyzx;
  half4 zyzy = half3((*tint_module_vars.U).v).zyzy;
  half4 zyzz = half3((*tint_module_vars.U).v).zyzz;
  half4 zzxx = half3((*tint_module_vars.U).v).zzxx;
  half4 zzxy = half3((*tint_module_vars.U).v).zzxy;
  half4 zzxz = half3((*tint_module_vars.U).v).zzxz;
  half4 zzyx = half3((*tint_module_vars.U).v).zzyx;
  half4 zzyy = half3((*tint_module_vars.U).v).zzyy;
  half4 zzyz = half3((*tint_module_vars.U).v).zzyz;
  half4 zzzx = half3((*tint_module_vars.U).v).zzzx;
  half4 zzzy = half3((*tint_module_vars.U).v).zzzy;
  half4 zzzz = half3((*tint_module_vars.U).v).zzzz;
}
