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