#include <metal_stdlib>
using namespace metal;

struct S_packed_vec3 {
  packed_uint3 v;
};

struct tint_module_vars_struct {
  const constant S_packed_vec3* U;
};

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