writer/msl: Fix swizzling on packed vectors
Metal 1.x does not support swizzling on packed_vec types. Use array-index for single element selection (permitted on LHS and RHS of assignment) Cast the packed_vec to a vec for multiple element swizzles (not permitted as the LHS of an assignment). Fixed: tint:1249 Change-Id: I70cbb0c22a935b06b3905d24484bdc2edfb95fc2 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/67060 Commit-Queue: Ben Clayton <bclayton@google.com> Kokoro: Ben Clayton <bclayton@google.com> Reviewed-by: James Price <jrprice@google.com>
This commit is contained in:
parent
8645953be2
commit
7103f51603
|
@ -8,6 +8,10 @@
|
||||||
* Deprecated texture builtin functions that accepted a `read` access controlled storage texture have been removed.
|
* Deprecated texture builtin functions that accepted a `read` access controlled storage texture have been removed.
|
||||||
* Storage textures must now only use the `write` access control.
|
* Storage textures must now only use the `write` access control.
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
* Swizzling of `vec3` types in `storage` and `uniform` buffers has been fixed for Metal 1.x. [tint:1249](https://crbug.com/tint/1249)
|
||||||
|
|
||||||
## Changes for M95
|
## Changes for M95
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
|
@ -1953,6 +1953,7 @@ bool GeneratorImpl::EmitIf(const ast::IfStatement* stmt) {
|
||||||
bool GeneratorImpl::EmitMemberAccessor(
|
bool GeneratorImpl::EmitMemberAccessor(
|
||||||
std::ostream& out,
|
std::ostream& out,
|
||||||
const ast::MemberAccessorExpression* expr) {
|
const ast::MemberAccessorExpression* expr) {
|
||||||
|
auto write_lhs = [&] {
|
||||||
bool paren_lhs =
|
bool paren_lhs =
|
||||||
!expr->structure
|
!expr->structure
|
||||||
->IsAnyOf<ast::ArrayAccessorExpression, ast::CallExpression,
|
->IsAnyOf<ast::ArrayAccessorExpression, ast::CallExpression,
|
||||||
|
@ -1967,15 +1968,41 @@ bool GeneratorImpl::EmitMemberAccessor(
|
||||||
if (paren_lhs) {
|
if (paren_lhs) {
|
||||||
out << ")";
|
out << ")";
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
out << ".";
|
auto& sem = program_->Sem();
|
||||||
|
|
||||||
// Swizzles get written out directly
|
if (auto* swizzle = sem.Get(expr)->As<sem::Swizzle>()) {
|
||||||
if (program_->Sem().Get(expr)->Is<sem::Swizzle>()) {
|
// Metal 1.x does not support swizzling of packed vector types.
|
||||||
out << program_->Symbols().NameFor(expr->member->symbol);
|
// For single element swizzles, we can use the index operator.
|
||||||
} else if (!EmitExpression(out, expr->member)) {
|
// For multi-element swizzles, we need to cast to a regular vector type
|
||||||
|
// first. Note that we do not currently allow assignments to swizzles, so
|
||||||
|
// the casting which will convert the l-value to r-value is fine.
|
||||||
|
if (swizzle->Indices().size() == 1) {
|
||||||
|
if (!write_lhs()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
out << "[" << swizzle->Indices()[0] << "]";
|
||||||
|
} else {
|
||||||
|
if (!EmitType(out, sem.Get(expr->structure)->Type()->UnwrapRef(), "")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
out << "(";
|
||||||
|
if (!write_lhs()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
out << ")." << program_->Symbols().NameFor(expr->member->symbol);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!write_lhs()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
out << ".";
|
||||||
|
if (!EmitExpression(out, expr->member)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,7 +147,7 @@ struct tint_symbol {
|
||||||
};
|
};
|
||||||
|
|
||||||
float frag_main_inner(float4 coord) {
|
float frag_main_inner(float4 coord) {
|
||||||
return coord.x;
|
return coord[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
fragment tint_symbol frag_main(float4 coord [[position]]) {
|
fragment tint_symbol frag_main(float4 coord [[position]]) {
|
||||||
|
@ -457,7 +457,7 @@ struct UBO {
|
||||||
};
|
};
|
||||||
|
|
||||||
float sub_func(constant UBO& ubo, float param) {
|
float sub_func(constant UBO& ubo, float param) {
|
||||||
return ubo.coord.x;
|
return ubo.coord[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
fragment void frag_main(constant UBO& ubo [[buffer(0)]]) {
|
fragment void frag_main(constant UBO& ubo [[buffer(0)]]) {
|
||||||
|
|
|
@ -43,7 +43,7 @@ TEST_F(MslGeneratorImplTest, EmitExpression_MemberAccessor_Swizzle_xyz) {
|
||||||
GeneratorImpl& gen = Build();
|
GeneratorImpl& gen = Build();
|
||||||
std::stringstream out;
|
std::stringstream out;
|
||||||
ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
|
ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
|
||||||
EXPECT_EQ(out.str(), "my_vec.xyz");
|
EXPECT_EQ(out.str(), "float4(my_vec).xyz");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(MslGeneratorImplTest, EmitExpression_MemberAccessor_Swizzle_gbr) {
|
TEST_F(MslGeneratorImplTest, EmitExpression_MemberAccessor_Swizzle_gbr) {
|
||||||
|
@ -55,7 +55,7 @@ TEST_F(MslGeneratorImplTest, EmitExpression_MemberAccessor_Swizzle_gbr) {
|
||||||
GeneratorImpl& gen = Build();
|
GeneratorImpl& gen = Build();
|
||||||
std::stringstream out;
|
std::stringstream out;
|
||||||
ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
|
ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
|
||||||
EXPECT_EQ(out.str(), "my_vec.gbr");
|
EXPECT_EQ(out.str(), "float4(my_vec).gbr");
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float const x_24 = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f))[1u].y;
|
float const x_24 = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f))[1u][1];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float const x_11 = float3(1.0f, 2.0f, 3.0f).y;
|
float const x_11 = float3(1.0f, 2.0f, 3.0f)[1];
|
||||||
float2 const x_13 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z);
|
float2 const x_13 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[2]);
|
||||||
float3 const x_14 = float3(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y);
|
float3 const x_14 = float3(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
kernel void tint_symbol() {
|
kernel void tint_symbol() {
|
||||||
float3 const v = float3(1.0f, 2.0f, 3.0f);
|
float3 const v = float3(1.0f, 2.0f, 3.0f);
|
||||||
float const scalar = v.y;
|
float const scalar = v[1];
|
||||||
float2 const swizzle2 = v.xz;
|
float2 const swizzle2 = float3(v).xz;
|
||||||
float3 const swizzle3 = v.xzy;
|
float3 const swizzle3 = float3(v).xzy;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ using namespace metal;
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float3x3 m = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
|
float3x3 m = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
|
||||||
float3 const x_15 = m[1];
|
float3 const x_15 = m[1];
|
||||||
float const x_16 = x_15.y;
|
float const x_16 = x_15[1];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float3 v = float3(0.0f, 0.0f, 0.0f);
|
float3 v = float3(0.0f, 0.0f, 0.0f);
|
||||||
float const x_14 = v.y;
|
float const x_14 = v[1];
|
||||||
float3 const x_16 = v;
|
float3 const x_16 = v;
|
||||||
float2 const x_17 = float2(x_16.x, x_16.z);
|
float2 const x_17 = float2(x_16[0], x_16[2]);
|
||||||
float3 const x_18 = v;
|
float3 const x_18 = v;
|
||||||
float3 const x_19 = float3(x_18.x, x_18.z, x_18.y);
|
float3 const x_19 = float3(x_18[0], x_18[2], x_18[1]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
kernel void tint_symbol() {
|
kernel void tint_symbol() {
|
||||||
float3 v = 0.0f;
|
float3 v = 0.0f;
|
||||||
float const scalar = v.y;
|
float const scalar = v[1];
|
||||||
float2 const swizzle2 = v.xz;
|
float2 const swizzle2 = float3(v).xz;
|
||||||
float3 const swizzle3 = v.xzy;
|
float3 const swizzle3 = float3(v).xzy;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ VertexOutputs vs_main_inner(constant Uniforms& uniforms, uint VertexIndex) {
|
||||||
tint_array_wrapper texcoord = {.arr={float2(-0.5f, 0.0f), float2(1.5f, 0.0f), float2(0.5f, 2.0f)}};
|
tint_array_wrapper texcoord = {.arr={float2(-0.5f, 0.0f), float2(1.5f, 0.0f), float2(0.5f, 2.0f)}};
|
||||||
VertexOutputs output = {};
|
VertexOutputs output = {};
|
||||||
output.position = float4(((texcoord.arr[VertexIndex] * 2.0f) - float2(1.0f, 1.0f)), 0.0f, 1.0f);
|
output.position = float4(((texcoord.arr[VertexIndex] * 2.0f) - float2(1.0f, 1.0f)), 0.0f, 1.0f);
|
||||||
bool flipY = (uniforms.u_scale.y < 0.0f);
|
bool flipY = (uniforms.u_scale[1] < 0.0f);
|
||||||
if (flipY) {
|
if (flipY) {
|
||||||
output.texcoords = ((((texcoord.arr[VertexIndex] * uniforms.u_scale) + uniforms.u_offset) * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f));
|
output.texcoords = ((((texcoord.arr[VertexIndex] * uniforms.u_scale) + uniforms.u_offset) * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -42,7 +42,7 @@ float4 getColor(constant Uniforms& uniforms, FragmentInput tint_symbol, texture2
|
||||||
} else {
|
} else {
|
||||||
if ((uniforms.color_source == 1u)) {
|
if ((uniforms.color_source == 1u)) {
|
||||||
color = tint_symbol.normal;
|
color = tint_symbol.normal;
|
||||||
color.a = 1.0f;
|
color[3] = 1.0f;
|
||||||
} else {
|
} else {
|
||||||
if ((uniforms.color_source == 2u)) {
|
if ((uniforms.color_source == 2u)) {
|
||||||
color = uniforms.color;
|
color = uniforms.color;
|
||||||
|
|
|
@ -36,24 +36,24 @@ void main_1(constant LeftOver& x_14, thread float3* const tint_symbol_5, thread
|
||||||
float4 q = 0.0f;
|
float4 q = 0.0f;
|
||||||
float3 p = 0.0f;
|
float3 p = 0.0f;
|
||||||
float3 const x_13 = *(tint_symbol_5);
|
float3 const x_13 = *(tint_symbol_5);
|
||||||
q = float4(x_13.x, x_13.y, x_13.z, 1.0f);
|
q = float4(x_13[0], x_13[1], x_13[2], 1.0f);
|
||||||
float4 const x_21 = q;
|
float4 const x_21 = q;
|
||||||
p = float3(x_21.x, x_21.y, x_21.z);
|
p = float3(x_21[0], x_21[1], x_21[2]);
|
||||||
float const x_27 = p.x;
|
float const x_27 = p[0];
|
||||||
float const x_41 = x_14.test.arr[0].el;
|
float const x_41 = x_14.test.arr[0].el;
|
||||||
float const x_45 = (*(tint_symbol_5)).y;
|
float const x_45 = (*(tint_symbol_5))[1];
|
||||||
float const x_49 = x_14.time;
|
float const x_49 = x_14.time;
|
||||||
p.x = (x_27 + sin(((x_41 * x_45) + x_49)));
|
p[0] = (x_27 + sin(((x_41 * x_45) + x_49)));
|
||||||
float const x_55 = p.y;
|
float const x_55 = p[1];
|
||||||
float const x_57 = x_14.time;
|
float const x_57 = x_14.time;
|
||||||
p.y = (x_55 + sin((x_57 + 4.0f)));
|
p[1] = (x_55 + sin((x_57 + 4.0f)));
|
||||||
float4x4 const x_69 = x_14.worldViewProjection;
|
float4x4 const x_69 = x_14.worldViewProjection;
|
||||||
float3 const x_70 = p;
|
float3 const x_70 = p;
|
||||||
*(tint_symbol_6) = (x_69 * float4(x_70.x, x_70.y, x_70.z, 1.0f));
|
*(tint_symbol_6) = (x_69 * float4(x_70[0], x_70[1], x_70[2], 1.0f));
|
||||||
float2 const x_83 = *(tint_symbol_7);
|
float2 const x_83 = *(tint_symbol_7);
|
||||||
*(tint_symbol_8) = x_83;
|
*(tint_symbol_8) = x_83;
|
||||||
float const x_87 = (*(tint_symbol_6)).y;
|
float const x_87 = (*(tint_symbol_6))[1];
|
||||||
(*(tint_symbol_6)).y = (x_87 * -1.0f);
|
(*(tint_symbol_6))[1] = (x_87 * -1.0f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,20 +53,20 @@ struct AI32s {
|
||||||
};
|
};
|
||||||
|
|
||||||
float3 toVoxelPos(constant Uniforms& uniforms, float3 position) {
|
float3 toVoxelPos(constant Uniforms& uniforms, float3 position) {
|
||||||
float3 bbMin = float3(uniforms.bbMin.x, uniforms.bbMin.y, uniforms.bbMin.z);
|
float3 bbMin = float3(uniforms.bbMin[0], uniforms.bbMin[1], uniforms.bbMin[2]);
|
||||||
float3 bbMax = float3(uniforms.bbMax.x, uniforms.bbMax.y, uniforms.bbMax.z);
|
float3 bbMax = float3(uniforms.bbMax[0], uniforms.bbMax[1], uniforms.bbMax[2]);
|
||||||
float3 bbSize = (bbMax - bbMin);
|
float3 bbSize = (bbMax - bbMin);
|
||||||
float cubeSize = fmax(fmax(bbSize.x, bbSize.y), bbSize.z);
|
float cubeSize = fmax(fmax(bbSize[0], bbSize[1]), bbSize[2]);
|
||||||
float gridSize = float(uniforms.gridSize);
|
float gridSize = float(uniforms.gridSize);
|
||||||
float gx = ((gridSize * (position.x - uniforms.bbMin.x)) / cubeSize);
|
float gx = ((gridSize * (position[0] - uniforms.bbMin[0])) / cubeSize);
|
||||||
float gy = ((gridSize * (position.y - uniforms.bbMin.y)) / cubeSize);
|
float gy = ((gridSize * (position[1] - uniforms.bbMin[1])) / cubeSize);
|
||||||
float gz = ((gridSize * (position.z - uniforms.bbMin.z)) / cubeSize);
|
float gz = ((gridSize * (position[2] - uniforms.bbMin[2])) / cubeSize);
|
||||||
return float3(gx, gy, gz);
|
return float3(gx, gy, gz);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint toIndex1D(uint gridSize, float3 voxelPos) {
|
uint toIndex1D(uint gridSize, float3 voxelPos) {
|
||||||
uint3 icoord = uint3(voxelPos);
|
uint3 icoord = uint3(voxelPos);
|
||||||
return ((icoord.x + (gridSize * icoord.y)) + ((gridSize * gridSize) * icoord.z));
|
return ((icoord[0] + (gridSize * icoord[1])) + ((gridSize * gridSize) * icoord[2]));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint3 toIndex3D(uint gridSize, uint index) {
|
uint3 toIndex3D(uint gridSize, uint index) {
|
||||||
|
@ -91,7 +91,7 @@ void doIgnore(constant Uniforms& uniforms, device Dbg& dbg, device AU32s& counte
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_count_inner(constant Uniforms& uniforms, device Dbg& dbg, device AU32s& counters, device U32s& indices, device F32s& positions, device AI32s& LUT, uint3 GlobalInvocationID) {
|
void main_count_inner(constant Uniforms& uniforms, device Dbg& dbg, device AU32s& counters, device U32s& indices, device F32s& positions, device AI32s& LUT, uint3 GlobalInvocationID) {
|
||||||
uint triangleIndex = GlobalInvocationID.x;
|
uint triangleIndex = GlobalInvocationID[0];
|
||||||
if ((triangleIndex >= uniforms.numTriangles)) {
|
if ((triangleIndex >= uniforms.numTriangles)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -108,9 +108,9 @@ void main_count_inner(constant Uniforms& uniforms, device Dbg& dbg, device AU32s
|
||||||
uint acefg = atomic_fetch_add_explicit(&(counters.values[voxelIndex]), 1u, memory_order_relaxed);
|
uint acefg = atomic_fetch_add_explicit(&(counters.values[voxelIndex]), 1u, memory_order_relaxed);
|
||||||
if ((triangleIndex == 0u)) {
|
if ((triangleIndex == 0u)) {
|
||||||
dbg.value0 = uniforms.gridSize;
|
dbg.value0 = uniforms.gridSize;
|
||||||
dbg.value_f32_0 = center.x;
|
dbg.value_f32_0 = center[0];
|
||||||
dbg.value_f32_1 = center.y;
|
dbg.value_f32_1 = center[1];
|
||||||
dbg.value_f32_2 = center.z;
|
dbg.value_f32_2 = center[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ kernel void main_count(uint3 GlobalInvocationID [[thread_position_in_grid]], con
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_create_lut_inner(constant Uniforms& uniforms, device Dbg& dbg, device AU32s& counters, device U32s& indices, device F32s& positions, device AI32s& LUT, uint3 GlobalInvocationID) {
|
void main_create_lut_inner(constant Uniforms& uniforms, device Dbg& dbg, device AU32s& counters, device U32s& indices, device F32s& positions, device AI32s& LUT, uint3 GlobalInvocationID) {
|
||||||
uint voxelIndex = GlobalInvocationID.x;
|
uint voxelIndex = GlobalInvocationID[0];
|
||||||
doIgnore(uniforms, dbg, counters, indices, positions, LUT);
|
doIgnore(uniforms, dbg, counters, indices, positions, LUT);
|
||||||
uint maxVoxels = ((uniforms.gridSize * uniforms.gridSize) * uniforms.gridSize);
|
uint maxVoxels = ((uniforms.gridSize * uniforms.gridSize) * uniforms.gridSize);
|
||||||
if ((voxelIndex >= maxVoxels)) {
|
if ((voxelIndex >= maxVoxels)) {
|
||||||
|
@ -140,7 +140,7 @@ kernel void main_create_lut(uint3 GlobalInvocationID [[thread_position_in_grid]]
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_sort_triangles_inner(constant Uniforms& uniforms, device Dbg& dbg, device AU32s& counters, device U32s& indices, device F32s& positions, device AI32s& LUT, uint3 GlobalInvocationID) {
|
void main_sort_triangles_inner(constant Uniforms& uniforms, device Dbg& dbg, device AU32s& counters, device U32s& indices, device F32s& positions, device AI32s& LUT, uint3 GlobalInvocationID) {
|
||||||
uint triangleIndex = GlobalInvocationID.x;
|
uint triangleIndex = GlobalInvocationID[0];
|
||||||
doIgnore(uniforms, dbg, counters, indices, positions, LUT);
|
doIgnore(uniforms, dbg, counters, indices, positions, LUT);
|
||||||
if ((triangleIndex >= uniforms.numTriangles)) {
|
if ((triangleIndex >= uniforms.numTriangles)) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -53,20 +53,20 @@ struct tint_array_wrapper_2 {
|
||||||
};
|
};
|
||||||
|
|
||||||
void tint_symbol_inner(constant Config& config, constant Uniforms& uniforms, device LightsBuffer& lightsBuffer, device Tiles& tileLightId, uint3 GlobalInvocationID) {
|
void tint_symbol_inner(constant Config& config, constant Uniforms& uniforms, device LightsBuffer& lightsBuffer, device Tiles& tileLightId, uint3 GlobalInvocationID) {
|
||||||
uint index = GlobalInvocationID.x;
|
uint index = GlobalInvocationID[0];
|
||||||
if ((index >= config.numLights)) {
|
if ((index >= config.numLights)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
lightsBuffer.lights[index].position.y = ((lightsBuffer.lights[index].position.y - 0.100000001f) + (0.001f * (float(index) - (64.0f * floor((float(index) / 64.0f))))));
|
lightsBuffer.lights[index].position[1] = ((lightsBuffer.lights[index].position[1] - 0.100000001f) + (0.001f * (float(index) - (64.0f * floor((float(index) / 64.0f))))));
|
||||||
if ((lightsBuffer.lights[index].position.y < uniforms.min.y)) {
|
if ((lightsBuffer.lights[index].position[1] < uniforms.min[1])) {
|
||||||
lightsBuffer.lights[index].position.y = uniforms.max.y;
|
lightsBuffer.lights[index].position[1] = uniforms.max[1];
|
||||||
}
|
}
|
||||||
float4x4 M = uniforms.projectionMatrix;
|
float4x4 M = uniforms.projectionMatrix;
|
||||||
float viewNear = (-(M[3][2]) / (-1.0f + M[2][2]));
|
float viewNear = (-(M[3][2]) / (-1.0f + M[2][2]));
|
||||||
float viewFar = (-(M[3][2]) / (1.0f + M[2][2]));
|
float viewFar = (-(M[3][2]) / (1.0f + M[2][2]));
|
||||||
float4 lightPos = lightsBuffer.lights[index].position;
|
float4 lightPos = lightsBuffer.lights[index].position;
|
||||||
lightPos = (uniforms.viewMatrix * lightPos);
|
lightPos = (uniforms.viewMatrix * lightPos);
|
||||||
lightPos = (lightPos / lightPos.w);
|
lightPos = (lightPos / lightPos[3]);
|
||||||
float lightRadius = lightsBuffer.lights[index].radius;
|
float lightRadius = lightsBuffer.lights[index].radius;
|
||||||
float4 boxMin = (lightPos - float4(float3(lightRadius), 0.0f));
|
float4 boxMin = (lightPos - float4(float3(lightRadius), 0.0f));
|
||||||
float4 boxMax = (lightPos + float4(float3(lightRadius), 0.0f));
|
float4 boxMax = (lightPos + float4(float3(lightRadius), 0.0f));
|
||||||
|
@ -79,33 +79,33 @@ void tint_symbol_inner(constant Config& config, constant Uniforms& uniforms, dev
|
||||||
for(int y_1 = 0; (y_1 < TILE_COUNT_Y); y_1 = as_type<int>((as_type<uint>(y_1) + as_type<uint>(1)))) {
|
for(int y_1 = 0; (y_1 < TILE_COUNT_Y); y_1 = as_type<int>((as_type<uint>(y_1) + as_type<uint>(1)))) {
|
||||||
for(int x_1 = 0; (x_1 < TILE_COUNT_X); x_1 = as_type<int>((as_type<uint>(x_1) + as_type<uint>(1)))) {
|
for(int x_1 = 0; (x_1 < TILE_COUNT_X); x_1 = as_type<int>((as_type<uint>(x_1) + as_type<uint>(1)))) {
|
||||||
int2 tilePixel0Idx = int2(as_type<int>((as_type<uint>(x_1) * as_type<uint>(TILE_SIZE))), as_type<int>((as_type<uint>(y_1) * as_type<uint>(TILE_SIZE))));
|
int2 tilePixel0Idx = int2(as_type<int>((as_type<uint>(x_1) * as_type<uint>(TILE_SIZE))), as_type<int>((as_type<uint>(y_1) * as_type<uint>(TILE_SIZE))));
|
||||||
float2 floorCoord = (((2.0f * float2(tilePixel0Idx)) / uniforms.fullScreenSize.xy) - float2(1.0f));
|
float2 floorCoord = (((2.0f * float2(tilePixel0Idx)) / float4(uniforms.fullScreenSize).xy) - float2(1.0f));
|
||||||
float2 ceilCoord = (((2.0f * float2(as_type<int2>((as_type<uint2>(tilePixel0Idx) + as_type<uint2>(int2(TILE_SIZE)))))) / uniforms.fullScreenSize.xy) - float2(1.0f));
|
float2 ceilCoord = (((2.0f * float2(as_type<int2>((as_type<uint2>(tilePixel0Idx) + as_type<uint2>(int2(TILE_SIZE)))))) / float4(uniforms.fullScreenSize).xy) - float2(1.0f));
|
||||||
float2 viewFloorCoord = float2((((-(viewNear) * floorCoord.x) - (M[2][0] * viewNear)) / M[0][0]), (((-(viewNear) * floorCoord.y) - (M[2][1] * viewNear)) / M[1][1]));
|
float2 viewFloorCoord = float2((((-(viewNear) * floorCoord[0]) - (M[2][0] * viewNear)) / M[0][0]), (((-(viewNear) * floorCoord[1]) - (M[2][1] * viewNear)) / M[1][1]));
|
||||||
float2 viewCeilCoord = float2((((-(viewNear) * ceilCoord.x) - (M[2][0] * viewNear)) / M[0][0]), (((-(viewNear) * ceilCoord.y) - (M[2][1] * viewNear)) / M[1][1]));
|
float2 viewCeilCoord = float2((((-(viewNear) * ceilCoord[0]) - (M[2][0] * viewNear)) / M[0][0]), (((-(viewNear) * ceilCoord[1]) - (M[2][1] * viewNear)) / M[1][1]));
|
||||||
frustumPlanes.arr[0] = float4(1.0f, 0.0f, (-(viewFloorCoord.x) / viewNear), 0.0f);
|
frustumPlanes.arr[0] = float4(1.0f, 0.0f, (-(viewFloorCoord[0]) / viewNear), 0.0f);
|
||||||
frustumPlanes.arr[1] = float4(-1.0f, 0.0f, (viewCeilCoord.x / viewNear), 0.0f);
|
frustumPlanes.arr[1] = float4(-1.0f, 0.0f, (viewCeilCoord[0] / viewNear), 0.0f);
|
||||||
frustumPlanes.arr[2] = float4(0.0f, 1.0f, (-(viewFloorCoord.y) / viewNear), 0.0f);
|
frustumPlanes.arr[2] = float4(0.0f, 1.0f, (-(viewFloorCoord[1]) / viewNear), 0.0f);
|
||||||
frustumPlanes.arr[3] = float4(0.0f, -1.0f, (viewCeilCoord.y / viewNear), 0.0f);
|
frustumPlanes.arr[3] = float4(0.0f, -1.0f, (viewCeilCoord[1] / viewNear), 0.0f);
|
||||||
float dp = 0.0f;
|
float dp = 0.0f;
|
||||||
for(uint i = 0u; (i < 6u); i = (i + 1u)) {
|
for(uint i = 0u; (i < 6u); i = (i + 1u)) {
|
||||||
float4 p = 0.0f;
|
float4 p = 0.0f;
|
||||||
if ((frustumPlanes.arr[i].x > 0.0f)) {
|
if ((frustumPlanes.arr[i][0] > 0.0f)) {
|
||||||
p.x = boxMax.x;
|
p[0] = boxMax[0];
|
||||||
} else {
|
} else {
|
||||||
p.x = boxMin.x;
|
p[0] = boxMin[0];
|
||||||
}
|
}
|
||||||
if ((frustumPlanes.arr[i].y > 0.0f)) {
|
if ((frustumPlanes.arr[i][1] > 0.0f)) {
|
||||||
p.y = boxMax.y;
|
p[1] = boxMax[1];
|
||||||
} else {
|
} else {
|
||||||
p.y = boxMin.y;
|
p[1] = boxMin[1];
|
||||||
}
|
}
|
||||||
if ((frustumPlanes.arr[i].z > 0.0f)) {
|
if ((frustumPlanes.arr[i][2] > 0.0f)) {
|
||||||
p.z = boxMax.z;
|
p[2] = boxMax[2];
|
||||||
} else {
|
} else {
|
||||||
p.z = boxMin.z;
|
p[2] = boxMin[2];
|
||||||
}
|
}
|
||||||
p.w = 1.0f;
|
p[3] = 1.0f;
|
||||||
dp = (dp + fmin(0.0f, dot(p, frustumPlanes.arr[i])));
|
dp = (dp + fmin(0.0f, dot(p, frustumPlanes.arr[i])));
|
||||||
}
|
}
|
||||||
if ((dp >= 0.0f)) {
|
if ((dp >= 0.0f)) {
|
||||||
|
@ -117,7 +117,7 @@ void tint_symbol_inner(constant Config& config, constant Uniforms& uniforms, dev
|
||||||
if ((offset >= config.numTileLightSlot)) {
|
if ((offset >= config.numTileLightSlot)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
tileLightId.data.arr[tileId].lightId.arr[offset] = GlobalInvocationID.x;
|
tileLightId.data.arr[tileId].lightId.arr[offset] = GlobalInvocationID[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
float x_200(thread float2* const x_201) {
|
float x_200(thread float2* const x_201) {
|
||||||
float const x_212 = (*(x_201)).x;
|
float const x_212 = (*(x_201))[0];
|
||||||
return x_212;
|
return x_212;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ float4 tint_symbol_inner(constant vertexUniformBuffer1& x_20, constant vertexUni
|
||||||
indexable = tint_symbol_2;
|
indexable = tint_symbol_2;
|
||||||
float2 const x_51 = indexable.arr[x_46];
|
float2 const x_51 = indexable.arr[x_46];
|
||||||
float2 const x_52 = (float2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])) * x_51);
|
float2 const x_52 = (float2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])) * x_51);
|
||||||
return float4(x_52.x, x_52.y, 0.0f, 1.0f);
|
return float4(x_52[0], x_52[1], 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex tint_symbol_1 tint_symbol(uint gl_VertexIndex [[vertex_id]], constant vertexUniformBuffer1& x_20 [[buffer(0)]], constant vertexUniformBuffer2& x_26 [[buffer(1)]]) {
|
vertex tint_symbol_1 tint_symbol(uint gl_VertexIndex [[vertex_id]], constant vertexUniformBuffer1& x_20 [[buffer(0)]], constant vertexUniformBuffer2& x_26 [[buffer(1)]]) {
|
||||||
|
|
|
@ -5,8 +5,8 @@ void main_1(texture2d<uint, access::sample> tint_symbol_1, texture2d<uint, acces
|
||||||
uint4 srcValue = 0u;
|
uint4 srcValue = 0u;
|
||||||
uint4 const x_18 = tint_symbol_1.read(uint2(int2(0, 0)), 0);
|
uint4 const x_18 = tint_symbol_1.read(uint2(int2(0, 0)), 0);
|
||||||
srcValue = x_18;
|
srcValue = x_18;
|
||||||
uint const x_22 = srcValue.x;
|
uint const x_22 = srcValue[0];
|
||||||
srcValue.x = (x_22 + as_type<uint>(1));
|
srcValue[0] = (x_22 + as_type<uint>(1));
|
||||||
uint4 const x_27 = srcValue;
|
uint4 const x_27 = srcValue;
|
||||||
tint_symbol_2.write(x_27, uint2(int2(0, 0)));
|
tint_symbol_2.write(x_27, uint2(int2(0, 0)));
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -5,10 +5,10 @@ kernel void tint_symbol(texture2d<uint, access::sample> tint_symbol_1 [[texture(
|
||||||
uint4 srcValue = 0u;
|
uint4 srcValue = 0u;
|
||||||
uint4 const x_22 = tint_symbol_1.read(uint2(int2(0, 0)), 0);
|
uint4 const x_22 = tint_symbol_1.read(uint2(int2(0, 0)), 0);
|
||||||
srcValue = x_22;
|
srcValue = x_22;
|
||||||
uint const x_24 = srcValue.x;
|
uint const x_24 = srcValue[0];
|
||||||
uint const x_25 = (x_24 + 1u);
|
uint const x_25 = (x_24 + 1u);
|
||||||
uint4 const x_27 = srcValue;
|
uint4 const x_27 = srcValue;
|
||||||
tint_symbol_2.write(x_27.xxxx, uint2(int2(0, 0)));
|
tint_symbol_2.write(uint4(x_27).xxxx, uint2(int2(0, 0)));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,10 +17,10 @@ uint ConvertToFp16FloatValue(float fp32) {
|
||||||
|
|
||||||
void tint_symbol_inner(constant Uniforms& uniforms, device OutputBuf& output, uint3 GlobalInvocationID, texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2) {
|
void tint_symbol_inner(constant Uniforms& uniforms, device OutputBuf& output, uint3 GlobalInvocationID, texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2) {
|
||||||
int2 size = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
|
int2 size = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
|
||||||
int2 dstTexCoord = int2(GlobalInvocationID.xy);
|
int2 dstTexCoord = int2(uint3(GlobalInvocationID).xy);
|
||||||
int2 srcTexCoord = dstTexCoord;
|
int2 srcTexCoord = dstTexCoord;
|
||||||
if ((uniforms.dstTextureFlipY == 1u)) {
|
if ((uniforms.dstTextureFlipY == 1u)) {
|
||||||
srcTexCoord.y = as_type<int>((as_type<uint>(as_type<int>((as_type<uint>(size.y) - as_type<uint>(dstTexCoord.y)))) - as_type<uint>(1)));
|
srcTexCoord[1] = as_type<int>((as_type<uint>(as_type<int>((as_type<uint>(size[1]) - as_type<uint>(dstTexCoord[1])))) - as_type<uint>(1)));
|
||||||
}
|
}
|
||||||
float4 srcColor = tint_symbol_1.read(uint2(srcTexCoord), 0);
|
float4 srcColor = tint_symbol_1.read(uint2(srcTexCoord), 0);
|
||||||
float4 dstColor = tint_symbol_2.read(uint2(dstTexCoord), 0);
|
float4 dstColor = tint_symbol_2.read(uint2(dstTexCoord), 0);
|
||||||
|
@ -31,7 +31,7 @@ void tint_symbol_inner(constant Uniforms& uniforms, device OutputBuf& output, ui
|
||||||
srcColorBits[i] = ConvertToFp16FloatValue(srcColor[i]);
|
srcColorBits[i] = ConvertToFp16FloatValue(srcColor[i]);
|
||||||
success = (success && (srcColorBits[i] == dstColorBits[i]));
|
success = (success && (srcColorBits[i] == dstColorBits[i]));
|
||||||
}
|
}
|
||||||
uint outputIndex = ((GlobalInvocationID.y * uint(size.x)) + GlobalInvocationID.x);
|
uint outputIndex = ((GlobalInvocationID[1] * uint(size[0])) + GlobalInvocationID[0]);
|
||||||
if (success) {
|
if (success) {
|
||||||
output.result[outputIndex] = uint(1);
|
output.result[outputIndex] = uint(1);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -11,16 +11,16 @@ struct Matrix {
|
||||||
};
|
};
|
||||||
|
|
||||||
void tint_symbol_inner(constant Uniforms& uniforms, const device Matrix& firstMatrix, const device Matrix& secondMatrix, device Matrix& resultMatrix, uint3 global_id) {
|
void tint_symbol_inner(constant Uniforms& uniforms, const device Matrix& firstMatrix, const device Matrix& secondMatrix, device Matrix& resultMatrix, uint3 global_id) {
|
||||||
uint2 const resultCell = uint2(global_id.y, global_id.x);
|
uint2 const resultCell = uint2(global_id[1], global_id[0]);
|
||||||
uint const dimInner = uniforms.aShape.y;
|
uint const dimInner = uniforms.aShape[1];
|
||||||
uint const dimOutter = uniforms.outShape.y;
|
uint const dimOutter = uniforms.outShape[1];
|
||||||
uint result = 0u;
|
uint result = 0u;
|
||||||
for(uint i = 0u; (i < dimInner); i = (i + 1u)) {
|
for(uint i = 0u; (i < dimInner); i = (i + 1u)) {
|
||||||
uint const a = (i + (resultCell.x * dimInner));
|
uint const a = (i + (resultCell[0] * dimInner));
|
||||||
uint const b = (resultCell.y + (i * dimOutter));
|
uint const b = (resultCell[1] + (i * dimOutter));
|
||||||
result = (result + (firstMatrix.numbers[a] * secondMatrix.numbers[b]));
|
result = (result + (firstMatrix.numbers[a] * secondMatrix.numbers[b]));
|
||||||
}
|
}
|
||||||
uint const index = (resultCell.y + (resultCell.x * dimOutter));
|
uint const index = (resultCell[1] + (resultCell[0] * dimOutter));
|
||||||
resultMatrix.numbers[index] = result;
|
resultMatrix.numbers[index] = result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -9,11 +9,11 @@ struct Result {
|
||||||
};
|
};
|
||||||
|
|
||||||
void tint_symbol_inner(device Result& result, uint3 GlobalInvocationID, texture2d_array<float, access::sample> tint_symbol_1) {
|
void tint_symbol_inner(device Result& result, uint3 GlobalInvocationID, texture2d_array<float, access::sample> tint_symbol_1) {
|
||||||
uint flatIndex = ((((2u * 2u) * GlobalInvocationID.z) + (2u * GlobalInvocationID.y)) + GlobalInvocationID.x);
|
uint flatIndex = ((((2u * 2u) * GlobalInvocationID[2]) + (2u * GlobalInvocationID[1])) + GlobalInvocationID[0]);
|
||||||
flatIndex = (flatIndex * 1u);
|
flatIndex = (flatIndex * 1u);
|
||||||
float4 texel = tint_symbol_1.read(uint2(int2(GlobalInvocationID.xy)), 0, 0);
|
float4 texel = tint_symbol_1.read(uint2(int2(uint3(GlobalInvocationID).xy)), 0, 0);
|
||||||
for(uint i = 0u; (i < 1u); i = (i + 1u)) {
|
for(uint i = 0u; (i < 1u); i = (i + 1u)) {
|
||||||
result.values[(flatIndex + i)] = texel.r;
|
result.values[(flatIndex + i)] = texel[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ struct tint_array_wrapper_1 {
|
||||||
|
|
||||||
Output tint_symbol_inner(uint VertexIndex, uint InstanceIndex) {
|
Output tint_symbol_inner(uint VertexIndex, uint InstanceIndex) {
|
||||||
tint_array_wrapper zv = {.arr={float2(0.200000003f, 0.200000003f), float2(0.300000012f, 0.300000012f), float2(-0.100000001f, -0.100000001f), float2(1.100000024f, 1.100000024f)}};
|
tint_array_wrapper zv = {.arr={float2(0.200000003f, 0.200000003f), float2(0.300000012f, 0.300000012f), float2(-0.100000001f, -0.100000001f), float2(1.100000024f, 1.100000024f)}};
|
||||||
float const z = zv.arr[InstanceIndex].x;
|
float const z = zv.arr[InstanceIndex][0];
|
||||||
Output output = {};
|
Output output = {};
|
||||||
output.Position = float4(0.5f, 0.5f, z, 1.0f);
|
output.Position = float4(0.5f, 0.5f, z, 1.0f);
|
||||||
tint_array_wrapper_1 colors = {.arr={float4(1.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(0.0f, 0.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)}};
|
tint_array_wrapper_1 colors = {.arr={float4(1.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(0.0f, 0.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)}};
|
||||||
|
|
|
@ -7,7 +7,7 @@ struct Result {
|
||||||
|
|
||||||
constant uint width = 128u;
|
constant uint width = 128u;
|
||||||
void tint_symbol_inner(device Result& result, uint3 GlobalInvocationId, depth2d<float, access::sample> tint_symbol_1) {
|
void tint_symbol_inner(device Result& result, uint3 GlobalInvocationId, depth2d<float, access::sample> tint_symbol_1) {
|
||||||
result.values[((GlobalInvocationId.y * width) + GlobalInvocationId.x)] = tint_symbol_1.read(uint2(int2(int(GlobalInvocationId.x), int(GlobalInvocationId.y))), 0);
|
result.values[((GlobalInvocationId[1] * width) + GlobalInvocationId[0])] = tint_symbol_1.read(uint2(int2(int(GlobalInvocationId[0]), int(GlobalInvocationId[1]))), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel void tint_symbol(depth2d<float, access::sample> tint_symbol_2 [[texture(0)]], uint3 GlobalInvocationId [[thread_position_in_grid]], device Result& result [[buffer(0)]]) {
|
kernel void tint_symbol(depth2d<float, access::sample> tint_symbol_2 [[texture(0)]], uint3 GlobalInvocationId [[thread_position_in_grid]], device Result& result [[buffer(0)]]) {
|
||||||
|
|
|
@ -19,25 +19,25 @@ bool aboutEqual(float value, float expect) {
|
||||||
void tint_symbol_inner(constant Uniforms& uniforms, device OutputBuf& output, uint3 GlobalInvocationID, texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2) {
|
void tint_symbol_inner(constant Uniforms& uniforms, device OutputBuf& output, uint3 GlobalInvocationID, texture2d<float, access::sample> tint_symbol_1, texture2d<float, access::sample> tint_symbol_2) {
|
||||||
int2 const srcSize = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
|
int2 const srcSize = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
|
||||||
int2 const dstSize = int2(tint_symbol_2.get_width(), tint_symbol_2.get_height());
|
int2 const dstSize = int2(tint_symbol_2.get_width(), tint_symbol_2.get_height());
|
||||||
uint2 const dstTexCoord = uint2(GlobalInvocationID.xy);
|
uint2 const dstTexCoord = uint2(uint3(GlobalInvocationID).xy);
|
||||||
float4 const nonCoveredColor = float4(0.0f, 1.0f, 0.0f, 1.0f);
|
float4 const nonCoveredColor = float4(0.0f, 1.0f, 0.0f, 1.0f);
|
||||||
bool success = true;
|
bool success = true;
|
||||||
if (((((dstTexCoord.x < uniforms.dstCopyOrigin.x) || (dstTexCoord.y < uniforms.dstCopyOrigin.y)) || (dstTexCoord.x >= (uniforms.dstCopyOrigin.x + uniforms.copySize.x))) || (dstTexCoord.y >= (uniforms.dstCopyOrigin.y + uniforms.copySize.y)))) {
|
if (((((dstTexCoord[0] < uniforms.dstCopyOrigin[0]) || (dstTexCoord[1] < uniforms.dstCopyOrigin[1])) || (dstTexCoord[0] >= (uniforms.dstCopyOrigin[0] + uniforms.copySize[0]))) || (dstTexCoord[1] >= (uniforms.dstCopyOrigin[1] + uniforms.copySize[1])))) {
|
||||||
success = (success && all((tint_symbol_2.read(uint2(int2(dstTexCoord)), 0) == nonCoveredColor)));
|
success = (success && all((tint_symbol_2.read(uint2(int2(dstTexCoord)), 0) == nonCoveredColor)));
|
||||||
} else {
|
} else {
|
||||||
uint2 srcTexCoord = ((dstTexCoord - uniforms.dstCopyOrigin) + uniforms.srcCopyOrigin);
|
uint2 srcTexCoord = ((dstTexCoord - uniforms.dstCopyOrigin) + uniforms.srcCopyOrigin);
|
||||||
if ((uniforms.dstTextureFlipY == 1u)) {
|
if ((uniforms.dstTextureFlipY == 1u)) {
|
||||||
srcTexCoord.y = ((uint(srcSize.y) - srcTexCoord.y) - 1u);
|
srcTexCoord[1] = ((uint(srcSize[1]) - srcTexCoord[1]) - 1u);
|
||||||
}
|
}
|
||||||
float4 const srcColor = tint_symbol_1.read(uint2(int2(srcTexCoord)), 0);
|
float4 const srcColor = tint_symbol_1.read(uint2(int2(srcTexCoord)), 0);
|
||||||
float4 const dstColor = tint_symbol_2.read(uint2(int2(dstTexCoord)), 0);
|
float4 const dstColor = tint_symbol_2.read(uint2(int2(dstTexCoord)), 0);
|
||||||
if ((uniforms.channelCount == 2u)) {
|
if ((uniforms.channelCount == 2u)) {
|
||||||
success = ((success && aboutEqual(dstColor.r, srcColor.r)) && aboutEqual(dstColor.g, srcColor.g));
|
success = ((success && aboutEqual(dstColor[0], srcColor[0])) && aboutEqual(dstColor[1], srcColor[1]));
|
||||||
} else {
|
} else {
|
||||||
success = ((((success && aboutEqual(dstColor.r, srcColor.r)) && aboutEqual(dstColor.g, srcColor.g)) && aboutEqual(dstColor.b, srcColor.b)) && aboutEqual(dstColor.a, srcColor.a));
|
success = ((((success && aboutEqual(dstColor[0], srcColor[0])) && aboutEqual(dstColor[1], srcColor[1])) && aboutEqual(dstColor[2], srcColor[2])) && aboutEqual(dstColor[3], srcColor[3]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uint const outputIndex = ((GlobalInvocationID.y * uint(dstSize.x)) + GlobalInvocationID.x);
|
uint const outputIndex = ((GlobalInvocationID[1] * uint(dstSize[0])) + GlobalInvocationID[0]);
|
||||||
if (success) {
|
if (success) {
|
||||||
output.result[outputIndex] = 1u;
|
output.result[outputIndex] = 1u;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -58,10 +58,10 @@ void tint_symbol_inner(constant Uniforms& uniforms, const device Matrix& firstMa
|
||||||
(*(tint_symbol_2)).arr[i].arr[i_1] = float();
|
(*(tint_symbol_2)).arr[i].arr[i_1] = float();
|
||||||
}
|
}
|
||||||
threadgroup_barrier(mem_flags::mem_threadgroup);
|
threadgroup_barrier(mem_flags::mem_threadgroup);
|
||||||
uint const tileRow = (local_id.y * RowPerThread);
|
uint const tileRow = (local_id[1] * RowPerThread);
|
||||||
uint const tileCol = (local_id.x * ColPerThread);
|
uint const tileCol = (local_id[0] * ColPerThread);
|
||||||
uint const globalRow = (global_id.y * RowPerThread);
|
uint const globalRow = (global_id[1] * RowPerThread);
|
||||||
uint const globalCol = (global_id.x * ColPerThread);
|
uint const globalCol = (global_id[0] * ColPerThread);
|
||||||
uint const numTiles = (((uniforms.dimInner - 1u) / TileInner) + 1u);
|
uint const numTiles = (((uniforms.dimInner - 1u) / TileInner) + 1u);
|
||||||
tint_array_wrapper_2 acc = {};
|
tint_array_wrapper_2 acc = {};
|
||||||
float ACached = 0.0f;
|
float ACached = 0.0f;
|
||||||
|
@ -70,9 +70,9 @@ void tint_symbol_inner(constant Uniforms& uniforms, const device Matrix& firstMa
|
||||||
acc.arr[index] = 0.0f;
|
acc.arr[index] = 0.0f;
|
||||||
}
|
}
|
||||||
uint const ColPerThreadA = (TileInner / 16u);
|
uint const ColPerThreadA = (TileInner / 16u);
|
||||||
uint const tileColA = (local_id.x * ColPerThreadA);
|
uint const tileColA = (local_id[0] * ColPerThreadA);
|
||||||
uint const RowPerThreadB = (TileInner / 16u);
|
uint const RowPerThreadB = (TileInner / 16u);
|
||||||
uint const tileRowB = (local_id.y * RowPerThreadB);
|
uint const tileRowB = (local_id[1] * RowPerThreadB);
|
||||||
for(uint t = 0u; (t < numTiles); t = (t + 1u)) {
|
for(uint t = 0u; (t < numTiles); t = (t + 1u)) {
|
||||||
for(uint innerRow = 0u; (innerRow < RowPerThread); innerRow = (innerRow + 1u)) {
|
for(uint innerRow = 0u; (innerRow < RowPerThread); innerRow = (innerRow + 1u)) {
|
||||||
for(uint innerCol = 0u; (innerCol < ColPerThreadA); innerCol = (innerCol + 1u)) {
|
for(uint innerCol = 0u; (innerCol < ColPerThreadA); innerCol = (innerCol + 1u)) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ float3 Mat4x3GetCol0_(Mat4x3_ m) {
|
||||||
Mat4x3_ const x_e2 = m1;
|
Mat4x3_ const x_e2 = m1;
|
||||||
Mat4x3_ const x_e5 = m1;
|
Mat4x3_ const x_e5 = m1;
|
||||||
Mat4x3_ const x_e8 = m1;
|
Mat4x3_ const x_e8 = m1;
|
||||||
return float3(x_e2.mx.x, x_e5.my.x, x_e8.mz.x);
|
return float3(x_e2.mx[0], x_e5.my[0], x_e8.mz[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 Mat4x3GetCol1_(Mat4x3_ m2) {
|
float3 Mat4x3GetCol1_(Mat4x3_ m2) {
|
||||||
|
@ -65,7 +65,7 @@ float3 Mat4x3GetCol1_(Mat4x3_ m2) {
|
||||||
Mat4x3_ const x_e2 = m3;
|
Mat4x3_ const x_e2 = m3;
|
||||||
Mat4x3_ const x_e5 = m3;
|
Mat4x3_ const x_e5 = m3;
|
||||||
Mat4x3_ const x_e8 = m3;
|
Mat4x3_ const x_e8 = m3;
|
||||||
return float3(x_e2.mx.y, x_e5.my.y, x_e8.mz.y);
|
return float3(x_e2.mx[1], x_e5.my[1], x_e8.mz[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 Mat4x3GetCol2_(Mat4x3_ m4) {
|
float3 Mat4x3GetCol2_(Mat4x3_ m4) {
|
||||||
|
@ -74,7 +74,7 @@ float3 Mat4x3GetCol2_(Mat4x3_ m4) {
|
||||||
Mat4x3_ const x_e2 = m5;
|
Mat4x3_ const x_e2 = m5;
|
||||||
Mat4x3_ const x_e5 = m5;
|
Mat4x3_ const x_e5 = m5;
|
||||||
Mat4x3_ const x_e8 = m5;
|
Mat4x3_ const x_e8 = m5;
|
||||||
return float3(x_e2.mx.z, x_e5.my.z, x_e8.mz.z);
|
return float3(x_e2.mx[2], x_e5.my[2], x_e8.mz[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 Mat4x3GetCol3_(Mat4x3_ m6) {
|
float3 Mat4x3GetCol3_(Mat4x3_ m6) {
|
||||||
|
@ -83,7 +83,7 @@ float3 Mat4x3GetCol3_(Mat4x3_ m6) {
|
||||||
Mat4x3_ const x_e2 = m7;
|
Mat4x3_ const x_e2 = m7;
|
||||||
Mat4x3_ const x_e5 = m7;
|
Mat4x3_ const x_e5 = m7;
|
||||||
Mat4x3_ const x_e8 = m7;
|
Mat4x3_ const x_e8 = m7;
|
||||||
return float3(x_e2.mx.w, x_e5.my.w, x_e8.mz.w);
|
return float3(x_e2.mx[3], x_e5.my[3], x_e8.mz[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
float4 Mul(Mat4x4_ m8, float4 v) {
|
float4 Mul(Mat4x4_ m8, float4 v) {
|
||||||
|
@ -248,13 +248,13 @@ void main1(constant ub_PacketParams& global2, constant ub_SceneParams& global, c
|
||||||
float4 const x_e50 = *(tint_symbol_8);
|
float4 const x_e50 = *(tint_symbol_8);
|
||||||
*(tint_symbol_9) = x_e50;
|
*(tint_symbol_9) = x_e50;
|
||||||
float4 const x_e52 = global1.u_Misc0_;
|
float4 const x_e52 = global1.u_Misc0_;
|
||||||
if ((x_e52.x == 2.0f)) {
|
if ((x_e52[0] == 2.0f)) {
|
||||||
{
|
{
|
||||||
float3 const x_e59 = *(tint_symbol_10);
|
float3 const x_e59 = *(tint_symbol_10);
|
||||||
Mat4x2_ const x_e64 = global1.u_TexMtx.arr[0];
|
Mat4x2_ const x_e64 = global1.u_TexMtx.arr[0];
|
||||||
float3 const x_e65 = *(tint_symbol_10);
|
float3 const x_e65 = *(tint_symbol_10);
|
||||||
float2 const x_e68 = Mul2(x_e64, float4(x_e65, 1.0f));
|
float2 const x_e68 = Mul2(x_e64, float4(x_e65, 1.0f));
|
||||||
*(tint_symbol_11) = x_e68.xy;
|
*(tint_symbol_11) = float2(x_e68).xy;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -263,7 +263,7 @@ void main1(constant ub_PacketParams& global2, constant ub_SceneParams& global, c
|
||||||
Mat4x2_ const x_e79 = global1.u_TexMtx.arr[0];
|
Mat4x2_ const x_e79 = global1.u_TexMtx.arr[0];
|
||||||
float2 const x_e80 = *(tint_symbol_12);
|
float2 const x_e80 = *(tint_symbol_12);
|
||||||
float2 const x_e84 = Mul2(x_e79, float4(x_e80, 1.0f, 1.0f));
|
float2 const x_e84 = Mul2(x_e79, float4(x_e80, 1.0f, 1.0f));
|
||||||
*(tint_symbol_11) = x_e84.xy;
|
*(tint_symbol_11) = float2(x_e84).xy;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,14 +24,14 @@ void tint_symbol_inner(constant Params& params, constant Flip& flip, uint3 WorkG
|
||||||
threadgroup_barrier(mem_flags::mem_threadgroup);
|
threadgroup_barrier(mem_flags::mem_threadgroup);
|
||||||
uint const filterOffset = ((params.filterDim - 1u) / 2u);
|
uint const filterOffset = ((params.filterDim - 1u) / 2u);
|
||||||
int2 const dims = int2(tint_symbol_2.get_width(0), tint_symbol_2.get_height(0));
|
int2 const dims = int2(tint_symbol_2.get_width(0), tint_symbol_2.get_height(0));
|
||||||
int2 const baseIndex = as_type<int2>((as_type<uint2>(int2(((WorkGroupID.xy * uint2(params.blockDim, 4u)) + (LocalInvocationID.xy * uint2(4u, 1u))))) - as_type<uint2>(int2(int(filterOffset), 0))));
|
int2 const baseIndex = as_type<int2>((as_type<uint2>(int2(((uint3(WorkGroupID).xy * uint2(params.blockDim, 4u)) + (uint3(LocalInvocationID).xy * uint2(4u, 1u))))) - as_type<uint2>(int2(int(filterOffset), 0))));
|
||||||
for(uint r = 0u; (r < 4u); r = (r + 1u)) {
|
for(uint r = 0u; (r < 4u); r = (r + 1u)) {
|
||||||
for(uint c = 0u; (c < 4u); c = (c + 1u)) {
|
for(uint c = 0u; (c < 4u); c = (c + 1u)) {
|
||||||
int2 loadIndex = as_type<int2>((as_type<uint2>(baseIndex) + as_type<uint2>(int2(int(c), int(r)))));
|
int2 loadIndex = as_type<int2>((as_type<uint2>(baseIndex) + as_type<uint2>(int2(int(c), int(r)))));
|
||||||
if ((flip.value != 0u)) {
|
if ((flip.value != 0u)) {
|
||||||
loadIndex = loadIndex.yx;
|
loadIndex = int2(loadIndex).yx;
|
||||||
}
|
}
|
||||||
(*(tint_symbol_1)).arr[r].arr[((4u * LocalInvocationID.x) + c)] = tint_symbol_2.sample(tint_symbol_3, ((float2(loadIndex) + float2(0.25f, 0.25f)) / float2(dims)), level(0.0f)).rgb;
|
(*(tint_symbol_1)).arr[r].arr[((4u * LocalInvocationID[0]) + c)] = float4(tint_symbol_2.sample(tint_symbol_3, ((float2(loadIndex) + float2(0.25f, 0.25f)) / float2(dims)), level(0.0f))).rgb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
threadgroup_barrier(mem_flags::mem_threadgroup);
|
threadgroup_barrier(mem_flags::mem_threadgroup);
|
||||||
|
@ -39,9 +39,9 @@ void tint_symbol_inner(constant Params& params, constant Flip& flip, uint3 WorkG
|
||||||
for(uint c = 0u; (c < 4u); c = (c + 1u)) {
|
for(uint c = 0u; (c < 4u); c = (c + 1u)) {
|
||||||
int2 writeIndex = as_type<int2>((as_type<uint2>(baseIndex) + as_type<uint2>(int2(int(c), int(r)))));
|
int2 writeIndex = as_type<int2>((as_type<uint2>(baseIndex) + as_type<uint2>(int2(int(c), int(r)))));
|
||||||
if ((flip.value != 0u)) {
|
if ((flip.value != 0u)) {
|
||||||
writeIndex = writeIndex.yx;
|
writeIndex = int2(writeIndex).yx;
|
||||||
}
|
}
|
||||||
uint const center = ((4u * LocalInvocationID.x) + c);
|
uint const center = ((4u * LocalInvocationID[0]) + c);
|
||||||
if ((((center >= filterOffset) && (center < (256u - filterOffset))) && all((writeIndex < dims)))) {
|
if ((((center >= filterOffset) && (center < (256u - filterOffset))) && all((writeIndex < dims)))) {
|
||||||
float3 acc = float3(0.0f, 0.0f, 0.0f);
|
float3 acc = float3(0.0f, 0.0f, 0.0f);
|
||||||
for(uint f = 0u; (f < params.filterDim); f = (f + 1u)) {
|
for(uint f = 0u; (f < params.filterDim); f = (f + 1u)) {
|
||||||
|
|
|
@ -58,8 +58,8 @@ float mm_readA_i1_i1_(constant Uniforms& x_48, const device ssbA& x_165, thread
|
||||||
int2 param_10 = 0;
|
int2 param_10 = 0;
|
||||||
int2 param_11 = 0;
|
int2 param_11 = 0;
|
||||||
float x_430 = 0.0f;
|
float x_430 = 0.0f;
|
||||||
int const x_417 = x_48.aShape.y;
|
int const x_417 = x_48.aShape[1];
|
||||||
int const x_419 = x_48.aShape.z;
|
int const x_419 = x_48.aShape[2];
|
||||||
batchASize = as_type<int>((as_type<uint>(x_417) * as_type<uint>(x_419)));
|
batchASize = as_type<int>((as_type<uint>(x_417) * as_type<uint>(x_419)));
|
||||||
int const x_421 = *(row);
|
int const x_421 = *(row);
|
||||||
int const x_422 = *(col);
|
int const x_422 = *(col);
|
||||||
|
@ -88,8 +88,8 @@ float mm_readB_i1_i1_(constant Uniforms& x_48, const device ssbB& x_185, thread
|
||||||
int2 param_12 = 0;
|
int2 param_12 = 0;
|
||||||
int2 param_13 = 0;
|
int2 param_13 = 0;
|
||||||
float x_468 = 0.0f;
|
float x_468 = 0.0f;
|
||||||
int const x_455 = x_48.bShape.y;
|
int const x_455 = x_48.bShape[1];
|
||||||
int const x_457 = x_48.bShape.z;
|
int const x_457 = x_48.bShape[2];
|
||||||
batchBSize = as_type<int>((as_type<uint>(x_455) * as_type<uint>(x_457)));
|
batchBSize = as_type<int>((as_type<uint>(x_455) * as_type<uint>(x_457)));
|
||||||
int const x_459 = *(row_1);
|
int const x_459 = *(row_1);
|
||||||
int const x_460 = *(col_1);
|
int const x_460 = *(col_1);
|
||||||
|
@ -115,8 +115,8 @@ float mm_readB_i1_i1_(constant Uniforms& x_48, const device ssbB& x_185, thread
|
||||||
|
|
||||||
int getOutputFlatIndex_vi3_(constant Uniforms& x_48, thread int3* const coords) {
|
int getOutputFlatIndex_vi3_(constant Uniforms& x_48, thread int3* const coords) {
|
||||||
int3 const x_99 = *(coords);
|
int3 const x_99 = *(coords);
|
||||||
int const x_105 = x_48.outShapeStrides.x;
|
int const x_105 = x_48.outShapeStrides[0];
|
||||||
int const x_107 = x_48.outShapeStrides.y;
|
int const x_107 = x_48.outShapeStrides[1];
|
||||||
return int(dot(float3(x_99), float3(int3(x_105, x_107, 1))));
|
return int(dot(float3(x_99), float3(int3(x_105, x_107, 1))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,13 +203,13 @@ void mm_matMul_i1_i1_i1_(constant Uniforms& x_48, const device ssbA& x_165, cons
|
||||||
int param_7 = 0;
|
int param_7 = 0;
|
||||||
int param_8 = 0;
|
int param_8 = 0;
|
||||||
float param_9 = 0.0f;
|
float param_9 = 0.0f;
|
||||||
uint const x_132 = (*(tint_symbol_9)).y;
|
uint const x_132 = (*(tint_symbol_9))[1];
|
||||||
tileRow = as_type<int>((as_type<uint>(as_type<int>(x_132)) * as_type<uint>(1)));
|
tileRow = as_type<int>((as_type<uint>(as_type<int>(x_132)) * as_type<uint>(1)));
|
||||||
uint const x_137 = (*(tint_symbol_9)).x;
|
uint const x_137 = (*(tint_symbol_9))[0];
|
||||||
tileCol = as_type<int>((as_type<uint>(as_type<int>(x_137)) * as_type<uint>(1)));
|
tileCol = as_type<int>((as_type<uint>(as_type<int>(x_137)) * as_type<uint>(1)));
|
||||||
uint const x_143 = (*(tint_symbol_10)).y;
|
uint const x_143 = (*(tint_symbol_10))[1];
|
||||||
globalRow = as_type<int>((as_type<uint>(as_type<int>(x_143)) * as_type<uint>(1)));
|
globalRow = as_type<int>((as_type<uint>(as_type<int>(x_143)) * as_type<uint>(1)));
|
||||||
uint const x_148 = (*(tint_symbol_10)).x;
|
uint const x_148 = (*(tint_symbol_10))[0];
|
||||||
globalCol = as_type<int>((as_type<uint>(as_type<int>(x_148)) * as_type<uint>(1)));
|
globalCol = as_type<int>((as_type<uint>(as_type<int>(x_148)) * as_type<uint>(1)));
|
||||||
int const x_152 = *(dimInner);
|
int const x_152 = *(dimInner);
|
||||||
numTiles = as_type<int>((as_type<uint>((as_type<int>((as_type<uint>(x_152) - as_type<uint>(1))) / 64)) + as_type<uint>(1)));
|
numTiles = as_type<int>((as_type<uint>((as_type<int>((as_type<uint>(x_152) - as_type<uint>(1))) / 64)) + as_type<uint>(1)));
|
||||||
|
@ -240,9 +240,9 @@ void mm_matMul_i1_i1_i1_(constant Uniforms& x_48, const device ssbA& x_165, cons
|
||||||
innerRow = as_type<int>((as_type<uint>(x_183) + as_type<uint>(1)));
|
innerRow = as_type<int>((as_type<uint>(x_183) + as_type<uint>(1)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uint const x_187 = (*(tint_symbol_9)).x;
|
uint const x_187 = (*(tint_symbol_9))[0];
|
||||||
tileColA = as_type<int>((as_type<uint>(as_type<int>(x_187)) * as_type<uint>(64)));
|
tileColA = as_type<int>((as_type<uint>(as_type<int>(x_187)) * as_type<uint>(64)));
|
||||||
uint const x_192 = (*(tint_symbol_9)).y;
|
uint const x_192 = (*(tint_symbol_9))[1];
|
||||||
tileRowB = as_type<int>((as_type<uint>(as_type<int>(x_192)) * as_type<uint>(1)));
|
tileRowB = as_type<int>((as_type<uint>(as_type<int>(x_192)) * as_type<uint>(1)));
|
||||||
t = 0;
|
t = 0;
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -464,13 +464,13 @@ void main_1(constant Uniforms& x_48, const device ssbA& x_165, const device ssbB
|
||||||
int param_18 = 0;
|
int param_18 = 0;
|
||||||
int param_19 = 0;
|
int param_19 = 0;
|
||||||
int param_20 = 0;
|
int param_20 = 0;
|
||||||
int const x_67 = x_48.aShape.y;
|
int const x_67 = x_48.aShape[1];
|
||||||
*(tint_symbol_17) = x_67;
|
*(tint_symbol_17) = x_67;
|
||||||
int const x_71 = x_48.aShape.z;
|
int const x_71 = x_48.aShape[2];
|
||||||
*(tint_symbol_18) = x_71;
|
*(tint_symbol_18) = x_71;
|
||||||
int const x_75 = x_48.bShape.z;
|
int const x_75 = x_48.bShape[2];
|
||||||
*(tint_symbol_19) = x_75;
|
*(tint_symbol_19) = x_75;
|
||||||
uint const x_505 = (*(tint_symbol_20)).z;
|
uint const x_505 = (*(tint_symbol_20))[2];
|
||||||
*(tint_symbol_21) = as_type<int>(x_505);
|
*(tint_symbol_21) = as_type<int>(x_505);
|
||||||
int const x_508 = *(tint_symbol_17);
|
int const x_508 = *(tint_symbol_17);
|
||||||
param_18 = x_508;
|
param_18 = x_508;
|
||||||
|
|
|
@ -51,7 +51,7 @@ float4x4 getFrameData_f1_(constant LeftOver& x_20, thread float* const frameID,
|
||||||
float4 const x_47 = tint_symbol_5.sample(tint_symbol_6, float2(x_44, 0.25f), bias(0.0f));
|
float4 const x_47 = tint_symbol_5.sample(tint_symbol_6, float2(x_44, 0.25f), bias(0.0f));
|
||||||
float const x_51 = fX;
|
float const x_51 = fX;
|
||||||
float4 const x_54 = tint_symbol_5.sample(tint_symbol_6, float2(x_51, 0.5f), bias(0.0f));
|
float4 const x_54 = tint_symbol_5.sample(tint_symbol_6, float2(x_51, 0.5f), bias(0.0f));
|
||||||
return float4x4(float4(x_40.x, x_40.y, x_40.z, x_40.w), float4(x_47.x, x_47.y, x_47.z, x_47.w), float4(x_54.x, x_54.y, x_54.z, x_54.w), float4(float4(0.0f, 0.0f, 0.0f, 0.0f).x, float4(0.0f, 0.0f, 0.0f, 0.0f).y, float4(0.0f, 0.0f, 0.0f, 0.0f).z, float4(0.0f, 0.0f, 0.0f, 0.0f).w));
|
return float4x4(float4(x_40[0], x_40[1], x_40[2], x_40[3]), float4(x_47[0], x_47[1], x_47[2], x_47[3]), float4(x_54[0], x_54[1], x_54[2], x_54[3]), float4(float4(0.0f, 0.0f, 0.0f, 0.0f)[0], float4(0.0f, 0.0f, 0.0f, 0.0f)[1], float4(0.0f, 0.0f, 0.0f, 0.0f)[2], float4(0.0f, 0.0f, 0.0f, 0.0f)[3]));
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture2d<float, access::sample> tint_symbol_8, sampler tint_symbol_9, texture2d<float, access::sample> tint_symbol_10, texture2d<float, access::sample> tint_symbol_11, sampler tint_symbol_12, thread float* const tint_symbol_13, texture2d<float, access::sample> tint_symbol_14, sampler tint_symbol_15, texture2d<float, access::sample> tint_symbol_16, sampler tint_symbol_17, thread float4* const tint_symbol_18) {
|
void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture2d<float, access::sample> tint_symbol_8, sampler tint_symbol_9, texture2d<float, access::sample> tint_symbol_10, texture2d<float, access::sample> tint_symbol_11, sampler tint_symbol_12, thread float* const tint_symbol_13, texture2d<float, access::sample> tint_symbol_14, sampler tint_symbol_15, texture2d<float, access::sample> tint_symbol_16, sampler tint_symbol_17, thread float4* const tint_symbol_18) {
|
||||||
|
@ -76,8 +76,8 @@ void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture
|
||||||
color = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
color = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
float2 const x_86 = *(tint_symbol_7);
|
float2 const x_86 = *(tint_symbol_7);
|
||||||
tileUV = fract(x_86);
|
tileUV = fract(x_86);
|
||||||
float const x_91 = tileUV.y;
|
float const x_91 = tileUV[1];
|
||||||
tileUV.y = (1.0f - x_91);
|
tileUV[1] = (1.0f - x_91);
|
||||||
float2 const x_95 = *(tint_symbol_7);
|
float2 const x_95 = *(tint_symbol_7);
|
||||||
tileID = floor(x_95);
|
tileID = floor(x_95);
|
||||||
float2 const x_101 = x_20.spriteMapSize;
|
float2 const x_101 = x_20.spriteMapSize;
|
||||||
|
@ -99,14 +99,14 @@ void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture
|
||||||
float2 const x_150 = tileID;
|
float2 const x_150 = tileID;
|
||||||
float2 const x_154 = x_20.stageSize;
|
float2 const x_154 = x_20.stageSize;
|
||||||
float4 const x_156 = tint_symbol_8.sample(tint_symbol_9, ((x_150 + float2(0.5f, 0.5f)) / x_154), bias(0.0f));
|
float4 const x_156 = tint_symbol_8.sample(tint_symbol_9, ((x_150 + float2(0.5f, 0.5f)) / x_154), bias(0.0f));
|
||||||
frameID_1 = x_156.x;
|
frameID_1 = x_156[0];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0: {
|
case 0: {
|
||||||
float2 const x_136 = tileID;
|
float2 const x_136 = tileID;
|
||||||
float2 const x_140 = x_20.stageSize;
|
float2 const x_140 = x_20.stageSize;
|
||||||
float4 const x_142 = tint_symbol_10.sample(tint_symbol_9, ((x_136 + float2(0.5f, 0.5f)) / x_140), bias(0.0f));
|
float4 const x_142 = tint_symbol_10.sample(tint_symbol_9, ((x_136 + float2(0.5f, 0.5f)) / x_140), bias(0.0f));
|
||||||
frameID_1 = x_142.x;
|
frameID_1 = x_142[0];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
|
@ -117,10 +117,10 @@ void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture
|
||||||
float const x_169 = x_20.spriteCount;
|
float const x_169 = x_20.spriteCount;
|
||||||
float4 const x_172 = tint_symbol_11.sample(tint_symbol_12, float2(((x_166 + 0.5f) / x_169), 0.0f), bias(0.0f));
|
float4 const x_172 = tint_symbol_11.sample(tint_symbol_12, float2(((x_166 + 0.5f) / x_169), 0.0f), bias(0.0f));
|
||||||
animationData = x_172;
|
animationData = x_172;
|
||||||
float const x_174 = animationData.y;
|
float const x_174 = animationData[1];
|
||||||
if ((x_174 > 0.0f)) {
|
if ((x_174 > 0.0f)) {
|
||||||
float const x_181 = x_20.time;
|
float const x_181 = x_20.time;
|
||||||
float const x_184 = animationData.z;
|
float const x_184 = animationData[2];
|
||||||
*(tint_symbol_13) = fmod((x_181 * x_184), 1.0f);
|
*(tint_symbol_13) = fmod((x_181 * x_184), 1.0f);
|
||||||
f = 0.0f;
|
f = 0.0f;
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -129,10 +129,10 @@ void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
float const x_197 = animationData.y;
|
float const x_197 = animationData[1];
|
||||||
float const x_198 = *(tint_symbol_13);
|
float const x_198 = *(tint_symbol_13);
|
||||||
if ((x_197 > x_198)) {
|
if ((x_197 > x_198)) {
|
||||||
float const x_203 = animationData.x;
|
float const x_203 = animationData[0];
|
||||||
frameID_1 = x_203;
|
frameID_1 = x_203;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -153,17 +153,17 @@ void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture
|
||||||
frameData = x_225;
|
frameData = x_225;
|
||||||
float4 const x_228 = frameData[0];
|
float4 const x_228 = frameData[0];
|
||||||
float2 const x_231 = x_20.spriteMapSize;
|
float2 const x_231 = x_20.spriteMapSize;
|
||||||
frameSize = (float2(x_228.w, x_228.z) / x_231);
|
frameSize = (float2(x_228[3], x_228[2]) / x_231);
|
||||||
float4 const x_235 = frameData[0];
|
float4 const x_235 = frameData[0];
|
||||||
float2 const x_237 = sheetUnits;
|
float2 const x_237 = sheetUnits;
|
||||||
offset_1 = (float2(x_235.x, x_235.y) * x_237);
|
offset_1 = (float2(x_235[0], x_235[1]) * x_237);
|
||||||
float4 const x_241 = frameData[2];
|
float4 const x_241 = frameData[2];
|
||||||
float4 const x_244 = frameData[0];
|
float4 const x_244 = frameData[0];
|
||||||
ratio = (float2(x_241.x, x_241.y) / float2(x_244.w, x_244.z));
|
ratio = (float2(x_241[0], x_241[1]) / float2(x_244[3], x_244[2]));
|
||||||
float const x_248 = frameData[2].z;
|
float const x_248 = frameData[2][2];
|
||||||
if ((x_248 == 1.0f)) {
|
if ((x_248 == 1.0f)) {
|
||||||
float2 const x_252 = tileUV;
|
float2 const x_252 = tileUV;
|
||||||
tileUV = float2(x_252.y, x_252.x);
|
tileUV = float2(x_252[1], x_252[0]);
|
||||||
}
|
}
|
||||||
int const x_254 = i;
|
int const x_254 = i;
|
||||||
if ((x_254 == 0)) {
|
if ((x_254 == 0)) {
|
||||||
|
@ -178,16 +178,16 @@ void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture
|
||||||
float2 const x_277 = offset_1;
|
float2 const x_277 = offset_1;
|
||||||
float4 const x_279 = tint_symbol_16.sample(tint_symbol_17, ((x_274 * x_275) + x_277));
|
float4 const x_279 = tint_symbol_16.sample(tint_symbol_17, ((x_274 * x_275) + x_277));
|
||||||
nc = x_279;
|
nc = x_279;
|
||||||
float const x_283 = color.w;
|
float const x_283 = color[3];
|
||||||
float const x_285 = nc.w;
|
float const x_285 = nc[3];
|
||||||
alpha = fmin((x_283 + x_285), 1.0f);
|
alpha = fmin((x_283 + x_285), 1.0f);
|
||||||
float4 const x_290 = color;
|
float4 const x_290 = color;
|
||||||
float4 const x_292 = nc;
|
float4 const x_292 = nc;
|
||||||
float const x_295 = nc.w;
|
float const x_295 = nc[3];
|
||||||
mixed = mix(float3(x_290.x, x_290.y, x_290.z), float3(x_292.x, x_292.y, x_292.z), float3(x_295, x_295, x_295));
|
mixed = mix(float3(x_290[0], x_290[1], x_290[2]), float3(x_292[0], x_292[1], x_292[2]), float3(x_295, x_295, x_295));
|
||||||
float3 const x_298 = mixed;
|
float3 const x_298 = mixed;
|
||||||
float const x_299 = alpha;
|
float const x_299 = alpha;
|
||||||
color = float4(x_298.x, x_298.y, x_298.z, x_299);
|
color = float4(x_298[0], x_298[1], x_298[2], x_299);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
int const x_304 = i;
|
int const x_304 = i;
|
||||||
|
@ -196,9 +196,9 @@ void main_1(constant LeftOver& x_20, thread float2* const tint_symbol_7, texture
|
||||||
}
|
}
|
||||||
float3 const x_310 = x_20.colorMul;
|
float3 const x_310 = x_20.colorMul;
|
||||||
float4 const x_311 = color;
|
float4 const x_311 = color;
|
||||||
float3 const x_313 = (float3(x_311.x, x_311.y, x_311.z) * x_310);
|
float3 const x_313 = (float3(x_311[0], x_311[1], x_311[2]) * x_310);
|
||||||
float4 const x_314 = color;
|
float4 const x_314 = color;
|
||||||
color = float4(x_313.x, x_313.y, x_313.z, x_314.w);
|
color = float4(x_313[0], x_313[1], x_313[2], x_314[3]);
|
||||||
float4 const x_318 = color;
|
float4 const x_318 = color;
|
||||||
*(tint_symbol_18) = x_318;
|
*(tint_symbol_18) = x_318;
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -76,19 +76,19 @@ float3x3 cotangent_frame_vf3_vf3_vf2_vf2_(thread float3* const normal_1, thread
|
||||||
float3 const x_150 = dp1;
|
float3 const x_150 = dp1;
|
||||||
dp1perp = cross(x_149, x_150);
|
dp1perp = cross(x_149, x_150);
|
||||||
float3 const x_153 = dp2perp;
|
float3 const x_153 = dp2perp;
|
||||||
float const x_155 = duv1.x;
|
float const x_155 = duv1[0];
|
||||||
float3 const x_157 = dp1perp;
|
float3 const x_157 = dp1perp;
|
||||||
float const x_159 = duv2.x;
|
float const x_159 = duv2[0];
|
||||||
tangent = ((x_153 * x_155) + (x_157 * x_159));
|
tangent = ((x_153 * x_155) + (x_157 * x_159));
|
||||||
float3 const x_163 = dp2perp;
|
float3 const x_163 = dp2perp;
|
||||||
float const x_165 = duv1.y;
|
float const x_165 = duv1[1];
|
||||||
float3 const x_167 = dp1perp;
|
float3 const x_167 = dp1perp;
|
||||||
float const x_169 = duv2.y;
|
float const x_169 = duv2[1];
|
||||||
bitangent = ((x_163 * x_165) + (x_167 * x_169));
|
bitangent = ((x_163 * x_165) + (x_167 * x_169));
|
||||||
float const x_173 = (*(tangentSpaceParams)).x;
|
float const x_173 = (*(tangentSpaceParams))[0];
|
||||||
float3 const x_174 = tangent;
|
float3 const x_174 = tangent;
|
||||||
tangent = (x_174 * x_173);
|
tangent = (x_174 * x_173);
|
||||||
float const x_177 = (*(tangentSpaceParams)).y;
|
float const x_177 = (*(tangentSpaceParams))[1];
|
||||||
float3 const x_178 = bitangent;
|
float3 const x_178 = bitangent;
|
||||||
bitangent = (x_178 * x_177);
|
bitangent = (x_178 * x_177);
|
||||||
float3 const x_181 = tangent;
|
float3 const x_181 = tangent;
|
||||||
|
@ -103,7 +103,7 @@ float3x3 cotangent_frame_vf3_vf3_vf2_vf2_(thread float3* const normal_1, thread
|
||||||
float const x_193 = invmax;
|
float const x_193 = invmax;
|
||||||
float3 const x_194 = (x_192 * x_193);
|
float3 const x_194 = (x_192 * x_193);
|
||||||
float3 const x_195 = *(normal_1);
|
float3 const x_195 = *(normal_1);
|
||||||
return float3x3(float3(x_191.x, x_191.y, x_191.z), float3(x_194.x, x_194.y, x_194.z), float3(x_195.x, x_195.y, x_195.z));
|
return float3x3(float3(x_191[0], x_191[1], x_191[2]), float3(x_194[0], x_194[1], x_194[2]), float3(x_195[0], x_195[1], x_195[2]));
|
||||||
}
|
}
|
||||||
|
|
||||||
float3x3 transposeMat3_mf33_(thread float3x3* const inMatrix) {
|
float3x3 transposeMat3_mf33_(thread float3x3* const inMatrix) {
|
||||||
|
@ -117,19 +117,19 @@ float3x3 transposeMat3_mf33_(thread float3x3* const inMatrix) {
|
||||||
i1 = x_64;
|
i1 = x_64;
|
||||||
float3 const x_68 = (*(inMatrix))[2];
|
float3 const x_68 = (*(inMatrix))[2];
|
||||||
i2 = x_68;
|
i2 = x_68;
|
||||||
float const x_73 = i0.x;
|
float const x_73 = i0[0];
|
||||||
float const x_75 = i1.x;
|
float const x_75 = i1[0];
|
||||||
float const x_77 = i2.x;
|
float const x_77 = i2[0];
|
||||||
float3 const x_78 = float3(x_73, x_75, x_77);
|
float3 const x_78 = float3(x_73, x_75, x_77);
|
||||||
float const x_81 = i0.y;
|
float const x_81 = i0[1];
|
||||||
float const x_83 = i1.y;
|
float const x_83 = i1[1];
|
||||||
float const x_85 = i2.y;
|
float const x_85 = i2[1];
|
||||||
float3 const x_86 = float3(x_81, x_83, x_85);
|
float3 const x_86 = float3(x_81, x_83, x_85);
|
||||||
float const x_89 = i0.z;
|
float const x_89 = i0[2];
|
||||||
float const x_91 = i1.z;
|
float const x_91 = i1[2];
|
||||||
float const x_93 = i2.z;
|
float const x_93 = i2[2];
|
||||||
float3 const x_94 = float3(x_89, x_91, x_93);
|
float3 const x_94 = float3(x_89, x_91, x_93);
|
||||||
outMatrix = float3x3(float3(x_78.x, x_78.y, x_78.z), float3(x_86.x, x_86.y, x_86.z), float3(x_94.x, x_94.y, x_94.z));
|
outMatrix = float3x3(float3(x_78[0], x_78[1], x_78[2]), float3(x_86[0], x_86[1], x_86[2]), float3(x_94[0], x_94[1], x_94[2]));
|
||||||
float3x3 const x_110 = outMatrix;
|
float3x3 const x_110 = outMatrix;
|
||||||
return x_110;
|
return x_110;
|
||||||
}
|
}
|
||||||
|
@ -161,14 +161,14 @@ lightingInfo computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_(thread float
|
||||||
float specComp = 0.0f;
|
float specComp = 0.0f;
|
||||||
float3 const x_212 = *(vNormal);
|
float3 const x_212 = *(vNormal);
|
||||||
float4 const x_213 = *(lightData);
|
float4 const x_213 = *(lightData);
|
||||||
ndl = ((dot(x_212, float3(x_213.x, x_213.y, x_213.z)) * 0.5f) + 0.5f);
|
ndl = ((dot(x_212, float3(x_213[0], x_213[1], x_213[2])) * 0.5f) + 0.5f);
|
||||||
float3 const x_220 = *(groundColor);
|
float3 const x_220 = *(groundColor);
|
||||||
float3 const x_221 = *(diffuseColor);
|
float3 const x_221 = *(diffuseColor);
|
||||||
float const x_222 = ndl;
|
float const x_222 = ndl;
|
||||||
result.diffuse = mix(x_220, x_221, float3(x_222, x_222, x_222));
|
result.diffuse = mix(x_220, x_221, float3(x_222, x_222, x_222));
|
||||||
float3 const x_227 = *(viewDirectionW);
|
float3 const x_227 = *(viewDirectionW);
|
||||||
float4 const x_228 = *(lightData);
|
float4 const x_228 = *(lightData);
|
||||||
angleW = normalize((x_227 + float3(x_228.x, x_228.y, x_228.z)));
|
angleW = normalize((x_227 + float3(x_228[0], x_228[1], x_228[2])));
|
||||||
float3 const x_233 = *(vNormal);
|
float3 const x_233 = *(vNormal);
|
||||||
float3 const x_234 = angleW;
|
float3 const x_234 = angleW;
|
||||||
specComp = fmax(0.0f, dot(x_233, x_234));
|
specComp = fmax(0.0f, dot(x_233, x_234));
|
||||||
|
@ -243,10 +243,10 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
tempTextureRead = x_262;
|
tempTextureRead = x_262;
|
||||||
float4 const x_264 = tempTextureRead;
|
float4 const x_264 = tempTextureRead;
|
||||||
float const x_273 = x_269.textureInfoName;
|
float const x_273 = x_269.textureInfoName;
|
||||||
rgb = (float3(x_264.x, x_264.y, x_264.z) * x_273);
|
rgb = (float3(x_264[0], x_264[1], x_264[2]) * x_273);
|
||||||
float3 const x_279 = x_269.u_cameraPosition;
|
float3 const x_279 = x_269.u_cameraPosition;
|
||||||
float4 const x_282 = *(tint_symbol_10);
|
float4 const x_282 = *(tint_symbol_10);
|
||||||
output5 = normalize((x_279 - float3(x_282.x, x_282.y, x_282.z)));
|
output5 = normalize((x_279 - float3(x_282[0], x_282[1], x_282[2])));
|
||||||
output4 = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
output4 = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
uvOffset = float2(0.0f, 0.0f);
|
uvOffset = float2(0.0f, 0.0f);
|
||||||
float const x_292 = x_269.u_bumpStrength;
|
float const x_292 = x_269.u_bumpStrength;
|
||||||
|
@ -263,9 +263,9 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
TBNUV = x_307;
|
TBNUV = x_307;
|
||||||
float4 const x_310 = *(tint_symbol_13);
|
float4 const x_310 = *(tint_symbol_13);
|
||||||
float const x_312 = normalScale;
|
float const x_312 = normalScale;
|
||||||
param_3 = (float3(x_310.x, x_310.y, x_310.z) * x_312);
|
param_3 = (float3(x_310[0], x_310[1], x_310[2]) * x_312);
|
||||||
float4 const x_317 = *(tint_symbol_10);
|
float4 const x_317 = *(tint_symbol_10);
|
||||||
param_4 = float3(x_317.x, x_317.y, x_317.z);
|
param_4 = float3(x_317[0], x_317[1], x_317[2]);
|
||||||
float2 const x_320 = TBNUV;
|
float2 const x_320 = TBNUV;
|
||||||
param_5 = x_320;
|
param_5 = x_320;
|
||||||
float2 const x_324 = x_269.tangentSpaceParameter0;
|
float2 const x_324 = x_269.tangentSpaceParameter0;
|
||||||
|
@ -281,14 +281,14 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
float3 const x_334 = (x_331 * -(x_332));
|
float3 const x_334 = (x_331 * -(x_332));
|
||||||
float3x3 const x_337 = invTBN;
|
float3x3 const x_337 = invTBN;
|
||||||
float3 const x_338 = output5;
|
float3 const x_338 = output5;
|
||||||
parallaxLimit = (length(float2(x_334.x, x_334.y)) / ((x_337 * -(x_338))).z);
|
parallaxLimit = (length(float2(x_334[0], x_334[1])) / ((x_337 * -(x_338)))[2]);
|
||||||
float const x_345 = x_269.u_parallaxScale;
|
float const x_345 = x_269.u_parallaxScale;
|
||||||
float const x_346 = parallaxLimit;
|
float const x_346 = parallaxLimit;
|
||||||
parallaxLimit = (x_346 * x_345);
|
parallaxLimit = (x_346 * x_345);
|
||||||
float3x3 const x_349 = invTBN;
|
float3x3 const x_349 = invTBN;
|
||||||
float3 const x_350 = output5;
|
float3 const x_350 = output5;
|
||||||
float3 const x_352 = (x_349 * -(x_350));
|
float3 const x_352 = (x_349 * -(x_350));
|
||||||
vOffsetDir = normalize(float2(x_352.x, x_352.y));
|
vOffsetDir = normalize(float2(x_352[0], x_352[1]));
|
||||||
float2 const x_356 = vOffsetDir;
|
float2 const x_356 = vOffsetDir;
|
||||||
float const x_357 = parallaxLimit;
|
float const x_357 = parallaxLimit;
|
||||||
vMaxOffset = (x_356 * x_357);
|
vMaxOffset = (x_356 * x_357);
|
||||||
|
@ -296,7 +296,7 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
float3 const x_362 = output5;
|
float3 const x_362 = output5;
|
||||||
float3x3 const x_365 = invTBN;
|
float3x3 const x_365 = invTBN;
|
||||||
float4 const x_366 = *(tint_symbol_13);
|
float4 const x_366 = *(tint_symbol_13);
|
||||||
numSamples = (15.0f + (dot((x_361 * -(x_362)), (x_365 * float3(x_366.x, x_366.y, x_366.z))) * -11.0f));
|
numSamples = (15.0f + (dot((x_361 * -(x_362)), (x_365 * float3(x_366[0], x_366[1], x_366[2]))) * -11.0f));
|
||||||
float const x_374 = numSamples;
|
float const x_374 = numSamples;
|
||||||
stepSize = (1.0f / x_374);
|
stepSize = (1.0f / x_374);
|
||||||
currRayHeight = 1.0f;
|
currRayHeight = 1.0f;
|
||||||
|
@ -314,7 +314,7 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
float2 const x_394 = *(tint_symbol_12);
|
float2 const x_394 = *(tint_symbol_12);
|
||||||
float2 const x_395 = vCurrOffset;
|
float2 const x_395 = vCurrOffset;
|
||||||
float4 const x_397 = tint_symbol_8.sample(tint_symbol_9, (x_394 + x_395));
|
float4 const x_397 = tint_symbol_8.sample(tint_symbol_9, (x_394 + x_395));
|
||||||
currSampledHeight = x_397.w;
|
currSampledHeight = x_397[3];
|
||||||
float const x_400 = currSampledHeight;
|
float const x_400 = currSampledHeight;
|
||||||
float const x_401 = currRayHeight;
|
float const x_401 = currRayHeight;
|
||||||
if ((x_400 > x_401)) {
|
if ((x_400 > x_401)) {
|
||||||
|
@ -363,11 +363,11 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
float const x_454 = x_269.u_bumpStrength;
|
float const x_454 = x_269.u_bumpStrength;
|
||||||
float3x3 const x_457 = TBN;
|
float3x3 const x_457 = TBN;
|
||||||
param_8 = x_457;
|
param_8 = x_457;
|
||||||
param_9 = float3(x_452.x, x_452.y, x_452.z);
|
param_9 = float3(x_452[0], x_452[1], x_452[2]);
|
||||||
param_10 = (1.0f / x_454);
|
param_10 = (1.0f / x_454);
|
||||||
float3 const x_461 = perturbNormal_mf33_vf3_f1_(&(param_8), &(param_9), &(param_10));
|
float3 const x_461 = perturbNormal_mf33_vf3_f1_(&(param_8), &(param_9), &(param_10));
|
||||||
float4 const x_462 = output4;
|
float4 const x_462 = output4;
|
||||||
output4 = float4(x_461.x, x_461.y, x_461.z, x_462.w);
|
output4 = float4(x_461[0], x_461[1], x_461[2], x_462[3]);
|
||||||
float2 const x_465 = *(tint_symbol_12);
|
float2 const x_465 = *(tint_symbol_12);
|
||||||
float2 const x_466 = uvOffset;
|
float2 const x_466 = uvOffset;
|
||||||
output6 = (x_465 + x_466);
|
output6 = (x_465 + x_466);
|
||||||
|
@ -375,17 +375,17 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
float4 const x_475 = tint_symbol_14.sample(tint_symbol_15, x_474);
|
float4 const x_475 = tint_symbol_14.sample(tint_symbol_15, x_474);
|
||||||
tempTextureRead1 = x_475;
|
tempTextureRead1 = x_475;
|
||||||
float4 const x_477 = tempTextureRead1;
|
float4 const x_477 = tempTextureRead1;
|
||||||
rgb1 = float3(x_477.x, x_477.y, x_477.z);
|
rgb1 = float3(x_477[0], x_477[1], x_477[2]);
|
||||||
float3 const x_481 = x_269.u_cameraPosition;
|
float3 const x_481 = x_269.u_cameraPosition;
|
||||||
float4 const x_482 = *(tint_symbol_10);
|
float4 const x_482 = *(tint_symbol_10);
|
||||||
viewDirectionW_1 = normalize((x_481 - float3(x_482.x, x_482.y, x_482.z)));
|
viewDirectionW_1 = normalize((x_481 - float3(x_482[0], x_482[1], x_482[2])));
|
||||||
shadow = 1.0f;
|
shadow = 1.0f;
|
||||||
float const x_488 = *(tint_symbol_5);
|
float const x_488 = *(tint_symbol_5);
|
||||||
glossiness_1 = (1.0f * x_488);
|
glossiness_1 = (1.0f * x_488);
|
||||||
diffuseBase = float3(0.0f, 0.0f, 0.0f);
|
diffuseBase = float3(0.0f, 0.0f, 0.0f);
|
||||||
specularBase = float3(0.0f, 0.0f, 0.0f);
|
specularBase = float3(0.0f, 0.0f, 0.0f);
|
||||||
float4 const x_494 = output4;
|
float4 const x_494 = output4;
|
||||||
normalW = float3(x_494.x, x_494.y, x_494.z);
|
normalW = float3(x_494[0], x_494[1], x_494[2]);
|
||||||
float3 const x_501 = viewDirectionW_1;
|
float3 const x_501 = viewDirectionW_1;
|
||||||
param_11 = x_501;
|
param_11 = x_501;
|
||||||
float3 const x_503 = normalW;
|
float3 const x_503 = normalW;
|
||||||
|
@ -393,9 +393,9 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
float4 const x_507 = light0.vLightData;
|
float4 const x_507 = light0.vLightData;
|
||||||
param_13 = x_507;
|
param_13 = x_507;
|
||||||
float4 const x_510 = light0.vLightDiffuse;
|
float4 const x_510 = light0.vLightDiffuse;
|
||||||
param_14 = float3(x_510.x, x_510.y, x_510.z);
|
param_14 = float3(x_510[0], x_510[1], x_510[2]);
|
||||||
float4 const x_514 = light0.vLightSpecular;
|
float4 const x_514 = light0.vLightSpecular;
|
||||||
param_15 = float3(x_514.x, x_514.y, x_514.z);
|
param_15 = float3(x_514[0], x_514[1], x_514[2]);
|
||||||
float3 const x_518 = light0.vLightGround;
|
float3 const x_518 = light0.vLightGround;
|
||||||
param_16 = x_518;
|
param_16 = x_518;
|
||||||
float const x_520 = glossiness_1;
|
float const x_520 = glossiness_1;
|
||||||
|
@ -421,7 +421,7 @@ void main_1(constant LeftOver& x_269, constant Light0& light0, thread float* con
|
||||||
float3 const x_544 = specularOutput;
|
float3 const x_544 = specularOutput;
|
||||||
output3 = (x_543 + x_544);
|
output3 = (x_543 + x_544);
|
||||||
float3 const x_548 = output3;
|
float3 const x_548 = output3;
|
||||||
*(tint_symbol_16) = float4(x_548.x, x_548.y, x_548.z, 1.0f);
|
*(tint_symbol_16) = float4(x_548[0], x_548[1], x_548[2], 1.0f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ struct Uniforms {
|
||||||
};
|
};
|
||||||
|
|
||||||
float getAAtOutCoords_(const device ssbA& x_20, thread uint3* const tint_symbol_2) {
|
float getAAtOutCoords_(const device ssbA& x_20, thread uint3* const tint_symbol_2) {
|
||||||
uint const x_42 = (*(tint_symbol_2)).x;
|
uint const x_42 = (*(tint_symbol_2))[0];
|
||||||
float const x_44 = x_20.A[x_42];
|
float const x_44 = x_20.A[x_42];
|
||||||
return x_44;
|
return x_44;
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ void main_1(constant Uniforms& x_24, const device ssbA& x_20, device ssbOut& x_1
|
||||||
float param = 0.0f;
|
float param = 0.0f;
|
||||||
int param_1 = 0;
|
int param_1 = 0;
|
||||||
float param_2 = 0.0f;
|
float param_2 = 0.0f;
|
||||||
uint const x_61 = (*(tint_symbol_3)).x;
|
uint const x_61 = (*(tint_symbol_3))[0];
|
||||||
index = as_type<int>(x_61);
|
index = as_type<int>(x_61);
|
||||||
int const x_63 = index;
|
int const x_63 = index;
|
||||||
int const x_70 = x_24.size;
|
int const x_70 = x_24.size;
|
||||||
|
|
|
@ -42,7 +42,7 @@ void main_1(device ResultMatrix& resultMatrix, thread uint3* const tint_symbol_2
|
||||||
int a_1 = 0;
|
int a_1 = 0;
|
||||||
float param = 0.0f;
|
float param = 0.0f;
|
||||||
float param_1 = 0.0f;
|
float param_1 = 0.0f;
|
||||||
uint const x_54 = (*(tint_symbol_2)).x;
|
uint const x_54 = (*(tint_symbol_2))[0];
|
||||||
index = as_type<int>(x_54);
|
index = as_type<int>(x_54);
|
||||||
a_1 = -10;
|
a_1 = -10;
|
||||||
int const x_63 = index;
|
int const x_63 = index;
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void f() {
|
void f() {
|
||||||
float a = float2(1.0f).y;
|
float a = float2(1.0f)[1];
|
||||||
float b = float3(1.0f).z;
|
float b = float3(1.0f)[2];
|
||||||
float c = float4(1.0f).w;
|
float c = float4(1.0f)[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,144 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v: vec3<f32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<uniform> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = U.v;
|
||||||
|
|
||||||
|
var x = U.v.x;
|
||||||
|
var y = U.v.y;
|
||||||
|
var z = U.v.z;
|
||||||
|
|
||||||
|
var xx = U.v.xx;
|
||||||
|
var xy = U.v.xy;
|
||||||
|
var xz = U.v.xz;
|
||||||
|
var yx = U.v.yx;
|
||||||
|
var yy = U.v.yy;
|
||||||
|
var yz = U.v.yz;
|
||||||
|
var zx = U.v.zx;
|
||||||
|
var zy = U.v.zy;
|
||||||
|
var zz = U.v.zz;
|
||||||
|
|
||||||
|
var xxx = U.v.xxx;
|
||||||
|
var xxy = U.v.xxy;
|
||||||
|
var xxz = U.v.xxz;
|
||||||
|
var xyx = U.v.xyx;
|
||||||
|
var xyy = U.v.xyy;
|
||||||
|
var xyz = U.v.xyz;
|
||||||
|
var xzx = U.v.xzx;
|
||||||
|
var xzy = U.v.xzy;
|
||||||
|
var xzz = U.v.xzz;
|
||||||
|
|
||||||
|
var yxx = U.v.yxx;
|
||||||
|
var yxy = U.v.yxy;
|
||||||
|
var yxz = U.v.yxz;
|
||||||
|
var yyx = U.v.yyx;
|
||||||
|
var yyy = U.v.yyy;
|
||||||
|
var yyz = U.v.yyz;
|
||||||
|
var yzx = U.v.yzx;
|
||||||
|
var yzy = U.v.yzy;
|
||||||
|
var yzz = U.v.yzz;
|
||||||
|
|
||||||
|
var zxx = U.v.zxx;
|
||||||
|
var zxy = U.v.zxy;
|
||||||
|
var zxz = U.v.zxz;
|
||||||
|
var zyx = U.v.zyx;
|
||||||
|
var zyy = U.v.zyy;
|
||||||
|
var zyz = U.v.zyz;
|
||||||
|
var zzx = U.v.zzx;
|
||||||
|
var zzy = U.v.zzy;
|
||||||
|
var zzz = U.v.zzz;
|
||||||
|
|
||||||
|
var xxxx = U.v.xxxx;
|
||||||
|
var xxxy = U.v.xxxy;
|
||||||
|
var xxxz = U.v.xxxz;
|
||||||
|
var xxyx = U.v.xxyx;
|
||||||
|
var xxyy = U.v.xxyy;
|
||||||
|
var xxyz = U.v.xxyz;
|
||||||
|
var xxzx = U.v.xxzx;
|
||||||
|
var xxzy = U.v.xxzy;
|
||||||
|
var xxzz = U.v.xxzz;
|
||||||
|
|
||||||
|
var xyxx = U.v.xyxx;
|
||||||
|
var xyxy = U.v.xyxy;
|
||||||
|
var xyxz = U.v.xyxz;
|
||||||
|
var xyyx = U.v.xyyx;
|
||||||
|
var xyyy = U.v.xyyy;
|
||||||
|
var xyyz = U.v.xyyz;
|
||||||
|
var xyzx = U.v.xyzx;
|
||||||
|
var xyzy = U.v.xyzy;
|
||||||
|
var xyzz = U.v.xyzz;
|
||||||
|
|
||||||
|
var xzxx = U.v.xzxx;
|
||||||
|
var xzxy = U.v.xzxy;
|
||||||
|
var xzxz = U.v.xzxz;
|
||||||
|
var xzyx = U.v.xzyx;
|
||||||
|
var xzyy = U.v.xzyy;
|
||||||
|
var xzyz = U.v.xzyz;
|
||||||
|
var xzzx = U.v.xzzx;
|
||||||
|
var xzzy = U.v.xzzy;
|
||||||
|
var xzzz = U.v.xzzz;
|
||||||
|
|
||||||
|
var yxxx = U.v.yxxx;
|
||||||
|
var yxxy = U.v.yxxy;
|
||||||
|
var yxxz = U.v.yxxz;
|
||||||
|
var yxyx = U.v.yxyx;
|
||||||
|
var yxyy = U.v.yxyy;
|
||||||
|
var yxyz = U.v.yxyz;
|
||||||
|
var yxzx = U.v.yxzx;
|
||||||
|
var yxzy = U.v.yxzy;
|
||||||
|
var yxzz = U.v.yxzz;
|
||||||
|
|
||||||
|
var yyxx = U.v.yyxx;
|
||||||
|
var yyxy = U.v.yyxy;
|
||||||
|
var yyxz = U.v.yyxz;
|
||||||
|
var yyyx = U.v.yyyx;
|
||||||
|
var yyyy = U.v.yyyy;
|
||||||
|
var yyyz = U.v.yyyz;
|
||||||
|
var yyzx = U.v.yyzx;
|
||||||
|
var yyzy = U.v.yyzy;
|
||||||
|
var yyzz = U.v.yyzz;
|
||||||
|
|
||||||
|
var yzxx = U.v.yzxx;
|
||||||
|
var yzxy = U.v.yzxy;
|
||||||
|
var yzxz = U.v.yzxz;
|
||||||
|
var yzyx = U.v.yzyx;
|
||||||
|
var yzyy = U.v.yzyy;
|
||||||
|
var yzyz = U.v.yzyz;
|
||||||
|
var yzzx = U.v.yzzx;
|
||||||
|
var yzzy = U.v.yzzy;
|
||||||
|
var yzzz = U.v.yzzz;
|
||||||
|
|
||||||
|
var zxxx = U.v.zxxx;
|
||||||
|
var zxxy = U.v.zxxy;
|
||||||
|
var zxxz = U.v.zxxz;
|
||||||
|
var zxyx = U.v.zxyx;
|
||||||
|
var zxyy = U.v.zxyy;
|
||||||
|
var zxyz = U.v.zxyz;
|
||||||
|
var zxzx = U.v.zxzx;
|
||||||
|
var zxzy = U.v.zxzy;
|
||||||
|
var zxzz = U.v.zxzz;
|
||||||
|
|
||||||
|
var zyxx = U.v.zyxx;
|
||||||
|
var zyxy = U.v.zyxy;
|
||||||
|
var zyxz = U.v.zyxz;
|
||||||
|
var zyyx = U.v.zyyx;
|
||||||
|
var zyyy = U.v.zyyy;
|
||||||
|
var zyyz = U.v.zyyz;
|
||||||
|
var zyzx = U.v.zyzx;
|
||||||
|
var zyzy = U.v.zyzy;
|
||||||
|
var zyzz = U.v.zyzz;
|
||||||
|
|
||||||
|
var zzxx = U.v.zzxx;
|
||||||
|
var zzxy = U.v.zzxy;
|
||||||
|
var zzxz = U.v.zzxz;
|
||||||
|
var zzyx = U.v.zzyx;
|
||||||
|
var zzyy = U.v.zzyy;
|
||||||
|
var zzyz = U.v.zzyz;
|
||||||
|
var zzzx = U.v.zzzx;
|
||||||
|
var zzzy = U.v.zzzy;
|
||||||
|
var zzzz = U.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cbuffer cbuffer_U : register(b0, space0) {
|
||||||
|
uint4 U[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
float3 v = asfloat(U[0].xyz);
|
||||||
|
float x = asfloat(U[0].x);
|
||||||
|
float y = asfloat(U[0].y);
|
||||||
|
float z = asfloat(U[0].z);
|
||||||
|
float2 xx = asfloat(U[0].xyz).xx;
|
||||||
|
float2 xy = asfloat(U[0].xyz).xy;
|
||||||
|
float2 xz = asfloat(U[0].xyz).xz;
|
||||||
|
float2 yx = asfloat(U[0].xyz).yx;
|
||||||
|
float2 yy = asfloat(U[0].xyz).yy;
|
||||||
|
float2 yz = asfloat(U[0].xyz).yz;
|
||||||
|
float2 zx = asfloat(U[0].xyz).zx;
|
||||||
|
float2 zy = asfloat(U[0].xyz).zy;
|
||||||
|
float2 zz = asfloat(U[0].xyz).zz;
|
||||||
|
float3 xxx = asfloat(U[0].xyz).xxx;
|
||||||
|
float3 xxy = asfloat(U[0].xyz).xxy;
|
||||||
|
float3 xxz = asfloat(U[0].xyz).xxz;
|
||||||
|
float3 xyx = asfloat(U[0].xyz).xyx;
|
||||||
|
float3 xyy = asfloat(U[0].xyz).xyy;
|
||||||
|
float3 xyz = asfloat(U[0].xyz).xyz;
|
||||||
|
float3 xzx = asfloat(U[0].xyz).xzx;
|
||||||
|
float3 xzy = asfloat(U[0].xyz).xzy;
|
||||||
|
float3 xzz = asfloat(U[0].xyz).xzz;
|
||||||
|
float3 yxx = asfloat(U[0].xyz).yxx;
|
||||||
|
float3 yxy = asfloat(U[0].xyz).yxy;
|
||||||
|
float3 yxz = asfloat(U[0].xyz).yxz;
|
||||||
|
float3 yyx = asfloat(U[0].xyz).yyx;
|
||||||
|
float3 yyy = asfloat(U[0].xyz).yyy;
|
||||||
|
float3 yyz = asfloat(U[0].xyz).yyz;
|
||||||
|
float3 yzx = asfloat(U[0].xyz).yzx;
|
||||||
|
float3 yzy = asfloat(U[0].xyz).yzy;
|
||||||
|
float3 yzz = asfloat(U[0].xyz).yzz;
|
||||||
|
float3 zxx = asfloat(U[0].xyz).zxx;
|
||||||
|
float3 zxy = asfloat(U[0].xyz).zxy;
|
||||||
|
float3 zxz = asfloat(U[0].xyz).zxz;
|
||||||
|
float3 zyx = asfloat(U[0].xyz).zyx;
|
||||||
|
float3 zyy = asfloat(U[0].xyz).zyy;
|
||||||
|
float3 zyz = asfloat(U[0].xyz).zyz;
|
||||||
|
float3 zzx = asfloat(U[0].xyz).zzx;
|
||||||
|
float3 zzy = asfloat(U[0].xyz).zzy;
|
||||||
|
float3 zzz = asfloat(U[0].xyz).zzz;
|
||||||
|
float4 xxxx = asfloat(U[0].xyz).xxxx;
|
||||||
|
float4 xxxy = asfloat(U[0].xyz).xxxy;
|
||||||
|
float4 xxxz = asfloat(U[0].xyz).xxxz;
|
||||||
|
float4 xxyx = asfloat(U[0].xyz).xxyx;
|
||||||
|
float4 xxyy = asfloat(U[0].xyz).xxyy;
|
||||||
|
float4 xxyz = asfloat(U[0].xyz).xxyz;
|
||||||
|
float4 xxzx = asfloat(U[0].xyz).xxzx;
|
||||||
|
float4 xxzy = asfloat(U[0].xyz).xxzy;
|
||||||
|
float4 xxzz = asfloat(U[0].xyz).xxzz;
|
||||||
|
float4 xyxx = asfloat(U[0].xyz).xyxx;
|
||||||
|
float4 xyxy = asfloat(U[0].xyz).xyxy;
|
||||||
|
float4 xyxz = asfloat(U[0].xyz).xyxz;
|
||||||
|
float4 xyyx = asfloat(U[0].xyz).xyyx;
|
||||||
|
float4 xyyy = asfloat(U[0].xyz).xyyy;
|
||||||
|
float4 xyyz = asfloat(U[0].xyz).xyyz;
|
||||||
|
float4 xyzx = asfloat(U[0].xyz).xyzx;
|
||||||
|
float4 xyzy = asfloat(U[0].xyz).xyzy;
|
||||||
|
float4 xyzz = asfloat(U[0].xyz).xyzz;
|
||||||
|
float4 xzxx = asfloat(U[0].xyz).xzxx;
|
||||||
|
float4 xzxy = asfloat(U[0].xyz).xzxy;
|
||||||
|
float4 xzxz = asfloat(U[0].xyz).xzxz;
|
||||||
|
float4 xzyx = asfloat(U[0].xyz).xzyx;
|
||||||
|
float4 xzyy = asfloat(U[0].xyz).xzyy;
|
||||||
|
float4 xzyz = asfloat(U[0].xyz).xzyz;
|
||||||
|
float4 xzzx = asfloat(U[0].xyz).xzzx;
|
||||||
|
float4 xzzy = asfloat(U[0].xyz).xzzy;
|
||||||
|
float4 xzzz = asfloat(U[0].xyz).xzzz;
|
||||||
|
float4 yxxx = asfloat(U[0].xyz).yxxx;
|
||||||
|
float4 yxxy = asfloat(U[0].xyz).yxxy;
|
||||||
|
float4 yxxz = asfloat(U[0].xyz).yxxz;
|
||||||
|
float4 yxyx = asfloat(U[0].xyz).yxyx;
|
||||||
|
float4 yxyy = asfloat(U[0].xyz).yxyy;
|
||||||
|
float4 yxyz = asfloat(U[0].xyz).yxyz;
|
||||||
|
float4 yxzx = asfloat(U[0].xyz).yxzx;
|
||||||
|
float4 yxzy = asfloat(U[0].xyz).yxzy;
|
||||||
|
float4 yxzz = asfloat(U[0].xyz).yxzz;
|
||||||
|
float4 yyxx = asfloat(U[0].xyz).yyxx;
|
||||||
|
float4 yyxy = asfloat(U[0].xyz).yyxy;
|
||||||
|
float4 yyxz = asfloat(U[0].xyz).yyxz;
|
||||||
|
float4 yyyx = asfloat(U[0].xyz).yyyx;
|
||||||
|
float4 yyyy = asfloat(U[0].xyz).yyyy;
|
||||||
|
float4 yyyz = asfloat(U[0].xyz).yyyz;
|
||||||
|
float4 yyzx = asfloat(U[0].xyz).yyzx;
|
||||||
|
float4 yyzy = asfloat(U[0].xyz).yyzy;
|
||||||
|
float4 yyzz = asfloat(U[0].xyz).yyzz;
|
||||||
|
float4 yzxx = asfloat(U[0].xyz).yzxx;
|
||||||
|
float4 yzxy = asfloat(U[0].xyz).yzxy;
|
||||||
|
float4 yzxz = asfloat(U[0].xyz).yzxz;
|
||||||
|
float4 yzyx = asfloat(U[0].xyz).yzyx;
|
||||||
|
float4 yzyy = asfloat(U[0].xyz).yzyy;
|
||||||
|
float4 yzyz = asfloat(U[0].xyz).yzyz;
|
||||||
|
float4 yzzx = asfloat(U[0].xyz).yzzx;
|
||||||
|
float4 yzzy = asfloat(U[0].xyz).yzzy;
|
||||||
|
float4 yzzz = asfloat(U[0].xyz).yzzz;
|
||||||
|
float4 zxxx = asfloat(U[0].xyz).zxxx;
|
||||||
|
float4 zxxy = asfloat(U[0].xyz).zxxy;
|
||||||
|
float4 zxxz = asfloat(U[0].xyz).zxxz;
|
||||||
|
float4 zxyx = asfloat(U[0].xyz).zxyx;
|
||||||
|
float4 zxyy = asfloat(U[0].xyz).zxyy;
|
||||||
|
float4 zxyz = asfloat(U[0].xyz).zxyz;
|
||||||
|
float4 zxzx = asfloat(U[0].xyz).zxzx;
|
||||||
|
float4 zxzy = asfloat(U[0].xyz).zxzy;
|
||||||
|
float4 zxzz = asfloat(U[0].xyz).zxzz;
|
||||||
|
float4 zyxx = asfloat(U[0].xyz).zyxx;
|
||||||
|
float4 zyxy = asfloat(U[0].xyz).zyxy;
|
||||||
|
float4 zyxz = asfloat(U[0].xyz).zyxz;
|
||||||
|
float4 zyyx = asfloat(U[0].xyz).zyyx;
|
||||||
|
float4 zyyy = asfloat(U[0].xyz).zyyy;
|
||||||
|
float4 zyyz = asfloat(U[0].xyz).zyyz;
|
||||||
|
float4 zyzx = asfloat(U[0].xyz).zyzx;
|
||||||
|
float4 zyzy = asfloat(U[0].xyz).zyzy;
|
||||||
|
float4 zyzz = asfloat(U[0].xyz).zyzz;
|
||||||
|
float4 zzxx = asfloat(U[0].xyz).zzxx;
|
||||||
|
float4 zzxy = asfloat(U[0].xyz).zzxy;
|
||||||
|
float4 zzxz = asfloat(U[0].xyz).zzxz;
|
||||||
|
float4 zzyx = asfloat(U[0].xyz).zzyx;
|
||||||
|
float4 zzyy = asfloat(U[0].xyz).zzyy;
|
||||||
|
float4 zzyz = asfloat(U[0].xyz).zzyz;
|
||||||
|
float4 zzzx = asfloat(U[0].xyz).zzzx;
|
||||||
|
float4 zzzy = asfloat(U[0].xyz).zzzy;
|
||||||
|
float4 zzzz = asfloat(U[0].xyz).zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,143 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
|
||||||
|
template<typename T, int N, int M>
|
||||||
|
inline auto operator*(matrix<T, N, M> lhs, packed_vec<T, N> rhs) {
|
||||||
|
return lhs * vec<T, N>(rhs);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, int N, int M>
|
||||||
|
inline auto operator*(packed_vec<T, M> lhs, matrix<T, N, M> rhs) {
|
||||||
|
return vec<T, M>(lhs) * rhs;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
/* 0x0000 */ packed_float3 v;
|
||||||
|
/* 0x000c */ int8_t tint_pad[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(constant S& U) {
|
||||||
|
float3 v = U.v;
|
||||||
|
float x = U.v[0];
|
||||||
|
float y = U.v[1];
|
||||||
|
float z = U.v[2];
|
||||||
|
float2 xx = float3(U.v).xx;
|
||||||
|
float2 xy = float3(U.v).xy;
|
||||||
|
float2 xz = float3(U.v).xz;
|
||||||
|
float2 yx = float3(U.v).yx;
|
||||||
|
float2 yy = float3(U.v).yy;
|
||||||
|
float2 yz = float3(U.v).yz;
|
||||||
|
float2 zx = float3(U.v).zx;
|
||||||
|
float2 zy = float3(U.v).zy;
|
||||||
|
float2 zz = float3(U.v).zz;
|
||||||
|
float3 xxx = float3(U.v).xxx;
|
||||||
|
float3 xxy = float3(U.v).xxy;
|
||||||
|
float3 xxz = float3(U.v).xxz;
|
||||||
|
float3 xyx = float3(U.v).xyx;
|
||||||
|
float3 xyy = float3(U.v).xyy;
|
||||||
|
float3 xyz = float3(U.v).xyz;
|
||||||
|
float3 xzx = float3(U.v).xzx;
|
||||||
|
float3 xzy = float3(U.v).xzy;
|
||||||
|
float3 xzz = float3(U.v).xzz;
|
||||||
|
float3 yxx = float3(U.v).yxx;
|
||||||
|
float3 yxy = float3(U.v).yxy;
|
||||||
|
float3 yxz = float3(U.v).yxz;
|
||||||
|
float3 yyx = float3(U.v).yyx;
|
||||||
|
float3 yyy = float3(U.v).yyy;
|
||||||
|
float3 yyz = float3(U.v).yyz;
|
||||||
|
float3 yzx = float3(U.v).yzx;
|
||||||
|
float3 yzy = float3(U.v).yzy;
|
||||||
|
float3 yzz = float3(U.v).yzz;
|
||||||
|
float3 zxx = float3(U.v).zxx;
|
||||||
|
float3 zxy = float3(U.v).zxy;
|
||||||
|
float3 zxz = float3(U.v).zxz;
|
||||||
|
float3 zyx = float3(U.v).zyx;
|
||||||
|
float3 zyy = float3(U.v).zyy;
|
||||||
|
float3 zyz = float3(U.v).zyz;
|
||||||
|
float3 zzx = float3(U.v).zzx;
|
||||||
|
float3 zzy = float3(U.v).zzy;
|
||||||
|
float3 zzz = float3(U.v).zzz;
|
||||||
|
float4 xxxx = float3(U.v).xxxx;
|
||||||
|
float4 xxxy = float3(U.v).xxxy;
|
||||||
|
float4 xxxz = float3(U.v).xxxz;
|
||||||
|
float4 xxyx = float3(U.v).xxyx;
|
||||||
|
float4 xxyy = float3(U.v).xxyy;
|
||||||
|
float4 xxyz = float3(U.v).xxyz;
|
||||||
|
float4 xxzx = float3(U.v).xxzx;
|
||||||
|
float4 xxzy = float3(U.v).xxzy;
|
||||||
|
float4 xxzz = float3(U.v).xxzz;
|
||||||
|
float4 xyxx = float3(U.v).xyxx;
|
||||||
|
float4 xyxy = float3(U.v).xyxy;
|
||||||
|
float4 xyxz = float3(U.v).xyxz;
|
||||||
|
float4 xyyx = float3(U.v).xyyx;
|
||||||
|
float4 xyyy = float3(U.v).xyyy;
|
||||||
|
float4 xyyz = float3(U.v).xyyz;
|
||||||
|
float4 xyzx = float3(U.v).xyzx;
|
||||||
|
float4 xyzy = float3(U.v).xyzy;
|
||||||
|
float4 xyzz = float3(U.v).xyzz;
|
||||||
|
float4 xzxx = float3(U.v).xzxx;
|
||||||
|
float4 xzxy = float3(U.v).xzxy;
|
||||||
|
float4 xzxz = float3(U.v).xzxz;
|
||||||
|
float4 xzyx = float3(U.v).xzyx;
|
||||||
|
float4 xzyy = float3(U.v).xzyy;
|
||||||
|
float4 xzyz = float3(U.v).xzyz;
|
||||||
|
float4 xzzx = float3(U.v).xzzx;
|
||||||
|
float4 xzzy = float3(U.v).xzzy;
|
||||||
|
float4 xzzz = float3(U.v).xzzz;
|
||||||
|
float4 yxxx = float3(U.v).yxxx;
|
||||||
|
float4 yxxy = float3(U.v).yxxy;
|
||||||
|
float4 yxxz = float3(U.v).yxxz;
|
||||||
|
float4 yxyx = float3(U.v).yxyx;
|
||||||
|
float4 yxyy = float3(U.v).yxyy;
|
||||||
|
float4 yxyz = float3(U.v).yxyz;
|
||||||
|
float4 yxzx = float3(U.v).yxzx;
|
||||||
|
float4 yxzy = float3(U.v).yxzy;
|
||||||
|
float4 yxzz = float3(U.v).yxzz;
|
||||||
|
float4 yyxx = float3(U.v).yyxx;
|
||||||
|
float4 yyxy = float3(U.v).yyxy;
|
||||||
|
float4 yyxz = float3(U.v).yyxz;
|
||||||
|
float4 yyyx = float3(U.v).yyyx;
|
||||||
|
float4 yyyy = float3(U.v).yyyy;
|
||||||
|
float4 yyyz = float3(U.v).yyyz;
|
||||||
|
float4 yyzx = float3(U.v).yyzx;
|
||||||
|
float4 yyzy = float3(U.v).yyzy;
|
||||||
|
float4 yyzz = float3(U.v).yyzz;
|
||||||
|
float4 yzxx = float3(U.v).yzxx;
|
||||||
|
float4 yzxy = float3(U.v).yzxy;
|
||||||
|
float4 yzxz = float3(U.v).yzxz;
|
||||||
|
float4 yzyx = float3(U.v).yzyx;
|
||||||
|
float4 yzyy = float3(U.v).yzyy;
|
||||||
|
float4 yzyz = float3(U.v).yzyz;
|
||||||
|
float4 yzzx = float3(U.v).yzzx;
|
||||||
|
float4 yzzy = float3(U.v).yzzy;
|
||||||
|
float4 yzzz = float3(U.v).yzzz;
|
||||||
|
float4 zxxx = float3(U.v).zxxx;
|
||||||
|
float4 zxxy = float3(U.v).zxxy;
|
||||||
|
float4 zxxz = float3(U.v).zxxz;
|
||||||
|
float4 zxyx = float3(U.v).zxyx;
|
||||||
|
float4 zxyy = float3(U.v).zxyy;
|
||||||
|
float4 zxyz = float3(U.v).zxyz;
|
||||||
|
float4 zxzx = float3(U.v).zxzx;
|
||||||
|
float4 zxzy = float3(U.v).zxzy;
|
||||||
|
float4 zxzz = float3(U.v).zxzz;
|
||||||
|
float4 zyxx = float3(U.v).zyxx;
|
||||||
|
float4 zyxy = float3(U.v).zyxy;
|
||||||
|
float4 zyxz = float3(U.v).zyxz;
|
||||||
|
float4 zyyx = float3(U.v).zyyx;
|
||||||
|
float4 zyyy = float3(U.v).zyyy;
|
||||||
|
float4 zyyz = float3(U.v).zyyz;
|
||||||
|
float4 zyzx = float3(U.v).zyzx;
|
||||||
|
float4 zyzy = float3(U.v).zyzy;
|
||||||
|
float4 zyzz = float3(U.v).zyzz;
|
||||||
|
float4 zzxx = float3(U.v).zzxx;
|
||||||
|
float4 zzxy = float3(U.v).zzxy;
|
||||||
|
float4 zzxz = float3(U.v).zzxz;
|
||||||
|
float4 zzyx = float3(U.v).zzyx;
|
||||||
|
float4 zzyy = float3(U.v).zzyy;
|
||||||
|
float4 zzyz = float3(U.v).zzyz;
|
||||||
|
float4 zzzx = float3(U.v).zzzx;
|
||||||
|
float4 zzzy = float3(U.v).zzzy;
|
||||||
|
float4 zzzz = float3(U.v).zzzz;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,772 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 508
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %U "U"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpName %v "v"
|
||||||
|
OpName %x "x"
|
||||||
|
OpName %y "y"
|
||||||
|
OpName %z "z"
|
||||||
|
OpName %xx "xx"
|
||||||
|
OpName %xy "xy"
|
||||||
|
OpName %xz "xz"
|
||||||
|
OpName %yx "yx"
|
||||||
|
OpName %yy "yy"
|
||||||
|
OpName %yz "yz"
|
||||||
|
OpName %zx "zx"
|
||||||
|
OpName %zy "zy"
|
||||||
|
OpName %zz "zz"
|
||||||
|
OpName %xxx "xxx"
|
||||||
|
OpName %xxy "xxy"
|
||||||
|
OpName %xxz "xxz"
|
||||||
|
OpName %xyx "xyx"
|
||||||
|
OpName %xyy "xyy"
|
||||||
|
OpName %xyz "xyz"
|
||||||
|
OpName %xzx "xzx"
|
||||||
|
OpName %xzy "xzy"
|
||||||
|
OpName %xzz "xzz"
|
||||||
|
OpName %yxx "yxx"
|
||||||
|
OpName %yxy "yxy"
|
||||||
|
OpName %yxz "yxz"
|
||||||
|
OpName %yyx "yyx"
|
||||||
|
OpName %yyy "yyy"
|
||||||
|
OpName %yyz "yyz"
|
||||||
|
OpName %yzx "yzx"
|
||||||
|
OpName %yzy "yzy"
|
||||||
|
OpName %yzz "yzz"
|
||||||
|
OpName %zxx "zxx"
|
||||||
|
OpName %zxy "zxy"
|
||||||
|
OpName %zxz "zxz"
|
||||||
|
OpName %zyx "zyx"
|
||||||
|
OpName %zyy "zyy"
|
||||||
|
OpName %zyz "zyz"
|
||||||
|
OpName %zzx "zzx"
|
||||||
|
OpName %zzy "zzy"
|
||||||
|
OpName %zzz "zzz"
|
||||||
|
OpName %xxxx "xxxx"
|
||||||
|
OpName %xxxy "xxxy"
|
||||||
|
OpName %xxxz "xxxz"
|
||||||
|
OpName %xxyx "xxyx"
|
||||||
|
OpName %xxyy "xxyy"
|
||||||
|
OpName %xxyz "xxyz"
|
||||||
|
OpName %xxzx "xxzx"
|
||||||
|
OpName %xxzy "xxzy"
|
||||||
|
OpName %xxzz "xxzz"
|
||||||
|
OpName %xyxx "xyxx"
|
||||||
|
OpName %xyxy "xyxy"
|
||||||
|
OpName %xyxz "xyxz"
|
||||||
|
OpName %xyyx "xyyx"
|
||||||
|
OpName %xyyy "xyyy"
|
||||||
|
OpName %xyyz "xyyz"
|
||||||
|
OpName %xyzx "xyzx"
|
||||||
|
OpName %xyzy "xyzy"
|
||||||
|
OpName %xyzz "xyzz"
|
||||||
|
OpName %xzxx "xzxx"
|
||||||
|
OpName %xzxy "xzxy"
|
||||||
|
OpName %xzxz "xzxz"
|
||||||
|
OpName %xzyx "xzyx"
|
||||||
|
OpName %xzyy "xzyy"
|
||||||
|
OpName %xzyz "xzyz"
|
||||||
|
OpName %xzzx "xzzx"
|
||||||
|
OpName %xzzy "xzzy"
|
||||||
|
OpName %xzzz "xzzz"
|
||||||
|
OpName %yxxx "yxxx"
|
||||||
|
OpName %yxxy "yxxy"
|
||||||
|
OpName %yxxz "yxxz"
|
||||||
|
OpName %yxyx "yxyx"
|
||||||
|
OpName %yxyy "yxyy"
|
||||||
|
OpName %yxyz "yxyz"
|
||||||
|
OpName %yxzx "yxzx"
|
||||||
|
OpName %yxzy "yxzy"
|
||||||
|
OpName %yxzz "yxzz"
|
||||||
|
OpName %yyxx "yyxx"
|
||||||
|
OpName %yyxy "yyxy"
|
||||||
|
OpName %yyxz "yyxz"
|
||||||
|
OpName %yyyx "yyyx"
|
||||||
|
OpName %yyyy "yyyy"
|
||||||
|
OpName %yyyz "yyyz"
|
||||||
|
OpName %yyzx "yyzx"
|
||||||
|
OpName %yyzy "yyzy"
|
||||||
|
OpName %yyzz "yyzz"
|
||||||
|
OpName %yzxx "yzxx"
|
||||||
|
OpName %yzxy "yzxy"
|
||||||
|
OpName %yzxz "yzxz"
|
||||||
|
OpName %yzyx "yzyx"
|
||||||
|
OpName %yzyy "yzyy"
|
||||||
|
OpName %yzyz "yzyz"
|
||||||
|
OpName %yzzx "yzzx"
|
||||||
|
OpName %yzzy "yzzy"
|
||||||
|
OpName %yzzz "yzzz"
|
||||||
|
OpName %zxxx "zxxx"
|
||||||
|
OpName %zxxy "zxxy"
|
||||||
|
OpName %zxxz "zxxz"
|
||||||
|
OpName %zxyx "zxyx"
|
||||||
|
OpName %zxyy "zxyy"
|
||||||
|
OpName %zxyz "zxyz"
|
||||||
|
OpName %zxzx "zxzx"
|
||||||
|
OpName %zxzy "zxzy"
|
||||||
|
OpName %zxzz "zxzz"
|
||||||
|
OpName %zyxx "zyxx"
|
||||||
|
OpName %zyxy "zyxy"
|
||||||
|
OpName %zyxz "zyxz"
|
||||||
|
OpName %zyyx "zyyx"
|
||||||
|
OpName %zyyy "zyyy"
|
||||||
|
OpName %zyyz "zyyz"
|
||||||
|
OpName %zyzx "zyzx"
|
||||||
|
OpName %zyzy "zyzy"
|
||||||
|
OpName %zyzz "zyzz"
|
||||||
|
OpName %zzxx "zzxx"
|
||||||
|
OpName %zzxy "zzxy"
|
||||||
|
OpName %zzxz "zzxz"
|
||||||
|
OpName %zzyx "zzyx"
|
||||||
|
OpName %zzyy "zzyy"
|
||||||
|
OpName %zzyz "zzyz"
|
||||||
|
OpName %zzzx "zzzx"
|
||||||
|
OpName %zzzy "zzzy"
|
||||||
|
OpName %zzzz "zzzz"
|
||||||
|
OpDecorate %S Block
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
OpDecorate %U NonWritable
|
||||||
|
OpDecorate %U DescriptorSet 0
|
||||||
|
OpDecorate %U Binding 0
|
||||||
|
%float = OpTypeFloat 32
|
||||||
|
%v3float = OpTypeVector %float 3
|
||||||
|
%S = OpTypeStruct %v3float
|
||||||
|
%_ptr_Uniform_S = OpTypePointer Uniform %S
|
||||||
|
%U = OpVariable %_ptr_Uniform_S Uniform
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%6 = OpTypeFunction %void
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
||||||
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
|
%19 = OpConstantNull %v3float
|
||||||
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||||
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
|
%25 = OpConstantNull %float
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%v2float = OpTypeVector %float 2
|
||||||
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
|
%40 = OpConstantNull %v2float
|
||||||
|
%v4float = OpTypeVector %float 4
|
||||||
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
|
%187 = OpConstantNull %v4float
|
||||||
|
%unused_entry_point = OpFunction %void None %6
|
||||||
|
%9 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %6
|
||||||
|
%11 = OpLabel
|
||||||
|
%v = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%x = OpVariable %_ptr_Function_float Function %25
|
||||||
|
%y = OpVariable %_ptr_Function_float Function %25
|
||||||
|
%z = OpVariable %_ptr_Function_float Function %25
|
||||||
|
%xx = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%xy = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%xz = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%yx = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%yy = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%yz = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%zx = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%zy = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%zz = OpVariable %_ptr_Function_v2float Function %40
|
||||||
|
%xxx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xxy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xxz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xyx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xyy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xyz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xzx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xzy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xzz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yxx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yxy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yxz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yyx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yyy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yyz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yzx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yzy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%yzz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zxx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zxy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zxz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zyx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zyy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zyz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zzx = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zzy = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%zzz = OpVariable %_ptr_Function_v3float Function %19
|
||||||
|
%xxxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xxxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xxxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xxyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xxyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xxyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xxzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xxzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xxzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xyzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%xzzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yxzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yyzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%yzzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zxzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zyzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzxx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzxy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzxz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzyx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzyy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzyz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzzx = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzzy = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%zzzz = OpVariable %_ptr_Function_v4float Function %187
|
||||||
|
%15 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%16 = OpLoad %v3float %15
|
||||||
|
OpStore %v %16
|
||||||
|
%21 = OpAccessChain %_ptr_Uniform_float %U %uint_0 %uint_0
|
||||||
|
%22 = OpLoad %float %21
|
||||||
|
OpStore %x %22
|
||||||
|
%27 = OpAccessChain %_ptr_Uniform_float %U %uint_0 %uint_1
|
||||||
|
%28 = OpLoad %float %27
|
||||||
|
OpStore %y %28
|
||||||
|
%31 = OpAccessChain %_ptr_Uniform_float %U %uint_0 %uint_2
|
||||||
|
%32 = OpLoad %float %31
|
||||||
|
OpStore %z %32
|
||||||
|
%34 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%36 = OpLoad %v3float %34
|
||||||
|
%37 = OpVectorShuffle %v2float %36 %36 0 0
|
||||||
|
OpStore %xx %37
|
||||||
|
%41 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%42 = OpLoad %v3float %41
|
||||||
|
%43 = OpVectorShuffle %v2float %42 %42 0 1
|
||||||
|
OpStore %xy %43
|
||||||
|
%45 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%46 = OpLoad %v3float %45
|
||||||
|
%47 = OpVectorShuffle %v2float %46 %46 0 2
|
||||||
|
OpStore %xz %47
|
||||||
|
%49 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%50 = OpLoad %v3float %49
|
||||||
|
%51 = OpVectorShuffle %v2float %50 %50 1 0
|
||||||
|
OpStore %yx %51
|
||||||
|
%53 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%54 = OpLoad %v3float %53
|
||||||
|
%55 = OpVectorShuffle %v2float %54 %54 1 1
|
||||||
|
OpStore %yy %55
|
||||||
|
%57 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%58 = OpLoad %v3float %57
|
||||||
|
%59 = OpVectorShuffle %v2float %58 %58 1 2
|
||||||
|
OpStore %yz %59
|
||||||
|
%61 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%62 = OpLoad %v3float %61
|
||||||
|
%63 = OpVectorShuffle %v2float %62 %62 2 0
|
||||||
|
OpStore %zx %63
|
||||||
|
%65 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%66 = OpLoad %v3float %65
|
||||||
|
%67 = OpVectorShuffle %v2float %66 %66 2 1
|
||||||
|
OpStore %zy %67
|
||||||
|
%69 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%70 = OpLoad %v3float %69
|
||||||
|
%71 = OpVectorShuffle %v2float %70 %70 2 2
|
||||||
|
OpStore %zz %71
|
||||||
|
%73 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%74 = OpLoad %v3float %73
|
||||||
|
%75 = OpVectorShuffle %v3float %74 %74 0 0 0
|
||||||
|
OpStore %xxx %75
|
||||||
|
%77 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%78 = OpLoad %v3float %77
|
||||||
|
%79 = OpVectorShuffle %v3float %78 %78 0 0 1
|
||||||
|
OpStore %xxy %79
|
||||||
|
%81 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%82 = OpLoad %v3float %81
|
||||||
|
%83 = OpVectorShuffle %v3float %82 %82 0 0 2
|
||||||
|
OpStore %xxz %83
|
||||||
|
%85 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%86 = OpLoad %v3float %85
|
||||||
|
%87 = OpVectorShuffle %v3float %86 %86 0 1 0
|
||||||
|
OpStore %xyx %87
|
||||||
|
%89 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%90 = OpLoad %v3float %89
|
||||||
|
%91 = OpVectorShuffle %v3float %90 %90 0 1 1
|
||||||
|
OpStore %xyy %91
|
||||||
|
%93 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%94 = OpLoad %v3float %93
|
||||||
|
%95 = OpVectorShuffle %v3float %94 %94 0 1 2
|
||||||
|
OpStore %xyz %95
|
||||||
|
%97 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%98 = OpLoad %v3float %97
|
||||||
|
%99 = OpVectorShuffle %v3float %98 %98 0 2 0
|
||||||
|
OpStore %xzx %99
|
||||||
|
%101 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%102 = OpLoad %v3float %101
|
||||||
|
%103 = OpVectorShuffle %v3float %102 %102 0 2 1
|
||||||
|
OpStore %xzy %103
|
||||||
|
%105 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%106 = OpLoad %v3float %105
|
||||||
|
%107 = OpVectorShuffle %v3float %106 %106 0 2 2
|
||||||
|
OpStore %xzz %107
|
||||||
|
%109 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%110 = OpLoad %v3float %109
|
||||||
|
%111 = OpVectorShuffle %v3float %110 %110 1 0 0
|
||||||
|
OpStore %yxx %111
|
||||||
|
%113 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%114 = OpLoad %v3float %113
|
||||||
|
%115 = OpVectorShuffle %v3float %114 %114 1 0 1
|
||||||
|
OpStore %yxy %115
|
||||||
|
%117 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%118 = OpLoad %v3float %117
|
||||||
|
%119 = OpVectorShuffle %v3float %118 %118 1 0 2
|
||||||
|
OpStore %yxz %119
|
||||||
|
%121 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%122 = OpLoad %v3float %121
|
||||||
|
%123 = OpVectorShuffle %v3float %122 %122 1 1 0
|
||||||
|
OpStore %yyx %123
|
||||||
|
%125 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%126 = OpLoad %v3float %125
|
||||||
|
%127 = OpVectorShuffle %v3float %126 %126 1 1 1
|
||||||
|
OpStore %yyy %127
|
||||||
|
%129 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%130 = OpLoad %v3float %129
|
||||||
|
%131 = OpVectorShuffle %v3float %130 %130 1 1 2
|
||||||
|
OpStore %yyz %131
|
||||||
|
%133 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%134 = OpLoad %v3float %133
|
||||||
|
%135 = OpVectorShuffle %v3float %134 %134 1 2 0
|
||||||
|
OpStore %yzx %135
|
||||||
|
%137 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%138 = OpLoad %v3float %137
|
||||||
|
%139 = OpVectorShuffle %v3float %138 %138 1 2 1
|
||||||
|
OpStore %yzy %139
|
||||||
|
%141 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%142 = OpLoad %v3float %141
|
||||||
|
%143 = OpVectorShuffle %v3float %142 %142 1 2 2
|
||||||
|
OpStore %yzz %143
|
||||||
|
%145 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%146 = OpLoad %v3float %145
|
||||||
|
%147 = OpVectorShuffle %v3float %146 %146 2 0 0
|
||||||
|
OpStore %zxx %147
|
||||||
|
%149 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%150 = OpLoad %v3float %149
|
||||||
|
%151 = OpVectorShuffle %v3float %150 %150 2 0 1
|
||||||
|
OpStore %zxy %151
|
||||||
|
%153 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%154 = OpLoad %v3float %153
|
||||||
|
%155 = OpVectorShuffle %v3float %154 %154 2 0 2
|
||||||
|
OpStore %zxz %155
|
||||||
|
%157 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%158 = OpLoad %v3float %157
|
||||||
|
%159 = OpVectorShuffle %v3float %158 %158 2 1 0
|
||||||
|
OpStore %zyx %159
|
||||||
|
%161 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%162 = OpLoad %v3float %161
|
||||||
|
%163 = OpVectorShuffle %v3float %162 %162 2 1 1
|
||||||
|
OpStore %zyy %163
|
||||||
|
%165 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%166 = OpLoad %v3float %165
|
||||||
|
%167 = OpVectorShuffle %v3float %166 %166 2 1 2
|
||||||
|
OpStore %zyz %167
|
||||||
|
%169 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%170 = OpLoad %v3float %169
|
||||||
|
%171 = OpVectorShuffle %v3float %170 %170 2 2 0
|
||||||
|
OpStore %zzx %171
|
||||||
|
%173 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%174 = OpLoad %v3float %173
|
||||||
|
%175 = OpVectorShuffle %v3float %174 %174 2 2 1
|
||||||
|
OpStore %zzy %175
|
||||||
|
%177 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%178 = OpLoad %v3float %177
|
||||||
|
%179 = OpVectorShuffle %v3float %178 %178 2 2 2
|
||||||
|
OpStore %zzz %179
|
||||||
|
%181 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%183 = OpLoad %v3float %181
|
||||||
|
%184 = OpVectorShuffle %v4float %183 %183 0 0 0 0
|
||||||
|
OpStore %xxxx %184
|
||||||
|
%188 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%189 = OpLoad %v3float %188
|
||||||
|
%190 = OpVectorShuffle %v4float %189 %189 0 0 0 1
|
||||||
|
OpStore %xxxy %190
|
||||||
|
%192 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%193 = OpLoad %v3float %192
|
||||||
|
%194 = OpVectorShuffle %v4float %193 %193 0 0 0 2
|
||||||
|
OpStore %xxxz %194
|
||||||
|
%196 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%197 = OpLoad %v3float %196
|
||||||
|
%198 = OpVectorShuffle %v4float %197 %197 0 0 1 0
|
||||||
|
OpStore %xxyx %198
|
||||||
|
%200 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%201 = OpLoad %v3float %200
|
||||||
|
%202 = OpVectorShuffle %v4float %201 %201 0 0 1 1
|
||||||
|
OpStore %xxyy %202
|
||||||
|
%204 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%205 = OpLoad %v3float %204
|
||||||
|
%206 = OpVectorShuffle %v4float %205 %205 0 0 1 2
|
||||||
|
OpStore %xxyz %206
|
||||||
|
%208 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%209 = OpLoad %v3float %208
|
||||||
|
%210 = OpVectorShuffle %v4float %209 %209 0 0 2 0
|
||||||
|
OpStore %xxzx %210
|
||||||
|
%212 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%213 = OpLoad %v3float %212
|
||||||
|
%214 = OpVectorShuffle %v4float %213 %213 0 0 2 1
|
||||||
|
OpStore %xxzy %214
|
||||||
|
%216 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%217 = OpLoad %v3float %216
|
||||||
|
%218 = OpVectorShuffle %v4float %217 %217 0 0 2 2
|
||||||
|
OpStore %xxzz %218
|
||||||
|
%220 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%221 = OpLoad %v3float %220
|
||||||
|
%222 = OpVectorShuffle %v4float %221 %221 0 1 0 0
|
||||||
|
OpStore %xyxx %222
|
||||||
|
%224 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%225 = OpLoad %v3float %224
|
||||||
|
%226 = OpVectorShuffle %v4float %225 %225 0 1 0 1
|
||||||
|
OpStore %xyxy %226
|
||||||
|
%228 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%229 = OpLoad %v3float %228
|
||||||
|
%230 = OpVectorShuffle %v4float %229 %229 0 1 0 2
|
||||||
|
OpStore %xyxz %230
|
||||||
|
%232 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%233 = OpLoad %v3float %232
|
||||||
|
%234 = OpVectorShuffle %v4float %233 %233 0 1 1 0
|
||||||
|
OpStore %xyyx %234
|
||||||
|
%236 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%237 = OpLoad %v3float %236
|
||||||
|
%238 = OpVectorShuffle %v4float %237 %237 0 1 1 1
|
||||||
|
OpStore %xyyy %238
|
||||||
|
%240 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%241 = OpLoad %v3float %240
|
||||||
|
%242 = OpVectorShuffle %v4float %241 %241 0 1 1 2
|
||||||
|
OpStore %xyyz %242
|
||||||
|
%244 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%245 = OpLoad %v3float %244
|
||||||
|
%246 = OpVectorShuffle %v4float %245 %245 0 1 2 0
|
||||||
|
OpStore %xyzx %246
|
||||||
|
%248 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%249 = OpLoad %v3float %248
|
||||||
|
%250 = OpVectorShuffle %v4float %249 %249 0 1 2 1
|
||||||
|
OpStore %xyzy %250
|
||||||
|
%252 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%253 = OpLoad %v3float %252
|
||||||
|
%254 = OpVectorShuffle %v4float %253 %253 0 1 2 2
|
||||||
|
OpStore %xyzz %254
|
||||||
|
%256 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%257 = OpLoad %v3float %256
|
||||||
|
%258 = OpVectorShuffle %v4float %257 %257 0 2 0 0
|
||||||
|
OpStore %xzxx %258
|
||||||
|
%260 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%261 = OpLoad %v3float %260
|
||||||
|
%262 = OpVectorShuffle %v4float %261 %261 0 2 0 1
|
||||||
|
OpStore %xzxy %262
|
||||||
|
%264 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%265 = OpLoad %v3float %264
|
||||||
|
%266 = OpVectorShuffle %v4float %265 %265 0 2 0 2
|
||||||
|
OpStore %xzxz %266
|
||||||
|
%268 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%269 = OpLoad %v3float %268
|
||||||
|
%270 = OpVectorShuffle %v4float %269 %269 0 2 1 0
|
||||||
|
OpStore %xzyx %270
|
||||||
|
%272 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%273 = OpLoad %v3float %272
|
||||||
|
%274 = OpVectorShuffle %v4float %273 %273 0 2 1 1
|
||||||
|
OpStore %xzyy %274
|
||||||
|
%276 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%277 = OpLoad %v3float %276
|
||||||
|
%278 = OpVectorShuffle %v4float %277 %277 0 2 1 2
|
||||||
|
OpStore %xzyz %278
|
||||||
|
%280 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%281 = OpLoad %v3float %280
|
||||||
|
%282 = OpVectorShuffle %v4float %281 %281 0 2 2 0
|
||||||
|
OpStore %xzzx %282
|
||||||
|
%284 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%285 = OpLoad %v3float %284
|
||||||
|
%286 = OpVectorShuffle %v4float %285 %285 0 2 2 1
|
||||||
|
OpStore %xzzy %286
|
||||||
|
%288 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%289 = OpLoad %v3float %288
|
||||||
|
%290 = OpVectorShuffle %v4float %289 %289 0 2 2 2
|
||||||
|
OpStore %xzzz %290
|
||||||
|
%292 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%293 = OpLoad %v3float %292
|
||||||
|
%294 = OpVectorShuffle %v4float %293 %293 1 0 0 0
|
||||||
|
OpStore %yxxx %294
|
||||||
|
%296 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%297 = OpLoad %v3float %296
|
||||||
|
%298 = OpVectorShuffle %v4float %297 %297 1 0 0 1
|
||||||
|
OpStore %yxxy %298
|
||||||
|
%300 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%301 = OpLoad %v3float %300
|
||||||
|
%302 = OpVectorShuffle %v4float %301 %301 1 0 0 2
|
||||||
|
OpStore %yxxz %302
|
||||||
|
%304 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%305 = OpLoad %v3float %304
|
||||||
|
%306 = OpVectorShuffle %v4float %305 %305 1 0 1 0
|
||||||
|
OpStore %yxyx %306
|
||||||
|
%308 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%309 = OpLoad %v3float %308
|
||||||
|
%310 = OpVectorShuffle %v4float %309 %309 1 0 1 1
|
||||||
|
OpStore %yxyy %310
|
||||||
|
%312 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%313 = OpLoad %v3float %312
|
||||||
|
%314 = OpVectorShuffle %v4float %313 %313 1 0 1 2
|
||||||
|
OpStore %yxyz %314
|
||||||
|
%316 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%317 = OpLoad %v3float %316
|
||||||
|
%318 = OpVectorShuffle %v4float %317 %317 1 0 2 0
|
||||||
|
OpStore %yxzx %318
|
||||||
|
%320 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%321 = OpLoad %v3float %320
|
||||||
|
%322 = OpVectorShuffle %v4float %321 %321 1 0 2 1
|
||||||
|
OpStore %yxzy %322
|
||||||
|
%324 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%325 = OpLoad %v3float %324
|
||||||
|
%326 = OpVectorShuffle %v4float %325 %325 1 0 2 2
|
||||||
|
OpStore %yxzz %326
|
||||||
|
%328 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%329 = OpLoad %v3float %328
|
||||||
|
%330 = OpVectorShuffle %v4float %329 %329 1 1 0 0
|
||||||
|
OpStore %yyxx %330
|
||||||
|
%332 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%333 = OpLoad %v3float %332
|
||||||
|
%334 = OpVectorShuffle %v4float %333 %333 1 1 0 1
|
||||||
|
OpStore %yyxy %334
|
||||||
|
%336 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%337 = OpLoad %v3float %336
|
||||||
|
%338 = OpVectorShuffle %v4float %337 %337 1 1 0 2
|
||||||
|
OpStore %yyxz %338
|
||||||
|
%340 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%341 = OpLoad %v3float %340
|
||||||
|
%342 = OpVectorShuffle %v4float %341 %341 1 1 1 0
|
||||||
|
OpStore %yyyx %342
|
||||||
|
%344 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%345 = OpLoad %v3float %344
|
||||||
|
%346 = OpVectorShuffle %v4float %345 %345 1 1 1 1
|
||||||
|
OpStore %yyyy %346
|
||||||
|
%348 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%349 = OpLoad %v3float %348
|
||||||
|
%350 = OpVectorShuffle %v4float %349 %349 1 1 1 2
|
||||||
|
OpStore %yyyz %350
|
||||||
|
%352 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%353 = OpLoad %v3float %352
|
||||||
|
%354 = OpVectorShuffle %v4float %353 %353 1 1 2 0
|
||||||
|
OpStore %yyzx %354
|
||||||
|
%356 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%357 = OpLoad %v3float %356
|
||||||
|
%358 = OpVectorShuffle %v4float %357 %357 1 1 2 1
|
||||||
|
OpStore %yyzy %358
|
||||||
|
%360 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%361 = OpLoad %v3float %360
|
||||||
|
%362 = OpVectorShuffle %v4float %361 %361 1 1 2 2
|
||||||
|
OpStore %yyzz %362
|
||||||
|
%364 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%365 = OpLoad %v3float %364
|
||||||
|
%366 = OpVectorShuffle %v4float %365 %365 1 2 0 0
|
||||||
|
OpStore %yzxx %366
|
||||||
|
%368 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%369 = OpLoad %v3float %368
|
||||||
|
%370 = OpVectorShuffle %v4float %369 %369 1 2 0 1
|
||||||
|
OpStore %yzxy %370
|
||||||
|
%372 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%373 = OpLoad %v3float %372
|
||||||
|
%374 = OpVectorShuffle %v4float %373 %373 1 2 0 2
|
||||||
|
OpStore %yzxz %374
|
||||||
|
%376 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%377 = OpLoad %v3float %376
|
||||||
|
%378 = OpVectorShuffle %v4float %377 %377 1 2 1 0
|
||||||
|
OpStore %yzyx %378
|
||||||
|
%380 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%381 = OpLoad %v3float %380
|
||||||
|
%382 = OpVectorShuffle %v4float %381 %381 1 2 1 1
|
||||||
|
OpStore %yzyy %382
|
||||||
|
%384 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%385 = OpLoad %v3float %384
|
||||||
|
%386 = OpVectorShuffle %v4float %385 %385 1 2 1 2
|
||||||
|
OpStore %yzyz %386
|
||||||
|
%388 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%389 = OpLoad %v3float %388
|
||||||
|
%390 = OpVectorShuffle %v4float %389 %389 1 2 2 0
|
||||||
|
OpStore %yzzx %390
|
||||||
|
%392 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%393 = OpLoad %v3float %392
|
||||||
|
%394 = OpVectorShuffle %v4float %393 %393 1 2 2 1
|
||||||
|
OpStore %yzzy %394
|
||||||
|
%396 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%397 = OpLoad %v3float %396
|
||||||
|
%398 = OpVectorShuffle %v4float %397 %397 1 2 2 2
|
||||||
|
OpStore %yzzz %398
|
||||||
|
%400 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%401 = OpLoad %v3float %400
|
||||||
|
%402 = OpVectorShuffle %v4float %401 %401 2 0 0 0
|
||||||
|
OpStore %zxxx %402
|
||||||
|
%404 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%405 = OpLoad %v3float %404
|
||||||
|
%406 = OpVectorShuffle %v4float %405 %405 2 0 0 1
|
||||||
|
OpStore %zxxy %406
|
||||||
|
%408 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%409 = OpLoad %v3float %408
|
||||||
|
%410 = OpVectorShuffle %v4float %409 %409 2 0 0 2
|
||||||
|
OpStore %zxxz %410
|
||||||
|
%412 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%413 = OpLoad %v3float %412
|
||||||
|
%414 = OpVectorShuffle %v4float %413 %413 2 0 1 0
|
||||||
|
OpStore %zxyx %414
|
||||||
|
%416 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%417 = OpLoad %v3float %416
|
||||||
|
%418 = OpVectorShuffle %v4float %417 %417 2 0 1 1
|
||||||
|
OpStore %zxyy %418
|
||||||
|
%420 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%421 = OpLoad %v3float %420
|
||||||
|
%422 = OpVectorShuffle %v4float %421 %421 2 0 1 2
|
||||||
|
OpStore %zxyz %422
|
||||||
|
%424 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%425 = OpLoad %v3float %424
|
||||||
|
%426 = OpVectorShuffle %v4float %425 %425 2 0 2 0
|
||||||
|
OpStore %zxzx %426
|
||||||
|
%428 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%429 = OpLoad %v3float %428
|
||||||
|
%430 = OpVectorShuffle %v4float %429 %429 2 0 2 1
|
||||||
|
OpStore %zxzy %430
|
||||||
|
%432 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%433 = OpLoad %v3float %432
|
||||||
|
%434 = OpVectorShuffle %v4float %433 %433 2 0 2 2
|
||||||
|
OpStore %zxzz %434
|
||||||
|
%436 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%437 = OpLoad %v3float %436
|
||||||
|
%438 = OpVectorShuffle %v4float %437 %437 2 1 0 0
|
||||||
|
OpStore %zyxx %438
|
||||||
|
%440 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%441 = OpLoad %v3float %440
|
||||||
|
%442 = OpVectorShuffle %v4float %441 %441 2 1 0 1
|
||||||
|
OpStore %zyxy %442
|
||||||
|
%444 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%445 = OpLoad %v3float %444
|
||||||
|
%446 = OpVectorShuffle %v4float %445 %445 2 1 0 2
|
||||||
|
OpStore %zyxz %446
|
||||||
|
%448 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%449 = OpLoad %v3float %448
|
||||||
|
%450 = OpVectorShuffle %v4float %449 %449 2 1 1 0
|
||||||
|
OpStore %zyyx %450
|
||||||
|
%452 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%453 = OpLoad %v3float %452
|
||||||
|
%454 = OpVectorShuffle %v4float %453 %453 2 1 1 1
|
||||||
|
OpStore %zyyy %454
|
||||||
|
%456 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%457 = OpLoad %v3float %456
|
||||||
|
%458 = OpVectorShuffle %v4float %457 %457 2 1 1 2
|
||||||
|
OpStore %zyyz %458
|
||||||
|
%460 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%461 = OpLoad %v3float %460
|
||||||
|
%462 = OpVectorShuffle %v4float %461 %461 2 1 2 0
|
||||||
|
OpStore %zyzx %462
|
||||||
|
%464 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%465 = OpLoad %v3float %464
|
||||||
|
%466 = OpVectorShuffle %v4float %465 %465 2 1 2 1
|
||||||
|
OpStore %zyzy %466
|
||||||
|
%468 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%469 = OpLoad %v3float %468
|
||||||
|
%470 = OpVectorShuffle %v4float %469 %469 2 1 2 2
|
||||||
|
OpStore %zyzz %470
|
||||||
|
%472 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%473 = OpLoad %v3float %472
|
||||||
|
%474 = OpVectorShuffle %v4float %473 %473 2 2 0 0
|
||||||
|
OpStore %zzxx %474
|
||||||
|
%476 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%477 = OpLoad %v3float %476
|
||||||
|
%478 = OpVectorShuffle %v4float %477 %477 2 2 0 1
|
||||||
|
OpStore %zzxy %478
|
||||||
|
%480 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%481 = OpLoad %v3float %480
|
||||||
|
%482 = OpVectorShuffle %v4float %481 %481 2 2 0 2
|
||||||
|
OpStore %zzxz %482
|
||||||
|
%484 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%485 = OpLoad %v3float %484
|
||||||
|
%486 = OpVectorShuffle %v4float %485 %485 2 2 1 0
|
||||||
|
OpStore %zzyx %486
|
||||||
|
%488 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%489 = OpLoad %v3float %488
|
||||||
|
%490 = OpVectorShuffle %v4float %489 %489 2 2 1 1
|
||||||
|
OpStore %zzyy %490
|
||||||
|
%492 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%493 = OpLoad %v3float %492
|
||||||
|
%494 = OpVectorShuffle %v4float %493 %493 2 2 1 2
|
||||||
|
OpStore %zzyz %494
|
||||||
|
%496 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%497 = OpLoad %v3float %496
|
||||||
|
%498 = OpVectorShuffle %v4float %497 %497 2 2 2 0
|
||||||
|
OpStore %zzzx %498
|
||||||
|
%500 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%501 = OpLoad %v3float %500
|
||||||
|
%502 = OpVectorShuffle %v4float %501 %501 2 2 2 1
|
||||||
|
OpStore %zzzy %502
|
||||||
|
%504 = OpAccessChain %_ptr_Uniform_v3float %U %uint_0
|
||||||
|
%505 = OpLoad %v3float %504
|
||||||
|
%506 = OpVectorShuffle %v4float %505 %505 2 2 2 2
|
||||||
|
OpStore %zzzz %506
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,130 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v : vec3<f32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<uniform> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = U.v;
|
||||||
|
var x = U.v.x;
|
||||||
|
var y = U.v.y;
|
||||||
|
var z = U.v.z;
|
||||||
|
var xx = U.v.xx;
|
||||||
|
var xy = U.v.xy;
|
||||||
|
var xz = U.v.xz;
|
||||||
|
var yx = U.v.yx;
|
||||||
|
var yy = U.v.yy;
|
||||||
|
var yz = U.v.yz;
|
||||||
|
var zx = U.v.zx;
|
||||||
|
var zy = U.v.zy;
|
||||||
|
var zz = U.v.zz;
|
||||||
|
var xxx = U.v.xxx;
|
||||||
|
var xxy = U.v.xxy;
|
||||||
|
var xxz = U.v.xxz;
|
||||||
|
var xyx = U.v.xyx;
|
||||||
|
var xyy = U.v.xyy;
|
||||||
|
var xyz = U.v.xyz;
|
||||||
|
var xzx = U.v.xzx;
|
||||||
|
var xzy = U.v.xzy;
|
||||||
|
var xzz = U.v.xzz;
|
||||||
|
var yxx = U.v.yxx;
|
||||||
|
var yxy = U.v.yxy;
|
||||||
|
var yxz = U.v.yxz;
|
||||||
|
var yyx = U.v.yyx;
|
||||||
|
var yyy = U.v.yyy;
|
||||||
|
var yyz = U.v.yyz;
|
||||||
|
var yzx = U.v.yzx;
|
||||||
|
var yzy = U.v.yzy;
|
||||||
|
var yzz = U.v.yzz;
|
||||||
|
var zxx = U.v.zxx;
|
||||||
|
var zxy = U.v.zxy;
|
||||||
|
var zxz = U.v.zxz;
|
||||||
|
var zyx = U.v.zyx;
|
||||||
|
var zyy = U.v.zyy;
|
||||||
|
var zyz = U.v.zyz;
|
||||||
|
var zzx = U.v.zzx;
|
||||||
|
var zzy = U.v.zzy;
|
||||||
|
var zzz = U.v.zzz;
|
||||||
|
var xxxx = U.v.xxxx;
|
||||||
|
var xxxy = U.v.xxxy;
|
||||||
|
var xxxz = U.v.xxxz;
|
||||||
|
var xxyx = U.v.xxyx;
|
||||||
|
var xxyy = U.v.xxyy;
|
||||||
|
var xxyz = U.v.xxyz;
|
||||||
|
var xxzx = U.v.xxzx;
|
||||||
|
var xxzy = U.v.xxzy;
|
||||||
|
var xxzz = U.v.xxzz;
|
||||||
|
var xyxx = U.v.xyxx;
|
||||||
|
var xyxy = U.v.xyxy;
|
||||||
|
var xyxz = U.v.xyxz;
|
||||||
|
var xyyx = U.v.xyyx;
|
||||||
|
var xyyy = U.v.xyyy;
|
||||||
|
var xyyz = U.v.xyyz;
|
||||||
|
var xyzx = U.v.xyzx;
|
||||||
|
var xyzy = U.v.xyzy;
|
||||||
|
var xyzz = U.v.xyzz;
|
||||||
|
var xzxx = U.v.xzxx;
|
||||||
|
var xzxy = U.v.xzxy;
|
||||||
|
var xzxz = U.v.xzxz;
|
||||||
|
var xzyx = U.v.xzyx;
|
||||||
|
var xzyy = U.v.xzyy;
|
||||||
|
var xzyz = U.v.xzyz;
|
||||||
|
var xzzx = U.v.xzzx;
|
||||||
|
var xzzy = U.v.xzzy;
|
||||||
|
var xzzz = U.v.xzzz;
|
||||||
|
var yxxx = U.v.yxxx;
|
||||||
|
var yxxy = U.v.yxxy;
|
||||||
|
var yxxz = U.v.yxxz;
|
||||||
|
var yxyx = U.v.yxyx;
|
||||||
|
var yxyy = U.v.yxyy;
|
||||||
|
var yxyz = U.v.yxyz;
|
||||||
|
var yxzx = U.v.yxzx;
|
||||||
|
var yxzy = U.v.yxzy;
|
||||||
|
var yxzz = U.v.yxzz;
|
||||||
|
var yyxx = U.v.yyxx;
|
||||||
|
var yyxy = U.v.yyxy;
|
||||||
|
var yyxz = U.v.yyxz;
|
||||||
|
var yyyx = U.v.yyyx;
|
||||||
|
var yyyy = U.v.yyyy;
|
||||||
|
var yyyz = U.v.yyyz;
|
||||||
|
var yyzx = U.v.yyzx;
|
||||||
|
var yyzy = U.v.yyzy;
|
||||||
|
var yyzz = U.v.yyzz;
|
||||||
|
var yzxx = U.v.yzxx;
|
||||||
|
var yzxy = U.v.yzxy;
|
||||||
|
var yzxz = U.v.yzxz;
|
||||||
|
var yzyx = U.v.yzyx;
|
||||||
|
var yzyy = U.v.yzyy;
|
||||||
|
var yzyz = U.v.yzyz;
|
||||||
|
var yzzx = U.v.yzzx;
|
||||||
|
var yzzy = U.v.yzzy;
|
||||||
|
var yzzz = U.v.yzzz;
|
||||||
|
var zxxx = U.v.zxxx;
|
||||||
|
var zxxy = U.v.zxxy;
|
||||||
|
var zxxz = U.v.zxxz;
|
||||||
|
var zxyx = U.v.zxyx;
|
||||||
|
var zxyy = U.v.zxyy;
|
||||||
|
var zxyz = U.v.zxyz;
|
||||||
|
var zxzx = U.v.zxzx;
|
||||||
|
var zxzy = U.v.zxzy;
|
||||||
|
var zxzz = U.v.zxzz;
|
||||||
|
var zyxx = U.v.zyxx;
|
||||||
|
var zyxy = U.v.zyxy;
|
||||||
|
var zyxz = U.v.zyxz;
|
||||||
|
var zyyx = U.v.zyyx;
|
||||||
|
var zyyy = U.v.zyyy;
|
||||||
|
var zyyz = U.v.zyyz;
|
||||||
|
var zyzx = U.v.zyzx;
|
||||||
|
var zyzy = U.v.zyzy;
|
||||||
|
var zyzz = U.v.zyzz;
|
||||||
|
var zzxx = U.v.zzxx;
|
||||||
|
var zzxy = U.v.zzxy;
|
||||||
|
var zzxz = U.v.zzxz;
|
||||||
|
var zzyx = U.v.zzyx;
|
||||||
|
var zzyy = U.v.zzyy;
|
||||||
|
var zzyz = U.v.zzyz;
|
||||||
|
var zzzx = U.v.zzzx;
|
||||||
|
var zzzy = U.v.zzzy;
|
||||||
|
var zzzz = U.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,144 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v: vec3<i32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<uniform> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = U.v;
|
||||||
|
|
||||||
|
var x = U.v.x;
|
||||||
|
var y = U.v.y;
|
||||||
|
var z = U.v.z;
|
||||||
|
|
||||||
|
var xx = U.v.xx;
|
||||||
|
var xy = U.v.xy;
|
||||||
|
var xz = U.v.xz;
|
||||||
|
var yx = U.v.yx;
|
||||||
|
var yy = U.v.yy;
|
||||||
|
var yz = U.v.yz;
|
||||||
|
var zx = U.v.zx;
|
||||||
|
var zy = U.v.zy;
|
||||||
|
var zz = U.v.zz;
|
||||||
|
|
||||||
|
var xxx = U.v.xxx;
|
||||||
|
var xxy = U.v.xxy;
|
||||||
|
var xxz = U.v.xxz;
|
||||||
|
var xyx = U.v.xyx;
|
||||||
|
var xyy = U.v.xyy;
|
||||||
|
var xyz = U.v.xyz;
|
||||||
|
var xzx = U.v.xzx;
|
||||||
|
var xzy = U.v.xzy;
|
||||||
|
var xzz = U.v.xzz;
|
||||||
|
|
||||||
|
var yxx = U.v.yxx;
|
||||||
|
var yxy = U.v.yxy;
|
||||||
|
var yxz = U.v.yxz;
|
||||||
|
var yyx = U.v.yyx;
|
||||||
|
var yyy = U.v.yyy;
|
||||||
|
var yyz = U.v.yyz;
|
||||||
|
var yzx = U.v.yzx;
|
||||||
|
var yzy = U.v.yzy;
|
||||||
|
var yzz = U.v.yzz;
|
||||||
|
|
||||||
|
var zxx = U.v.zxx;
|
||||||
|
var zxy = U.v.zxy;
|
||||||
|
var zxz = U.v.zxz;
|
||||||
|
var zyx = U.v.zyx;
|
||||||
|
var zyy = U.v.zyy;
|
||||||
|
var zyz = U.v.zyz;
|
||||||
|
var zzx = U.v.zzx;
|
||||||
|
var zzy = U.v.zzy;
|
||||||
|
var zzz = U.v.zzz;
|
||||||
|
|
||||||
|
var xxxx = U.v.xxxx;
|
||||||
|
var xxxy = U.v.xxxy;
|
||||||
|
var xxxz = U.v.xxxz;
|
||||||
|
var xxyx = U.v.xxyx;
|
||||||
|
var xxyy = U.v.xxyy;
|
||||||
|
var xxyz = U.v.xxyz;
|
||||||
|
var xxzx = U.v.xxzx;
|
||||||
|
var xxzy = U.v.xxzy;
|
||||||
|
var xxzz = U.v.xxzz;
|
||||||
|
|
||||||
|
var xyxx = U.v.xyxx;
|
||||||
|
var xyxy = U.v.xyxy;
|
||||||
|
var xyxz = U.v.xyxz;
|
||||||
|
var xyyx = U.v.xyyx;
|
||||||
|
var xyyy = U.v.xyyy;
|
||||||
|
var xyyz = U.v.xyyz;
|
||||||
|
var xyzx = U.v.xyzx;
|
||||||
|
var xyzy = U.v.xyzy;
|
||||||
|
var xyzz = U.v.xyzz;
|
||||||
|
|
||||||
|
var xzxx = U.v.xzxx;
|
||||||
|
var xzxy = U.v.xzxy;
|
||||||
|
var xzxz = U.v.xzxz;
|
||||||
|
var xzyx = U.v.xzyx;
|
||||||
|
var xzyy = U.v.xzyy;
|
||||||
|
var xzyz = U.v.xzyz;
|
||||||
|
var xzzx = U.v.xzzx;
|
||||||
|
var xzzy = U.v.xzzy;
|
||||||
|
var xzzz = U.v.xzzz;
|
||||||
|
|
||||||
|
var yxxx = U.v.yxxx;
|
||||||
|
var yxxy = U.v.yxxy;
|
||||||
|
var yxxz = U.v.yxxz;
|
||||||
|
var yxyx = U.v.yxyx;
|
||||||
|
var yxyy = U.v.yxyy;
|
||||||
|
var yxyz = U.v.yxyz;
|
||||||
|
var yxzx = U.v.yxzx;
|
||||||
|
var yxzy = U.v.yxzy;
|
||||||
|
var yxzz = U.v.yxzz;
|
||||||
|
|
||||||
|
var yyxx = U.v.yyxx;
|
||||||
|
var yyxy = U.v.yyxy;
|
||||||
|
var yyxz = U.v.yyxz;
|
||||||
|
var yyyx = U.v.yyyx;
|
||||||
|
var yyyy = U.v.yyyy;
|
||||||
|
var yyyz = U.v.yyyz;
|
||||||
|
var yyzx = U.v.yyzx;
|
||||||
|
var yyzy = U.v.yyzy;
|
||||||
|
var yyzz = U.v.yyzz;
|
||||||
|
|
||||||
|
var yzxx = U.v.yzxx;
|
||||||
|
var yzxy = U.v.yzxy;
|
||||||
|
var yzxz = U.v.yzxz;
|
||||||
|
var yzyx = U.v.yzyx;
|
||||||
|
var yzyy = U.v.yzyy;
|
||||||
|
var yzyz = U.v.yzyz;
|
||||||
|
var yzzx = U.v.yzzx;
|
||||||
|
var yzzy = U.v.yzzy;
|
||||||
|
var yzzz = U.v.yzzz;
|
||||||
|
|
||||||
|
var zxxx = U.v.zxxx;
|
||||||
|
var zxxy = U.v.zxxy;
|
||||||
|
var zxxz = U.v.zxxz;
|
||||||
|
var zxyx = U.v.zxyx;
|
||||||
|
var zxyy = U.v.zxyy;
|
||||||
|
var zxyz = U.v.zxyz;
|
||||||
|
var zxzx = U.v.zxzx;
|
||||||
|
var zxzy = U.v.zxzy;
|
||||||
|
var zxzz = U.v.zxzz;
|
||||||
|
|
||||||
|
var zyxx = U.v.zyxx;
|
||||||
|
var zyxy = U.v.zyxy;
|
||||||
|
var zyxz = U.v.zyxz;
|
||||||
|
var zyyx = U.v.zyyx;
|
||||||
|
var zyyy = U.v.zyyy;
|
||||||
|
var zyyz = U.v.zyyz;
|
||||||
|
var zyzx = U.v.zyzx;
|
||||||
|
var zyzy = U.v.zyzy;
|
||||||
|
var zyzz = U.v.zyzz;
|
||||||
|
|
||||||
|
var zzxx = U.v.zzxx;
|
||||||
|
var zzxy = U.v.zzxy;
|
||||||
|
var zzxz = U.v.zzxz;
|
||||||
|
var zzyx = U.v.zzyx;
|
||||||
|
var zzyy = U.v.zzyy;
|
||||||
|
var zzyz = U.v.zzyz;
|
||||||
|
var zzzx = U.v.zzzx;
|
||||||
|
var zzzy = U.v.zzzy;
|
||||||
|
var zzzz = U.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cbuffer cbuffer_U : register(b0, space0) {
|
||||||
|
uint4 U[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
int3 v = asint(U[0].xyz);
|
||||||
|
int x = asint(U[0].x);
|
||||||
|
int y = asint(U[0].y);
|
||||||
|
int z = asint(U[0].z);
|
||||||
|
int2 xx = asint(U[0].xyz).xx;
|
||||||
|
int2 xy = asint(U[0].xyz).xy;
|
||||||
|
int2 xz = asint(U[0].xyz).xz;
|
||||||
|
int2 yx = asint(U[0].xyz).yx;
|
||||||
|
int2 yy = asint(U[0].xyz).yy;
|
||||||
|
int2 yz = asint(U[0].xyz).yz;
|
||||||
|
int2 zx = asint(U[0].xyz).zx;
|
||||||
|
int2 zy = asint(U[0].xyz).zy;
|
||||||
|
int2 zz = asint(U[0].xyz).zz;
|
||||||
|
int3 xxx = asint(U[0].xyz).xxx;
|
||||||
|
int3 xxy = asint(U[0].xyz).xxy;
|
||||||
|
int3 xxz = asint(U[0].xyz).xxz;
|
||||||
|
int3 xyx = asint(U[0].xyz).xyx;
|
||||||
|
int3 xyy = asint(U[0].xyz).xyy;
|
||||||
|
int3 xyz = asint(U[0].xyz).xyz;
|
||||||
|
int3 xzx = asint(U[0].xyz).xzx;
|
||||||
|
int3 xzy = asint(U[0].xyz).xzy;
|
||||||
|
int3 xzz = asint(U[0].xyz).xzz;
|
||||||
|
int3 yxx = asint(U[0].xyz).yxx;
|
||||||
|
int3 yxy = asint(U[0].xyz).yxy;
|
||||||
|
int3 yxz = asint(U[0].xyz).yxz;
|
||||||
|
int3 yyx = asint(U[0].xyz).yyx;
|
||||||
|
int3 yyy = asint(U[0].xyz).yyy;
|
||||||
|
int3 yyz = asint(U[0].xyz).yyz;
|
||||||
|
int3 yzx = asint(U[0].xyz).yzx;
|
||||||
|
int3 yzy = asint(U[0].xyz).yzy;
|
||||||
|
int3 yzz = asint(U[0].xyz).yzz;
|
||||||
|
int3 zxx = asint(U[0].xyz).zxx;
|
||||||
|
int3 zxy = asint(U[0].xyz).zxy;
|
||||||
|
int3 zxz = asint(U[0].xyz).zxz;
|
||||||
|
int3 zyx = asint(U[0].xyz).zyx;
|
||||||
|
int3 zyy = asint(U[0].xyz).zyy;
|
||||||
|
int3 zyz = asint(U[0].xyz).zyz;
|
||||||
|
int3 zzx = asint(U[0].xyz).zzx;
|
||||||
|
int3 zzy = asint(U[0].xyz).zzy;
|
||||||
|
int3 zzz = asint(U[0].xyz).zzz;
|
||||||
|
int4 xxxx = asint(U[0].xyz).xxxx;
|
||||||
|
int4 xxxy = asint(U[0].xyz).xxxy;
|
||||||
|
int4 xxxz = asint(U[0].xyz).xxxz;
|
||||||
|
int4 xxyx = asint(U[0].xyz).xxyx;
|
||||||
|
int4 xxyy = asint(U[0].xyz).xxyy;
|
||||||
|
int4 xxyz = asint(U[0].xyz).xxyz;
|
||||||
|
int4 xxzx = asint(U[0].xyz).xxzx;
|
||||||
|
int4 xxzy = asint(U[0].xyz).xxzy;
|
||||||
|
int4 xxzz = asint(U[0].xyz).xxzz;
|
||||||
|
int4 xyxx = asint(U[0].xyz).xyxx;
|
||||||
|
int4 xyxy = asint(U[0].xyz).xyxy;
|
||||||
|
int4 xyxz = asint(U[0].xyz).xyxz;
|
||||||
|
int4 xyyx = asint(U[0].xyz).xyyx;
|
||||||
|
int4 xyyy = asint(U[0].xyz).xyyy;
|
||||||
|
int4 xyyz = asint(U[0].xyz).xyyz;
|
||||||
|
int4 xyzx = asint(U[0].xyz).xyzx;
|
||||||
|
int4 xyzy = asint(U[0].xyz).xyzy;
|
||||||
|
int4 xyzz = asint(U[0].xyz).xyzz;
|
||||||
|
int4 xzxx = asint(U[0].xyz).xzxx;
|
||||||
|
int4 xzxy = asint(U[0].xyz).xzxy;
|
||||||
|
int4 xzxz = asint(U[0].xyz).xzxz;
|
||||||
|
int4 xzyx = asint(U[0].xyz).xzyx;
|
||||||
|
int4 xzyy = asint(U[0].xyz).xzyy;
|
||||||
|
int4 xzyz = asint(U[0].xyz).xzyz;
|
||||||
|
int4 xzzx = asint(U[0].xyz).xzzx;
|
||||||
|
int4 xzzy = asint(U[0].xyz).xzzy;
|
||||||
|
int4 xzzz = asint(U[0].xyz).xzzz;
|
||||||
|
int4 yxxx = asint(U[0].xyz).yxxx;
|
||||||
|
int4 yxxy = asint(U[0].xyz).yxxy;
|
||||||
|
int4 yxxz = asint(U[0].xyz).yxxz;
|
||||||
|
int4 yxyx = asint(U[0].xyz).yxyx;
|
||||||
|
int4 yxyy = asint(U[0].xyz).yxyy;
|
||||||
|
int4 yxyz = asint(U[0].xyz).yxyz;
|
||||||
|
int4 yxzx = asint(U[0].xyz).yxzx;
|
||||||
|
int4 yxzy = asint(U[0].xyz).yxzy;
|
||||||
|
int4 yxzz = asint(U[0].xyz).yxzz;
|
||||||
|
int4 yyxx = asint(U[0].xyz).yyxx;
|
||||||
|
int4 yyxy = asint(U[0].xyz).yyxy;
|
||||||
|
int4 yyxz = asint(U[0].xyz).yyxz;
|
||||||
|
int4 yyyx = asint(U[0].xyz).yyyx;
|
||||||
|
int4 yyyy = asint(U[0].xyz).yyyy;
|
||||||
|
int4 yyyz = asint(U[0].xyz).yyyz;
|
||||||
|
int4 yyzx = asint(U[0].xyz).yyzx;
|
||||||
|
int4 yyzy = asint(U[0].xyz).yyzy;
|
||||||
|
int4 yyzz = asint(U[0].xyz).yyzz;
|
||||||
|
int4 yzxx = asint(U[0].xyz).yzxx;
|
||||||
|
int4 yzxy = asint(U[0].xyz).yzxy;
|
||||||
|
int4 yzxz = asint(U[0].xyz).yzxz;
|
||||||
|
int4 yzyx = asint(U[0].xyz).yzyx;
|
||||||
|
int4 yzyy = asint(U[0].xyz).yzyy;
|
||||||
|
int4 yzyz = asint(U[0].xyz).yzyz;
|
||||||
|
int4 yzzx = asint(U[0].xyz).yzzx;
|
||||||
|
int4 yzzy = asint(U[0].xyz).yzzy;
|
||||||
|
int4 yzzz = asint(U[0].xyz).yzzz;
|
||||||
|
int4 zxxx = asint(U[0].xyz).zxxx;
|
||||||
|
int4 zxxy = asint(U[0].xyz).zxxy;
|
||||||
|
int4 zxxz = asint(U[0].xyz).zxxz;
|
||||||
|
int4 zxyx = asint(U[0].xyz).zxyx;
|
||||||
|
int4 zxyy = asint(U[0].xyz).zxyy;
|
||||||
|
int4 zxyz = asint(U[0].xyz).zxyz;
|
||||||
|
int4 zxzx = asint(U[0].xyz).zxzx;
|
||||||
|
int4 zxzy = asint(U[0].xyz).zxzy;
|
||||||
|
int4 zxzz = asint(U[0].xyz).zxzz;
|
||||||
|
int4 zyxx = asint(U[0].xyz).zyxx;
|
||||||
|
int4 zyxy = asint(U[0].xyz).zyxy;
|
||||||
|
int4 zyxz = asint(U[0].xyz).zyxz;
|
||||||
|
int4 zyyx = asint(U[0].xyz).zyyx;
|
||||||
|
int4 zyyy = asint(U[0].xyz).zyyy;
|
||||||
|
int4 zyyz = asint(U[0].xyz).zyyz;
|
||||||
|
int4 zyzx = asint(U[0].xyz).zyzx;
|
||||||
|
int4 zyzy = asint(U[0].xyz).zyzy;
|
||||||
|
int4 zyzz = asint(U[0].xyz).zyzz;
|
||||||
|
int4 zzxx = asint(U[0].xyz).zzxx;
|
||||||
|
int4 zzxy = asint(U[0].xyz).zzxy;
|
||||||
|
int4 zzxz = asint(U[0].xyz).zzxz;
|
||||||
|
int4 zzyx = asint(U[0].xyz).zzyx;
|
||||||
|
int4 zzyy = asint(U[0].xyz).zzyy;
|
||||||
|
int4 zzyz = asint(U[0].xyz).zzyz;
|
||||||
|
int4 zzzx = asint(U[0].xyz).zzzx;
|
||||||
|
int4 zzzy = asint(U[0].xyz).zzzy;
|
||||||
|
int4 zzzz = asint(U[0].xyz).zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
/* 0x0000 */ packed_int3 v;
|
||||||
|
/* 0x000c */ int8_t tint_pad[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(constant S& U) {
|
||||||
|
int3 v = U.v;
|
||||||
|
int x = U.v[0];
|
||||||
|
int y = U.v[1];
|
||||||
|
int z = U.v[2];
|
||||||
|
int2 xx = int3(U.v).xx;
|
||||||
|
int2 xy = int3(U.v).xy;
|
||||||
|
int2 xz = int3(U.v).xz;
|
||||||
|
int2 yx = int3(U.v).yx;
|
||||||
|
int2 yy = int3(U.v).yy;
|
||||||
|
int2 yz = int3(U.v).yz;
|
||||||
|
int2 zx = int3(U.v).zx;
|
||||||
|
int2 zy = int3(U.v).zy;
|
||||||
|
int2 zz = int3(U.v).zz;
|
||||||
|
int3 xxx = int3(U.v).xxx;
|
||||||
|
int3 xxy = int3(U.v).xxy;
|
||||||
|
int3 xxz = int3(U.v).xxz;
|
||||||
|
int3 xyx = int3(U.v).xyx;
|
||||||
|
int3 xyy = int3(U.v).xyy;
|
||||||
|
int3 xyz = int3(U.v).xyz;
|
||||||
|
int3 xzx = int3(U.v).xzx;
|
||||||
|
int3 xzy = int3(U.v).xzy;
|
||||||
|
int3 xzz = int3(U.v).xzz;
|
||||||
|
int3 yxx = int3(U.v).yxx;
|
||||||
|
int3 yxy = int3(U.v).yxy;
|
||||||
|
int3 yxz = int3(U.v).yxz;
|
||||||
|
int3 yyx = int3(U.v).yyx;
|
||||||
|
int3 yyy = int3(U.v).yyy;
|
||||||
|
int3 yyz = int3(U.v).yyz;
|
||||||
|
int3 yzx = int3(U.v).yzx;
|
||||||
|
int3 yzy = int3(U.v).yzy;
|
||||||
|
int3 yzz = int3(U.v).yzz;
|
||||||
|
int3 zxx = int3(U.v).zxx;
|
||||||
|
int3 zxy = int3(U.v).zxy;
|
||||||
|
int3 zxz = int3(U.v).zxz;
|
||||||
|
int3 zyx = int3(U.v).zyx;
|
||||||
|
int3 zyy = int3(U.v).zyy;
|
||||||
|
int3 zyz = int3(U.v).zyz;
|
||||||
|
int3 zzx = int3(U.v).zzx;
|
||||||
|
int3 zzy = int3(U.v).zzy;
|
||||||
|
int3 zzz = int3(U.v).zzz;
|
||||||
|
int4 xxxx = int3(U.v).xxxx;
|
||||||
|
int4 xxxy = int3(U.v).xxxy;
|
||||||
|
int4 xxxz = int3(U.v).xxxz;
|
||||||
|
int4 xxyx = int3(U.v).xxyx;
|
||||||
|
int4 xxyy = int3(U.v).xxyy;
|
||||||
|
int4 xxyz = int3(U.v).xxyz;
|
||||||
|
int4 xxzx = int3(U.v).xxzx;
|
||||||
|
int4 xxzy = int3(U.v).xxzy;
|
||||||
|
int4 xxzz = int3(U.v).xxzz;
|
||||||
|
int4 xyxx = int3(U.v).xyxx;
|
||||||
|
int4 xyxy = int3(U.v).xyxy;
|
||||||
|
int4 xyxz = int3(U.v).xyxz;
|
||||||
|
int4 xyyx = int3(U.v).xyyx;
|
||||||
|
int4 xyyy = int3(U.v).xyyy;
|
||||||
|
int4 xyyz = int3(U.v).xyyz;
|
||||||
|
int4 xyzx = int3(U.v).xyzx;
|
||||||
|
int4 xyzy = int3(U.v).xyzy;
|
||||||
|
int4 xyzz = int3(U.v).xyzz;
|
||||||
|
int4 xzxx = int3(U.v).xzxx;
|
||||||
|
int4 xzxy = int3(U.v).xzxy;
|
||||||
|
int4 xzxz = int3(U.v).xzxz;
|
||||||
|
int4 xzyx = int3(U.v).xzyx;
|
||||||
|
int4 xzyy = int3(U.v).xzyy;
|
||||||
|
int4 xzyz = int3(U.v).xzyz;
|
||||||
|
int4 xzzx = int3(U.v).xzzx;
|
||||||
|
int4 xzzy = int3(U.v).xzzy;
|
||||||
|
int4 xzzz = int3(U.v).xzzz;
|
||||||
|
int4 yxxx = int3(U.v).yxxx;
|
||||||
|
int4 yxxy = int3(U.v).yxxy;
|
||||||
|
int4 yxxz = int3(U.v).yxxz;
|
||||||
|
int4 yxyx = int3(U.v).yxyx;
|
||||||
|
int4 yxyy = int3(U.v).yxyy;
|
||||||
|
int4 yxyz = int3(U.v).yxyz;
|
||||||
|
int4 yxzx = int3(U.v).yxzx;
|
||||||
|
int4 yxzy = int3(U.v).yxzy;
|
||||||
|
int4 yxzz = int3(U.v).yxzz;
|
||||||
|
int4 yyxx = int3(U.v).yyxx;
|
||||||
|
int4 yyxy = int3(U.v).yyxy;
|
||||||
|
int4 yyxz = int3(U.v).yyxz;
|
||||||
|
int4 yyyx = int3(U.v).yyyx;
|
||||||
|
int4 yyyy = int3(U.v).yyyy;
|
||||||
|
int4 yyyz = int3(U.v).yyyz;
|
||||||
|
int4 yyzx = int3(U.v).yyzx;
|
||||||
|
int4 yyzy = int3(U.v).yyzy;
|
||||||
|
int4 yyzz = int3(U.v).yyzz;
|
||||||
|
int4 yzxx = int3(U.v).yzxx;
|
||||||
|
int4 yzxy = int3(U.v).yzxy;
|
||||||
|
int4 yzxz = int3(U.v).yzxz;
|
||||||
|
int4 yzyx = int3(U.v).yzyx;
|
||||||
|
int4 yzyy = int3(U.v).yzyy;
|
||||||
|
int4 yzyz = int3(U.v).yzyz;
|
||||||
|
int4 yzzx = int3(U.v).yzzx;
|
||||||
|
int4 yzzy = int3(U.v).yzzy;
|
||||||
|
int4 yzzz = int3(U.v).yzzz;
|
||||||
|
int4 zxxx = int3(U.v).zxxx;
|
||||||
|
int4 zxxy = int3(U.v).zxxy;
|
||||||
|
int4 zxxz = int3(U.v).zxxz;
|
||||||
|
int4 zxyx = int3(U.v).zxyx;
|
||||||
|
int4 zxyy = int3(U.v).zxyy;
|
||||||
|
int4 zxyz = int3(U.v).zxyz;
|
||||||
|
int4 zxzx = int3(U.v).zxzx;
|
||||||
|
int4 zxzy = int3(U.v).zxzy;
|
||||||
|
int4 zxzz = int3(U.v).zxzz;
|
||||||
|
int4 zyxx = int3(U.v).zyxx;
|
||||||
|
int4 zyxy = int3(U.v).zyxy;
|
||||||
|
int4 zyxz = int3(U.v).zyxz;
|
||||||
|
int4 zyyx = int3(U.v).zyyx;
|
||||||
|
int4 zyyy = int3(U.v).zyyy;
|
||||||
|
int4 zyyz = int3(U.v).zyyz;
|
||||||
|
int4 zyzx = int3(U.v).zyzx;
|
||||||
|
int4 zyzy = int3(U.v).zyzy;
|
||||||
|
int4 zyzz = int3(U.v).zyzz;
|
||||||
|
int4 zzxx = int3(U.v).zzxx;
|
||||||
|
int4 zzxy = int3(U.v).zzxy;
|
||||||
|
int4 zzxz = int3(U.v).zzxz;
|
||||||
|
int4 zzyx = int3(U.v).zzyx;
|
||||||
|
int4 zzyy = int3(U.v).zzyy;
|
||||||
|
int4 zzyz = int3(U.v).zzyz;
|
||||||
|
int4 zzzx = int3(U.v).zzzx;
|
||||||
|
int4 zzzy = int3(U.v).zzzy;
|
||||||
|
int4 zzzz = int3(U.v).zzzz;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,772 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 508
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %U "U"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpName %v "v"
|
||||||
|
OpName %x "x"
|
||||||
|
OpName %y "y"
|
||||||
|
OpName %z "z"
|
||||||
|
OpName %xx "xx"
|
||||||
|
OpName %xy "xy"
|
||||||
|
OpName %xz "xz"
|
||||||
|
OpName %yx "yx"
|
||||||
|
OpName %yy "yy"
|
||||||
|
OpName %yz "yz"
|
||||||
|
OpName %zx "zx"
|
||||||
|
OpName %zy "zy"
|
||||||
|
OpName %zz "zz"
|
||||||
|
OpName %xxx "xxx"
|
||||||
|
OpName %xxy "xxy"
|
||||||
|
OpName %xxz "xxz"
|
||||||
|
OpName %xyx "xyx"
|
||||||
|
OpName %xyy "xyy"
|
||||||
|
OpName %xyz "xyz"
|
||||||
|
OpName %xzx "xzx"
|
||||||
|
OpName %xzy "xzy"
|
||||||
|
OpName %xzz "xzz"
|
||||||
|
OpName %yxx "yxx"
|
||||||
|
OpName %yxy "yxy"
|
||||||
|
OpName %yxz "yxz"
|
||||||
|
OpName %yyx "yyx"
|
||||||
|
OpName %yyy "yyy"
|
||||||
|
OpName %yyz "yyz"
|
||||||
|
OpName %yzx "yzx"
|
||||||
|
OpName %yzy "yzy"
|
||||||
|
OpName %yzz "yzz"
|
||||||
|
OpName %zxx "zxx"
|
||||||
|
OpName %zxy "zxy"
|
||||||
|
OpName %zxz "zxz"
|
||||||
|
OpName %zyx "zyx"
|
||||||
|
OpName %zyy "zyy"
|
||||||
|
OpName %zyz "zyz"
|
||||||
|
OpName %zzx "zzx"
|
||||||
|
OpName %zzy "zzy"
|
||||||
|
OpName %zzz "zzz"
|
||||||
|
OpName %xxxx "xxxx"
|
||||||
|
OpName %xxxy "xxxy"
|
||||||
|
OpName %xxxz "xxxz"
|
||||||
|
OpName %xxyx "xxyx"
|
||||||
|
OpName %xxyy "xxyy"
|
||||||
|
OpName %xxyz "xxyz"
|
||||||
|
OpName %xxzx "xxzx"
|
||||||
|
OpName %xxzy "xxzy"
|
||||||
|
OpName %xxzz "xxzz"
|
||||||
|
OpName %xyxx "xyxx"
|
||||||
|
OpName %xyxy "xyxy"
|
||||||
|
OpName %xyxz "xyxz"
|
||||||
|
OpName %xyyx "xyyx"
|
||||||
|
OpName %xyyy "xyyy"
|
||||||
|
OpName %xyyz "xyyz"
|
||||||
|
OpName %xyzx "xyzx"
|
||||||
|
OpName %xyzy "xyzy"
|
||||||
|
OpName %xyzz "xyzz"
|
||||||
|
OpName %xzxx "xzxx"
|
||||||
|
OpName %xzxy "xzxy"
|
||||||
|
OpName %xzxz "xzxz"
|
||||||
|
OpName %xzyx "xzyx"
|
||||||
|
OpName %xzyy "xzyy"
|
||||||
|
OpName %xzyz "xzyz"
|
||||||
|
OpName %xzzx "xzzx"
|
||||||
|
OpName %xzzy "xzzy"
|
||||||
|
OpName %xzzz "xzzz"
|
||||||
|
OpName %yxxx "yxxx"
|
||||||
|
OpName %yxxy "yxxy"
|
||||||
|
OpName %yxxz "yxxz"
|
||||||
|
OpName %yxyx "yxyx"
|
||||||
|
OpName %yxyy "yxyy"
|
||||||
|
OpName %yxyz "yxyz"
|
||||||
|
OpName %yxzx "yxzx"
|
||||||
|
OpName %yxzy "yxzy"
|
||||||
|
OpName %yxzz "yxzz"
|
||||||
|
OpName %yyxx "yyxx"
|
||||||
|
OpName %yyxy "yyxy"
|
||||||
|
OpName %yyxz "yyxz"
|
||||||
|
OpName %yyyx "yyyx"
|
||||||
|
OpName %yyyy "yyyy"
|
||||||
|
OpName %yyyz "yyyz"
|
||||||
|
OpName %yyzx "yyzx"
|
||||||
|
OpName %yyzy "yyzy"
|
||||||
|
OpName %yyzz "yyzz"
|
||||||
|
OpName %yzxx "yzxx"
|
||||||
|
OpName %yzxy "yzxy"
|
||||||
|
OpName %yzxz "yzxz"
|
||||||
|
OpName %yzyx "yzyx"
|
||||||
|
OpName %yzyy "yzyy"
|
||||||
|
OpName %yzyz "yzyz"
|
||||||
|
OpName %yzzx "yzzx"
|
||||||
|
OpName %yzzy "yzzy"
|
||||||
|
OpName %yzzz "yzzz"
|
||||||
|
OpName %zxxx "zxxx"
|
||||||
|
OpName %zxxy "zxxy"
|
||||||
|
OpName %zxxz "zxxz"
|
||||||
|
OpName %zxyx "zxyx"
|
||||||
|
OpName %zxyy "zxyy"
|
||||||
|
OpName %zxyz "zxyz"
|
||||||
|
OpName %zxzx "zxzx"
|
||||||
|
OpName %zxzy "zxzy"
|
||||||
|
OpName %zxzz "zxzz"
|
||||||
|
OpName %zyxx "zyxx"
|
||||||
|
OpName %zyxy "zyxy"
|
||||||
|
OpName %zyxz "zyxz"
|
||||||
|
OpName %zyyx "zyyx"
|
||||||
|
OpName %zyyy "zyyy"
|
||||||
|
OpName %zyyz "zyyz"
|
||||||
|
OpName %zyzx "zyzx"
|
||||||
|
OpName %zyzy "zyzy"
|
||||||
|
OpName %zyzz "zyzz"
|
||||||
|
OpName %zzxx "zzxx"
|
||||||
|
OpName %zzxy "zzxy"
|
||||||
|
OpName %zzxz "zzxz"
|
||||||
|
OpName %zzyx "zzyx"
|
||||||
|
OpName %zzyy "zzyy"
|
||||||
|
OpName %zzyz "zzyz"
|
||||||
|
OpName %zzzx "zzzx"
|
||||||
|
OpName %zzzy "zzzy"
|
||||||
|
OpName %zzzz "zzzz"
|
||||||
|
OpDecorate %S Block
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
OpDecorate %U NonWritable
|
||||||
|
OpDecorate %U DescriptorSet 0
|
||||||
|
OpDecorate %U Binding 0
|
||||||
|
%int = OpTypeInt 32 1
|
||||||
|
%v3int = OpTypeVector %int 3
|
||||||
|
%S = OpTypeStruct %v3int
|
||||||
|
%_ptr_Uniform_S = OpTypePointer Uniform %S
|
||||||
|
%U = OpVariable %_ptr_Uniform_S Uniform
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%6 = OpTypeFunction %void
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Uniform_v3int = OpTypePointer Uniform %v3int
|
||||||
|
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
||||||
|
%19 = OpConstantNull %v3int
|
||||||
|
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
||||||
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
|
%25 = OpConstantNull %int
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%v2int = OpTypeVector %int 2
|
||||||
|
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
||||||
|
%40 = OpConstantNull %v2int
|
||||||
|
%v4int = OpTypeVector %int 4
|
||||||
|
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
||||||
|
%187 = OpConstantNull %v4int
|
||||||
|
%unused_entry_point = OpFunction %void None %6
|
||||||
|
%9 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %6
|
||||||
|
%11 = OpLabel
|
||||||
|
%v = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%x = OpVariable %_ptr_Function_int Function %25
|
||||||
|
%y = OpVariable %_ptr_Function_int Function %25
|
||||||
|
%z = OpVariable %_ptr_Function_int Function %25
|
||||||
|
%xx = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%xy = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%xz = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%yx = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%yy = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%yz = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%zx = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%zy = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%zz = OpVariable %_ptr_Function_v2int Function %40
|
||||||
|
%xxx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xxy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xxz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xyx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xyy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xyz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xzx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xzy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xzz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yxx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yxy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yxz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yyx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yyy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yyz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yzx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yzy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%yzz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zxx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zxy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zxz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zyx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zyy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zyz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zzx = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zzy = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%zzz = OpVariable %_ptr_Function_v3int Function %19
|
||||||
|
%xxxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xxxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xxxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xxyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xxyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xxyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xxzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xxzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xxzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xyzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%xzzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yxzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yyzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%yzzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zxzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zyzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzxx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzxy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzxz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzyx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzyy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzyz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzzx = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzzy = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%zzzz = OpVariable %_ptr_Function_v4int Function %187
|
||||||
|
%15 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%16 = OpLoad %v3int %15
|
||||||
|
OpStore %v %16
|
||||||
|
%21 = OpAccessChain %_ptr_Uniform_int %U %uint_0 %uint_0
|
||||||
|
%22 = OpLoad %int %21
|
||||||
|
OpStore %x %22
|
||||||
|
%27 = OpAccessChain %_ptr_Uniform_int %U %uint_0 %uint_1
|
||||||
|
%28 = OpLoad %int %27
|
||||||
|
OpStore %y %28
|
||||||
|
%31 = OpAccessChain %_ptr_Uniform_int %U %uint_0 %uint_2
|
||||||
|
%32 = OpLoad %int %31
|
||||||
|
OpStore %z %32
|
||||||
|
%34 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%36 = OpLoad %v3int %34
|
||||||
|
%37 = OpVectorShuffle %v2int %36 %36 0 0
|
||||||
|
OpStore %xx %37
|
||||||
|
%41 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%42 = OpLoad %v3int %41
|
||||||
|
%43 = OpVectorShuffle %v2int %42 %42 0 1
|
||||||
|
OpStore %xy %43
|
||||||
|
%45 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%46 = OpLoad %v3int %45
|
||||||
|
%47 = OpVectorShuffle %v2int %46 %46 0 2
|
||||||
|
OpStore %xz %47
|
||||||
|
%49 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%50 = OpLoad %v3int %49
|
||||||
|
%51 = OpVectorShuffle %v2int %50 %50 1 0
|
||||||
|
OpStore %yx %51
|
||||||
|
%53 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%54 = OpLoad %v3int %53
|
||||||
|
%55 = OpVectorShuffle %v2int %54 %54 1 1
|
||||||
|
OpStore %yy %55
|
||||||
|
%57 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%58 = OpLoad %v3int %57
|
||||||
|
%59 = OpVectorShuffle %v2int %58 %58 1 2
|
||||||
|
OpStore %yz %59
|
||||||
|
%61 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%62 = OpLoad %v3int %61
|
||||||
|
%63 = OpVectorShuffle %v2int %62 %62 2 0
|
||||||
|
OpStore %zx %63
|
||||||
|
%65 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%66 = OpLoad %v3int %65
|
||||||
|
%67 = OpVectorShuffle %v2int %66 %66 2 1
|
||||||
|
OpStore %zy %67
|
||||||
|
%69 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%70 = OpLoad %v3int %69
|
||||||
|
%71 = OpVectorShuffle %v2int %70 %70 2 2
|
||||||
|
OpStore %zz %71
|
||||||
|
%73 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%74 = OpLoad %v3int %73
|
||||||
|
%75 = OpVectorShuffle %v3int %74 %74 0 0 0
|
||||||
|
OpStore %xxx %75
|
||||||
|
%77 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%78 = OpLoad %v3int %77
|
||||||
|
%79 = OpVectorShuffle %v3int %78 %78 0 0 1
|
||||||
|
OpStore %xxy %79
|
||||||
|
%81 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%82 = OpLoad %v3int %81
|
||||||
|
%83 = OpVectorShuffle %v3int %82 %82 0 0 2
|
||||||
|
OpStore %xxz %83
|
||||||
|
%85 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%86 = OpLoad %v3int %85
|
||||||
|
%87 = OpVectorShuffle %v3int %86 %86 0 1 0
|
||||||
|
OpStore %xyx %87
|
||||||
|
%89 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%90 = OpLoad %v3int %89
|
||||||
|
%91 = OpVectorShuffle %v3int %90 %90 0 1 1
|
||||||
|
OpStore %xyy %91
|
||||||
|
%93 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%94 = OpLoad %v3int %93
|
||||||
|
%95 = OpVectorShuffle %v3int %94 %94 0 1 2
|
||||||
|
OpStore %xyz %95
|
||||||
|
%97 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%98 = OpLoad %v3int %97
|
||||||
|
%99 = OpVectorShuffle %v3int %98 %98 0 2 0
|
||||||
|
OpStore %xzx %99
|
||||||
|
%101 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%102 = OpLoad %v3int %101
|
||||||
|
%103 = OpVectorShuffle %v3int %102 %102 0 2 1
|
||||||
|
OpStore %xzy %103
|
||||||
|
%105 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%106 = OpLoad %v3int %105
|
||||||
|
%107 = OpVectorShuffle %v3int %106 %106 0 2 2
|
||||||
|
OpStore %xzz %107
|
||||||
|
%109 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%110 = OpLoad %v3int %109
|
||||||
|
%111 = OpVectorShuffle %v3int %110 %110 1 0 0
|
||||||
|
OpStore %yxx %111
|
||||||
|
%113 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%114 = OpLoad %v3int %113
|
||||||
|
%115 = OpVectorShuffle %v3int %114 %114 1 0 1
|
||||||
|
OpStore %yxy %115
|
||||||
|
%117 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%118 = OpLoad %v3int %117
|
||||||
|
%119 = OpVectorShuffle %v3int %118 %118 1 0 2
|
||||||
|
OpStore %yxz %119
|
||||||
|
%121 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%122 = OpLoad %v3int %121
|
||||||
|
%123 = OpVectorShuffle %v3int %122 %122 1 1 0
|
||||||
|
OpStore %yyx %123
|
||||||
|
%125 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%126 = OpLoad %v3int %125
|
||||||
|
%127 = OpVectorShuffle %v3int %126 %126 1 1 1
|
||||||
|
OpStore %yyy %127
|
||||||
|
%129 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%130 = OpLoad %v3int %129
|
||||||
|
%131 = OpVectorShuffle %v3int %130 %130 1 1 2
|
||||||
|
OpStore %yyz %131
|
||||||
|
%133 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%134 = OpLoad %v3int %133
|
||||||
|
%135 = OpVectorShuffle %v3int %134 %134 1 2 0
|
||||||
|
OpStore %yzx %135
|
||||||
|
%137 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%138 = OpLoad %v3int %137
|
||||||
|
%139 = OpVectorShuffle %v3int %138 %138 1 2 1
|
||||||
|
OpStore %yzy %139
|
||||||
|
%141 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%142 = OpLoad %v3int %141
|
||||||
|
%143 = OpVectorShuffle %v3int %142 %142 1 2 2
|
||||||
|
OpStore %yzz %143
|
||||||
|
%145 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%146 = OpLoad %v3int %145
|
||||||
|
%147 = OpVectorShuffle %v3int %146 %146 2 0 0
|
||||||
|
OpStore %zxx %147
|
||||||
|
%149 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%150 = OpLoad %v3int %149
|
||||||
|
%151 = OpVectorShuffle %v3int %150 %150 2 0 1
|
||||||
|
OpStore %zxy %151
|
||||||
|
%153 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%154 = OpLoad %v3int %153
|
||||||
|
%155 = OpVectorShuffle %v3int %154 %154 2 0 2
|
||||||
|
OpStore %zxz %155
|
||||||
|
%157 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%158 = OpLoad %v3int %157
|
||||||
|
%159 = OpVectorShuffle %v3int %158 %158 2 1 0
|
||||||
|
OpStore %zyx %159
|
||||||
|
%161 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%162 = OpLoad %v3int %161
|
||||||
|
%163 = OpVectorShuffle %v3int %162 %162 2 1 1
|
||||||
|
OpStore %zyy %163
|
||||||
|
%165 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%166 = OpLoad %v3int %165
|
||||||
|
%167 = OpVectorShuffle %v3int %166 %166 2 1 2
|
||||||
|
OpStore %zyz %167
|
||||||
|
%169 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%170 = OpLoad %v3int %169
|
||||||
|
%171 = OpVectorShuffle %v3int %170 %170 2 2 0
|
||||||
|
OpStore %zzx %171
|
||||||
|
%173 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%174 = OpLoad %v3int %173
|
||||||
|
%175 = OpVectorShuffle %v3int %174 %174 2 2 1
|
||||||
|
OpStore %zzy %175
|
||||||
|
%177 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%178 = OpLoad %v3int %177
|
||||||
|
%179 = OpVectorShuffle %v3int %178 %178 2 2 2
|
||||||
|
OpStore %zzz %179
|
||||||
|
%181 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%183 = OpLoad %v3int %181
|
||||||
|
%184 = OpVectorShuffle %v4int %183 %183 0 0 0 0
|
||||||
|
OpStore %xxxx %184
|
||||||
|
%188 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%189 = OpLoad %v3int %188
|
||||||
|
%190 = OpVectorShuffle %v4int %189 %189 0 0 0 1
|
||||||
|
OpStore %xxxy %190
|
||||||
|
%192 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%193 = OpLoad %v3int %192
|
||||||
|
%194 = OpVectorShuffle %v4int %193 %193 0 0 0 2
|
||||||
|
OpStore %xxxz %194
|
||||||
|
%196 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%197 = OpLoad %v3int %196
|
||||||
|
%198 = OpVectorShuffle %v4int %197 %197 0 0 1 0
|
||||||
|
OpStore %xxyx %198
|
||||||
|
%200 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%201 = OpLoad %v3int %200
|
||||||
|
%202 = OpVectorShuffle %v4int %201 %201 0 0 1 1
|
||||||
|
OpStore %xxyy %202
|
||||||
|
%204 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%205 = OpLoad %v3int %204
|
||||||
|
%206 = OpVectorShuffle %v4int %205 %205 0 0 1 2
|
||||||
|
OpStore %xxyz %206
|
||||||
|
%208 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%209 = OpLoad %v3int %208
|
||||||
|
%210 = OpVectorShuffle %v4int %209 %209 0 0 2 0
|
||||||
|
OpStore %xxzx %210
|
||||||
|
%212 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%213 = OpLoad %v3int %212
|
||||||
|
%214 = OpVectorShuffle %v4int %213 %213 0 0 2 1
|
||||||
|
OpStore %xxzy %214
|
||||||
|
%216 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%217 = OpLoad %v3int %216
|
||||||
|
%218 = OpVectorShuffle %v4int %217 %217 0 0 2 2
|
||||||
|
OpStore %xxzz %218
|
||||||
|
%220 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%221 = OpLoad %v3int %220
|
||||||
|
%222 = OpVectorShuffle %v4int %221 %221 0 1 0 0
|
||||||
|
OpStore %xyxx %222
|
||||||
|
%224 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%225 = OpLoad %v3int %224
|
||||||
|
%226 = OpVectorShuffle %v4int %225 %225 0 1 0 1
|
||||||
|
OpStore %xyxy %226
|
||||||
|
%228 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%229 = OpLoad %v3int %228
|
||||||
|
%230 = OpVectorShuffle %v4int %229 %229 0 1 0 2
|
||||||
|
OpStore %xyxz %230
|
||||||
|
%232 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%233 = OpLoad %v3int %232
|
||||||
|
%234 = OpVectorShuffle %v4int %233 %233 0 1 1 0
|
||||||
|
OpStore %xyyx %234
|
||||||
|
%236 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%237 = OpLoad %v3int %236
|
||||||
|
%238 = OpVectorShuffle %v4int %237 %237 0 1 1 1
|
||||||
|
OpStore %xyyy %238
|
||||||
|
%240 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%241 = OpLoad %v3int %240
|
||||||
|
%242 = OpVectorShuffle %v4int %241 %241 0 1 1 2
|
||||||
|
OpStore %xyyz %242
|
||||||
|
%244 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%245 = OpLoad %v3int %244
|
||||||
|
%246 = OpVectorShuffle %v4int %245 %245 0 1 2 0
|
||||||
|
OpStore %xyzx %246
|
||||||
|
%248 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%249 = OpLoad %v3int %248
|
||||||
|
%250 = OpVectorShuffle %v4int %249 %249 0 1 2 1
|
||||||
|
OpStore %xyzy %250
|
||||||
|
%252 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%253 = OpLoad %v3int %252
|
||||||
|
%254 = OpVectorShuffle %v4int %253 %253 0 1 2 2
|
||||||
|
OpStore %xyzz %254
|
||||||
|
%256 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%257 = OpLoad %v3int %256
|
||||||
|
%258 = OpVectorShuffle %v4int %257 %257 0 2 0 0
|
||||||
|
OpStore %xzxx %258
|
||||||
|
%260 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%261 = OpLoad %v3int %260
|
||||||
|
%262 = OpVectorShuffle %v4int %261 %261 0 2 0 1
|
||||||
|
OpStore %xzxy %262
|
||||||
|
%264 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%265 = OpLoad %v3int %264
|
||||||
|
%266 = OpVectorShuffle %v4int %265 %265 0 2 0 2
|
||||||
|
OpStore %xzxz %266
|
||||||
|
%268 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%269 = OpLoad %v3int %268
|
||||||
|
%270 = OpVectorShuffle %v4int %269 %269 0 2 1 0
|
||||||
|
OpStore %xzyx %270
|
||||||
|
%272 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%273 = OpLoad %v3int %272
|
||||||
|
%274 = OpVectorShuffle %v4int %273 %273 0 2 1 1
|
||||||
|
OpStore %xzyy %274
|
||||||
|
%276 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%277 = OpLoad %v3int %276
|
||||||
|
%278 = OpVectorShuffle %v4int %277 %277 0 2 1 2
|
||||||
|
OpStore %xzyz %278
|
||||||
|
%280 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%281 = OpLoad %v3int %280
|
||||||
|
%282 = OpVectorShuffle %v4int %281 %281 0 2 2 0
|
||||||
|
OpStore %xzzx %282
|
||||||
|
%284 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%285 = OpLoad %v3int %284
|
||||||
|
%286 = OpVectorShuffle %v4int %285 %285 0 2 2 1
|
||||||
|
OpStore %xzzy %286
|
||||||
|
%288 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%289 = OpLoad %v3int %288
|
||||||
|
%290 = OpVectorShuffle %v4int %289 %289 0 2 2 2
|
||||||
|
OpStore %xzzz %290
|
||||||
|
%292 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%293 = OpLoad %v3int %292
|
||||||
|
%294 = OpVectorShuffle %v4int %293 %293 1 0 0 0
|
||||||
|
OpStore %yxxx %294
|
||||||
|
%296 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%297 = OpLoad %v3int %296
|
||||||
|
%298 = OpVectorShuffle %v4int %297 %297 1 0 0 1
|
||||||
|
OpStore %yxxy %298
|
||||||
|
%300 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%301 = OpLoad %v3int %300
|
||||||
|
%302 = OpVectorShuffle %v4int %301 %301 1 0 0 2
|
||||||
|
OpStore %yxxz %302
|
||||||
|
%304 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%305 = OpLoad %v3int %304
|
||||||
|
%306 = OpVectorShuffle %v4int %305 %305 1 0 1 0
|
||||||
|
OpStore %yxyx %306
|
||||||
|
%308 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%309 = OpLoad %v3int %308
|
||||||
|
%310 = OpVectorShuffle %v4int %309 %309 1 0 1 1
|
||||||
|
OpStore %yxyy %310
|
||||||
|
%312 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%313 = OpLoad %v3int %312
|
||||||
|
%314 = OpVectorShuffle %v4int %313 %313 1 0 1 2
|
||||||
|
OpStore %yxyz %314
|
||||||
|
%316 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%317 = OpLoad %v3int %316
|
||||||
|
%318 = OpVectorShuffle %v4int %317 %317 1 0 2 0
|
||||||
|
OpStore %yxzx %318
|
||||||
|
%320 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%321 = OpLoad %v3int %320
|
||||||
|
%322 = OpVectorShuffle %v4int %321 %321 1 0 2 1
|
||||||
|
OpStore %yxzy %322
|
||||||
|
%324 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%325 = OpLoad %v3int %324
|
||||||
|
%326 = OpVectorShuffle %v4int %325 %325 1 0 2 2
|
||||||
|
OpStore %yxzz %326
|
||||||
|
%328 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%329 = OpLoad %v3int %328
|
||||||
|
%330 = OpVectorShuffle %v4int %329 %329 1 1 0 0
|
||||||
|
OpStore %yyxx %330
|
||||||
|
%332 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%333 = OpLoad %v3int %332
|
||||||
|
%334 = OpVectorShuffle %v4int %333 %333 1 1 0 1
|
||||||
|
OpStore %yyxy %334
|
||||||
|
%336 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%337 = OpLoad %v3int %336
|
||||||
|
%338 = OpVectorShuffle %v4int %337 %337 1 1 0 2
|
||||||
|
OpStore %yyxz %338
|
||||||
|
%340 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%341 = OpLoad %v3int %340
|
||||||
|
%342 = OpVectorShuffle %v4int %341 %341 1 1 1 0
|
||||||
|
OpStore %yyyx %342
|
||||||
|
%344 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%345 = OpLoad %v3int %344
|
||||||
|
%346 = OpVectorShuffle %v4int %345 %345 1 1 1 1
|
||||||
|
OpStore %yyyy %346
|
||||||
|
%348 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%349 = OpLoad %v3int %348
|
||||||
|
%350 = OpVectorShuffle %v4int %349 %349 1 1 1 2
|
||||||
|
OpStore %yyyz %350
|
||||||
|
%352 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%353 = OpLoad %v3int %352
|
||||||
|
%354 = OpVectorShuffle %v4int %353 %353 1 1 2 0
|
||||||
|
OpStore %yyzx %354
|
||||||
|
%356 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%357 = OpLoad %v3int %356
|
||||||
|
%358 = OpVectorShuffle %v4int %357 %357 1 1 2 1
|
||||||
|
OpStore %yyzy %358
|
||||||
|
%360 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%361 = OpLoad %v3int %360
|
||||||
|
%362 = OpVectorShuffle %v4int %361 %361 1 1 2 2
|
||||||
|
OpStore %yyzz %362
|
||||||
|
%364 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%365 = OpLoad %v3int %364
|
||||||
|
%366 = OpVectorShuffle %v4int %365 %365 1 2 0 0
|
||||||
|
OpStore %yzxx %366
|
||||||
|
%368 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%369 = OpLoad %v3int %368
|
||||||
|
%370 = OpVectorShuffle %v4int %369 %369 1 2 0 1
|
||||||
|
OpStore %yzxy %370
|
||||||
|
%372 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%373 = OpLoad %v3int %372
|
||||||
|
%374 = OpVectorShuffle %v4int %373 %373 1 2 0 2
|
||||||
|
OpStore %yzxz %374
|
||||||
|
%376 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%377 = OpLoad %v3int %376
|
||||||
|
%378 = OpVectorShuffle %v4int %377 %377 1 2 1 0
|
||||||
|
OpStore %yzyx %378
|
||||||
|
%380 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%381 = OpLoad %v3int %380
|
||||||
|
%382 = OpVectorShuffle %v4int %381 %381 1 2 1 1
|
||||||
|
OpStore %yzyy %382
|
||||||
|
%384 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%385 = OpLoad %v3int %384
|
||||||
|
%386 = OpVectorShuffle %v4int %385 %385 1 2 1 2
|
||||||
|
OpStore %yzyz %386
|
||||||
|
%388 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%389 = OpLoad %v3int %388
|
||||||
|
%390 = OpVectorShuffle %v4int %389 %389 1 2 2 0
|
||||||
|
OpStore %yzzx %390
|
||||||
|
%392 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%393 = OpLoad %v3int %392
|
||||||
|
%394 = OpVectorShuffle %v4int %393 %393 1 2 2 1
|
||||||
|
OpStore %yzzy %394
|
||||||
|
%396 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%397 = OpLoad %v3int %396
|
||||||
|
%398 = OpVectorShuffle %v4int %397 %397 1 2 2 2
|
||||||
|
OpStore %yzzz %398
|
||||||
|
%400 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%401 = OpLoad %v3int %400
|
||||||
|
%402 = OpVectorShuffle %v4int %401 %401 2 0 0 0
|
||||||
|
OpStore %zxxx %402
|
||||||
|
%404 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%405 = OpLoad %v3int %404
|
||||||
|
%406 = OpVectorShuffle %v4int %405 %405 2 0 0 1
|
||||||
|
OpStore %zxxy %406
|
||||||
|
%408 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%409 = OpLoad %v3int %408
|
||||||
|
%410 = OpVectorShuffle %v4int %409 %409 2 0 0 2
|
||||||
|
OpStore %zxxz %410
|
||||||
|
%412 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%413 = OpLoad %v3int %412
|
||||||
|
%414 = OpVectorShuffle %v4int %413 %413 2 0 1 0
|
||||||
|
OpStore %zxyx %414
|
||||||
|
%416 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%417 = OpLoad %v3int %416
|
||||||
|
%418 = OpVectorShuffle %v4int %417 %417 2 0 1 1
|
||||||
|
OpStore %zxyy %418
|
||||||
|
%420 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%421 = OpLoad %v3int %420
|
||||||
|
%422 = OpVectorShuffle %v4int %421 %421 2 0 1 2
|
||||||
|
OpStore %zxyz %422
|
||||||
|
%424 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%425 = OpLoad %v3int %424
|
||||||
|
%426 = OpVectorShuffle %v4int %425 %425 2 0 2 0
|
||||||
|
OpStore %zxzx %426
|
||||||
|
%428 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%429 = OpLoad %v3int %428
|
||||||
|
%430 = OpVectorShuffle %v4int %429 %429 2 0 2 1
|
||||||
|
OpStore %zxzy %430
|
||||||
|
%432 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%433 = OpLoad %v3int %432
|
||||||
|
%434 = OpVectorShuffle %v4int %433 %433 2 0 2 2
|
||||||
|
OpStore %zxzz %434
|
||||||
|
%436 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%437 = OpLoad %v3int %436
|
||||||
|
%438 = OpVectorShuffle %v4int %437 %437 2 1 0 0
|
||||||
|
OpStore %zyxx %438
|
||||||
|
%440 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%441 = OpLoad %v3int %440
|
||||||
|
%442 = OpVectorShuffle %v4int %441 %441 2 1 0 1
|
||||||
|
OpStore %zyxy %442
|
||||||
|
%444 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%445 = OpLoad %v3int %444
|
||||||
|
%446 = OpVectorShuffle %v4int %445 %445 2 1 0 2
|
||||||
|
OpStore %zyxz %446
|
||||||
|
%448 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%449 = OpLoad %v3int %448
|
||||||
|
%450 = OpVectorShuffle %v4int %449 %449 2 1 1 0
|
||||||
|
OpStore %zyyx %450
|
||||||
|
%452 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%453 = OpLoad %v3int %452
|
||||||
|
%454 = OpVectorShuffle %v4int %453 %453 2 1 1 1
|
||||||
|
OpStore %zyyy %454
|
||||||
|
%456 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%457 = OpLoad %v3int %456
|
||||||
|
%458 = OpVectorShuffle %v4int %457 %457 2 1 1 2
|
||||||
|
OpStore %zyyz %458
|
||||||
|
%460 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%461 = OpLoad %v3int %460
|
||||||
|
%462 = OpVectorShuffle %v4int %461 %461 2 1 2 0
|
||||||
|
OpStore %zyzx %462
|
||||||
|
%464 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%465 = OpLoad %v3int %464
|
||||||
|
%466 = OpVectorShuffle %v4int %465 %465 2 1 2 1
|
||||||
|
OpStore %zyzy %466
|
||||||
|
%468 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%469 = OpLoad %v3int %468
|
||||||
|
%470 = OpVectorShuffle %v4int %469 %469 2 1 2 2
|
||||||
|
OpStore %zyzz %470
|
||||||
|
%472 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%473 = OpLoad %v3int %472
|
||||||
|
%474 = OpVectorShuffle %v4int %473 %473 2 2 0 0
|
||||||
|
OpStore %zzxx %474
|
||||||
|
%476 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%477 = OpLoad %v3int %476
|
||||||
|
%478 = OpVectorShuffle %v4int %477 %477 2 2 0 1
|
||||||
|
OpStore %zzxy %478
|
||||||
|
%480 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%481 = OpLoad %v3int %480
|
||||||
|
%482 = OpVectorShuffle %v4int %481 %481 2 2 0 2
|
||||||
|
OpStore %zzxz %482
|
||||||
|
%484 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%485 = OpLoad %v3int %484
|
||||||
|
%486 = OpVectorShuffle %v4int %485 %485 2 2 1 0
|
||||||
|
OpStore %zzyx %486
|
||||||
|
%488 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%489 = OpLoad %v3int %488
|
||||||
|
%490 = OpVectorShuffle %v4int %489 %489 2 2 1 1
|
||||||
|
OpStore %zzyy %490
|
||||||
|
%492 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%493 = OpLoad %v3int %492
|
||||||
|
%494 = OpVectorShuffle %v4int %493 %493 2 2 1 2
|
||||||
|
OpStore %zzyz %494
|
||||||
|
%496 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%497 = OpLoad %v3int %496
|
||||||
|
%498 = OpVectorShuffle %v4int %497 %497 2 2 2 0
|
||||||
|
OpStore %zzzx %498
|
||||||
|
%500 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%501 = OpLoad %v3int %500
|
||||||
|
%502 = OpVectorShuffle %v4int %501 %501 2 2 2 1
|
||||||
|
OpStore %zzzy %502
|
||||||
|
%504 = OpAccessChain %_ptr_Uniform_v3int %U %uint_0
|
||||||
|
%505 = OpLoad %v3int %504
|
||||||
|
%506 = OpVectorShuffle %v4int %505 %505 2 2 2 2
|
||||||
|
OpStore %zzzz %506
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,130 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v : vec3<i32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<uniform> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = U.v;
|
||||||
|
var x = U.v.x;
|
||||||
|
var y = U.v.y;
|
||||||
|
var z = U.v.z;
|
||||||
|
var xx = U.v.xx;
|
||||||
|
var xy = U.v.xy;
|
||||||
|
var xz = U.v.xz;
|
||||||
|
var yx = U.v.yx;
|
||||||
|
var yy = U.v.yy;
|
||||||
|
var yz = U.v.yz;
|
||||||
|
var zx = U.v.zx;
|
||||||
|
var zy = U.v.zy;
|
||||||
|
var zz = U.v.zz;
|
||||||
|
var xxx = U.v.xxx;
|
||||||
|
var xxy = U.v.xxy;
|
||||||
|
var xxz = U.v.xxz;
|
||||||
|
var xyx = U.v.xyx;
|
||||||
|
var xyy = U.v.xyy;
|
||||||
|
var xyz = U.v.xyz;
|
||||||
|
var xzx = U.v.xzx;
|
||||||
|
var xzy = U.v.xzy;
|
||||||
|
var xzz = U.v.xzz;
|
||||||
|
var yxx = U.v.yxx;
|
||||||
|
var yxy = U.v.yxy;
|
||||||
|
var yxz = U.v.yxz;
|
||||||
|
var yyx = U.v.yyx;
|
||||||
|
var yyy = U.v.yyy;
|
||||||
|
var yyz = U.v.yyz;
|
||||||
|
var yzx = U.v.yzx;
|
||||||
|
var yzy = U.v.yzy;
|
||||||
|
var yzz = U.v.yzz;
|
||||||
|
var zxx = U.v.zxx;
|
||||||
|
var zxy = U.v.zxy;
|
||||||
|
var zxz = U.v.zxz;
|
||||||
|
var zyx = U.v.zyx;
|
||||||
|
var zyy = U.v.zyy;
|
||||||
|
var zyz = U.v.zyz;
|
||||||
|
var zzx = U.v.zzx;
|
||||||
|
var zzy = U.v.zzy;
|
||||||
|
var zzz = U.v.zzz;
|
||||||
|
var xxxx = U.v.xxxx;
|
||||||
|
var xxxy = U.v.xxxy;
|
||||||
|
var xxxz = U.v.xxxz;
|
||||||
|
var xxyx = U.v.xxyx;
|
||||||
|
var xxyy = U.v.xxyy;
|
||||||
|
var xxyz = U.v.xxyz;
|
||||||
|
var xxzx = U.v.xxzx;
|
||||||
|
var xxzy = U.v.xxzy;
|
||||||
|
var xxzz = U.v.xxzz;
|
||||||
|
var xyxx = U.v.xyxx;
|
||||||
|
var xyxy = U.v.xyxy;
|
||||||
|
var xyxz = U.v.xyxz;
|
||||||
|
var xyyx = U.v.xyyx;
|
||||||
|
var xyyy = U.v.xyyy;
|
||||||
|
var xyyz = U.v.xyyz;
|
||||||
|
var xyzx = U.v.xyzx;
|
||||||
|
var xyzy = U.v.xyzy;
|
||||||
|
var xyzz = U.v.xyzz;
|
||||||
|
var xzxx = U.v.xzxx;
|
||||||
|
var xzxy = U.v.xzxy;
|
||||||
|
var xzxz = U.v.xzxz;
|
||||||
|
var xzyx = U.v.xzyx;
|
||||||
|
var xzyy = U.v.xzyy;
|
||||||
|
var xzyz = U.v.xzyz;
|
||||||
|
var xzzx = U.v.xzzx;
|
||||||
|
var xzzy = U.v.xzzy;
|
||||||
|
var xzzz = U.v.xzzz;
|
||||||
|
var yxxx = U.v.yxxx;
|
||||||
|
var yxxy = U.v.yxxy;
|
||||||
|
var yxxz = U.v.yxxz;
|
||||||
|
var yxyx = U.v.yxyx;
|
||||||
|
var yxyy = U.v.yxyy;
|
||||||
|
var yxyz = U.v.yxyz;
|
||||||
|
var yxzx = U.v.yxzx;
|
||||||
|
var yxzy = U.v.yxzy;
|
||||||
|
var yxzz = U.v.yxzz;
|
||||||
|
var yyxx = U.v.yyxx;
|
||||||
|
var yyxy = U.v.yyxy;
|
||||||
|
var yyxz = U.v.yyxz;
|
||||||
|
var yyyx = U.v.yyyx;
|
||||||
|
var yyyy = U.v.yyyy;
|
||||||
|
var yyyz = U.v.yyyz;
|
||||||
|
var yyzx = U.v.yyzx;
|
||||||
|
var yyzy = U.v.yyzy;
|
||||||
|
var yyzz = U.v.yyzz;
|
||||||
|
var yzxx = U.v.yzxx;
|
||||||
|
var yzxy = U.v.yzxy;
|
||||||
|
var yzxz = U.v.yzxz;
|
||||||
|
var yzyx = U.v.yzyx;
|
||||||
|
var yzyy = U.v.yzyy;
|
||||||
|
var yzyz = U.v.yzyz;
|
||||||
|
var yzzx = U.v.yzzx;
|
||||||
|
var yzzy = U.v.yzzy;
|
||||||
|
var yzzz = U.v.yzzz;
|
||||||
|
var zxxx = U.v.zxxx;
|
||||||
|
var zxxy = U.v.zxxy;
|
||||||
|
var zxxz = U.v.zxxz;
|
||||||
|
var zxyx = U.v.zxyx;
|
||||||
|
var zxyy = U.v.zxyy;
|
||||||
|
var zxyz = U.v.zxyz;
|
||||||
|
var zxzx = U.v.zxzx;
|
||||||
|
var zxzy = U.v.zxzy;
|
||||||
|
var zxzz = U.v.zxzz;
|
||||||
|
var zyxx = U.v.zyxx;
|
||||||
|
var zyxy = U.v.zyxy;
|
||||||
|
var zyxz = U.v.zyxz;
|
||||||
|
var zyyx = U.v.zyyx;
|
||||||
|
var zyyy = U.v.zyyy;
|
||||||
|
var zyyz = U.v.zyyz;
|
||||||
|
var zyzx = U.v.zyzx;
|
||||||
|
var zyzy = U.v.zyzy;
|
||||||
|
var zyzz = U.v.zyzz;
|
||||||
|
var zzxx = U.v.zzxx;
|
||||||
|
var zzxy = U.v.zzxy;
|
||||||
|
var zzxz = U.v.zzxz;
|
||||||
|
var zzyx = U.v.zzyx;
|
||||||
|
var zzyy = U.v.zzyy;
|
||||||
|
var zzyz = U.v.zzyz;
|
||||||
|
var zzzx = U.v.zzzx;
|
||||||
|
var zzzy = U.v.zzzy;
|
||||||
|
var zzzz = U.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,144 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v: vec3<u32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<uniform> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = U.v;
|
||||||
|
|
||||||
|
var x = U.v.x;
|
||||||
|
var y = U.v.y;
|
||||||
|
var z = U.v.z;
|
||||||
|
|
||||||
|
var xx = U.v.xx;
|
||||||
|
var xy = U.v.xy;
|
||||||
|
var xz = U.v.xz;
|
||||||
|
var yx = U.v.yx;
|
||||||
|
var yy = U.v.yy;
|
||||||
|
var yz = U.v.yz;
|
||||||
|
var zx = U.v.zx;
|
||||||
|
var zy = U.v.zy;
|
||||||
|
var zz = U.v.zz;
|
||||||
|
|
||||||
|
var xxx = U.v.xxx;
|
||||||
|
var xxy = U.v.xxy;
|
||||||
|
var xxz = U.v.xxz;
|
||||||
|
var xyx = U.v.xyx;
|
||||||
|
var xyy = U.v.xyy;
|
||||||
|
var xyz = U.v.xyz;
|
||||||
|
var xzx = U.v.xzx;
|
||||||
|
var xzy = U.v.xzy;
|
||||||
|
var xzz = U.v.xzz;
|
||||||
|
|
||||||
|
var yxx = U.v.yxx;
|
||||||
|
var yxy = U.v.yxy;
|
||||||
|
var yxz = U.v.yxz;
|
||||||
|
var yyx = U.v.yyx;
|
||||||
|
var yyy = U.v.yyy;
|
||||||
|
var yyz = U.v.yyz;
|
||||||
|
var yzx = U.v.yzx;
|
||||||
|
var yzy = U.v.yzy;
|
||||||
|
var yzz = U.v.yzz;
|
||||||
|
|
||||||
|
var zxx = U.v.zxx;
|
||||||
|
var zxy = U.v.zxy;
|
||||||
|
var zxz = U.v.zxz;
|
||||||
|
var zyx = U.v.zyx;
|
||||||
|
var zyy = U.v.zyy;
|
||||||
|
var zyz = U.v.zyz;
|
||||||
|
var zzx = U.v.zzx;
|
||||||
|
var zzy = U.v.zzy;
|
||||||
|
var zzz = U.v.zzz;
|
||||||
|
|
||||||
|
var xxxx = U.v.xxxx;
|
||||||
|
var xxxy = U.v.xxxy;
|
||||||
|
var xxxz = U.v.xxxz;
|
||||||
|
var xxyx = U.v.xxyx;
|
||||||
|
var xxyy = U.v.xxyy;
|
||||||
|
var xxyz = U.v.xxyz;
|
||||||
|
var xxzx = U.v.xxzx;
|
||||||
|
var xxzy = U.v.xxzy;
|
||||||
|
var xxzz = U.v.xxzz;
|
||||||
|
|
||||||
|
var xyxx = U.v.xyxx;
|
||||||
|
var xyxy = U.v.xyxy;
|
||||||
|
var xyxz = U.v.xyxz;
|
||||||
|
var xyyx = U.v.xyyx;
|
||||||
|
var xyyy = U.v.xyyy;
|
||||||
|
var xyyz = U.v.xyyz;
|
||||||
|
var xyzx = U.v.xyzx;
|
||||||
|
var xyzy = U.v.xyzy;
|
||||||
|
var xyzz = U.v.xyzz;
|
||||||
|
|
||||||
|
var xzxx = U.v.xzxx;
|
||||||
|
var xzxy = U.v.xzxy;
|
||||||
|
var xzxz = U.v.xzxz;
|
||||||
|
var xzyx = U.v.xzyx;
|
||||||
|
var xzyy = U.v.xzyy;
|
||||||
|
var xzyz = U.v.xzyz;
|
||||||
|
var xzzx = U.v.xzzx;
|
||||||
|
var xzzy = U.v.xzzy;
|
||||||
|
var xzzz = U.v.xzzz;
|
||||||
|
|
||||||
|
var yxxx = U.v.yxxx;
|
||||||
|
var yxxy = U.v.yxxy;
|
||||||
|
var yxxz = U.v.yxxz;
|
||||||
|
var yxyx = U.v.yxyx;
|
||||||
|
var yxyy = U.v.yxyy;
|
||||||
|
var yxyz = U.v.yxyz;
|
||||||
|
var yxzx = U.v.yxzx;
|
||||||
|
var yxzy = U.v.yxzy;
|
||||||
|
var yxzz = U.v.yxzz;
|
||||||
|
|
||||||
|
var yyxx = U.v.yyxx;
|
||||||
|
var yyxy = U.v.yyxy;
|
||||||
|
var yyxz = U.v.yyxz;
|
||||||
|
var yyyx = U.v.yyyx;
|
||||||
|
var yyyy = U.v.yyyy;
|
||||||
|
var yyyz = U.v.yyyz;
|
||||||
|
var yyzx = U.v.yyzx;
|
||||||
|
var yyzy = U.v.yyzy;
|
||||||
|
var yyzz = U.v.yyzz;
|
||||||
|
|
||||||
|
var yzxx = U.v.yzxx;
|
||||||
|
var yzxy = U.v.yzxy;
|
||||||
|
var yzxz = U.v.yzxz;
|
||||||
|
var yzyx = U.v.yzyx;
|
||||||
|
var yzyy = U.v.yzyy;
|
||||||
|
var yzyz = U.v.yzyz;
|
||||||
|
var yzzx = U.v.yzzx;
|
||||||
|
var yzzy = U.v.yzzy;
|
||||||
|
var yzzz = U.v.yzzz;
|
||||||
|
|
||||||
|
var zxxx = U.v.zxxx;
|
||||||
|
var zxxy = U.v.zxxy;
|
||||||
|
var zxxz = U.v.zxxz;
|
||||||
|
var zxyx = U.v.zxyx;
|
||||||
|
var zxyy = U.v.zxyy;
|
||||||
|
var zxyz = U.v.zxyz;
|
||||||
|
var zxzx = U.v.zxzx;
|
||||||
|
var zxzy = U.v.zxzy;
|
||||||
|
var zxzz = U.v.zxzz;
|
||||||
|
|
||||||
|
var zyxx = U.v.zyxx;
|
||||||
|
var zyxy = U.v.zyxy;
|
||||||
|
var zyxz = U.v.zyxz;
|
||||||
|
var zyyx = U.v.zyyx;
|
||||||
|
var zyyy = U.v.zyyy;
|
||||||
|
var zyyz = U.v.zyyz;
|
||||||
|
var zyzx = U.v.zyzx;
|
||||||
|
var zyzy = U.v.zyzy;
|
||||||
|
var zyzz = U.v.zyzz;
|
||||||
|
|
||||||
|
var zzxx = U.v.zzxx;
|
||||||
|
var zzxy = U.v.zzxy;
|
||||||
|
var zzxz = U.v.zzxz;
|
||||||
|
var zzyx = U.v.zzyx;
|
||||||
|
var zzyy = U.v.zzyy;
|
||||||
|
var zzyz = U.v.zzyz;
|
||||||
|
var zzzx = U.v.zzzx;
|
||||||
|
var zzzy = U.v.zzzy;
|
||||||
|
var zzzz = U.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cbuffer cbuffer_U : register(b0, space0) {
|
||||||
|
uint4 U[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
uint3 v = U[0].xyz;
|
||||||
|
uint x = U[0].x;
|
||||||
|
uint y = U[0].y;
|
||||||
|
uint z = U[0].z;
|
||||||
|
uint2 xx = U[0].xyz.xx;
|
||||||
|
uint2 xy = U[0].xyz.xy;
|
||||||
|
uint2 xz = U[0].xyz.xz;
|
||||||
|
uint2 yx = U[0].xyz.yx;
|
||||||
|
uint2 yy = U[0].xyz.yy;
|
||||||
|
uint2 yz = U[0].xyz.yz;
|
||||||
|
uint2 zx = U[0].xyz.zx;
|
||||||
|
uint2 zy = U[0].xyz.zy;
|
||||||
|
uint2 zz = U[0].xyz.zz;
|
||||||
|
uint3 xxx = U[0].xyz.xxx;
|
||||||
|
uint3 xxy = U[0].xyz.xxy;
|
||||||
|
uint3 xxz = U[0].xyz.xxz;
|
||||||
|
uint3 xyx = U[0].xyz.xyx;
|
||||||
|
uint3 xyy = U[0].xyz.xyy;
|
||||||
|
uint3 xyz = U[0].xyz.xyz;
|
||||||
|
uint3 xzx = U[0].xyz.xzx;
|
||||||
|
uint3 xzy = U[0].xyz.xzy;
|
||||||
|
uint3 xzz = U[0].xyz.xzz;
|
||||||
|
uint3 yxx = U[0].xyz.yxx;
|
||||||
|
uint3 yxy = U[0].xyz.yxy;
|
||||||
|
uint3 yxz = U[0].xyz.yxz;
|
||||||
|
uint3 yyx = U[0].xyz.yyx;
|
||||||
|
uint3 yyy = U[0].xyz.yyy;
|
||||||
|
uint3 yyz = U[0].xyz.yyz;
|
||||||
|
uint3 yzx = U[0].xyz.yzx;
|
||||||
|
uint3 yzy = U[0].xyz.yzy;
|
||||||
|
uint3 yzz = U[0].xyz.yzz;
|
||||||
|
uint3 zxx = U[0].xyz.zxx;
|
||||||
|
uint3 zxy = U[0].xyz.zxy;
|
||||||
|
uint3 zxz = U[0].xyz.zxz;
|
||||||
|
uint3 zyx = U[0].xyz.zyx;
|
||||||
|
uint3 zyy = U[0].xyz.zyy;
|
||||||
|
uint3 zyz = U[0].xyz.zyz;
|
||||||
|
uint3 zzx = U[0].xyz.zzx;
|
||||||
|
uint3 zzy = U[0].xyz.zzy;
|
||||||
|
uint3 zzz = U[0].xyz.zzz;
|
||||||
|
uint4 xxxx = U[0].xyz.xxxx;
|
||||||
|
uint4 xxxy = U[0].xyz.xxxy;
|
||||||
|
uint4 xxxz = U[0].xyz.xxxz;
|
||||||
|
uint4 xxyx = U[0].xyz.xxyx;
|
||||||
|
uint4 xxyy = U[0].xyz.xxyy;
|
||||||
|
uint4 xxyz = U[0].xyz.xxyz;
|
||||||
|
uint4 xxzx = U[0].xyz.xxzx;
|
||||||
|
uint4 xxzy = U[0].xyz.xxzy;
|
||||||
|
uint4 xxzz = U[0].xyz.xxzz;
|
||||||
|
uint4 xyxx = U[0].xyz.xyxx;
|
||||||
|
uint4 xyxy = U[0].xyz.xyxy;
|
||||||
|
uint4 xyxz = U[0].xyz.xyxz;
|
||||||
|
uint4 xyyx = U[0].xyz.xyyx;
|
||||||
|
uint4 xyyy = U[0].xyz.xyyy;
|
||||||
|
uint4 xyyz = U[0].xyz.xyyz;
|
||||||
|
uint4 xyzx = U[0].xyz.xyzx;
|
||||||
|
uint4 xyzy = U[0].xyz.xyzy;
|
||||||
|
uint4 xyzz = U[0].xyz.xyzz;
|
||||||
|
uint4 xzxx = U[0].xyz.xzxx;
|
||||||
|
uint4 xzxy = U[0].xyz.xzxy;
|
||||||
|
uint4 xzxz = U[0].xyz.xzxz;
|
||||||
|
uint4 xzyx = U[0].xyz.xzyx;
|
||||||
|
uint4 xzyy = U[0].xyz.xzyy;
|
||||||
|
uint4 xzyz = U[0].xyz.xzyz;
|
||||||
|
uint4 xzzx = U[0].xyz.xzzx;
|
||||||
|
uint4 xzzy = U[0].xyz.xzzy;
|
||||||
|
uint4 xzzz = U[0].xyz.xzzz;
|
||||||
|
uint4 yxxx = U[0].xyz.yxxx;
|
||||||
|
uint4 yxxy = U[0].xyz.yxxy;
|
||||||
|
uint4 yxxz = U[0].xyz.yxxz;
|
||||||
|
uint4 yxyx = U[0].xyz.yxyx;
|
||||||
|
uint4 yxyy = U[0].xyz.yxyy;
|
||||||
|
uint4 yxyz = U[0].xyz.yxyz;
|
||||||
|
uint4 yxzx = U[0].xyz.yxzx;
|
||||||
|
uint4 yxzy = U[0].xyz.yxzy;
|
||||||
|
uint4 yxzz = U[0].xyz.yxzz;
|
||||||
|
uint4 yyxx = U[0].xyz.yyxx;
|
||||||
|
uint4 yyxy = U[0].xyz.yyxy;
|
||||||
|
uint4 yyxz = U[0].xyz.yyxz;
|
||||||
|
uint4 yyyx = U[0].xyz.yyyx;
|
||||||
|
uint4 yyyy = U[0].xyz.yyyy;
|
||||||
|
uint4 yyyz = U[0].xyz.yyyz;
|
||||||
|
uint4 yyzx = U[0].xyz.yyzx;
|
||||||
|
uint4 yyzy = U[0].xyz.yyzy;
|
||||||
|
uint4 yyzz = U[0].xyz.yyzz;
|
||||||
|
uint4 yzxx = U[0].xyz.yzxx;
|
||||||
|
uint4 yzxy = U[0].xyz.yzxy;
|
||||||
|
uint4 yzxz = U[0].xyz.yzxz;
|
||||||
|
uint4 yzyx = U[0].xyz.yzyx;
|
||||||
|
uint4 yzyy = U[0].xyz.yzyy;
|
||||||
|
uint4 yzyz = U[0].xyz.yzyz;
|
||||||
|
uint4 yzzx = U[0].xyz.yzzx;
|
||||||
|
uint4 yzzy = U[0].xyz.yzzy;
|
||||||
|
uint4 yzzz = U[0].xyz.yzzz;
|
||||||
|
uint4 zxxx = U[0].xyz.zxxx;
|
||||||
|
uint4 zxxy = U[0].xyz.zxxy;
|
||||||
|
uint4 zxxz = U[0].xyz.zxxz;
|
||||||
|
uint4 zxyx = U[0].xyz.zxyx;
|
||||||
|
uint4 zxyy = U[0].xyz.zxyy;
|
||||||
|
uint4 zxyz = U[0].xyz.zxyz;
|
||||||
|
uint4 zxzx = U[0].xyz.zxzx;
|
||||||
|
uint4 zxzy = U[0].xyz.zxzy;
|
||||||
|
uint4 zxzz = U[0].xyz.zxzz;
|
||||||
|
uint4 zyxx = U[0].xyz.zyxx;
|
||||||
|
uint4 zyxy = U[0].xyz.zyxy;
|
||||||
|
uint4 zyxz = U[0].xyz.zyxz;
|
||||||
|
uint4 zyyx = U[0].xyz.zyyx;
|
||||||
|
uint4 zyyy = U[0].xyz.zyyy;
|
||||||
|
uint4 zyyz = U[0].xyz.zyyz;
|
||||||
|
uint4 zyzx = U[0].xyz.zyzx;
|
||||||
|
uint4 zyzy = U[0].xyz.zyzy;
|
||||||
|
uint4 zyzz = U[0].xyz.zyzz;
|
||||||
|
uint4 zzxx = U[0].xyz.zzxx;
|
||||||
|
uint4 zzxy = U[0].xyz.zzxy;
|
||||||
|
uint4 zzxz = U[0].xyz.zzxz;
|
||||||
|
uint4 zzyx = U[0].xyz.zzyx;
|
||||||
|
uint4 zzyy = U[0].xyz.zzyy;
|
||||||
|
uint4 zzyz = U[0].xyz.zzyz;
|
||||||
|
uint4 zzzx = U[0].xyz.zzzx;
|
||||||
|
uint4 zzzy = U[0].xyz.zzzy;
|
||||||
|
uint4 zzzz = U[0].xyz.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,132 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
/* 0x0000 */ packed_uint3 v;
|
||||||
|
/* 0x000c */ int8_t tint_pad[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(constant S& U) {
|
||||||
|
uint3 v = U.v;
|
||||||
|
uint x = U.v[0];
|
||||||
|
uint y = U.v[1];
|
||||||
|
uint z = U.v[2];
|
||||||
|
uint2 xx = uint3(U.v).xx;
|
||||||
|
uint2 xy = uint3(U.v).xy;
|
||||||
|
uint2 xz = uint3(U.v).xz;
|
||||||
|
uint2 yx = uint3(U.v).yx;
|
||||||
|
uint2 yy = uint3(U.v).yy;
|
||||||
|
uint2 yz = uint3(U.v).yz;
|
||||||
|
uint2 zx = uint3(U.v).zx;
|
||||||
|
uint2 zy = uint3(U.v).zy;
|
||||||
|
uint2 zz = uint3(U.v).zz;
|
||||||
|
uint3 xxx = uint3(U.v).xxx;
|
||||||
|
uint3 xxy = uint3(U.v).xxy;
|
||||||
|
uint3 xxz = uint3(U.v).xxz;
|
||||||
|
uint3 xyx = uint3(U.v).xyx;
|
||||||
|
uint3 xyy = uint3(U.v).xyy;
|
||||||
|
uint3 xyz = uint3(U.v).xyz;
|
||||||
|
uint3 xzx = uint3(U.v).xzx;
|
||||||
|
uint3 xzy = uint3(U.v).xzy;
|
||||||
|
uint3 xzz = uint3(U.v).xzz;
|
||||||
|
uint3 yxx = uint3(U.v).yxx;
|
||||||
|
uint3 yxy = uint3(U.v).yxy;
|
||||||
|
uint3 yxz = uint3(U.v).yxz;
|
||||||
|
uint3 yyx = uint3(U.v).yyx;
|
||||||
|
uint3 yyy = uint3(U.v).yyy;
|
||||||
|
uint3 yyz = uint3(U.v).yyz;
|
||||||
|
uint3 yzx = uint3(U.v).yzx;
|
||||||
|
uint3 yzy = uint3(U.v).yzy;
|
||||||
|
uint3 yzz = uint3(U.v).yzz;
|
||||||
|
uint3 zxx = uint3(U.v).zxx;
|
||||||
|
uint3 zxy = uint3(U.v).zxy;
|
||||||
|
uint3 zxz = uint3(U.v).zxz;
|
||||||
|
uint3 zyx = uint3(U.v).zyx;
|
||||||
|
uint3 zyy = uint3(U.v).zyy;
|
||||||
|
uint3 zyz = uint3(U.v).zyz;
|
||||||
|
uint3 zzx = uint3(U.v).zzx;
|
||||||
|
uint3 zzy = uint3(U.v).zzy;
|
||||||
|
uint3 zzz = uint3(U.v).zzz;
|
||||||
|
uint4 xxxx = uint3(U.v).xxxx;
|
||||||
|
uint4 xxxy = uint3(U.v).xxxy;
|
||||||
|
uint4 xxxz = uint3(U.v).xxxz;
|
||||||
|
uint4 xxyx = uint3(U.v).xxyx;
|
||||||
|
uint4 xxyy = uint3(U.v).xxyy;
|
||||||
|
uint4 xxyz = uint3(U.v).xxyz;
|
||||||
|
uint4 xxzx = uint3(U.v).xxzx;
|
||||||
|
uint4 xxzy = uint3(U.v).xxzy;
|
||||||
|
uint4 xxzz = uint3(U.v).xxzz;
|
||||||
|
uint4 xyxx = uint3(U.v).xyxx;
|
||||||
|
uint4 xyxy = uint3(U.v).xyxy;
|
||||||
|
uint4 xyxz = uint3(U.v).xyxz;
|
||||||
|
uint4 xyyx = uint3(U.v).xyyx;
|
||||||
|
uint4 xyyy = uint3(U.v).xyyy;
|
||||||
|
uint4 xyyz = uint3(U.v).xyyz;
|
||||||
|
uint4 xyzx = uint3(U.v).xyzx;
|
||||||
|
uint4 xyzy = uint3(U.v).xyzy;
|
||||||
|
uint4 xyzz = uint3(U.v).xyzz;
|
||||||
|
uint4 xzxx = uint3(U.v).xzxx;
|
||||||
|
uint4 xzxy = uint3(U.v).xzxy;
|
||||||
|
uint4 xzxz = uint3(U.v).xzxz;
|
||||||
|
uint4 xzyx = uint3(U.v).xzyx;
|
||||||
|
uint4 xzyy = uint3(U.v).xzyy;
|
||||||
|
uint4 xzyz = uint3(U.v).xzyz;
|
||||||
|
uint4 xzzx = uint3(U.v).xzzx;
|
||||||
|
uint4 xzzy = uint3(U.v).xzzy;
|
||||||
|
uint4 xzzz = uint3(U.v).xzzz;
|
||||||
|
uint4 yxxx = uint3(U.v).yxxx;
|
||||||
|
uint4 yxxy = uint3(U.v).yxxy;
|
||||||
|
uint4 yxxz = uint3(U.v).yxxz;
|
||||||
|
uint4 yxyx = uint3(U.v).yxyx;
|
||||||
|
uint4 yxyy = uint3(U.v).yxyy;
|
||||||
|
uint4 yxyz = uint3(U.v).yxyz;
|
||||||
|
uint4 yxzx = uint3(U.v).yxzx;
|
||||||
|
uint4 yxzy = uint3(U.v).yxzy;
|
||||||
|
uint4 yxzz = uint3(U.v).yxzz;
|
||||||
|
uint4 yyxx = uint3(U.v).yyxx;
|
||||||
|
uint4 yyxy = uint3(U.v).yyxy;
|
||||||
|
uint4 yyxz = uint3(U.v).yyxz;
|
||||||
|
uint4 yyyx = uint3(U.v).yyyx;
|
||||||
|
uint4 yyyy = uint3(U.v).yyyy;
|
||||||
|
uint4 yyyz = uint3(U.v).yyyz;
|
||||||
|
uint4 yyzx = uint3(U.v).yyzx;
|
||||||
|
uint4 yyzy = uint3(U.v).yyzy;
|
||||||
|
uint4 yyzz = uint3(U.v).yyzz;
|
||||||
|
uint4 yzxx = uint3(U.v).yzxx;
|
||||||
|
uint4 yzxy = uint3(U.v).yzxy;
|
||||||
|
uint4 yzxz = uint3(U.v).yzxz;
|
||||||
|
uint4 yzyx = uint3(U.v).yzyx;
|
||||||
|
uint4 yzyy = uint3(U.v).yzyy;
|
||||||
|
uint4 yzyz = uint3(U.v).yzyz;
|
||||||
|
uint4 yzzx = uint3(U.v).yzzx;
|
||||||
|
uint4 yzzy = uint3(U.v).yzzy;
|
||||||
|
uint4 yzzz = uint3(U.v).yzzz;
|
||||||
|
uint4 zxxx = uint3(U.v).zxxx;
|
||||||
|
uint4 zxxy = uint3(U.v).zxxy;
|
||||||
|
uint4 zxxz = uint3(U.v).zxxz;
|
||||||
|
uint4 zxyx = uint3(U.v).zxyx;
|
||||||
|
uint4 zxyy = uint3(U.v).zxyy;
|
||||||
|
uint4 zxyz = uint3(U.v).zxyz;
|
||||||
|
uint4 zxzx = uint3(U.v).zxzx;
|
||||||
|
uint4 zxzy = uint3(U.v).zxzy;
|
||||||
|
uint4 zxzz = uint3(U.v).zxzz;
|
||||||
|
uint4 zyxx = uint3(U.v).zyxx;
|
||||||
|
uint4 zyxy = uint3(U.v).zyxy;
|
||||||
|
uint4 zyxz = uint3(U.v).zyxz;
|
||||||
|
uint4 zyyx = uint3(U.v).zyyx;
|
||||||
|
uint4 zyyy = uint3(U.v).zyyy;
|
||||||
|
uint4 zyyz = uint3(U.v).zyyz;
|
||||||
|
uint4 zyzx = uint3(U.v).zyzx;
|
||||||
|
uint4 zyzy = uint3(U.v).zyzy;
|
||||||
|
uint4 zyzz = uint3(U.v).zyzz;
|
||||||
|
uint4 zzxx = uint3(U.v).zzxx;
|
||||||
|
uint4 zzxy = uint3(U.v).zzxy;
|
||||||
|
uint4 zzxz = uint3(U.v).zzxz;
|
||||||
|
uint4 zzyx = uint3(U.v).zzyx;
|
||||||
|
uint4 zzyy = uint3(U.v).zzyy;
|
||||||
|
uint4 zzyz = uint3(U.v).zzyz;
|
||||||
|
uint4 zzzx = uint3(U.v).zzzx;
|
||||||
|
uint4 zzzy = uint3(U.v).zzzy;
|
||||||
|
uint4 zzzz = uint3(U.v).zzzz;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,771 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 507
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %U "U"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpName %v "v"
|
||||||
|
OpName %x "x"
|
||||||
|
OpName %y "y"
|
||||||
|
OpName %z "z"
|
||||||
|
OpName %xx "xx"
|
||||||
|
OpName %xy "xy"
|
||||||
|
OpName %xz "xz"
|
||||||
|
OpName %yx "yx"
|
||||||
|
OpName %yy "yy"
|
||||||
|
OpName %yz "yz"
|
||||||
|
OpName %zx "zx"
|
||||||
|
OpName %zy "zy"
|
||||||
|
OpName %zz "zz"
|
||||||
|
OpName %xxx "xxx"
|
||||||
|
OpName %xxy "xxy"
|
||||||
|
OpName %xxz "xxz"
|
||||||
|
OpName %xyx "xyx"
|
||||||
|
OpName %xyy "xyy"
|
||||||
|
OpName %xyz "xyz"
|
||||||
|
OpName %xzx "xzx"
|
||||||
|
OpName %xzy "xzy"
|
||||||
|
OpName %xzz "xzz"
|
||||||
|
OpName %yxx "yxx"
|
||||||
|
OpName %yxy "yxy"
|
||||||
|
OpName %yxz "yxz"
|
||||||
|
OpName %yyx "yyx"
|
||||||
|
OpName %yyy "yyy"
|
||||||
|
OpName %yyz "yyz"
|
||||||
|
OpName %yzx "yzx"
|
||||||
|
OpName %yzy "yzy"
|
||||||
|
OpName %yzz "yzz"
|
||||||
|
OpName %zxx "zxx"
|
||||||
|
OpName %zxy "zxy"
|
||||||
|
OpName %zxz "zxz"
|
||||||
|
OpName %zyx "zyx"
|
||||||
|
OpName %zyy "zyy"
|
||||||
|
OpName %zyz "zyz"
|
||||||
|
OpName %zzx "zzx"
|
||||||
|
OpName %zzy "zzy"
|
||||||
|
OpName %zzz "zzz"
|
||||||
|
OpName %xxxx "xxxx"
|
||||||
|
OpName %xxxy "xxxy"
|
||||||
|
OpName %xxxz "xxxz"
|
||||||
|
OpName %xxyx "xxyx"
|
||||||
|
OpName %xxyy "xxyy"
|
||||||
|
OpName %xxyz "xxyz"
|
||||||
|
OpName %xxzx "xxzx"
|
||||||
|
OpName %xxzy "xxzy"
|
||||||
|
OpName %xxzz "xxzz"
|
||||||
|
OpName %xyxx "xyxx"
|
||||||
|
OpName %xyxy "xyxy"
|
||||||
|
OpName %xyxz "xyxz"
|
||||||
|
OpName %xyyx "xyyx"
|
||||||
|
OpName %xyyy "xyyy"
|
||||||
|
OpName %xyyz "xyyz"
|
||||||
|
OpName %xyzx "xyzx"
|
||||||
|
OpName %xyzy "xyzy"
|
||||||
|
OpName %xyzz "xyzz"
|
||||||
|
OpName %xzxx "xzxx"
|
||||||
|
OpName %xzxy "xzxy"
|
||||||
|
OpName %xzxz "xzxz"
|
||||||
|
OpName %xzyx "xzyx"
|
||||||
|
OpName %xzyy "xzyy"
|
||||||
|
OpName %xzyz "xzyz"
|
||||||
|
OpName %xzzx "xzzx"
|
||||||
|
OpName %xzzy "xzzy"
|
||||||
|
OpName %xzzz "xzzz"
|
||||||
|
OpName %yxxx "yxxx"
|
||||||
|
OpName %yxxy "yxxy"
|
||||||
|
OpName %yxxz "yxxz"
|
||||||
|
OpName %yxyx "yxyx"
|
||||||
|
OpName %yxyy "yxyy"
|
||||||
|
OpName %yxyz "yxyz"
|
||||||
|
OpName %yxzx "yxzx"
|
||||||
|
OpName %yxzy "yxzy"
|
||||||
|
OpName %yxzz "yxzz"
|
||||||
|
OpName %yyxx "yyxx"
|
||||||
|
OpName %yyxy "yyxy"
|
||||||
|
OpName %yyxz "yyxz"
|
||||||
|
OpName %yyyx "yyyx"
|
||||||
|
OpName %yyyy "yyyy"
|
||||||
|
OpName %yyyz "yyyz"
|
||||||
|
OpName %yyzx "yyzx"
|
||||||
|
OpName %yyzy "yyzy"
|
||||||
|
OpName %yyzz "yyzz"
|
||||||
|
OpName %yzxx "yzxx"
|
||||||
|
OpName %yzxy "yzxy"
|
||||||
|
OpName %yzxz "yzxz"
|
||||||
|
OpName %yzyx "yzyx"
|
||||||
|
OpName %yzyy "yzyy"
|
||||||
|
OpName %yzyz "yzyz"
|
||||||
|
OpName %yzzx "yzzx"
|
||||||
|
OpName %yzzy "yzzy"
|
||||||
|
OpName %yzzz "yzzz"
|
||||||
|
OpName %zxxx "zxxx"
|
||||||
|
OpName %zxxy "zxxy"
|
||||||
|
OpName %zxxz "zxxz"
|
||||||
|
OpName %zxyx "zxyx"
|
||||||
|
OpName %zxyy "zxyy"
|
||||||
|
OpName %zxyz "zxyz"
|
||||||
|
OpName %zxzx "zxzx"
|
||||||
|
OpName %zxzy "zxzy"
|
||||||
|
OpName %zxzz "zxzz"
|
||||||
|
OpName %zyxx "zyxx"
|
||||||
|
OpName %zyxy "zyxy"
|
||||||
|
OpName %zyxz "zyxz"
|
||||||
|
OpName %zyyx "zyyx"
|
||||||
|
OpName %zyyy "zyyy"
|
||||||
|
OpName %zyyz "zyyz"
|
||||||
|
OpName %zyzx "zyzx"
|
||||||
|
OpName %zyzy "zyzy"
|
||||||
|
OpName %zyzz "zyzz"
|
||||||
|
OpName %zzxx "zzxx"
|
||||||
|
OpName %zzxy "zzxy"
|
||||||
|
OpName %zzxz "zzxz"
|
||||||
|
OpName %zzyx "zzyx"
|
||||||
|
OpName %zzyy "zzyy"
|
||||||
|
OpName %zzyz "zzyz"
|
||||||
|
OpName %zzzx "zzzx"
|
||||||
|
OpName %zzzy "zzzy"
|
||||||
|
OpName %zzzz "zzzz"
|
||||||
|
OpDecorate %S Block
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
OpDecorate %U NonWritable
|
||||||
|
OpDecorate %U DescriptorSet 0
|
||||||
|
OpDecorate %U Binding 0
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%v3uint = OpTypeVector %uint 3
|
||||||
|
%S = OpTypeStruct %v3uint
|
||||||
|
%_ptr_Uniform_S = OpTypePointer Uniform %S
|
||||||
|
%U = OpVariable %_ptr_Uniform_S Uniform
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%6 = OpTypeFunction %void
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Uniform_v3uint = OpTypePointer Uniform %v3uint
|
||||||
|
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
|
||||||
|
%18 = OpConstantNull %v3uint
|
||||||
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
|
%24 = OpConstantNull %uint
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%v2uint = OpTypeVector %uint 2
|
||||||
|
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
|
||||||
|
%39 = OpConstantNull %v2uint
|
||||||
|
%v4uint = OpTypeVector %uint 4
|
||||||
|
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
|
||||||
|
%186 = OpConstantNull %v4uint
|
||||||
|
%unused_entry_point = OpFunction %void None %6
|
||||||
|
%9 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %6
|
||||||
|
%11 = OpLabel
|
||||||
|
%v = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%x = OpVariable %_ptr_Function_uint Function %24
|
||||||
|
%y = OpVariable %_ptr_Function_uint Function %24
|
||||||
|
%z = OpVariable %_ptr_Function_uint Function %24
|
||||||
|
%xx = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%xy = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%xz = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%yx = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%yy = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%yz = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%zx = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%zy = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%zz = OpVariable %_ptr_Function_v2uint Function %39
|
||||||
|
%xxx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xxy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xxz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xyx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xyy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xyz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xzx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xzy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xzz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yxx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yxy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yxz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yyx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yyy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yyz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yzx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yzy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%yzz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zxx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zxy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zxz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zyx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zyy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zyz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zzx = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zzy = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%zzz = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
|
%xxxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xxxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xxxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xxyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xxyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xxyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xxzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xxzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xxzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xyzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%xzzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yxzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yyzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%yzzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zxzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zyzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzxx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzxy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzxz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzyx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzyy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzyz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzzx = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzzy = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%zzzz = OpVariable %_ptr_Function_v4uint Function %186
|
||||||
|
%14 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%15 = OpLoad %v3uint %14
|
||||||
|
OpStore %v %15
|
||||||
|
%20 = OpAccessChain %_ptr_Uniform_uint %U %uint_0 %uint_0
|
||||||
|
%21 = OpLoad %uint %20
|
||||||
|
OpStore %x %21
|
||||||
|
%26 = OpAccessChain %_ptr_Uniform_uint %U %uint_0 %uint_1
|
||||||
|
%27 = OpLoad %uint %26
|
||||||
|
OpStore %y %27
|
||||||
|
%30 = OpAccessChain %_ptr_Uniform_uint %U %uint_0 %uint_2
|
||||||
|
%31 = OpLoad %uint %30
|
||||||
|
OpStore %z %31
|
||||||
|
%33 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%35 = OpLoad %v3uint %33
|
||||||
|
%36 = OpVectorShuffle %v2uint %35 %35 0 0
|
||||||
|
OpStore %xx %36
|
||||||
|
%40 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%41 = OpLoad %v3uint %40
|
||||||
|
%42 = OpVectorShuffle %v2uint %41 %41 0 1
|
||||||
|
OpStore %xy %42
|
||||||
|
%44 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%45 = OpLoad %v3uint %44
|
||||||
|
%46 = OpVectorShuffle %v2uint %45 %45 0 2
|
||||||
|
OpStore %xz %46
|
||||||
|
%48 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%49 = OpLoad %v3uint %48
|
||||||
|
%50 = OpVectorShuffle %v2uint %49 %49 1 0
|
||||||
|
OpStore %yx %50
|
||||||
|
%52 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%53 = OpLoad %v3uint %52
|
||||||
|
%54 = OpVectorShuffle %v2uint %53 %53 1 1
|
||||||
|
OpStore %yy %54
|
||||||
|
%56 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%57 = OpLoad %v3uint %56
|
||||||
|
%58 = OpVectorShuffle %v2uint %57 %57 1 2
|
||||||
|
OpStore %yz %58
|
||||||
|
%60 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%61 = OpLoad %v3uint %60
|
||||||
|
%62 = OpVectorShuffle %v2uint %61 %61 2 0
|
||||||
|
OpStore %zx %62
|
||||||
|
%64 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%65 = OpLoad %v3uint %64
|
||||||
|
%66 = OpVectorShuffle %v2uint %65 %65 2 1
|
||||||
|
OpStore %zy %66
|
||||||
|
%68 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%69 = OpLoad %v3uint %68
|
||||||
|
%70 = OpVectorShuffle %v2uint %69 %69 2 2
|
||||||
|
OpStore %zz %70
|
||||||
|
%72 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%73 = OpLoad %v3uint %72
|
||||||
|
%74 = OpVectorShuffle %v3uint %73 %73 0 0 0
|
||||||
|
OpStore %xxx %74
|
||||||
|
%76 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%77 = OpLoad %v3uint %76
|
||||||
|
%78 = OpVectorShuffle %v3uint %77 %77 0 0 1
|
||||||
|
OpStore %xxy %78
|
||||||
|
%80 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%81 = OpLoad %v3uint %80
|
||||||
|
%82 = OpVectorShuffle %v3uint %81 %81 0 0 2
|
||||||
|
OpStore %xxz %82
|
||||||
|
%84 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%85 = OpLoad %v3uint %84
|
||||||
|
%86 = OpVectorShuffle %v3uint %85 %85 0 1 0
|
||||||
|
OpStore %xyx %86
|
||||||
|
%88 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%89 = OpLoad %v3uint %88
|
||||||
|
%90 = OpVectorShuffle %v3uint %89 %89 0 1 1
|
||||||
|
OpStore %xyy %90
|
||||||
|
%92 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%93 = OpLoad %v3uint %92
|
||||||
|
%94 = OpVectorShuffle %v3uint %93 %93 0 1 2
|
||||||
|
OpStore %xyz %94
|
||||||
|
%96 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%97 = OpLoad %v3uint %96
|
||||||
|
%98 = OpVectorShuffle %v3uint %97 %97 0 2 0
|
||||||
|
OpStore %xzx %98
|
||||||
|
%100 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%101 = OpLoad %v3uint %100
|
||||||
|
%102 = OpVectorShuffle %v3uint %101 %101 0 2 1
|
||||||
|
OpStore %xzy %102
|
||||||
|
%104 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%105 = OpLoad %v3uint %104
|
||||||
|
%106 = OpVectorShuffle %v3uint %105 %105 0 2 2
|
||||||
|
OpStore %xzz %106
|
||||||
|
%108 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%109 = OpLoad %v3uint %108
|
||||||
|
%110 = OpVectorShuffle %v3uint %109 %109 1 0 0
|
||||||
|
OpStore %yxx %110
|
||||||
|
%112 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%113 = OpLoad %v3uint %112
|
||||||
|
%114 = OpVectorShuffle %v3uint %113 %113 1 0 1
|
||||||
|
OpStore %yxy %114
|
||||||
|
%116 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%117 = OpLoad %v3uint %116
|
||||||
|
%118 = OpVectorShuffle %v3uint %117 %117 1 0 2
|
||||||
|
OpStore %yxz %118
|
||||||
|
%120 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%121 = OpLoad %v3uint %120
|
||||||
|
%122 = OpVectorShuffle %v3uint %121 %121 1 1 0
|
||||||
|
OpStore %yyx %122
|
||||||
|
%124 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%125 = OpLoad %v3uint %124
|
||||||
|
%126 = OpVectorShuffle %v3uint %125 %125 1 1 1
|
||||||
|
OpStore %yyy %126
|
||||||
|
%128 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%129 = OpLoad %v3uint %128
|
||||||
|
%130 = OpVectorShuffle %v3uint %129 %129 1 1 2
|
||||||
|
OpStore %yyz %130
|
||||||
|
%132 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%133 = OpLoad %v3uint %132
|
||||||
|
%134 = OpVectorShuffle %v3uint %133 %133 1 2 0
|
||||||
|
OpStore %yzx %134
|
||||||
|
%136 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%137 = OpLoad %v3uint %136
|
||||||
|
%138 = OpVectorShuffle %v3uint %137 %137 1 2 1
|
||||||
|
OpStore %yzy %138
|
||||||
|
%140 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%141 = OpLoad %v3uint %140
|
||||||
|
%142 = OpVectorShuffle %v3uint %141 %141 1 2 2
|
||||||
|
OpStore %yzz %142
|
||||||
|
%144 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%145 = OpLoad %v3uint %144
|
||||||
|
%146 = OpVectorShuffle %v3uint %145 %145 2 0 0
|
||||||
|
OpStore %zxx %146
|
||||||
|
%148 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%149 = OpLoad %v3uint %148
|
||||||
|
%150 = OpVectorShuffle %v3uint %149 %149 2 0 1
|
||||||
|
OpStore %zxy %150
|
||||||
|
%152 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%153 = OpLoad %v3uint %152
|
||||||
|
%154 = OpVectorShuffle %v3uint %153 %153 2 0 2
|
||||||
|
OpStore %zxz %154
|
||||||
|
%156 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%157 = OpLoad %v3uint %156
|
||||||
|
%158 = OpVectorShuffle %v3uint %157 %157 2 1 0
|
||||||
|
OpStore %zyx %158
|
||||||
|
%160 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%161 = OpLoad %v3uint %160
|
||||||
|
%162 = OpVectorShuffle %v3uint %161 %161 2 1 1
|
||||||
|
OpStore %zyy %162
|
||||||
|
%164 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%165 = OpLoad %v3uint %164
|
||||||
|
%166 = OpVectorShuffle %v3uint %165 %165 2 1 2
|
||||||
|
OpStore %zyz %166
|
||||||
|
%168 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%169 = OpLoad %v3uint %168
|
||||||
|
%170 = OpVectorShuffle %v3uint %169 %169 2 2 0
|
||||||
|
OpStore %zzx %170
|
||||||
|
%172 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%173 = OpLoad %v3uint %172
|
||||||
|
%174 = OpVectorShuffle %v3uint %173 %173 2 2 1
|
||||||
|
OpStore %zzy %174
|
||||||
|
%176 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%177 = OpLoad %v3uint %176
|
||||||
|
%178 = OpVectorShuffle %v3uint %177 %177 2 2 2
|
||||||
|
OpStore %zzz %178
|
||||||
|
%180 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%182 = OpLoad %v3uint %180
|
||||||
|
%183 = OpVectorShuffle %v4uint %182 %182 0 0 0 0
|
||||||
|
OpStore %xxxx %183
|
||||||
|
%187 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%188 = OpLoad %v3uint %187
|
||||||
|
%189 = OpVectorShuffle %v4uint %188 %188 0 0 0 1
|
||||||
|
OpStore %xxxy %189
|
||||||
|
%191 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%192 = OpLoad %v3uint %191
|
||||||
|
%193 = OpVectorShuffle %v4uint %192 %192 0 0 0 2
|
||||||
|
OpStore %xxxz %193
|
||||||
|
%195 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%196 = OpLoad %v3uint %195
|
||||||
|
%197 = OpVectorShuffle %v4uint %196 %196 0 0 1 0
|
||||||
|
OpStore %xxyx %197
|
||||||
|
%199 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%200 = OpLoad %v3uint %199
|
||||||
|
%201 = OpVectorShuffle %v4uint %200 %200 0 0 1 1
|
||||||
|
OpStore %xxyy %201
|
||||||
|
%203 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%204 = OpLoad %v3uint %203
|
||||||
|
%205 = OpVectorShuffle %v4uint %204 %204 0 0 1 2
|
||||||
|
OpStore %xxyz %205
|
||||||
|
%207 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%208 = OpLoad %v3uint %207
|
||||||
|
%209 = OpVectorShuffle %v4uint %208 %208 0 0 2 0
|
||||||
|
OpStore %xxzx %209
|
||||||
|
%211 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%212 = OpLoad %v3uint %211
|
||||||
|
%213 = OpVectorShuffle %v4uint %212 %212 0 0 2 1
|
||||||
|
OpStore %xxzy %213
|
||||||
|
%215 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%216 = OpLoad %v3uint %215
|
||||||
|
%217 = OpVectorShuffle %v4uint %216 %216 0 0 2 2
|
||||||
|
OpStore %xxzz %217
|
||||||
|
%219 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%220 = OpLoad %v3uint %219
|
||||||
|
%221 = OpVectorShuffle %v4uint %220 %220 0 1 0 0
|
||||||
|
OpStore %xyxx %221
|
||||||
|
%223 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%224 = OpLoad %v3uint %223
|
||||||
|
%225 = OpVectorShuffle %v4uint %224 %224 0 1 0 1
|
||||||
|
OpStore %xyxy %225
|
||||||
|
%227 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%228 = OpLoad %v3uint %227
|
||||||
|
%229 = OpVectorShuffle %v4uint %228 %228 0 1 0 2
|
||||||
|
OpStore %xyxz %229
|
||||||
|
%231 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%232 = OpLoad %v3uint %231
|
||||||
|
%233 = OpVectorShuffle %v4uint %232 %232 0 1 1 0
|
||||||
|
OpStore %xyyx %233
|
||||||
|
%235 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%236 = OpLoad %v3uint %235
|
||||||
|
%237 = OpVectorShuffle %v4uint %236 %236 0 1 1 1
|
||||||
|
OpStore %xyyy %237
|
||||||
|
%239 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%240 = OpLoad %v3uint %239
|
||||||
|
%241 = OpVectorShuffle %v4uint %240 %240 0 1 1 2
|
||||||
|
OpStore %xyyz %241
|
||||||
|
%243 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%244 = OpLoad %v3uint %243
|
||||||
|
%245 = OpVectorShuffle %v4uint %244 %244 0 1 2 0
|
||||||
|
OpStore %xyzx %245
|
||||||
|
%247 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%248 = OpLoad %v3uint %247
|
||||||
|
%249 = OpVectorShuffle %v4uint %248 %248 0 1 2 1
|
||||||
|
OpStore %xyzy %249
|
||||||
|
%251 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%252 = OpLoad %v3uint %251
|
||||||
|
%253 = OpVectorShuffle %v4uint %252 %252 0 1 2 2
|
||||||
|
OpStore %xyzz %253
|
||||||
|
%255 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%256 = OpLoad %v3uint %255
|
||||||
|
%257 = OpVectorShuffle %v4uint %256 %256 0 2 0 0
|
||||||
|
OpStore %xzxx %257
|
||||||
|
%259 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%260 = OpLoad %v3uint %259
|
||||||
|
%261 = OpVectorShuffle %v4uint %260 %260 0 2 0 1
|
||||||
|
OpStore %xzxy %261
|
||||||
|
%263 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%264 = OpLoad %v3uint %263
|
||||||
|
%265 = OpVectorShuffle %v4uint %264 %264 0 2 0 2
|
||||||
|
OpStore %xzxz %265
|
||||||
|
%267 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%268 = OpLoad %v3uint %267
|
||||||
|
%269 = OpVectorShuffle %v4uint %268 %268 0 2 1 0
|
||||||
|
OpStore %xzyx %269
|
||||||
|
%271 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%272 = OpLoad %v3uint %271
|
||||||
|
%273 = OpVectorShuffle %v4uint %272 %272 0 2 1 1
|
||||||
|
OpStore %xzyy %273
|
||||||
|
%275 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%276 = OpLoad %v3uint %275
|
||||||
|
%277 = OpVectorShuffle %v4uint %276 %276 0 2 1 2
|
||||||
|
OpStore %xzyz %277
|
||||||
|
%279 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%280 = OpLoad %v3uint %279
|
||||||
|
%281 = OpVectorShuffle %v4uint %280 %280 0 2 2 0
|
||||||
|
OpStore %xzzx %281
|
||||||
|
%283 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%284 = OpLoad %v3uint %283
|
||||||
|
%285 = OpVectorShuffle %v4uint %284 %284 0 2 2 1
|
||||||
|
OpStore %xzzy %285
|
||||||
|
%287 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%288 = OpLoad %v3uint %287
|
||||||
|
%289 = OpVectorShuffle %v4uint %288 %288 0 2 2 2
|
||||||
|
OpStore %xzzz %289
|
||||||
|
%291 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%292 = OpLoad %v3uint %291
|
||||||
|
%293 = OpVectorShuffle %v4uint %292 %292 1 0 0 0
|
||||||
|
OpStore %yxxx %293
|
||||||
|
%295 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%296 = OpLoad %v3uint %295
|
||||||
|
%297 = OpVectorShuffle %v4uint %296 %296 1 0 0 1
|
||||||
|
OpStore %yxxy %297
|
||||||
|
%299 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%300 = OpLoad %v3uint %299
|
||||||
|
%301 = OpVectorShuffle %v4uint %300 %300 1 0 0 2
|
||||||
|
OpStore %yxxz %301
|
||||||
|
%303 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%304 = OpLoad %v3uint %303
|
||||||
|
%305 = OpVectorShuffle %v4uint %304 %304 1 0 1 0
|
||||||
|
OpStore %yxyx %305
|
||||||
|
%307 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%308 = OpLoad %v3uint %307
|
||||||
|
%309 = OpVectorShuffle %v4uint %308 %308 1 0 1 1
|
||||||
|
OpStore %yxyy %309
|
||||||
|
%311 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%312 = OpLoad %v3uint %311
|
||||||
|
%313 = OpVectorShuffle %v4uint %312 %312 1 0 1 2
|
||||||
|
OpStore %yxyz %313
|
||||||
|
%315 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%316 = OpLoad %v3uint %315
|
||||||
|
%317 = OpVectorShuffle %v4uint %316 %316 1 0 2 0
|
||||||
|
OpStore %yxzx %317
|
||||||
|
%319 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%320 = OpLoad %v3uint %319
|
||||||
|
%321 = OpVectorShuffle %v4uint %320 %320 1 0 2 1
|
||||||
|
OpStore %yxzy %321
|
||||||
|
%323 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%324 = OpLoad %v3uint %323
|
||||||
|
%325 = OpVectorShuffle %v4uint %324 %324 1 0 2 2
|
||||||
|
OpStore %yxzz %325
|
||||||
|
%327 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%328 = OpLoad %v3uint %327
|
||||||
|
%329 = OpVectorShuffle %v4uint %328 %328 1 1 0 0
|
||||||
|
OpStore %yyxx %329
|
||||||
|
%331 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%332 = OpLoad %v3uint %331
|
||||||
|
%333 = OpVectorShuffle %v4uint %332 %332 1 1 0 1
|
||||||
|
OpStore %yyxy %333
|
||||||
|
%335 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%336 = OpLoad %v3uint %335
|
||||||
|
%337 = OpVectorShuffle %v4uint %336 %336 1 1 0 2
|
||||||
|
OpStore %yyxz %337
|
||||||
|
%339 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%340 = OpLoad %v3uint %339
|
||||||
|
%341 = OpVectorShuffle %v4uint %340 %340 1 1 1 0
|
||||||
|
OpStore %yyyx %341
|
||||||
|
%343 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%344 = OpLoad %v3uint %343
|
||||||
|
%345 = OpVectorShuffle %v4uint %344 %344 1 1 1 1
|
||||||
|
OpStore %yyyy %345
|
||||||
|
%347 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%348 = OpLoad %v3uint %347
|
||||||
|
%349 = OpVectorShuffle %v4uint %348 %348 1 1 1 2
|
||||||
|
OpStore %yyyz %349
|
||||||
|
%351 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%352 = OpLoad %v3uint %351
|
||||||
|
%353 = OpVectorShuffle %v4uint %352 %352 1 1 2 0
|
||||||
|
OpStore %yyzx %353
|
||||||
|
%355 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%356 = OpLoad %v3uint %355
|
||||||
|
%357 = OpVectorShuffle %v4uint %356 %356 1 1 2 1
|
||||||
|
OpStore %yyzy %357
|
||||||
|
%359 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%360 = OpLoad %v3uint %359
|
||||||
|
%361 = OpVectorShuffle %v4uint %360 %360 1 1 2 2
|
||||||
|
OpStore %yyzz %361
|
||||||
|
%363 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%364 = OpLoad %v3uint %363
|
||||||
|
%365 = OpVectorShuffle %v4uint %364 %364 1 2 0 0
|
||||||
|
OpStore %yzxx %365
|
||||||
|
%367 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%368 = OpLoad %v3uint %367
|
||||||
|
%369 = OpVectorShuffle %v4uint %368 %368 1 2 0 1
|
||||||
|
OpStore %yzxy %369
|
||||||
|
%371 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%372 = OpLoad %v3uint %371
|
||||||
|
%373 = OpVectorShuffle %v4uint %372 %372 1 2 0 2
|
||||||
|
OpStore %yzxz %373
|
||||||
|
%375 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%376 = OpLoad %v3uint %375
|
||||||
|
%377 = OpVectorShuffle %v4uint %376 %376 1 2 1 0
|
||||||
|
OpStore %yzyx %377
|
||||||
|
%379 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%380 = OpLoad %v3uint %379
|
||||||
|
%381 = OpVectorShuffle %v4uint %380 %380 1 2 1 1
|
||||||
|
OpStore %yzyy %381
|
||||||
|
%383 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%384 = OpLoad %v3uint %383
|
||||||
|
%385 = OpVectorShuffle %v4uint %384 %384 1 2 1 2
|
||||||
|
OpStore %yzyz %385
|
||||||
|
%387 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%388 = OpLoad %v3uint %387
|
||||||
|
%389 = OpVectorShuffle %v4uint %388 %388 1 2 2 0
|
||||||
|
OpStore %yzzx %389
|
||||||
|
%391 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%392 = OpLoad %v3uint %391
|
||||||
|
%393 = OpVectorShuffle %v4uint %392 %392 1 2 2 1
|
||||||
|
OpStore %yzzy %393
|
||||||
|
%395 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%396 = OpLoad %v3uint %395
|
||||||
|
%397 = OpVectorShuffle %v4uint %396 %396 1 2 2 2
|
||||||
|
OpStore %yzzz %397
|
||||||
|
%399 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%400 = OpLoad %v3uint %399
|
||||||
|
%401 = OpVectorShuffle %v4uint %400 %400 2 0 0 0
|
||||||
|
OpStore %zxxx %401
|
||||||
|
%403 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%404 = OpLoad %v3uint %403
|
||||||
|
%405 = OpVectorShuffle %v4uint %404 %404 2 0 0 1
|
||||||
|
OpStore %zxxy %405
|
||||||
|
%407 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%408 = OpLoad %v3uint %407
|
||||||
|
%409 = OpVectorShuffle %v4uint %408 %408 2 0 0 2
|
||||||
|
OpStore %zxxz %409
|
||||||
|
%411 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%412 = OpLoad %v3uint %411
|
||||||
|
%413 = OpVectorShuffle %v4uint %412 %412 2 0 1 0
|
||||||
|
OpStore %zxyx %413
|
||||||
|
%415 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%416 = OpLoad %v3uint %415
|
||||||
|
%417 = OpVectorShuffle %v4uint %416 %416 2 0 1 1
|
||||||
|
OpStore %zxyy %417
|
||||||
|
%419 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%420 = OpLoad %v3uint %419
|
||||||
|
%421 = OpVectorShuffle %v4uint %420 %420 2 0 1 2
|
||||||
|
OpStore %zxyz %421
|
||||||
|
%423 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%424 = OpLoad %v3uint %423
|
||||||
|
%425 = OpVectorShuffle %v4uint %424 %424 2 0 2 0
|
||||||
|
OpStore %zxzx %425
|
||||||
|
%427 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%428 = OpLoad %v3uint %427
|
||||||
|
%429 = OpVectorShuffle %v4uint %428 %428 2 0 2 1
|
||||||
|
OpStore %zxzy %429
|
||||||
|
%431 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%432 = OpLoad %v3uint %431
|
||||||
|
%433 = OpVectorShuffle %v4uint %432 %432 2 0 2 2
|
||||||
|
OpStore %zxzz %433
|
||||||
|
%435 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%436 = OpLoad %v3uint %435
|
||||||
|
%437 = OpVectorShuffle %v4uint %436 %436 2 1 0 0
|
||||||
|
OpStore %zyxx %437
|
||||||
|
%439 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%440 = OpLoad %v3uint %439
|
||||||
|
%441 = OpVectorShuffle %v4uint %440 %440 2 1 0 1
|
||||||
|
OpStore %zyxy %441
|
||||||
|
%443 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%444 = OpLoad %v3uint %443
|
||||||
|
%445 = OpVectorShuffle %v4uint %444 %444 2 1 0 2
|
||||||
|
OpStore %zyxz %445
|
||||||
|
%447 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%448 = OpLoad %v3uint %447
|
||||||
|
%449 = OpVectorShuffle %v4uint %448 %448 2 1 1 0
|
||||||
|
OpStore %zyyx %449
|
||||||
|
%451 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%452 = OpLoad %v3uint %451
|
||||||
|
%453 = OpVectorShuffle %v4uint %452 %452 2 1 1 1
|
||||||
|
OpStore %zyyy %453
|
||||||
|
%455 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%456 = OpLoad %v3uint %455
|
||||||
|
%457 = OpVectorShuffle %v4uint %456 %456 2 1 1 2
|
||||||
|
OpStore %zyyz %457
|
||||||
|
%459 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%460 = OpLoad %v3uint %459
|
||||||
|
%461 = OpVectorShuffle %v4uint %460 %460 2 1 2 0
|
||||||
|
OpStore %zyzx %461
|
||||||
|
%463 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%464 = OpLoad %v3uint %463
|
||||||
|
%465 = OpVectorShuffle %v4uint %464 %464 2 1 2 1
|
||||||
|
OpStore %zyzy %465
|
||||||
|
%467 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%468 = OpLoad %v3uint %467
|
||||||
|
%469 = OpVectorShuffle %v4uint %468 %468 2 1 2 2
|
||||||
|
OpStore %zyzz %469
|
||||||
|
%471 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%472 = OpLoad %v3uint %471
|
||||||
|
%473 = OpVectorShuffle %v4uint %472 %472 2 2 0 0
|
||||||
|
OpStore %zzxx %473
|
||||||
|
%475 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%476 = OpLoad %v3uint %475
|
||||||
|
%477 = OpVectorShuffle %v4uint %476 %476 2 2 0 1
|
||||||
|
OpStore %zzxy %477
|
||||||
|
%479 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%480 = OpLoad %v3uint %479
|
||||||
|
%481 = OpVectorShuffle %v4uint %480 %480 2 2 0 2
|
||||||
|
OpStore %zzxz %481
|
||||||
|
%483 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%484 = OpLoad %v3uint %483
|
||||||
|
%485 = OpVectorShuffle %v4uint %484 %484 2 2 1 0
|
||||||
|
OpStore %zzyx %485
|
||||||
|
%487 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%488 = OpLoad %v3uint %487
|
||||||
|
%489 = OpVectorShuffle %v4uint %488 %488 2 2 1 1
|
||||||
|
OpStore %zzyy %489
|
||||||
|
%491 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%492 = OpLoad %v3uint %491
|
||||||
|
%493 = OpVectorShuffle %v4uint %492 %492 2 2 1 2
|
||||||
|
OpStore %zzyz %493
|
||||||
|
%495 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%496 = OpLoad %v3uint %495
|
||||||
|
%497 = OpVectorShuffle %v4uint %496 %496 2 2 2 0
|
||||||
|
OpStore %zzzx %497
|
||||||
|
%499 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%500 = OpLoad %v3uint %499
|
||||||
|
%501 = OpVectorShuffle %v4uint %500 %500 2 2 2 1
|
||||||
|
OpStore %zzzy %501
|
||||||
|
%503 = OpAccessChain %_ptr_Uniform_v3uint %U %uint_0
|
||||||
|
%504 = OpLoad %v3uint %503
|
||||||
|
%505 = OpVectorShuffle %v4uint %504 %504 2 2 2 2
|
||||||
|
OpStore %zzzz %505
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,130 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v : vec3<u32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<uniform> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = U.v;
|
||||||
|
var x = U.v.x;
|
||||||
|
var y = U.v.y;
|
||||||
|
var z = U.v.z;
|
||||||
|
var xx = U.v.xx;
|
||||||
|
var xy = U.v.xy;
|
||||||
|
var xz = U.v.xz;
|
||||||
|
var yx = U.v.yx;
|
||||||
|
var yy = U.v.yy;
|
||||||
|
var yz = U.v.yz;
|
||||||
|
var zx = U.v.zx;
|
||||||
|
var zy = U.v.zy;
|
||||||
|
var zz = U.v.zz;
|
||||||
|
var xxx = U.v.xxx;
|
||||||
|
var xxy = U.v.xxy;
|
||||||
|
var xxz = U.v.xxz;
|
||||||
|
var xyx = U.v.xyx;
|
||||||
|
var xyy = U.v.xyy;
|
||||||
|
var xyz = U.v.xyz;
|
||||||
|
var xzx = U.v.xzx;
|
||||||
|
var xzy = U.v.xzy;
|
||||||
|
var xzz = U.v.xzz;
|
||||||
|
var yxx = U.v.yxx;
|
||||||
|
var yxy = U.v.yxy;
|
||||||
|
var yxz = U.v.yxz;
|
||||||
|
var yyx = U.v.yyx;
|
||||||
|
var yyy = U.v.yyy;
|
||||||
|
var yyz = U.v.yyz;
|
||||||
|
var yzx = U.v.yzx;
|
||||||
|
var yzy = U.v.yzy;
|
||||||
|
var yzz = U.v.yzz;
|
||||||
|
var zxx = U.v.zxx;
|
||||||
|
var zxy = U.v.zxy;
|
||||||
|
var zxz = U.v.zxz;
|
||||||
|
var zyx = U.v.zyx;
|
||||||
|
var zyy = U.v.zyy;
|
||||||
|
var zyz = U.v.zyz;
|
||||||
|
var zzx = U.v.zzx;
|
||||||
|
var zzy = U.v.zzy;
|
||||||
|
var zzz = U.v.zzz;
|
||||||
|
var xxxx = U.v.xxxx;
|
||||||
|
var xxxy = U.v.xxxy;
|
||||||
|
var xxxz = U.v.xxxz;
|
||||||
|
var xxyx = U.v.xxyx;
|
||||||
|
var xxyy = U.v.xxyy;
|
||||||
|
var xxyz = U.v.xxyz;
|
||||||
|
var xxzx = U.v.xxzx;
|
||||||
|
var xxzy = U.v.xxzy;
|
||||||
|
var xxzz = U.v.xxzz;
|
||||||
|
var xyxx = U.v.xyxx;
|
||||||
|
var xyxy = U.v.xyxy;
|
||||||
|
var xyxz = U.v.xyxz;
|
||||||
|
var xyyx = U.v.xyyx;
|
||||||
|
var xyyy = U.v.xyyy;
|
||||||
|
var xyyz = U.v.xyyz;
|
||||||
|
var xyzx = U.v.xyzx;
|
||||||
|
var xyzy = U.v.xyzy;
|
||||||
|
var xyzz = U.v.xyzz;
|
||||||
|
var xzxx = U.v.xzxx;
|
||||||
|
var xzxy = U.v.xzxy;
|
||||||
|
var xzxz = U.v.xzxz;
|
||||||
|
var xzyx = U.v.xzyx;
|
||||||
|
var xzyy = U.v.xzyy;
|
||||||
|
var xzyz = U.v.xzyz;
|
||||||
|
var xzzx = U.v.xzzx;
|
||||||
|
var xzzy = U.v.xzzy;
|
||||||
|
var xzzz = U.v.xzzz;
|
||||||
|
var yxxx = U.v.yxxx;
|
||||||
|
var yxxy = U.v.yxxy;
|
||||||
|
var yxxz = U.v.yxxz;
|
||||||
|
var yxyx = U.v.yxyx;
|
||||||
|
var yxyy = U.v.yxyy;
|
||||||
|
var yxyz = U.v.yxyz;
|
||||||
|
var yxzx = U.v.yxzx;
|
||||||
|
var yxzy = U.v.yxzy;
|
||||||
|
var yxzz = U.v.yxzz;
|
||||||
|
var yyxx = U.v.yyxx;
|
||||||
|
var yyxy = U.v.yyxy;
|
||||||
|
var yyxz = U.v.yyxz;
|
||||||
|
var yyyx = U.v.yyyx;
|
||||||
|
var yyyy = U.v.yyyy;
|
||||||
|
var yyyz = U.v.yyyz;
|
||||||
|
var yyzx = U.v.yyzx;
|
||||||
|
var yyzy = U.v.yyzy;
|
||||||
|
var yyzz = U.v.yyzz;
|
||||||
|
var yzxx = U.v.yzxx;
|
||||||
|
var yzxy = U.v.yzxy;
|
||||||
|
var yzxz = U.v.yzxz;
|
||||||
|
var yzyx = U.v.yzyx;
|
||||||
|
var yzyy = U.v.yzyy;
|
||||||
|
var yzyz = U.v.yzyz;
|
||||||
|
var yzzx = U.v.yzzx;
|
||||||
|
var yzzy = U.v.yzzy;
|
||||||
|
var yzzz = U.v.yzzz;
|
||||||
|
var zxxx = U.v.zxxx;
|
||||||
|
var zxxy = U.v.zxxy;
|
||||||
|
var zxxz = U.v.zxxz;
|
||||||
|
var zxyx = U.v.zxyx;
|
||||||
|
var zxyy = U.v.zxyy;
|
||||||
|
var zxyz = U.v.zxyz;
|
||||||
|
var zxzx = U.v.zxzx;
|
||||||
|
var zxzy = U.v.zxzy;
|
||||||
|
var zxzz = U.v.zxzz;
|
||||||
|
var zyxx = U.v.zyxx;
|
||||||
|
var zyxy = U.v.zyxy;
|
||||||
|
var zyxz = U.v.zyxz;
|
||||||
|
var zyyx = U.v.zyyx;
|
||||||
|
var zyyy = U.v.zyyy;
|
||||||
|
var zyyz = U.v.zyyz;
|
||||||
|
var zyzx = U.v.zyzx;
|
||||||
|
var zyzy = U.v.zyzy;
|
||||||
|
var zyzz = U.v.zyzz;
|
||||||
|
var zzxx = U.v.zzxx;
|
||||||
|
var zzxy = U.v.zzxy;
|
||||||
|
var zzxz = U.v.zzxz;
|
||||||
|
var zzyx = U.v.zzyx;
|
||||||
|
var zzyy = U.v.zzyy;
|
||||||
|
var zzyz = U.v.zzyz;
|
||||||
|
var zzzx = U.v.zzzx;
|
||||||
|
var zzzy = U.v.zzzy;
|
||||||
|
var zzzz = U.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,143 @@
|
||||||
|
struct S {
|
||||||
|
v: vec3<f32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = P.v;
|
||||||
|
|
||||||
|
var x = P.v.x;
|
||||||
|
var y = P.v.y;
|
||||||
|
var z = P.v.z;
|
||||||
|
|
||||||
|
var xx = P.v.xx;
|
||||||
|
var xy = P.v.xy;
|
||||||
|
var xz = P.v.xz;
|
||||||
|
var yx = P.v.yx;
|
||||||
|
var yy = P.v.yy;
|
||||||
|
var yz = P.v.yz;
|
||||||
|
var zx = P.v.zx;
|
||||||
|
var zy = P.v.zy;
|
||||||
|
var zz = P.v.zz;
|
||||||
|
|
||||||
|
var xxx = P.v.xxx;
|
||||||
|
var xxy = P.v.xxy;
|
||||||
|
var xxz = P.v.xxz;
|
||||||
|
var xyx = P.v.xyx;
|
||||||
|
var xyy = P.v.xyy;
|
||||||
|
var xyz = P.v.xyz;
|
||||||
|
var xzx = P.v.xzx;
|
||||||
|
var xzy = P.v.xzy;
|
||||||
|
var xzz = P.v.xzz;
|
||||||
|
|
||||||
|
var yxx = P.v.yxx;
|
||||||
|
var yxy = P.v.yxy;
|
||||||
|
var yxz = P.v.yxz;
|
||||||
|
var yyx = P.v.yyx;
|
||||||
|
var yyy = P.v.yyy;
|
||||||
|
var yyz = P.v.yyz;
|
||||||
|
var yzx = P.v.yzx;
|
||||||
|
var yzy = P.v.yzy;
|
||||||
|
var yzz = P.v.yzz;
|
||||||
|
|
||||||
|
var zxx = P.v.zxx;
|
||||||
|
var zxy = P.v.zxy;
|
||||||
|
var zxz = P.v.zxz;
|
||||||
|
var zyx = P.v.zyx;
|
||||||
|
var zyy = P.v.zyy;
|
||||||
|
var zyz = P.v.zyz;
|
||||||
|
var zzx = P.v.zzx;
|
||||||
|
var zzy = P.v.zzy;
|
||||||
|
var zzz = P.v.zzz;
|
||||||
|
|
||||||
|
var xxxx = P.v.xxxx;
|
||||||
|
var xxxy = P.v.xxxy;
|
||||||
|
var xxxz = P.v.xxxz;
|
||||||
|
var xxyx = P.v.xxyx;
|
||||||
|
var xxyy = P.v.xxyy;
|
||||||
|
var xxyz = P.v.xxyz;
|
||||||
|
var xxzx = P.v.xxzx;
|
||||||
|
var xxzy = P.v.xxzy;
|
||||||
|
var xxzz = P.v.xxzz;
|
||||||
|
|
||||||
|
var xyxx = P.v.xyxx;
|
||||||
|
var xyxy = P.v.xyxy;
|
||||||
|
var xyxz = P.v.xyxz;
|
||||||
|
var xyyx = P.v.xyyx;
|
||||||
|
var xyyy = P.v.xyyy;
|
||||||
|
var xyyz = P.v.xyyz;
|
||||||
|
var xyzx = P.v.xyzx;
|
||||||
|
var xyzy = P.v.xyzy;
|
||||||
|
var xyzz = P.v.xyzz;
|
||||||
|
|
||||||
|
var xzxx = P.v.xzxx;
|
||||||
|
var xzxy = P.v.xzxy;
|
||||||
|
var xzxz = P.v.xzxz;
|
||||||
|
var xzyx = P.v.xzyx;
|
||||||
|
var xzyy = P.v.xzyy;
|
||||||
|
var xzyz = P.v.xzyz;
|
||||||
|
var xzzx = P.v.xzzx;
|
||||||
|
var xzzy = P.v.xzzy;
|
||||||
|
var xzzz = P.v.xzzz;
|
||||||
|
|
||||||
|
var yxxx = P.v.yxxx;
|
||||||
|
var yxxy = P.v.yxxy;
|
||||||
|
var yxxz = P.v.yxxz;
|
||||||
|
var yxyx = P.v.yxyx;
|
||||||
|
var yxyy = P.v.yxyy;
|
||||||
|
var yxyz = P.v.yxyz;
|
||||||
|
var yxzx = P.v.yxzx;
|
||||||
|
var yxzy = P.v.yxzy;
|
||||||
|
var yxzz = P.v.yxzz;
|
||||||
|
|
||||||
|
var yyxx = P.v.yyxx;
|
||||||
|
var yyxy = P.v.yyxy;
|
||||||
|
var yyxz = P.v.yyxz;
|
||||||
|
var yyyx = P.v.yyyx;
|
||||||
|
var yyyy = P.v.yyyy;
|
||||||
|
var yyyz = P.v.yyyz;
|
||||||
|
var yyzx = P.v.yyzx;
|
||||||
|
var yyzy = P.v.yyzy;
|
||||||
|
var yyzz = P.v.yyzz;
|
||||||
|
|
||||||
|
var yzxx = P.v.yzxx;
|
||||||
|
var yzxy = P.v.yzxy;
|
||||||
|
var yzxz = P.v.yzxz;
|
||||||
|
var yzyx = P.v.yzyx;
|
||||||
|
var yzyy = P.v.yzyy;
|
||||||
|
var yzyz = P.v.yzyz;
|
||||||
|
var yzzx = P.v.yzzx;
|
||||||
|
var yzzy = P.v.yzzy;
|
||||||
|
var yzzz = P.v.yzzz;
|
||||||
|
|
||||||
|
var zxxx = P.v.zxxx;
|
||||||
|
var zxxy = P.v.zxxy;
|
||||||
|
var zxxz = P.v.zxxz;
|
||||||
|
var zxyx = P.v.zxyx;
|
||||||
|
var zxyy = P.v.zxyy;
|
||||||
|
var zxyz = P.v.zxyz;
|
||||||
|
var zxzx = P.v.zxzx;
|
||||||
|
var zxzy = P.v.zxzy;
|
||||||
|
var zxzz = P.v.zxzz;
|
||||||
|
|
||||||
|
var zyxx = P.v.zyxx;
|
||||||
|
var zyxy = P.v.zyxy;
|
||||||
|
var zyxz = P.v.zyxz;
|
||||||
|
var zyyx = P.v.zyyx;
|
||||||
|
var zyyy = P.v.zyyy;
|
||||||
|
var zyyz = P.v.zyyz;
|
||||||
|
var zyzx = P.v.zyzx;
|
||||||
|
var zyzy = P.v.zyzy;
|
||||||
|
var zyzz = P.v.zyzz;
|
||||||
|
|
||||||
|
var zzxx = P.v.zzxx;
|
||||||
|
var zzxy = P.v.zzxy;
|
||||||
|
var zzxz = P.v.zzxz;
|
||||||
|
var zzyx = P.v.zzyx;
|
||||||
|
var zzyy = P.v.zzyy;
|
||||||
|
var zzyz = P.v.zzyz;
|
||||||
|
var zzzx = P.v.zzzx;
|
||||||
|
var zzzy = P.v.zzzy;
|
||||||
|
var zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,134 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
float3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
static S P = (S)0;
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
float3 v = P.v;
|
||||||
|
float x = P.v.x;
|
||||||
|
float y = P.v.y;
|
||||||
|
float z = P.v.z;
|
||||||
|
float2 xx = P.v.xx;
|
||||||
|
float2 xy = P.v.xy;
|
||||||
|
float2 xz = P.v.xz;
|
||||||
|
float2 yx = P.v.yx;
|
||||||
|
float2 yy = P.v.yy;
|
||||||
|
float2 yz = P.v.yz;
|
||||||
|
float2 zx = P.v.zx;
|
||||||
|
float2 zy = P.v.zy;
|
||||||
|
float2 zz = P.v.zz;
|
||||||
|
float3 xxx = P.v.xxx;
|
||||||
|
float3 xxy = P.v.xxy;
|
||||||
|
float3 xxz = P.v.xxz;
|
||||||
|
float3 xyx = P.v.xyx;
|
||||||
|
float3 xyy = P.v.xyy;
|
||||||
|
float3 xyz = P.v.xyz;
|
||||||
|
float3 xzx = P.v.xzx;
|
||||||
|
float3 xzy = P.v.xzy;
|
||||||
|
float3 xzz = P.v.xzz;
|
||||||
|
float3 yxx = P.v.yxx;
|
||||||
|
float3 yxy = P.v.yxy;
|
||||||
|
float3 yxz = P.v.yxz;
|
||||||
|
float3 yyx = P.v.yyx;
|
||||||
|
float3 yyy = P.v.yyy;
|
||||||
|
float3 yyz = P.v.yyz;
|
||||||
|
float3 yzx = P.v.yzx;
|
||||||
|
float3 yzy = P.v.yzy;
|
||||||
|
float3 yzz = P.v.yzz;
|
||||||
|
float3 zxx = P.v.zxx;
|
||||||
|
float3 zxy = P.v.zxy;
|
||||||
|
float3 zxz = P.v.zxz;
|
||||||
|
float3 zyx = P.v.zyx;
|
||||||
|
float3 zyy = P.v.zyy;
|
||||||
|
float3 zyz = P.v.zyz;
|
||||||
|
float3 zzx = P.v.zzx;
|
||||||
|
float3 zzy = P.v.zzy;
|
||||||
|
float3 zzz = P.v.zzz;
|
||||||
|
float4 xxxx = P.v.xxxx;
|
||||||
|
float4 xxxy = P.v.xxxy;
|
||||||
|
float4 xxxz = P.v.xxxz;
|
||||||
|
float4 xxyx = P.v.xxyx;
|
||||||
|
float4 xxyy = P.v.xxyy;
|
||||||
|
float4 xxyz = P.v.xxyz;
|
||||||
|
float4 xxzx = P.v.xxzx;
|
||||||
|
float4 xxzy = P.v.xxzy;
|
||||||
|
float4 xxzz = P.v.xxzz;
|
||||||
|
float4 xyxx = P.v.xyxx;
|
||||||
|
float4 xyxy = P.v.xyxy;
|
||||||
|
float4 xyxz = P.v.xyxz;
|
||||||
|
float4 xyyx = P.v.xyyx;
|
||||||
|
float4 xyyy = P.v.xyyy;
|
||||||
|
float4 xyyz = P.v.xyyz;
|
||||||
|
float4 xyzx = P.v.xyzx;
|
||||||
|
float4 xyzy = P.v.xyzy;
|
||||||
|
float4 xyzz = P.v.xyzz;
|
||||||
|
float4 xzxx = P.v.xzxx;
|
||||||
|
float4 xzxy = P.v.xzxy;
|
||||||
|
float4 xzxz = P.v.xzxz;
|
||||||
|
float4 xzyx = P.v.xzyx;
|
||||||
|
float4 xzyy = P.v.xzyy;
|
||||||
|
float4 xzyz = P.v.xzyz;
|
||||||
|
float4 xzzx = P.v.xzzx;
|
||||||
|
float4 xzzy = P.v.xzzy;
|
||||||
|
float4 xzzz = P.v.xzzz;
|
||||||
|
float4 yxxx = P.v.yxxx;
|
||||||
|
float4 yxxy = P.v.yxxy;
|
||||||
|
float4 yxxz = P.v.yxxz;
|
||||||
|
float4 yxyx = P.v.yxyx;
|
||||||
|
float4 yxyy = P.v.yxyy;
|
||||||
|
float4 yxyz = P.v.yxyz;
|
||||||
|
float4 yxzx = P.v.yxzx;
|
||||||
|
float4 yxzy = P.v.yxzy;
|
||||||
|
float4 yxzz = P.v.yxzz;
|
||||||
|
float4 yyxx = P.v.yyxx;
|
||||||
|
float4 yyxy = P.v.yyxy;
|
||||||
|
float4 yyxz = P.v.yyxz;
|
||||||
|
float4 yyyx = P.v.yyyx;
|
||||||
|
float4 yyyy = P.v.yyyy;
|
||||||
|
float4 yyyz = P.v.yyyz;
|
||||||
|
float4 yyzx = P.v.yyzx;
|
||||||
|
float4 yyzy = P.v.yyzy;
|
||||||
|
float4 yyzz = P.v.yyzz;
|
||||||
|
float4 yzxx = P.v.yzxx;
|
||||||
|
float4 yzxy = P.v.yzxy;
|
||||||
|
float4 yzxz = P.v.yzxz;
|
||||||
|
float4 yzyx = P.v.yzyx;
|
||||||
|
float4 yzyy = P.v.yzyy;
|
||||||
|
float4 yzyz = P.v.yzyz;
|
||||||
|
float4 yzzx = P.v.yzzx;
|
||||||
|
float4 yzzy = P.v.yzzy;
|
||||||
|
float4 yzzz = P.v.yzzz;
|
||||||
|
float4 zxxx = P.v.zxxx;
|
||||||
|
float4 zxxy = P.v.zxxy;
|
||||||
|
float4 zxxz = P.v.zxxz;
|
||||||
|
float4 zxyx = P.v.zxyx;
|
||||||
|
float4 zxyy = P.v.zxyy;
|
||||||
|
float4 zxyz = P.v.zxyz;
|
||||||
|
float4 zxzx = P.v.zxzx;
|
||||||
|
float4 zxzy = P.v.zxzy;
|
||||||
|
float4 zxzz = P.v.zxzz;
|
||||||
|
float4 zyxx = P.v.zyxx;
|
||||||
|
float4 zyxy = P.v.zyxy;
|
||||||
|
float4 zyxz = P.v.zyxz;
|
||||||
|
float4 zyyx = P.v.zyyx;
|
||||||
|
float4 zyyy = P.v.zyyy;
|
||||||
|
float4 zyyz = P.v.zyyz;
|
||||||
|
float4 zyzx = P.v.zyzx;
|
||||||
|
float4 zyzy = P.v.zyzy;
|
||||||
|
float4 zyzz = P.v.zyzz;
|
||||||
|
float4 zzxx = P.v.zzxx;
|
||||||
|
float4 zzxy = P.v.zzxy;
|
||||||
|
float4 zzxz = P.v.zzxz;
|
||||||
|
float4 zzyx = P.v.zzyx;
|
||||||
|
float4 zzyy = P.v.zzyy;
|
||||||
|
float4 zzyz = P.v.zzyz;
|
||||||
|
float4 zzzx = P.v.zzzx;
|
||||||
|
float4 zzzy = P.v.zzzy;
|
||||||
|
float4 zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,131 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
float3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(thread S* const tint_symbol) {
|
||||||
|
float3 v = (*(tint_symbol)).v;
|
||||||
|
float x = (*(tint_symbol)).v[0];
|
||||||
|
float y = (*(tint_symbol)).v[1];
|
||||||
|
float z = (*(tint_symbol)).v[2];
|
||||||
|
float2 xx = float3((*(tint_symbol)).v).xx;
|
||||||
|
float2 xy = float3((*(tint_symbol)).v).xy;
|
||||||
|
float2 xz = float3((*(tint_symbol)).v).xz;
|
||||||
|
float2 yx = float3((*(tint_symbol)).v).yx;
|
||||||
|
float2 yy = float3((*(tint_symbol)).v).yy;
|
||||||
|
float2 yz = float3((*(tint_symbol)).v).yz;
|
||||||
|
float2 zx = float3((*(tint_symbol)).v).zx;
|
||||||
|
float2 zy = float3((*(tint_symbol)).v).zy;
|
||||||
|
float2 zz = float3((*(tint_symbol)).v).zz;
|
||||||
|
float3 xxx = float3((*(tint_symbol)).v).xxx;
|
||||||
|
float3 xxy = float3((*(tint_symbol)).v).xxy;
|
||||||
|
float3 xxz = float3((*(tint_symbol)).v).xxz;
|
||||||
|
float3 xyx = float3((*(tint_symbol)).v).xyx;
|
||||||
|
float3 xyy = float3((*(tint_symbol)).v).xyy;
|
||||||
|
float3 xyz = float3((*(tint_symbol)).v).xyz;
|
||||||
|
float3 xzx = float3((*(tint_symbol)).v).xzx;
|
||||||
|
float3 xzy = float3((*(tint_symbol)).v).xzy;
|
||||||
|
float3 xzz = float3((*(tint_symbol)).v).xzz;
|
||||||
|
float3 yxx = float3((*(tint_symbol)).v).yxx;
|
||||||
|
float3 yxy = float3((*(tint_symbol)).v).yxy;
|
||||||
|
float3 yxz = float3((*(tint_symbol)).v).yxz;
|
||||||
|
float3 yyx = float3((*(tint_symbol)).v).yyx;
|
||||||
|
float3 yyy = float3((*(tint_symbol)).v).yyy;
|
||||||
|
float3 yyz = float3((*(tint_symbol)).v).yyz;
|
||||||
|
float3 yzx = float3((*(tint_symbol)).v).yzx;
|
||||||
|
float3 yzy = float3((*(tint_symbol)).v).yzy;
|
||||||
|
float3 yzz = float3((*(tint_symbol)).v).yzz;
|
||||||
|
float3 zxx = float3((*(tint_symbol)).v).zxx;
|
||||||
|
float3 zxy = float3((*(tint_symbol)).v).zxy;
|
||||||
|
float3 zxz = float3((*(tint_symbol)).v).zxz;
|
||||||
|
float3 zyx = float3((*(tint_symbol)).v).zyx;
|
||||||
|
float3 zyy = float3((*(tint_symbol)).v).zyy;
|
||||||
|
float3 zyz = float3((*(tint_symbol)).v).zyz;
|
||||||
|
float3 zzx = float3((*(tint_symbol)).v).zzx;
|
||||||
|
float3 zzy = float3((*(tint_symbol)).v).zzy;
|
||||||
|
float3 zzz = float3((*(tint_symbol)).v).zzz;
|
||||||
|
float4 xxxx = float3((*(tint_symbol)).v).xxxx;
|
||||||
|
float4 xxxy = float3((*(tint_symbol)).v).xxxy;
|
||||||
|
float4 xxxz = float3((*(tint_symbol)).v).xxxz;
|
||||||
|
float4 xxyx = float3((*(tint_symbol)).v).xxyx;
|
||||||
|
float4 xxyy = float3((*(tint_symbol)).v).xxyy;
|
||||||
|
float4 xxyz = float3((*(tint_symbol)).v).xxyz;
|
||||||
|
float4 xxzx = float3((*(tint_symbol)).v).xxzx;
|
||||||
|
float4 xxzy = float3((*(tint_symbol)).v).xxzy;
|
||||||
|
float4 xxzz = float3((*(tint_symbol)).v).xxzz;
|
||||||
|
float4 xyxx = float3((*(tint_symbol)).v).xyxx;
|
||||||
|
float4 xyxy = float3((*(tint_symbol)).v).xyxy;
|
||||||
|
float4 xyxz = float3((*(tint_symbol)).v).xyxz;
|
||||||
|
float4 xyyx = float3((*(tint_symbol)).v).xyyx;
|
||||||
|
float4 xyyy = float3((*(tint_symbol)).v).xyyy;
|
||||||
|
float4 xyyz = float3((*(tint_symbol)).v).xyyz;
|
||||||
|
float4 xyzx = float3((*(tint_symbol)).v).xyzx;
|
||||||
|
float4 xyzy = float3((*(tint_symbol)).v).xyzy;
|
||||||
|
float4 xyzz = float3((*(tint_symbol)).v).xyzz;
|
||||||
|
float4 xzxx = float3((*(tint_symbol)).v).xzxx;
|
||||||
|
float4 xzxy = float3((*(tint_symbol)).v).xzxy;
|
||||||
|
float4 xzxz = float3((*(tint_symbol)).v).xzxz;
|
||||||
|
float4 xzyx = float3((*(tint_symbol)).v).xzyx;
|
||||||
|
float4 xzyy = float3((*(tint_symbol)).v).xzyy;
|
||||||
|
float4 xzyz = float3((*(tint_symbol)).v).xzyz;
|
||||||
|
float4 xzzx = float3((*(tint_symbol)).v).xzzx;
|
||||||
|
float4 xzzy = float3((*(tint_symbol)).v).xzzy;
|
||||||
|
float4 xzzz = float3((*(tint_symbol)).v).xzzz;
|
||||||
|
float4 yxxx = float3((*(tint_symbol)).v).yxxx;
|
||||||
|
float4 yxxy = float3((*(tint_symbol)).v).yxxy;
|
||||||
|
float4 yxxz = float3((*(tint_symbol)).v).yxxz;
|
||||||
|
float4 yxyx = float3((*(tint_symbol)).v).yxyx;
|
||||||
|
float4 yxyy = float3((*(tint_symbol)).v).yxyy;
|
||||||
|
float4 yxyz = float3((*(tint_symbol)).v).yxyz;
|
||||||
|
float4 yxzx = float3((*(tint_symbol)).v).yxzx;
|
||||||
|
float4 yxzy = float3((*(tint_symbol)).v).yxzy;
|
||||||
|
float4 yxzz = float3((*(tint_symbol)).v).yxzz;
|
||||||
|
float4 yyxx = float3((*(tint_symbol)).v).yyxx;
|
||||||
|
float4 yyxy = float3((*(tint_symbol)).v).yyxy;
|
||||||
|
float4 yyxz = float3((*(tint_symbol)).v).yyxz;
|
||||||
|
float4 yyyx = float3((*(tint_symbol)).v).yyyx;
|
||||||
|
float4 yyyy = float3((*(tint_symbol)).v).yyyy;
|
||||||
|
float4 yyyz = float3((*(tint_symbol)).v).yyyz;
|
||||||
|
float4 yyzx = float3((*(tint_symbol)).v).yyzx;
|
||||||
|
float4 yyzy = float3((*(tint_symbol)).v).yyzy;
|
||||||
|
float4 yyzz = float3((*(tint_symbol)).v).yyzz;
|
||||||
|
float4 yzxx = float3((*(tint_symbol)).v).yzxx;
|
||||||
|
float4 yzxy = float3((*(tint_symbol)).v).yzxy;
|
||||||
|
float4 yzxz = float3((*(tint_symbol)).v).yzxz;
|
||||||
|
float4 yzyx = float3((*(tint_symbol)).v).yzyx;
|
||||||
|
float4 yzyy = float3((*(tint_symbol)).v).yzyy;
|
||||||
|
float4 yzyz = float3((*(tint_symbol)).v).yzyz;
|
||||||
|
float4 yzzx = float3((*(tint_symbol)).v).yzzx;
|
||||||
|
float4 yzzy = float3((*(tint_symbol)).v).yzzy;
|
||||||
|
float4 yzzz = float3((*(tint_symbol)).v).yzzz;
|
||||||
|
float4 zxxx = float3((*(tint_symbol)).v).zxxx;
|
||||||
|
float4 zxxy = float3((*(tint_symbol)).v).zxxy;
|
||||||
|
float4 zxxz = float3((*(tint_symbol)).v).zxxz;
|
||||||
|
float4 zxyx = float3((*(tint_symbol)).v).zxyx;
|
||||||
|
float4 zxyy = float3((*(tint_symbol)).v).zxyy;
|
||||||
|
float4 zxyz = float3((*(tint_symbol)).v).zxyz;
|
||||||
|
float4 zxzx = float3((*(tint_symbol)).v).zxzx;
|
||||||
|
float4 zxzy = float3((*(tint_symbol)).v).zxzy;
|
||||||
|
float4 zxzz = float3((*(tint_symbol)).v).zxzz;
|
||||||
|
float4 zyxx = float3((*(tint_symbol)).v).zyxx;
|
||||||
|
float4 zyxy = float3((*(tint_symbol)).v).zyxy;
|
||||||
|
float4 zyxz = float3((*(tint_symbol)).v).zyxz;
|
||||||
|
float4 zyyx = float3((*(tint_symbol)).v).zyyx;
|
||||||
|
float4 zyyy = float3((*(tint_symbol)).v).zyyy;
|
||||||
|
float4 zyyz = float3((*(tint_symbol)).v).zyyz;
|
||||||
|
float4 zyzx = float3((*(tint_symbol)).v).zyzx;
|
||||||
|
float4 zyzy = float3((*(tint_symbol)).v).zyzy;
|
||||||
|
float4 zyzz = float3((*(tint_symbol)).v).zyzz;
|
||||||
|
float4 zzxx = float3((*(tint_symbol)).v).zzxx;
|
||||||
|
float4 zzxy = float3((*(tint_symbol)).v).zzxy;
|
||||||
|
float4 zzxz = float3((*(tint_symbol)).v).zzxz;
|
||||||
|
float4 zzyx = float3((*(tint_symbol)).v).zzyx;
|
||||||
|
float4 zzyy = float3((*(tint_symbol)).v).zzyy;
|
||||||
|
float4 zzyz = float3((*(tint_symbol)).v).zzyz;
|
||||||
|
float4 zzzx = float3((*(tint_symbol)).v).zzzx;
|
||||||
|
float4 zzzy = float3((*(tint_symbol)).v).zzzy;
|
||||||
|
float4 zzzz = float3((*(tint_symbol)).v).zzzz;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,769 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 509
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %P "P"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpName %v "v"
|
||||||
|
OpName %x "x"
|
||||||
|
OpName %y "y"
|
||||||
|
OpName %z "z"
|
||||||
|
OpName %xx "xx"
|
||||||
|
OpName %xy "xy"
|
||||||
|
OpName %xz "xz"
|
||||||
|
OpName %yx "yx"
|
||||||
|
OpName %yy "yy"
|
||||||
|
OpName %yz "yz"
|
||||||
|
OpName %zx "zx"
|
||||||
|
OpName %zy "zy"
|
||||||
|
OpName %zz "zz"
|
||||||
|
OpName %xxx "xxx"
|
||||||
|
OpName %xxy "xxy"
|
||||||
|
OpName %xxz "xxz"
|
||||||
|
OpName %xyx "xyx"
|
||||||
|
OpName %xyy "xyy"
|
||||||
|
OpName %xyz "xyz"
|
||||||
|
OpName %xzx "xzx"
|
||||||
|
OpName %xzy "xzy"
|
||||||
|
OpName %xzz "xzz"
|
||||||
|
OpName %yxx "yxx"
|
||||||
|
OpName %yxy "yxy"
|
||||||
|
OpName %yxz "yxz"
|
||||||
|
OpName %yyx "yyx"
|
||||||
|
OpName %yyy "yyy"
|
||||||
|
OpName %yyz "yyz"
|
||||||
|
OpName %yzx "yzx"
|
||||||
|
OpName %yzy "yzy"
|
||||||
|
OpName %yzz "yzz"
|
||||||
|
OpName %zxx "zxx"
|
||||||
|
OpName %zxy "zxy"
|
||||||
|
OpName %zxz "zxz"
|
||||||
|
OpName %zyx "zyx"
|
||||||
|
OpName %zyy "zyy"
|
||||||
|
OpName %zyz "zyz"
|
||||||
|
OpName %zzx "zzx"
|
||||||
|
OpName %zzy "zzy"
|
||||||
|
OpName %zzz "zzz"
|
||||||
|
OpName %xxxx "xxxx"
|
||||||
|
OpName %xxxy "xxxy"
|
||||||
|
OpName %xxxz "xxxz"
|
||||||
|
OpName %xxyx "xxyx"
|
||||||
|
OpName %xxyy "xxyy"
|
||||||
|
OpName %xxyz "xxyz"
|
||||||
|
OpName %xxzx "xxzx"
|
||||||
|
OpName %xxzy "xxzy"
|
||||||
|
OpName %xxzz "xxzz"
|
||||||
|
OpName %xyxx "xyxx"
|
||||||
|
OpName %xyxy "xyxy"
|
||||||
|
OpName %xyxz "xyxz"
|
||||||
|
OpName %xyyx "xyyx"
|
||||||
|
OpName %xyyy "xyyy"
|
||||||
|
OpName %xyyz "xyyz"
|
||||||
|
OpName %xyzx "xyzx"
|
||||||
|
OpName %xyzy "xyzy"
|
||||||
|
OpName %xyzz "xyzz"
|
||||||
|
OpName %xzxx "xzxx"
|
||||||
|
OpName %xzxy "xzxy"
|
||||||
|
OpName %xzxz "xzxz"
|
||||||
|
OpName %xzyx "xzyx"
|
||||||
|
OpName %xzyy "xzyy"
|
||||||
|
OpName %xzyz "xzyz"
|
||||||
|
OpName %xzzx "xzzx"
|
||||||
|
OpName %xzzy "xzzy"
|
||||||
|
OpName %xzzz "xzzz"
|
||||||
|
OpName %yxxx "yxxx"
|
||||||
|
OpName %yxxy "yxxy"
|
||||||
|
OpName %yxxz "yxxz"
|
||||||
|
OpName %yxyx "yxyx"
|
||||||
|
OpName %yxyy "yxyy"
|
||||||
|
OpName %yxyz "yxyz"
|
||||||
|
OpName %yxzx "yxzx"
|
||||||
|
OpName %yxzy "yxzy"
|
||||||
|
OpName %yxzz "yxzz"
|
||||||
|
OpName %yyxx "yyxx"
|
||||||
|
OpName %yyxy "yyxy"
|
||||||
|
OpName %yyxz "yyxz"
|
||||||
|
OpName %yyyx "yyyx"
|
||||||
|
OpName %yyyy "yyyy"
|
||||||
|
OpName %yyyz "yyyz"
|
||||||
|
OpName %yyzx "yyzx"
|
||||||
|
OpName %yyzy "yyzy"
|
||||||
|
OpName %yyzz "yyzz"
|
||||||
|
OpName %yzxx "yzxx"
|
||||||
|
OpName %yzxy "yzxy"
|
||||||
|
OpName %yzxz "yzxz"
|
||||||
|
OpName %yzyx "yzyx"
|
||||||
|
OpName %yzyy "yzyy"
|
||||||
|
OpName %yzyz "yzyz"
|
||||||
|
OpName %yzzx "yzzx"
|
||||||
|
OpName %yzzy "yzzy"
|
||||||
|
OpName %yzzz "yzzz"
|
||||||
|
OpName %zxxx "zxxx"
|
||||||
|
OpName %zxxy "zxxy"
|
||||||
|
OpName %zxxz "zxxz"
|
||||||
|
OpName %zxyx "zxyx"
|
||||||
|
OpName %zxyy "zxyy"
|
||||||
|
OpName %zxyz "zxyz"
|
||||||
|
OpName %zxzx "zxzx"
|
||||||
|
OpName %zxzy "zxzy"
|
||||||
|
OpName %zxzz "zxzz"
|
||||||
|
OpName %zyxx "zyxx"
|
||||||
|
OpName %zyxy "zyxy"
|
||||||
|
OpName %zyxz "zyxz"
|
||||||
|
OpName %zyyx "zyyx"
|
||||||
|
OpName %zyyy "zyyy"
|
||||||
|
OpName %zyyz "zyyz"
|
||||||
|
OpName %zyzx "zyzx"
|
||||||
|
OpName %zyzy "zyzy"
|
||||||
|
OpName %zyzz "zyzz"
|
||||||
|
OpName %zzxx "zzxx"
|
||||||
|
OpName %zzxy "zzxy"
|
||||||
|
OpName %zzxz "zzxz"
|
||||||
|
OpName %zzyx "zzyx"
|
||||||
|
OpName %zzyy "zzyy"
|
||||||
|
OpName %zzyz "zzyz"
|
||||||
|
OpName %zzzx "zzzx"
|
||||||
|
OpName %zzzy "zzzy"
|
||||||
|
OpName %zzzz "zzzz"
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
%float = OpTypeFloat 32
|
||||||
|
%v3float = OpTypeVector %float 3
|
||||||
|
%S = OpTypeStruct %v3float
|
||||||
|
%_ptr_Private_S = OpTypePointer Private %S
|
||||||
|
%6 = OpConstantNull %S
|
||||||
|
%P = OpVariable %_ptr_Private_S Private %6
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%7 = OpTypeFunction %void
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Private_v3float = OpTypePointer Private %v3float
|
||||||
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
|
%20 = OpConstantNull %v3float
|
||||||
|
%_ptr_Private_float = OpTypePointer Private %float
|
||||||
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
|
%26 = OpConstantNull %float
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%v2float = OpTypeVector %float 2
|
||||||
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
|
%41 = OpConstantNull %v2float
|
||||||
|
%v4float = OpTypeVector %float 4
|
||||||
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
|
%188 = OpConstantNull %v4float
|
||||||
|
%unused_entry_point = OpFunction %void None %7
|
||||||
|
%10 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %7
|
||||||
|
%12 = OpLabel
|
||||||
|
%v = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%x = OpVariable %_ptr_Function_float Function %26
|
||||||
|
%y = OpVariable %_ptr_Function_float Function %26
|
||||||
|
%z = OpVariable %_ptr_Function_float Function %26
|
||||||
|
%xx = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%xy = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%xz = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%yx = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%yy = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%yz = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%zx = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%zy = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%zz = OpVariable %_ptr_Function_v2float Function %41
|
||||||
|
%xxx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xxy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xxz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xyx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xyy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xyz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xzx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xzy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xzz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yxx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yxy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yxz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yyx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yyy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yyz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yzx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yzy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%yzz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zxx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zxy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zxz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zyx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zyy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zyz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zzx = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zzy = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%zzz = OpVariable %_ptr_Function_v3float Function %20
|
||||||
|
%xxxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xxxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xxxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xxyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xxyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xxyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xxzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xxzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xxzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xyzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%xzzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yxzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yyzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%yzzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zxzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zyzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzxx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzxy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzxz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzyx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzyy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzyz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzzx = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzzy = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%zzzz = OpVariable %_ptr_Function_v4float Function %188
|
||||||
|
%16 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%17 = OpLoad %v3float %16
|
||||||
|
OpStore %v %17
|
||||||
|
%22 = OpAccessChain %_ptr_Private_float %P %uint_0 %uint_0
|
||||||
|
%23 = OpLoad %float %22
|
||||||
|
OpStore %x %23
|
||||||
|
%28 = OpAccessChain %_ptr_Private_float %P %uint_0 %uint_1
|
||||||
|
%29 = OpLoad %float %28
|
||||||
|
OpStore %y %29
|
||||||
|
%32 = OpAccessChain %_ptr_Private_float %P %uint_0 %uint_2
|
||||||
|
%33 = OpLoad %float %32
|
||||||
|
OpStore %z %33
|
||||||
|
%35 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%37 = OpLoad %v3float %35
|
||||||
|
%38 = OpVectorShuffle %v2float %37 %37 0 0
|
||||||
|
OpStore %xx %38
|
||||||
|
%42 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%43 = OpLoad %v3float %42
|
||||||
|
%44 = OpVectorShuffle %v2float %43 %43 0 1
|
||||||
|
OpStore %xy %44
|
||||||
|
%46 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%47 = OpLoad %v3float %46
|
||||||
|
%48 = OpVectorShuffle %v2float %47 %47 0 2
|
||||||
|
OpStore %xz %48
|
||||||
|
%50 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%51 = OpLoad %v3float %50
|
||||||
|
%52 = OpVectorShuffle %v2float %51 %51 1 0
|
||||||
|
OpStore %yx %52
|
||||||
|
%54 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%55 = OpLoad %v3float %54
|
||||||
|
%56 = OpVectorShuffle %v2float %55 %55 1 1
|
||||||
|
OpStore %yy %56
|
||||||
|
%58 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%59 = OpLoad %v3float %58
|
||||||
|
%60 = OpVectorShuffle %v2float %59 %59 1 2
|
||||||
|
OpStore %yz %60
|
||||||
|
%62 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%63 = OpLoad %v3float %62
|
||||||
|
%64 = OpVectorShuffle %v2float %63 %63 2 0
|
||||||
|
OpStore %zx %64
|
||||||
|
%66 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%67 = OpLoad %v3float %66
|
||||||
|
%68 = OpVectorShuffle %v2float %67 %67 2 1
|
||||||
|
OpStore %zy %68
|
||||||
|
%70 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%71 = OpLoad %v3float %70
|
||||||
|
%72 = OpVectorShuffle %v2float %71 %71 2 2
|
||||||
|
OpStore %zz %72
|
||||||
|
%74 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%75 = OpLoad %v3float %74
|
||||||
|
%76 = OpVectorShuffle %v3float %75 %75 0 0 0
|
||||||
|
OpStore %xxx %76
|
||||||
|
%78 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%79 = OpLoad %v3float %78
|
||||||
|
%80 = OpVectorShuffle %v3float %79 %79 0 0 1
|
||||||
|
OpStore %xxy %80
|
||||||
|
%82 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%83 = OpLoad %v3float %82
|
||||||
|
%84 = OpVectorShuffle %v3float %83 %83 0 0 2
|
||||||
|
OpStore %xxz %84
|
||||||
|
%86 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%87 = OpLoad %v3float %86
|
||||||
|
%88 = OpVectorShuffle %v3float %87 %87 0 1 0
|
||||||
|
OpStore %xyx %88
|
||||||
|
%90 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%91 = OpLoad %v3float %90
|
||||||
|
%92 = OpVectorShuffle %v3float %91 %91 0 1 1
|
||||||
|
OpStore %xyy %92
|
||||||
|
%94 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%95 = OpLoad %v3float %94
|
||||||
|
%96 = OpVectorShuffle %v3float %95 %95 0 1 2
|
||||||
|
OpStore %xyz %96
|
||||||
|
%98 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%99 = OpLoad %v3float %98
|
||||||
|
%100 = OpVectorShuffle %v3float %99 %99 0 2 0
|
||||||
|
OpStore %xzx %100
|
||||||
|
%102 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%103 = OpLoad %v3float %102
|
||||||
|
%104 = OpVectorShuffle %v3float %103 %103 0 2 1
|
||||||
|
OpStore %xzy %104
|
||||||
|
%106 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%107 = OpLoad %v3float %106
|
||||||
|
%108 = OpVectorShuffle %v3float %107 %107 0 2 2
|
||||||
|
OpStore %xzz %108
|
||||||
|
%110 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%111 = OpLoad %v3float %110
|
||||||
|
%112 = OpVectorShuffle %v3float %111 %111 1 0 0
|
||||||
|
OpStore %yxx %112
|
||||||
|
%114 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%115 = OpLoad %v3float %114
|
||||||
|
%116 = OpVectorShuffle %v3float %115 %115 1 0 1
|
||||||
|
OpStore %yxy %116
|
||||||
|
%118 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%119 = OpLoad %v3float %118
|
||||||
|
%120 = OpVectorShuffle %v3float %119 %119 1 0 2
|
||||||
|
OpStore %yxz %120
|
||||||
|
%122 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%123 = OpLoad %v3float %122
|
||||||
|
%124 = OpVectorShuffle %v3float %123 %123 1 1 0
|
||||||
|
OpStore %yyx %124
|
||||||
|
%126 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%127 = OpLoad %v3float %126
|
||||||
|
%128 = OpVectorShuffle %v3float %127 %127 1 1 1
|
||||||
|
OpStore %yyy %128
|
||||||
|
%130 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%131 = OpLoad %v3float %130
|
||||||
|
%132 = OpVectorShuffle %v3float %131 %131 1 1 2
|
||||||
|
OpStore %yyz %132
|
||||||
|
%134 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%135 = OpLoad %v3float %134
|
||||||
|
%136 = OpVectorShuffle %v3float %135 %135 1 2 0
|
||||||
|
OpStore %yzx %136
|
||||||
|
%138 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%139 = OpLoad %v3float %138
|
||||||
|
%140 = OpVectorShuffle %v3float %139 %139 1 2 1
|
||||||
|
OpStore %yzy %140
|
||||||
|
%142 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%143 = OpLoad %v3float %142
|
||||||
|
%144 = OpVectorShuffle %v3float %143 %143 1 2 2
|
||||||
|
OpStore %yzz %144
|
||||||
|
%146 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%147 = OpLoad %v3float %146
|
||||||
|
%148 = OpVectorShuffle %v3float %147 %147 2 0 0
|
||||||
|
OpStore %zxx %148
|
||||||
|
%150 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%151 = OpLoad %v3float %150
|
||||||
|
%152 = OpVectorShuffle %v3float %151 %151 2 0 1
|
||||||
|
OpStore %zxy %152
|
||||||
|
%154 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%155 = OpLoad %v3float %154
|
||||||
|
%156 = OpVectorShuffle %v3float %155 %155 2 0 2
|
||||||
|
OpStore %zxz %156
|
||||||
|
%158 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%159 = OpLoad %v3float %158
|
||||||
|
%160 = OpVectorShuffle %v3float %159 %159 2 1 0
|
||||||
|
OpStore %zyx %160
|
||||||
|
%162 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%163 = OpLoad %v3float %162
|
||||||
|
%164 = OpVectorShuffle %v3float %163 %163 2 1 1
|
||||||
|
OpStore %zyy %164
|
||||||
|
%166 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%167 = OpLoad %v3float %166
|
||||||
|
%168 = OpVectorShuffle %v3float %167 %167 2 1 2
|
||||||
|
OpStore %zyz %168
|
||||||
|
%170 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%171 = OpLoad %v3float %170
|
||||||
|
%172 = OpVectorShuffle %v3float %171 %171 2 2 0
|
||||||
|
OpStore %zzx %172
|
||||||
|
%174 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%175 = OpLoad %v3float %174
|
||||||
|
%176 = OpVectorShuffle %v3float %175 %175 2 2 1
|
||||||
|
OpStore %zzy %176
|
||||||
|
%178 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%179 = OpLoad %v3float %178
|
||||||
|
%180 = OpVectorShuffle %v3float %179 %179 2 2 2
|
||||||
|
OpStore %zzz %180
|
||||||
|
%182 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%184 = OpLoad %v3float %182
|
||||||
|
%185 = OpVectorShuffle %v4float %184 %184 0 0 0 0
|
||||||
|
OpStore %xxxx %185
|
||||||
|
%189 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%190 = OpLoad %v3float %189
|
||||||
|
%191 = OpVectorShuffle %v4float %190 %190 0 0 0 1
|
||||||
|
OpStore %xxxy %191
|
||||||
|
%193 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%194 = OpLoad %v3float %193
|
||||||
|
%195 = OpVectorShuffle %v4float %194 %194 0 0 0 2
|
||||||
|
OpStore %xxxz %195
|
||||||
|
%197 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%198 = OpLoad %v3float %197
|
||||||
|
%199 = OpVectorShuffle %v4float %198 %198 0 0 1 0
|
||||||
|
OpStore %xxyx %199
|
||||||
|
%201 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%202 = OpLoad %v3float %201
|
||||||
|
%203 = OpVectorShuffle %v4float %202 %202 0 0 1 1
|
||||||
|
OpStore %xxyy %203
|
||||||
|
%205 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%206 = OpLoad %v3float %205
|
||||||
|
%207 = OpVectorShuffle %v4float %206 %206 0 0 1 2
|
||||||
|
OpStore %xxyz %207
|
||||||
|
%209 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%210 = OpLoad %v3float %209
|
||||||
|
%211 = OpVectorShuffle %v4float %210 %210 0 0 2 0
|
||||||
|
OpStore %xxzx %211
|
||||||
|
%213 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%214 = OpLoad %v3float %213
|
||||||
|
%215 = OpVectorShuffle %v4float %214 %214 0 0 2 1
|
||||||
|
OpStore %xxzy %215
|
||||||
|
%217 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%218 = OpLoad %v3float %217
|
||||||
|
%219 = OpVectorShuffle %v4float %218 %218 0 0 2 2
|
||||||
|
OpStore %xxzz %219
|
||||||
|
%221 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%222 = OpLoad %v3float %221
|
||||||
|
%223 = OpVectorShuffle %v4float %222 %222 0 1 0 0
|
||||||
|
OpStore %xyxx %223
|
||||||
|
%225 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%226 = OpLoad %v3float %225
|
||||||
|
%227 = OpVectorShuffle %v4float %226 %226 0 1 0 1
|
||||||
|
OpStore %xyxy %227
|
||||||
|
%229 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%230 = OpLoad %v3float %229
|
||||||
|
%231 = OpVectorShuffle %v4float %230 %230 0 1 0 2
|
||||||
|
OpStore %xyxz %231
|
||||||
|
%233 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%234 = OpLoad %v3float %233
|
||||||
|
%235 = OpVectorShuffle %v4float %234 %234 0 1 1 0
|
||||||
|
OpStore %xyyx %235
|
||||||
|
%237 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%238 = OpLoad %v3float %237
|
||||||
|
%239 = OpVectorShuffle %v4float %238 %238 0 1 1 1
|
||||||
|
OpStore %xyyy %239
|
||||||
|
%241 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%242 = OpLoad %v3float %241
|
||||||
|
%243 = OpVectorShuffle %v4float %242 %242 0 1 1 2
|
||||||
|
OpStore %xyyz %243
|
||||||
|
%245 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%246 = OpLoad %v3float %245
|
||||||
|
%247 = OpVectorShuffle %v4float %246 %246 0 1 2 0
|
||||||
|
OpStore %xyzx %247
|
||||||
|
%249 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%250 = OpLoad %v3float %249
|
||||||
|
%251 = OpVectorShuffle %v4float %250 %250 0 1 2 1
|
||||||
|
OpStore %xyzy %251
|
||||||
|
%253 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%254 = OpLoad %v3float %253
|
||||||
|
%255 = OpVectorShuffle %v4float %254 %254 0 1 2 2
|
||||||
|
OpStore %xyzz %255
|
||||||
|
%257 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%258 = OpLoad %v3float %257
|
||||||
|
%259 = OpVectorShuffle %v4float %258 %258 0 2 0 0
|
||||||
|
OpStore %xzxx %259
|
||||||
|
%261 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%262 = OpLoad %v3float %261
|
||||||
|
%263 = OpVectorShuffle %v4float %262 %262 0 2 0 1
|
||||||
|
OpStore %xzxy %263
|
||||||
|
%265 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%266 = OpLoad %v3float %265
|
||||||
|
%267 = OpVectorShuffle %v4float %266 %266 0 2 0 2
|
||||||
|
OpStore %xzxz %267
|
||||||
|
%269 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%270 = OpLoad %v3float %269
|
||||||
|
%271 = OpVectorShuffle %v4float %270 %270 0 2 1 0
|
||||||
|
OpStore %xzyx %271
|
||||||
|
%273 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%274 = OpLoad %v3float %273
|
||||||
|
%275 = OpVectorShuffle %v4float %274 %274 0 2 1 1
|
||||||
|
OpStore %xzyy %275
|
||||||
|
%277 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%278 = OpLoad %v3float %277
|
||||||
|
%279 = OpVectorShuffle %v4float %278 %278 0 2 1 2
|
||||||
|
OpStore %xzyz %279
|
||||||
|
%281 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%282 = OpLoad %v3float %281
|
||||||
|
%283 = OpVectorShuffle %v4float %282 %282 0 2 2 0
|
||||||
|
OpStore %xzzx %283
|
||||||
|
%285 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%286 = OpLoad %v3float %285
|
||||||
|
%287 = OpVectorShuffle %v4float %286 %286 0 2 2 1
|
||||||
|
OpStore %xzzy %287
|
||||||
|
%289 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%290 = OpLoad %v3float %289
|
||||||
|
%291 = OpVectorShuffle %v4float %290 %290 0 2 2 2
|
||||||
|
OpStore %xzzz %291
|
||||||
|
%293 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%294 = OpLoad %v3float %293
|
||||||
|
%295 = OpVectorShuffle %v4float %294 %294 1 0 0 0
|
||||||
|
OpStore %yxxx %295
|
||||||
|
%297 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%298 = OpLoad %v3float %297
|
||||||
|
%299 = OpVectorShuffle %v4float %298 %298 1 0 0 1
|
||||||
|
OpStore %yxxy %299
|
||||||
|
%301 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%302 = OpLoad %v3float %301
|
||||||
|
%303 = OpVectorShuffle %v4float %302 %302 1 0 0 2
|
||||||
|
OpStore %yxxz %303
|
||||||
|
%305 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%306 = OpLoad %v3float %305
|
||||||
|
%307 = OpVectorShuffle %v4float %306 %306 1 0 1 0
|
||||||
|
OpStore %yxyx %307
|
||||||
|
%309 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%310 = OpLoad %v3float %309
|
||||||
|
%311 = OpVectorShuffle %v4float %310 %310 1 0 1 1
|
||||||
|
OpStore %yxyy %311
|
||||||
|
%313 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%314 = OpLoad %v3float %313
|
||||||
|
%315 = OpVectorShuffle %v4float %314 %314 1 0 1 2
|
||||||
|
OpStore %yxyz %315
|
||||||
|
%317 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%318 = OpLoad %v3float %317
|
||||||
|
%319 = OpVectorShuffle %v4float %318 %318 1 0 2 0
|
||||||
|
OpStore %yxzx %319
|
||||||
|
%321 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%322 = OpLoad %v3float %321
|
||||||
|
%323 = OpVectorShuffle %v4float %322 %322 1 0 2 1
|
||||||
|
OpStore %yxzy %323
|
||||||
|
%325 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%326 = OpLoad %v3float %325
|
||||||
|
%327 = OpVectorShuffle %v4float %326 %326 1 0 2 2
|
||||||
|
OpStore %yxzz %327
|
||||||
|
%329 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%330 = OpLoad %v3float %329
|
||||||
|
%331 = OpVectorShuffle %v4float %330 %330 1 1 0 0
|
||||||
|
OpStore %yyxx %331
|
||||||
|
%333 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%334 = OpLoad %v3float %333
|
||||||
|
%335 = OpVectorShuffle %v4float %334 %334 1 1 0 1
|
||||||
|
OpStore %yyxy %335
|
||||||
|
%337 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%338 = OpLoad %v3float %337
|
||||||
|
%339 = OpVectorShuffle %v4float %338 %338 1 1 0 2
|
||||||
|
OpStore %yyxz %339
|
||||||
|
%341 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%342 = OpLoad %v3float %341
|
||||||
|
%343 = OpVectorShuffle %v4float %342 %342 1 1 1 0
|
||||||
|
OpStore %yyyx %343
|
||||||
|
%345 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%346 = OpLoad %v3float %345
|
||||||
|
%347 = OpVectorShuffle %v4float %346 %346 1 1 1 1
|
||||||
|
OpStore %yyyy %347
|
||||||
|
%349 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%350 = OpLoad %v3float %349
|
||||||
|
%351 = OpVectorShuffle %v4float %350 %350 1 1 1 2
|
||||||
|
OpStore %yyyz %351
|
||||||
|
%353 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%354 = OpLoad %v3float %353
|
||||||
|
%355 = OpVectorShuffle %v4float %354 %354 1 1 2 0
|
||||||
|
OpStore %yyzx %355
|
||||||
|
%357 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%358 = OpLoad %v3float %357
|
||||||
|
%359 = OpVectorShuffle %v4float %358 %358 1 1 2 1
|
||||||
|
OpStore %yyzy %359
|
||||||
|
%361 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%362 = OpLoad %v3float %361
|
||||||
|
%363 = OpVectorShuffle %v4float %362 %362 1 1 2 2
|
||||||
|
OpStore %yyzz %363
|
||||||
|
%365 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%366 = OpLoad %v3float %365
|
||||||
|
%367 = OpVectorShuffle %v4float %366 %366 1 2 0 0
|
||||||
|
OpStore %yzxx %367
|
||||||
|
%369 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%370 = OpLoad %v3float %369
|
||||||
|
%371 = OpVectorShuffle %v4float %370 %370 1 2 0 1
|
||||||
|
OpStore %yzxy %371
|
||||||
|
%373 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%374 = OpLoad %v3float %373
|
||||||
|
%375 = OpVectorShuffle %v4float %374 %374 1 2 0 2
|
||||||
|
OpStore %yzxz %375
|
||||||
|
%377 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%378 = OpLoad %v3float %377
|
||||||
|
%379 = OpVectorShuffle %v4float %378 %378 1 2 1 0
|
||||||
|
OpStore %yzyx %379
|
||||||
|
%381 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%382 = OpLoad %v3float %381
|
||||||
|
%383 = OpVectorShuffle %v4float %382 %382 1 2 1 1
|
||||||
|
OpStore %yzyy %383
|
||||||
|
%385 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%386 = OpLoad %v3float %385
|
||||||
|
%387 = OpVectorShuffle %v4float %386 %386 1 2 1 2
|
||||||
|
OpStore %yzyz %387
|
||||||
|
%389 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%390 = OpLoad %v3float %389
|
||||||
|
%391 = OpVectorShuffle %v4float %390 %390 1 2 2 0
|
||||||
|
OpStore %yzzx %391
|
||||||
|
%393 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%394 = OpLoad %v3float %393
|
||||||
|
%395 = OpVectorShuffle %v4float %394 %394 1 2 2 1
|
||||||
|
OpStore %yzzy %395
|
||||||
|
%397 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%398 = OpLoad %v3float %397
|
||||||
|
%399 = OpVectorShuffle %v4float %398 %398 1 2 2 2
|
||||||
|
OpStore %yzzz %399
|
||||||
|
%401 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%402 = OpLoad %v3float %401
|
||||||
|
%403 = OpVectorShuffle %v4float %402 %402 2 0 0 0
|
||||||
|
OpStore %zxxx %403
|
||||||
|
%405 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%406 = OpLoad %v3float %405
|
||||||
|
%407 = OpVectorShuffle %v4float %406 %406 2 0 0 1
|
||||||
|
OpStore %zxxy %407
|
||||||
|
%409 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%410 = OpLoad %v3float %409
|
||||||
|
%411 = OpVectorShuffle %v4float %410 %410 2 0 0 2
|
||||||
|
OpStore %zxxz %411
|
||||||
|
%413 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%414 = OpLoad %v3float %413
|
||||||
|
%415 = OpVectorShuffle %v4float %414 %414 2 0 1 0
|
||||||
|
OpStore %zxyx %415
|
||||||
|
%417 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%418 = OpLoad %v3float %417
|
||||||
|
%419 = OpVectorShuffle %v4float %418 %418 2 0 1 1
|
||||||
|
OpStore %zxyy %419
|
||||||
|
%421 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%422 = OpLoad %v3float %421
|
||||||
|
%423 = OpVectorShuffle %v4float %422 %422 2 0 1 2
|
||||||
|
OpStore %zxyz %423
|
||||||
|
%425 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%426 = OpLoad %v3float %425
|
||||||
|
%427 = OpVectorShuffle %v4float %426 %426 2 0 2 0
|
||||||
|
OpStore %zxzx %427
|
||||||
|
%429 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%430 = OpLoad %v3float %429
|
||||||
|
%431 = OpVectorShuffle %v4float %430 %430 2 0 2 1
|
||||||
|
OpStore %zxzy %431
|
||||||
|
%433 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%434 = OpLoad %v3float %433
|
||||||
|
%435 = OpVectorShuffle %v4float %434 %434 2 0 2 2
|
||||||
|
OpStore %zxzz %435
|
||||||
|
%437 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%438 = OpLoad %v3float %437
|
||||||
|
%439 = OpVectorShuffle %v4float %438 %438 2 1 0 0
|
||||||
|
OpStore %zyxx %439
|
||||||
|
%441 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%442 = OpLoad %v3float %441
|
||||||
|
%443 = OpVectorShuffle %v4float %442 %442 2 1 0 1
|
||||||
|
OpStore %zyxy %443
|
||||||
|
%445 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%446 = OpLoad %v3float %445
|
||||||
|
%447 = OpVectorShuffle %v4float %446 %446 2 1 0 2
|
||||||
|
OpStore %zyxz %447
|
||||||
|
%449 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%450 = OpLoad %v3float %449
|
||||||
|
%451 = OpVectorShuffle %v4float %450 %450 2 1 1 0
|
||||||
|
OpStore %zyyx %451
|
||||||
|
%453 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%454 = OpLoad %v3float %453
|
||||||
|
%455 = OpVectorShuffle %v4float %454 %454 2 1 1 1
|
||||||
|
OpStore %zyyy %455
|
||||||
|
%457 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%458 = OpLoad %v3float %457
|
||||||
|
%459 = OpVectorShuffle %v4float %458 %458 2 1 1 2
|
||||||
|
OpStore %zyyz %459
|
||||||
|
%461 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%462 = OpLoad %v3float %461
|
||||||
|
%463 = OpVectorShuffle %v4float %462 %462 2 1 2 0
|
||||||
|
OpStore %zyzx %463
|
||||||
|
%465 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%466 = OpLoad %v3float %465
|
||||||
|
%467 = OpVectorShuffle %v4float %466 %466 2 1 2 1
|
||||||
|
OpStore %zyzy %467
|
||||||
|
%469 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%470 = OpLoad %v3float %469
|
||||||
|
%471 = OpVectorShuffle %v4float %470 %470 2 1 2 2
|
||||||
|
OpStore %zyzz %471
|
||||||
|
%473 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%474 = OpLoad %v3float %473
|
||||||
|
%475 = OpVectorShuffle %v4float %474 %474 2 2 0 0
|
||||||
|
OpStore %zzxx %475
|
||||||
|
%477 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%478 = OpLoad %v3float %477
|
||||||
|
%479 = OpVectorShuffle %v4float %478 %478 2 2 0 1
|
||||||
|
OpStore %zzxy %479
|
||||||
|
%481 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%482 = OpLoad %v3float %481
|
||||||
|
%483 = OpVectorShuffle %v4float %482 %482 2 2 0 2
|
||||||
|
OpStore %zzxz %483
|
||||||
|
%485 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%486 = OpLoad %v3float %485
|
||||||
|
%487 = OpVectorShuffle %v4float %486 %486 2 2 1 0
|
||||||
|
OpStore %zzyx %487
|
||||||
|
%489 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%490 = OpLoad %v3float %489
|
||||||
|
%491 = OpVectorShuffle %v4float %490 %490 2 2 1 1
|
||||||
|
OpStore %zzyy %491
|
||||||
|
%493 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%494 = OpLoad %v3float %493
|
||||||
|
%495 = OpVectorShuffle %v4float %494 %494 2 2 1 2
|
||||||
|
OpStore %zzyz %495
|
||||||
|
%497 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%498 = OpLoad %v3float %497
|
||||||
|
%499 = OpVectorShuffle %v4float %498 %498 2 2 2 0
|
||||||
|
OpStore %zzzx %499
|
||||||
|
%501 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%502 = OpLoad %v3float %501
|
||||||
|
%503 = OpVectorShuffle %v4float %502 %502 2 2 2 1
|
||||||
|
OpStore %zzzy %503
|
||||||
|
%505 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
%506 = OpLoad %v3float %505
|
||||||
|
%507 = OpVectorShuffle %v4float %506 %506 2 2 2 2
|
||||||
|
OpStore %zzzz %507
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,129 @@
|
||||||
|
struct S {
|
||||||
|
v : vec3<f32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = P.v;
|
||||||
|
var x = P.v.x;
|
||||||
|
var y = P.v.y;
|
||||||
|
var z = P.v.z;
|
||||||
|
var xx = P.v.xx;
|
||||||
|
var xy = P.v.xy;
|
||||||
|
var xz = P.v.xz;
|
||||||
|
var yx = P.v.yx;
|
||||||
|
var yy = P.v.yy;
|
||||||
|
var yz = P.v.yz;
|
||||||
|
var zx = P.v.zx;
|
||||||
|
var zy = P.v.zy;
|
||||||
|
var zz = P.v.zz;
|
||||||
|
var xxx = P.v.xxx;
|
||||||
|
var xxy = P.v.xxy;
|
||||||
|
var xxz = P.v.xxz;
|
||||||
|
var xyx = P.v.xyx;
|
||||||
|
var xyy = P.v.xyy;
|
||||||
|
var xyz = P.v.xyz;
|
||||||
|
var xzx = P.v.xzx;
|
||||||
|
var xzy = P.v.xzy;
|
||||||
|
var xzz = P.v.xzz;
|
||||||
|
var yxx = P.v.yxx;
|
||||||
|
var yxy = P.v.yxy;
|
||||||
|
var yxz = P.v.yxz;
|
||||||
|
var yyx = P.v.yyx;
|
||||||
|
var yyy = P.v.yyy;
|
||||||
|
var yyz = P.v.yyz;
|
||||||
|
var yzx = P.v.yzx;
|
||||||
|
var yzy = P.v.yzy;
|
||||||
|
var yzz = P.v.yzz;
|
||||||
|
var zxx = P.v.zxx;
|
||||||
|
var zxy = P.v.zxy;
|
||||||
|
var zxz = P.v.zxz;
|
||||||
|
var zyx = P.v.zyx;
|
||||||
|
var zyy = P.v.zyy;
|
||||||
|
var zyz = P.v.zyz;
|
||||||
|
var zzx = P.v.zzx;
|
||||||
|
var zzy = P.v.zzy;
|
||||||
|
var zzz = P.v.zzz;
|
||||||
|
var xxxx = P.v.xxxx;
|
||||||
|
var xxxy = P.v.xxxy;
|
||||||
|
var xxxz = P.v.xxxz;
|
||||||
|
var xxyx = P.v.xxyx;
|
||||||
|
var xxyy = P.v.xxyy;
|
||||||
|
var xxyz = P.v.xxyz;
|
||||||
|
var xxzx = P.v.xxzx;
|
||||||
|
var xxzy = P.v.xxzy;
|
||||||
|
var xxzz = P.v.xxzz;
|
||||||
|
var xyxx = P.v.xyxx;
|
||||||
|
var xyxy = P.v.xyxy;
|
||||||
|
var xyxz = P.v.xyxz;
|
||||||
|
var xyyx = P.v.xyyx;
|
||||||
|
var xyyy = P.v.xyyy;
|
||||||
|
var xyyz = P.v.xyyz;
|
||||||
|
var xyzx = P.v.xyzx;
|
||||||
|
var xyzy = P.v.xyzy;
|
||||||
|
var xyzz = P.v.xyzz;
|
||||||
|
var xzxx = P.v.xzxx;
|
||||||
|
var xzxy = P.v.xzxy;
|
||||||
|
var xzxz = P.v.xzxz;
|
||||||
|
var xzyx = P.v.xzyx;
|
||||||
|
var xzyy = P.v.xzyy;
|
||||||
|
var xzyz = P.v.xzyz;
|
||||||
|
var xzzx = P.v.xzzx;
|
||||||
|
var xzzy = P.v.xzzy;
|
||||||
|
var xzzz = P.v.xzzz;
|
||||||
|
var yxxx = P.v.yxxx;
|
||||||
|
var yxxy = P.v.yxxy;
|
||||||
|
var yxxz = P.v.yxxz;
|
||||||
|
var yxyx = P.v.yxyx;
|
||||||
|
var yxyy = P.v.yxyy;
|
||||||
|
var yxyz = P.v.yxyz;
|
||||||
|
var yxzx = P.v.yxzx;
|
||||||
|
var yxzy = P.v.yxzy;
|
||||||
|
var yxzz = P.v.yxzz;
|
||||||
|
var yyxx = P.v.yyxx;
|
||||||
|
var yyxy = P.v.yyxy;
|
||||||
|
var yyxz = P.v.yyxz;
|
||||||
|
var yyyx = P.v.yyyx;
|
||||||
|
var yyyy = P.v.yyyy;
|
||||||
|
var yyyz = P.v.yyyz;
|
||||||
|
var yyzx = P.v.yyzx;
|
||||||
|
var yyzy = P.v.yyzy;
|
||||||
|
var yyzz = P.v.yyzz;
|
||||||
|
var yzxx = P.v.yzxx;
|
||||||
|
var yzxy = P.v.yzxy;
|
||||||
|
var yzxz = P.v.yzxz;
|
||||||
|
var yzyx = P.v.yzyx;
|
||||||
|
var yzyy = P.v.yzyy;
|
||||||
|
var yzyz = P.v.yzyz;
|
||||||
|
var yzzx = P.v.yzzx;
|
||||||
|
var yzzy = P.v.yzzy;
|
||||||
|
var yzzz = P.v.yzzz;
|
||||||
|
var zxxx = P.v.zxxx;
|
||||||
|
var zxxy = P.v.zxxy;
|
||||||
|
var zxxz = P.v.zxxz;
|
||||||
|
var zxyx = P.v.zxyx;
|
||||||
|
var zxyy = P.v.zxyy;
|
||||||
|
var zxyz = P.v.zxyz;
|
||||||
|
var zxzx = P.v.zxzx;
|
||||||
|
var zxzy = P.v.zxzy;
|
||||||
|
var zxzz = P.v.zxzz;
|
||||||
|
var zyxx = P.v.zyxx;
|
||||||
|
var zyxy = P.v.zyxy;
|
||||||
|
var zyxz = P.v.zyxz;
|
||||||
|
var zyyx = P.v.zyyx;
|
||||||
|
var zyyy = P.v.zyyy;
|
||||||
|
var zyyz = P.v.zyyz;
|
||||||
|
var zyzx = P.v.zyzx;
|
||||||
|
var zyzy = P.v.zyzy;
|
||||||
|
var zyzz = P.v.zyzz;
|
||||||
|
var zzxx = P.v.zzxx;
|
||||||
|
var zzxy = P.v.zzxy;
|
||||||
|
var zzxz = P.v.zzxz;
|
||||||
|
var zzyx = P.v.zzyx;
|
||||||
|
var zzyy = P.v.zzyy;
|
||||||
|
var zzyz = P.v.zzyz;
|
||||||
|
var zzzx = P.v.zzzx;
|
||||||
|
var zzzy = P.v.zzzy;
|
||||||
|
var zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,143 @@
|
||||||
|
struct S {
|
||||||
|
v: vec3<i32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = P.v;
|
||||||
|
|
||||||
|
var x = P.v.x;
|
||||||
|
var y = P.v.y;
|
||||||
|
var z = P.v.z;
|
||||||
|
|
||||||
|
var xx = P.v.xx;
|
||||||
|
var xy = P.v.xy;
|
||||||
|
var xz = P.v.xz;
|
||||||
|
var yx = P.v.yx;
|
||||||
|
var yy = P.v.yy;
|
||||||
|
var yz = P.v.yz;
|
||||||
|
var zx = P.v.zx;
|
||||||
|
var zy = P.v.zy;
|
||||||
|
var zz = P.v.zz;
|
||||||
|
|
||||||
|
var xxx = P.v.xxx;
|
||||||
|
var xxy = P.v.xxy;
|
||||||
|
var xxz = P.v.xxz;
|
||||||
|
var xyx = P.v.xyx;
|
||||||
|
var xyy = P.v.xyy;
|
||||||
|
var xyz = P.v.xyz;
|
||||||
|
var xzx = P.v.xzx;
|
||||||
|
var xzy = P.v.xzy;
|
||||||
|
var xzz = P.v.xzz;
|
||||||
|
|
||||||
|
var yxx = P.v.yxx;
|
||||||
|
var yxy = P.v.yxy;
|
||||||
|
var yxz = P.v.yxz;
|
||||||
|
var yyx = P.v.yyx;
|
||||||
|
var yyy = P.v.yyy;
|
||||||
|
var yyz = P.v.yyz;
|
||||||
|
var yzx = P.v.yzx;
|
||||||
|
var yzy = P.v.yzy;
|
||||||
|
var yzz = P.v.yzz;
|
||||||
|
|
||||||
|
var zxx = P.v.zxx;
|
||||||
|
var zxy = P.v.zxy;
|
||||||
|
var zxz = P.v.zxz;
|
||||||
|
var zyx = P.v.zyx;
|
||||||
|
var zyy = P.v.zyy;
|
||||||
|
var zyz = P.v.zyz;
|
||||||
|
var zzx = P.v.zzx;
|
||||||
|
var zzy = P.v.zzy;
|
||||||
|
var zzz = P.v.zzz;
|
||||||
|
|
||||||
|
var xxxx = P.v.xxxx;
|
||||||
|
var xxxy = P.v.xxxy;
|
||||||
|
var xxxz = P.v.xxxz;
|
||||||
|
var xxyx = P.v.xxyx;
|
||||||
|
var xxyy = P.v.xxyy;
|
||||||
|
var xxyz = P.v.xxyz;
|
||||||
|
var xxzx = P.v.xxzx;
|
||||||
|
var xxzy = P.v.xxzy;
|
||||||
|
var xxzz = P.v.xxzz;
|
||||||
|
|
||||||
|
var xyxx = P.v.xyxx;
|
||||||
|
var xyxy = P.v.xyxy;
|
||||||
|
var xyxz = P.v.xyxz;
|
||||||
|
var xyyx = P.v.xyyx;
|
||||||
|
var xyyy = P.v.xyyy;
|
||||||
|
var xyyz = P.v.xyyz;
|
||||||
|
var xyzx = P.v.xyzx;
|
||||||
|
var xyzy = P.v.xyzy;
|
||||||
|
var xyzz = P.v.xyzz;
|
||||||
|
|
||||||
|
var xzxx = P.v.xzxx;
|
||||||
|
var xzxy = P.v.xzxy;
|
||||||
|
var xzxz = P.v.xzxz;
|
||||||
|
var xzyx = P.v.xzyx;
|
||||||
|
var xzyy = P.v.xzyy;
|
||||||
|
var xzyz = P.v.xzyz;
|
||||||
|
var xzzx = P.v.xzzx;
|
||||||
|
var xzzy = P.v.xzzy;
|
||||||
|
var xzzz = P.v.xzzz;
|
||||||
|
|
||||||
|
var yxxx = P.v.yxxx;
|
||||||
|
var yxxy = P.v.yxxy;
|
||||||
|
var yxxz = P.v.yxxz;
|
||||||
|
var yxyx = P.v.yxyx;
|
||||||
|
var yxyy = P.v.yxyy;
|
||||||
|
var yxyz = P.v.yxyz;
|
||||||
|
var yxzx = P.v.yxzx;
|
||||||
|
var yxzy = P.v.yxzy;
|
||||||
|
var yxzz = P.v.yxzz;
|
||||||
|
|
||||||
|
var yyxx = P.v.yyxx;
|
||||||
|
var yyxy = P.v.yyxy;
|
||||||
|
var yyxz = P.v.yyxz;
|
||||||
|
var yyyx = P.v.yyyx;
|
||||||
|
var yyyy = P.v.yyyy;
|
||||||
|
var yyyz = P.v.yyyz;
|
||||||
|
var yyzx = P.v.yyzx;
|
||||||
|
var yyzy = P.v.yyzy;
|
||||||
|
var yyzz = P.v.yyzz;
|
||||||
|
|
||||||
|
var yzxx = P.v.yzxx;
|
||||||
|
var yzxy = P.v.yzxy;
|
||||||
|
var yzxz = P.v.yzxz;
|
||||||
|
var yzyx = P.v.yzyx;
|
||||||
|
var yzyy = P.v.yzyy;
|
||||||
|
var yzyz = P.v.yzyz;
|
||||||
|
var yzzx = P.v.yzzx;
|
||||||
|
var yzzy = P.v.yzzy;
|
||||||
|
var yzzz = P.v.yzzz;
|
||||||
|
|
||||||
|
var zxxx = P.v.zxxx;
|
||||||
|
var zxxy = P.v.zxxy;
|
||||||
|
var zxxz = P.v.zxxz;
|
||||||
|
var zxyx = P.v.zxyx;
|
||||||
|
var zxyy = P.v.zxyy;
|
||||||
|
var zxyz = P.v.zxyz;
|
||||||
|
var zxzx = P.v.zxzx;
|
||||||
|
var zxzy = P.v.zxzy;
|
||||||
|
var zxzz = P.v.zxzz;
|
||||||
|
|
||||||
|
var zyxx = P.v.zyxx;
|
||||||
|
var zyxy = P.v.zyxy;
|
||||||
|
var zyxz = P.v.zyxz;
|
||||||
|
var zyyx = P.v.zyyx;
|
||||||
|
var zyyy = P.v.zyyy;
|
||||||
|
var zyyz = P.v.zyyz;
|
||||||
|
var zyzx = P.v.zyzx;
|
||||||
|
var zyzy = P.v.zyzy;
|
||||||
|
var zyzz = P.v.zyzz;
|
||||||
|
|
||||||
|
var zzxx = P.v.zzxx;
|
||||||
|
var zzxy = P.v.zzxy;
|
||||||
|
var zzxz = P.v.zzxz;
|
||||||
|
var zzyx = P.v.zzyx;
|
||||||
|
var zzyy = P.v.zzyy;
|
||||||
|
var zzyz = P.v.zzyz;
|
||||||
|
var zzzx = P.v.zzzx;
|
||||||
|
var zzzy = P.v.zzzy;
|
||||||
|
var zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,134 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
int3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
static S P = (S)0;
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
int3 v = P.v;
|
||||||
|
int x = P.v.x;
|
||||||
|
int y = P.v.y;
|
||||||
|
int z = P.v.z;
|
||||||
|
int2 xx = P.v.xx;
|
||||||
|
int2 xy = P.v.xy;
|
||||||
|
int2 xz = P.v.xz;
|
||||||
|
int2 yx = P.v.yx;
|
||||||
|
int2 yy = P.v.yy;
|
||||||
|
int2 yz = P.v.yz;
|
||||||
|
int2 zx = P.v.zx;
|
||||||
|
int2 zy = P.v.zy;
|
||||||
|
int2 zz = P.v.zz;
|
||||||
|
int3 xxx = P.v.xxx;
|
||||||
|
int3 xxy = P.v.xxy;
|
||||||
|
int3 xxz = P.v.xxz;
|
||||||
|
int3 xyx = P.v.xyx;
|
||||||
|
int3 xyy = P.v.xyy;
|
||||||
|
int3 xyz = P.v.xyz;
|
||||||
|
int3 xzx = P.v.xzx;
|
||||||
|
int3 xzy = P.v.xzy;
|
||||||
|
int3 xzz = P.v.xzz;
|
||||||
|
int3 yxx = P.v.yxx;
|
||||||
|
int3 yxy = P.v.yxy;
|
||||||
|
int3 yxz = P.v.yxz;
|
||||||
|
int3 yyx = P.v.yyx;
|
||||||
|
int3 yyy = P.v.yyy;
|
||||||
|
int3 yyz = P.v.yyz;
|
||||||
|
int3 yzx = P.v.yzx;
|
||||||
|
int3 yzy = P.v.yzy;
|
||||||
|
int3 yzz = P.v.yzz;
|
||||||
|
int3 zxx = P.v.zxx;
|
||||||
|
int3 zxy = P.v.zxy;
|
||||||
|
int3 zxz = P.v.zxz;
|
||||||
|
int3 zyx = P.v.zyx;
|
||||||
|
int3 zyy = P.v.zyy;
|
||||||
|
int3 zyz = P.v.zyz;
|
||||||
|
int3 zzx = P.v.zzx;
|
||||||
|
int3 zzy = P.v.zzy;
|
||||||
|
int3 zzz = P.v.zzz;
|
||||||
|
int4 xxxx = P.v.xxxx;
|
||||||
|
int4 xxxy = P.v.xxxy;
|
||||||
|
int4 xxxz = P.v.xxxz;
|
||||||
|
int4 xxyx = P.v.xxyx;
|
||||||
|
int4 xxyy = P.v.xxyy;
|
||||||
|
int4 xxyz = P.v.xxyz;
|
||||||
|
int4 xxzx = P.v.xxzx;
|
||||||
|
int4 xxzy = P.v.xxzy;
|
||||||
|
int4 xxzz = P.v.xxzz;
|
||||||
|
int4 xyxx = P.v.xyxx;
|
||||||
|
int4 xyxy = P.v.xyxy;
|
||||||
|
int4 xyxz = P.v.xyxz;
|
||||||
|
int4 xyyx = P.v.xyyx;
|
||||||
|
int4 xyyy = P.v.xyyy;
|
||||||
|
int4 xyyz = P.v.xyyz;
|
||||||
|
int4 xyzx = P.v.xyzx;
|
||||||
|
int4 xyzy = P.v.xyzy;
|
||||||
|
int4 xyzz = P.v.xyzz;
|
||||||
|
int4 xzxx = P.v.xzxx;
|
||||||
|
int4 xzxy = P.v.xzxy;
|
||||||
|
int4 xzxz = P.v.xzxz;
|
||||||
|
int4 xzyx = P.v.xzyx;
|
||||||
|
int4 xzyy = P.v.xzyy;
|
||||||
|
int4 xzyz = P.v.xzyz;
|
||||||
|
int4 xzzx = P.v.xzzx;
|
||||||
|
int4 xzzy = P.v.xzzy;
|
||||||
|
int4 xzzz = P.v.xzzz;
|
||||||
|
int4 yxxx = P.v.yxxx;
|
||||||
|
int4 yxxy = P.v.yxxy;
|
||||||
|
int4 yxxz = P.v.yxxz;
|
||||||
|
int4 yxyx = P.v.yxyx;
|
||||||
|
int4 yxyy = P.v.yxyy;
|
||||||
|
int4 yxyz = P.v.yxyz;
|
||||||
|
int4 yxzx = P.v.yxzx;
|
||||||
|
int4 yxzy = P.v.yxzy;
|
||||||
|
int4 yxzz = P.v.yxzz;
|
||||||
|
int4 yyxx = P.v.yyxx;
|
||||||
|
int4 yyxy = P.v.yyxy;
|
||||||
|
int4 yyxz = P.v.yyxz;
|
||||||
|
int4 yyyx = P.v.yyyx;
|
||||||
|
int4 yyyy = P.v.yyyy;
|
||||||
|
int4 yyyz = P.v.yyyz;
|
||||||
|
int4 yyzx = P.v.yyzx;
|
||||||
|
int4 yyzy = P.v.yyzy;
|
||||||
|
int4 yyzz = P.v.yyzz;
|
||||||
|
int4 yzxx = P.v.yzxx;
|
||||||
|
int4 yzxy = P.v.yzxy;
|
||||||
|
int4 yzxz = P.v.yzxz;
|
||||||
|
int4 yzyx = P.v.yzyx;
|
||||||
|
int4 yzyy = P.v.yzyy;
|
||||||
|
int4 yzyz = P.v.yzyz;
|
||||||
|
int4 yzzx = P.v.yzzx;
|
||||||
|
int4 yzzy = P.v.yzzy;
|
||||||
|
int4 yzzz = P.v.yzzz;
|
||||||
|
int4 zxxx = P.v.zxxx;
|
||||||
|
int4 zxxy = P.v.zxxy;
|
||||||
|
int4 zxxz = P.v.zxxz;
|
||||||
|
int4 zxyx = P.v.zxyx;
|
||||||
|
int4 zxyy = P.v.zxyy;
|
||||||
|
int4 zxyz = P.v.zxyz;
|
||||||
|
int4 zxzx = P.v.zxzx;
|
||||||
|
int4 zxzy = P.v.zxzy;
|
||||||
|
int4 zxzz = P.v.zxzz;
|
||||||
|
int4 zyxx = P.v.zyxx;
|
||||||
|
int4 zyxy = P.v.zyxy;
|
||||||
|
int4 zyxz = P.v.zyxz;
|
||||||
|
int4 zyyx = P.v.zyyx;
|
||||||
|
int4 zyyy = P.v.zyyy;
|
||||||
|
int4 zyyz = P.v.zyyz;
|
||||||
|
int4 zyzx = P.v.zyzx;
|
||||||
|
int4 zyzy = P.v.zyzy;
|
||||||
|
int4 zyzz = P.v.zyzz;
|
||||||
|
int4 zzxx = P.v.zzxx;
|
||||||
|
int4 zzxy = P.v.zzxy;
|
||||||
|
int4 zzxz = P.v.zzxz;
|
||||||
|
int4 zzyx = P.v.zzyx;
|
||||||
|
int4 zzyy = P.v.zzyy;
|
||||||
|
int4 zzyz = P.v.zzyz;
|
||||||
|
int4 zzzx = P.v.zzzx;
|
||||||
|
int4 zzzy = P.v.zzzy;
|
||||||
|
int4 zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,131 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
int3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(thread S* const tint_symbol) {
|
||||||
|
int3 v = (*(tint_symbol)).v;
|
||||||
|
int x = (*(tint_symbol)).v[0];
|
||||||
|
int y = (*(tint_symbol)).v[1];
|
||||||
|
int z = (*(tint_symbol)).v[2];
|
||||||
|
int2 xx = int3((*(tint_symbol)).v).xx;
|
||||||
|
int2 xy = int3((*(tint_symbol)).v).xy;
|
||||||
|
int2 xz = int3((*(tint_symbol)).v).xz;
|
||||||
|
int2 yx = int3((*(tint_symbol)).v).yx;
|
||||||
|
int2 yy = int3((*(tint_symbol)).v).yy;
|
||||||
|
int2 yz = int3((*(tint_symbol)).v).yz;
|
||||||
|
int2 zx = int3((*(tint_symbol)).v).zx;
|
||||||
|
int2 zy = int3((*(tint_symbol)).v).zy;
|
||||||
|
int2 zz = int3((*(tint_symbol)).v).zz;
|
||||||
|
int3 xxx = int3((*(tint_symbol)).v).xxx;
|
||||||
|
int3 xxy = int3((*(tint_symbol)).v).xxy;
|
||||||
|
int3 xxz = int3((*(tint_symbol)).v).xxz;
|
||||||
|
int3 xyx = int3((*(tint_symbol)).v).xyx;
|
||||||
|
int3 xyy = int3((*(tint_symbol)).v).xyy;
|
||||||
|
int3 xyz = int3((*(tint_symbol)).v).xyz;
|
||||||
|
int3 xzx = int3((*(tint_symbol)).v).xzx;
|
||||||
|
int3 xzy = int3((*(tint_symbol)).v).xzy;
|
||||||
|
int3 xzz = int3((*(tint_symbol)).v).xzz;
|
||||||
|
int3 yxx = int3((*(tint_symbol)).v).yxx;
|
||||||
|
int3 yxy = int3((*(tint_symbol)).v).yxy;
|
||||||
|
int3 yxz = int3((*(tint_symbol)).v).yxz;
|
||||||
|
int3 yyx = int3((*(tint_symbol)).v).yyx;
|
||||||
|
int3 yyy = int3((*(tint_symbol)).v).yyy;
|
||||||
|
int3 yyz = int3((*(tint_symbol)).v).yyz;
|
||||||
|
int3 yzx = int3((*(tint_symbol)).v).yzx;
|
||||||
|
int3 yzy = int3((*(tint_symbol)).v).yzy;
|
||||||
|
int3 yzz = int3((*(tint_symbol)).v).yzz;
|
||||||
|
int3 zxx = int3((*(tint_symbol)).v).zxx;
|
||||||
|
int3 zxy = int3((*(tint_symbol)).v).zxy;
|
||||||
|
int3 zxz = int3((*(tint_symbol)).v).zxz;
|
||||||
|
int3 zyx = int3((*(tint_symbol)).v).zyx;
|
||||||
|
int3 zyy = int3((*(tint_symbol)).v).zyy;
|
||||||
|
int3 zyz = int3((*(tint_symbol)).v).zyz;
|
||||||
|
int3 zzx = int3((*(tint_symbol)).v).zzx;
|
||||||
|
int3 zzy = int3((*(tint_symbol)).v).zzy;
|
||||||
|
int3 zzz = int3((*(tint_symbol)).v).zzz;
|
||||||
|
int4 xxxx = int3((*(tint_symbol)).v).xxxx;
|
||||||
|
int4 xxxy = int3((*(tint_symbol)).v).xxxy;
|
||||||
|
int4 xxxz = int3((*(tint_symbol)).v).xxxz;
|
||||||
|
int4 xxyx = int3((*(tint_symbol)).v).xxyx;
|
||||||
|
int4 xxyy = int3((*(tint_symbol)).v).xxyy;
|
||||||
|
int4 xxyz = int3((*(tint_symbol)).v).xxyz;
|
||||||
|
int4 xxzx = int3((*(tint_symbol)).v).xxzx;
|
||||||
|
int4 xxzy = int3((*(tint_symbol)).v).xxzy;
|
||||||
|
int4 xxzz = int3((*(tint_symbol)).v).xxzz;
|
||||||
|
int4 xyxx = int3((*(tint_symbol)).v).xyxx;
|
||||||
|
int4 xyxy = int3((*(tint_symbol)).v).xyxy;
|
||||||
|
int4 xyxz = int3((*(tint_symbol)).v).xyxz;
|
||||||
|
int4 xyyx = int3((*(tint_symbol)).v).xyyx;
|
||||||
|
int4 xyyy = int3((*(tint_symbol)).v).xyyy;
|
||||||
|
int4 xyyz = int3((*(tint_symbol)).v).xyyz;
|
||||||
|
int4 xyzx = int3((*(tint_symbol)).v).xyzx;
|
||||||
|
int4 xyzy = int3((*(tint_symbol)).v).xyzy;
|
||||||
|
int4 xyzz = int3((*(tint_symbol)).v).xyzz;
|
||||||
|
int4 xzxx = int3((*(tint_symbol)).v).xzxx;
|
||||||
|
int4 xzxy = int3((*(tint_symbol)).v).xzxy;
|
||||||
|
int4 xzxz = int3((*(tint_symbol)).v).xzxz;
|
||||||
|
int4 xzyx = int3((*(tint_symbol)).v).xzyx;
|
||||||
|
int4 xzyy = int3((*(tint_symbol)).v).xzyy;
|
||||||
|
int4 xzyz = int3((*(tint_symbol)).v).xzyz;
|
||||||
|
int4 xzzx = int3((*(tint_symbol)).v).xzzx;
|
||||||
|
int4 xzzy = int3((*(tint_symbol)).v).xzzy;
|
||||||
|
int4 xzzz = int3((*(tint_symbol)).v).xzzz;
|
||||||
|
int4 yxxx = int3((*(tint_symbol)).v).yxxx;
|
||||||
|
int4 yxxy = int3((*(tint_symbol)).v).yxxy;
|
||||||
|
int4 yxxz = int3((*(tint_symbol)).v).yxxz;
|
||||||
|
int4 yxyx = int3((*(tint_symbol)).v).yxyx;
|
||||||
|
int4 yxyy = int3((*(tint_symbol)).v).yxyy;
|
||||||
|
int4 yxyz = int3((*(tint_symbol)).v).yxyz;
|
||||||
|
int4 yxzx = int3((*(tint_symbol)).v).yxzx;
|
||||||
|
int4 yxzy = int3((*(tint_symbol)).v).yxzy;
|
||||||
|
int4 yxzz = int3((*(tint_symbol)).v).yxzz;
|
||||||
|
int4 yyxx = int3((*(tint_symbol)).v).yyxx;
|
||||||
|
int4 yyxy = int3((*(tint_symbol)).v).yyxy;
|
||||||
|
int4 yyxz = int3((*(tint_symbol)).v).yyxz;
|
||||||
|
int4 yyyx = int3((*(tint_symbol)).v).yyyx;
|
||||||
|
int4 yyyy = int3((*(tint_symbol)).v).yyyy;
|
||||||
|
int4 yyyz = int3((*(tint_symbol)).v).yyyz;
|
||||||
|
int4 yyzx = int3((*(tint_symbol)).v).yyzx;
|
||||||
|
int4 yyzy = int3((*(tint_symbol)).v).yyzy;
|
||||||
|
int4 yyzz = int3((*(tint_symbol)).v).yyzz;
|
||||||
|
int4 yzxx = int3((*(tint_symbol)).v).yzxx;
|
||||||
|
int4 yzxy = int3((*(tint_symbol)).v).yzxy;
|
||||||
|
int4 yzxz = int3((*(tint_symbol)).v).yzxz;
|
||||||
|
int4 yzyx = int3((*(tint_symbol)).v).yzyx;
|
||||||
|
int4 yzyy = int3((*(tint_symbol)).v).yzyy;
|
||||||
|
int4 yzyz = int3((*(tint_symbol)).v).yzyz;
|
||||||
|
int4 yzzx = int3((*(tint_symbol)).v).yzzx;
|
||||||
|
int4 yzzy = int3((*(tint_symbol)).v).yzzy;
|
||||||
|
int4 yzzz = int3((*(tint_symbol)).v).yzzz;
|
||||||
|
int4 zxxx = int3((*(tint_symbol)).v).zxxx;
|
||||||
|
int4 zxxy = int3((*(tint_symbol)).v).zxxy;
|
||||||
|
int4 zxxz = int3((*(tint_symbol)).v).zxxz;
|
||||||
|
int4 zxyx = int3((*(tint_symbol)).v).zxyx;
|
||||||
|
int4 zxyy = int3((*(tint_symbol)).v).zxyy;
|
||||||
|
int4 zxyz = int3((*(tint_symbol)).v).zxyz;
|
||||||
|
int4 zxzx = int3((*(tint_symbol)).v).zxzx;
|
||||||
|
int4 zxzy = int3((*(tint_symbol)).v).zxzy;
|
||||||
|
int4 zxzz = int3((*(tint_symbol)).v).zxzz;
|
||||||
|
int4 zyxx = int3((*(tint_symbol)).v).zyxx;
|
||||||
|
int4 zyxy = int3((*(tint_symbol)).v).zyxy;
|
||||||
|
int4 zyxz = int3((*(tint_symbol)).v).zyxz;
|
||||||
|
int4 zyyx = int3((*(tint_symbol)).v).zyyx;
|
||||||
|
int4 zyyy = int3((*(tint_symbol)).v).zyyy;
|
||||||
|
int4 zyyz = int3((*(tint_symbol)).v).zyyz;
|
||||||
|
int4 zyzx = int3((*(tint_symbol)).v).zyzx;
|
||||||
|
int4 zyzy = int3((*(tint_symbol)).v).zyzy;
|
||||||
|
int4 zyzz = int3((*(tint_symbol)).v).zyzz;
|
||||||
|
int4 zzxx = int3((*(tint_symbol)).v).zzxx;
|
||||||
|
int4 zzxy = int3((*(tint_symbol)).v).zzxy;
|
||||||
|
int4 zzxz = int3((*(tint_symbol)).v).zzxz;
|
||||||
|
int4 zzyx = int3((*(tint_symbol)).v).zzyx;
|
||||||
|
int4 zzyy = int3((*(tint_symbol)).v).zzyy;
|
||||||
|
int4 zzyz = int3((*(tint_symbol)).v).zzyz;
|
||||||
|
int4 zzzx = int3((*(tint_symbol)).v).zzzx;
|
||||||
|
int4 zzzy = int3((*(tint_symbol)).v).zzzy;
|
||||||
|
int4 zzzz = int3((*(tint_symbol)).v).zzzz;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,769 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 509
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %P "P"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpName %v "v"
|
||||||
|
OpName %x "x"
|
||||||
|
OpName %y "y"
|
||||||
|
OpName %z "z"
|
||||||
|
OpName %xx "xx"
|
||||||
|
OpName %xy "xy"
|
||||||
|
OpName %xz "xz"
|
||||||
|
OpName %yx "yx"
|
||||||
|
OpName %yy "yy"
|
||||||
|
OpName %yz "yz"
|
||||||
|
OpName %zx "zx"
|
||||||
|
OpName %zy "zy"
|
||||||
|
OpName %zz "zz"
|
||||||
|
OpName %xxx "xxx"
|
||||||
|
OpName %xxy "xxy"
|
||||||
|
OpName %xxz "xxz"
|
||||||
|
OpName %xyx "xyx"
|
||||||
|
OpName %xyy "xyy"
|
||||||
|
OpName %xyz "xyz"
|
||||||
|
OpName %xzx "xzx"
|
||||||
|
OpName %xzy "xzy"
|
||||||
|
OpName %xzz "xzz"
|
||||||
|
OpName %yxx "yxx"
|
||||||
|
OpName %yxy "yxy"
|
||||||
|
OpName %yxz "yxz"
|
||||||
|
OpName %yyx "yyx"
|
||||||
|
OpName %yyy "yyy"
|
||||||
|
OpName %yyz "yyz"
|
||||||
|
OpName %yzx "yzx"
|
||||||
|
OpName %yzy "yzy"
|
||||||
|
OpName %yzz "yzz"
|
||||||
|
OpName %zxx "zxx"
|
||||||
|
OpName %zxy "zxy"
|
||||||
|
OpName %zxz "zxz"
|
||||||
|
OpName %zyx "zyx"
|
||||||
|
OpName %zyy "zyy"
|
||||||
|
OpName %zyz "zyz"
|
||||||
|
OpName %zzx "zzx"
|
||||||
|
OpName %zzy "zzy"
|
||||||
|
OpName %zzz "zzz"
|
||||||
|
OpName %xxxx "xxxx"
|
||||||
|
OpName %xxxy "xxxy"
|
||||||
|
OpName %xxxz "xxxz"
|
||||||
|
OpName %xxyx "xxyx"
|
||||||
|
OpName %xxyy "xxyy"
|
||||||
|
OpName %xxyz "xxyz"
|
||||||
|
OpName %xxzx "xxzx"
|
||||||
|
OpName %xxzy "xxzy"
|
||||||
|
OpName %xxzz "xxzz"
|
||||||
|
OpName %xyxx "xyxx"
|
||||||
|
OpName %xyxy "xyxy"
|
||||||
|
OpName %xyxz "xyxz"
|
||||||
|
OpName %xyyx "xyyx"
|
||||||
|
OpName %xyyy "xyyy"
|
||||||
|
OpName %xyyz "xyyz"
|
||||||
|
OpName %xyzx "xyzx"
|
||||||
|
OpName %xyzy "xyzy"
|
||||||
|
OpName %xyzz "xyzz"
|
||||||
|
OpName %xzxx "xzxx"
|
||||||
|
OpName %xzxy "xzxy"
|
||||||
|
OpName %xzxz "xzxz"
|
||||||
|
OpName %xzyx "xzyx"
|
||||||
|
OpName %xzyy "xzyy"
|
||||||
|
OpName %xzyz "xzyz"
|
||||||
|
OpName %xzzx "xzzx"
|
||||||
|
OpName %xzzy "xzzy"
|
||||||
|
OpName %xzzz "xzzz"
|
||||||
|
OpName %yxxx "yxxx"
|
||||||
|
OpName %yxxy "yxxy"
|
||||||
|
OpName %yxxz "yxxz"
|
||||||
|
OpName %yxyx "yxyx"
|
||||||
|
OpName %yxyy "yxyy"
|
||||||
|
OpName %yxyz "yxyz"
|
||||||
|
OpName %yxzx "yxzx"
|
||||||
|
OpName %yxzy "yxzy"
|
||||||
|
OpName %yxzz "yxzz"
|
||||||
|
OpName %yyxx "yyxx"
|
||||||
|
OpName %yyxy "yyxy"
|
||||||
|
OpName %yyxz "yyxz"
|
||||||
|
OpName %yyyx "yyyx"
|
||||||
|
OpName %yyyy "yyyy"
|
||||||
|
OpName %yyyz "yyyz"
|
||||||
|
OpName %yyzx "yyzx"
|
||||||
|
OpName %yyzy "yyzy"
|
||||||
|
OpName %yyzz "yyzz"
|
||||||
|
OpName %yzxx "yzxx"
|
||||||
|
OpName %yzxy "yzxy"
|
||||||
|
OpName %yzxz "yzxz"
|
||||||
|
OpName %yzyx "yzyx"
|
||||||
|
OpName %yzyy "yzyy"
|
||||||
|
OpName %yzyz "yzyz"
|
||||||
|
OpName %yzzx "yzzx"
|
||||||
|
OpName %yzzy "yzzy"
|
||||||
|
OpName %yzzz "yzzz"
|
||||||
|
OpName %zxxx "zxxx"
|
||||||
|
OpName %zxxy "zxxy"
|
||||||
|
OpName %zxxz "zxxz"
|
||||||
|
OpName %zxyx "zxyx"
|
||||||
|
OpName %zxyy "zxyy"
|
||||||
|
OpName %zxyz "zxyz"
|
||||||
|
OpName %zxzx "zxzx"
|
||||||
|
OpName %zxzy "zxzy"
|
||||||
|
OpName %zxzz "zxzz"
|
||||||
|
OpName %zyxx "zyxx"
|
||||||
|
OpName %zyxy "zyxy"
|
||||||
|
OpName %zyxz "zyxz"
|
||||||
|
OpName %zyyx "zyyx"
|
||||||
|
OpName %zyyy "zyyy"
|
||||||
|
OpName %zyyz "zyyz"
|
||||||
|
OpName %zyzx "zyzx"
|
||||||
|
OpName %zyzy "zyzy"
|
||||||
|
OpName %zyzz "zyzz"
|
||||||
|
OpName %zzxx "zzxx"
|
||||||
|
OpName %zzxy "zzxy"
|
||||||
|
OpName %zzxz "zzxz"
|
||||||
|
OpName %zzyx "zzyx"
|
||||||
|
OpName %zzyy "zzyy"
|
||||||
|
OpName %zzyz "zzyz"
|
||||||
|
OpName %zzzx "zzzx"
|
||||||
|
OpName %zzzy "zzzy"
|
||||||
|
OpName %zzzz "zzzz"
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
%int = OpTypeInt 32 1
|
||||||
|
%v3int = OpTypeVector %int 3
|
||||||
|
%S = OpTypeStruct %v3int
|
||||||
|
%_ptr_Private_S = OpTypePointer Private %S
|
||||||
|
%6 = OpConstantNull %S
|
||||||
|
%P = OpVariable %_ptr_Private_S Private %6
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%7 = OpTypeFunction %void
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Private_v3int = OpTypePointer Private %v3int
|
||||||
|
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
||||||
|
%20 = OpConstantNull %v3int
|
||||||
|
%_ptr_Private_int = OpTypePointer Private %int
|
||||||
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
|
%26 = OpConstantNull %int
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%v2int = OpTypeVector %int 2
|
||||||
|
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
||||||
|
%41 = OpConstantNull %v2int
|
||||||
|
%v4int = OpTypeVector %int 4
|
||||||
|
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
||||||
|
%188 = OpConstantNull %v4int
|
||||||
|
%unused_entry_point = OpFunction %void None %7
|
||||||
|
%10 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %7
|
||||||
|
%12 = OpLabel
|
||||||
|
%v = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%x = OpVariable %_ptr_Function_int Function %26
|
||||||
|
%y = OpVariable %_ptr_Function_int Function %26
|
||||||
|
%z = OpVariable %_ptr_Function_int Function %26
|
||||||
|
%xx = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%xy = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%xz = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%yx = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%yy = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%yz = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%zx = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%zy = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%zz = OpVariable %_ptr_Function_v2int Function %41
|
||||||
|
%xxx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xxy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xxz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xyx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xyy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xyz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xzx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xzy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xzz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yxx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yxy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yxz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yyx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yyy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yyz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yzx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yzy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%yzz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zxx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zxy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zxz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zyx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zyy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zyz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zzx = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zzy = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%zzz = OpVariable %_ptr_Function_v3int Function %20
|
||||||
|
%xxxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xxxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xxxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xxyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xxyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xxyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xxzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xxzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xxzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xyzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%xzzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yxzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yyzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%yzzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zxzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zyzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzxx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzxy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzxz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzyx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzyy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzyz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzzx = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzzy = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%zzzz = OpVariable %_ptr_Function_v4int Function %188
|
||||||
|
%16 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%17 = OpLoad %v3int %16
|
||||||
|
OpStore %v %17
|
||||||
|
%22 = OpAccessChain %_ptr_Private_int %P %uint_0 %uint_0
|
||||||
|
%23 = OpLoad %int %22
|
||||||
|
OpStore %x %23
|
||||||
|
%28 = OpAccessChain %_ptr_Private_int %P %uint_0 %uint_1
|
||||||
|
%29 = OpLoad %int %28
|
||||||
|
OpStore %y %29
|
||||||
|
%32 = OpAccessChain %_ptr_Private_int %P %uint_0 %uint_2
|
||||||
|
%33 = OpLoad %int %32
|
||||||
|
OpStore %z %33
|
||||||
|
%35 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%37 = OpLoad %v3int %35
|
||||||
|
%38 = OpVectorShuffle %v2int %37 %37 0 0
|
||||||
|
OpStore %xx %38
|
||||||
|
%42 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%43 = OpLoad %v3int %42
|
||||||
|
%44 = OpVectorShuffle %v2int %43 %43 0 1
|
||||||
|
OpStore %xy %44
|
||||||
|
%46 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%47 = OpLoad %v3int %46
|
||||||
|
%48 = OpVectorShuffle %v2int %47 %47 0 2
|
||||||
|
OpStore %xz %48
|
||||||
|
%50 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%51 = OpLoad %v3int %50
|
||||||
|
%52 = OpVectorShuffle %v2int %51 %51 1 0
|
||||||
|
OpStore %yx %52
|
||||||
|
%54 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%55 = OpLoad %v3int %54
|
||||||
|
%56 = OpVectorShuffle %v2int %55 %55 1 1
|
||||||
|
OpStore %yy %56
|
||||||
|
%58 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%59 = OpLoad %v3int %58
|
||||||
|
%60 = OpVectorShuffle %v2int %59 %59 1 2
|
||||||
|
OpStore %yz %60
|
||||||
|
%62 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%63 = OpLoad %v3int %62
|
||||||
|
%64 = OpVectorShuffle %v2int %63 %63 2 0
|
||||||
|
OpStore %zx %64
|
||||||
|
%66 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%67 = OpLoad %v3int %66
|
||||||
|
%68 = OpVectorShuffle %v2int %67 %67 2 1
|
||||||
|
OpStore %zy %68
|
||||||
|
%70 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%71 = OpLoad %v3int %70
|
||||||
|
%72 = OpVectorShuffle %v2int %71 %71 2 2
|
||||||
|
OpStore %zz %72
|
||||||
|
%74 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%75 = OpLoad %v3int %74
|
||||||
|
%76 = OpVectorShuffle %v3int %75 %75 0 0 0
|
||||||
|
OpStore %xxx %76
|
||||||
|
%78 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%79 = OpLoad %v3int %78
|
||||||
|
%80 = OpVectorShuffle %v3int %79 %79 0 0 1
|
||||||
|
OpStore %xxy %80
|
||||||
|
%82 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%83 = OpLoad %v3int %82
|
||||||
|
%84 = OpVectorShuffle %v3int %83 %83 0 0 2
|
||||||
|
OpStore %xxz %84
|
||||||
|
%86 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%87 = OpLoad %v3int %86
|
||||||
|
%88 = OpVectorShuffle %v3int %87 %87 0 1 0
|
||||||
|
OpStore %xyx %88
|
||||||
|
%90 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%91 = OpLoad %v3int %90
|
||||||
|
%92 = OpVectorShuffle %v3int %91 %91 0 1 1
|
||||||
|
OpStore %xyy %92
|
||||||
|
%94 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%95 = OpLoad %v3int %94
|
||||||
|
%96 = OpVectorShuffle %v3int %95 %95 0 1 2
|
||||||
|
OpStore %xyz %96
|
||||||
|
%98 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%99 = OpLoad %v3int %98
|
||||||
|
%100 = OpVectorShuffle %v3int %99 %99 0 2 0
|
||||||
|
OpStore %xzx %100
|
||||||
|
%102 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%103 = OpLoad %v3int %102
|
||||||
|
%104 = OpVectorShuffle %v3int %103 %103 0 2 1
|
||||||
|
OpStore %xzy %104
|
||||||
|
%106 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%107 = OpLoad %v3int %106
|
||||||
|
%108 = OpVectorShuffle %v3int %107 %107 0 2 2
|
||||||
|
OpStore %xzz %108
|
||||||
|
%110 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%111 = OpLoad %v3int %110
|
||||||
|
%112 = OpVectorShuffle %v3int %111 %111 1 0 0
|
||||||
|
OpStore %yxx %112
|
||||||
|
%114 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%115 = OpLoad %v3int %114
|
||||||
|
%116 = OpVectorShuffle %v3int %115 %115 1 0 1
|
||||||
|
OpStore %yxy %116
|
||||||
|
%118 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%119 = OpLoad %v3int %118
|
||||||
|
%120 = OpVectorShuffle %v3int %119 %119 1 0 2
|
||||||
|
OpStore %yxz %120
|
||||||
|
%122 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%123 = OpLoad %v3int %122
|
||||||
|
%124 = OpVectorShuffle %v3int %123 %123 1 1 0
|
||||||
|
OpStore %yyx %124
|
||||||
|
%126 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%127 = OpLoad %v3int %126
|
||||||
|
%128 = OpVectorShuffle %v3int %127 %127 1 1 1
|
||||||
|
OpStore %yyy %128
|
||||||
|
%130 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%131 = OpLoad %v3int %130
|
||||||
|
%132 = OpVectorShuffle %v3int %131 %131 1 1 2
|
||||||
|
OpStore %yyz %132
|
||||||
|
%134 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%135 = OpLoad %v3int %134
|
||||||
|
%136 = OpVectorShuffle %v3int %135 %135 1 2 0
|
||||||
|
OpStore %yzx %136
|
||||||
|
%138 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%139 = OpLoad %v3int %138
|
||||||
|
%140 = OpVectorShuffle %v3int %139 %139 1 2 1
|
||||||
|
OpStore %yzy %140
|
||||||
|
%142 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%143 = OpLoad %v3int %142
|
||||||
|
%144 = OpVectorShuffle %v3int %143 %143 1 2 2
|
||||||
|
OpStore %yzz %144
|
||||||
|
%146 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%147 = OpLoad %v3int %146
|
||||||
|
%148 = OpVectorShuffle %v3int %147 %147 2 0 0
|
||||||
|
OpStore %zxx %148
|
||||||
|
%150 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%151 = OpLoad %v3int %150
|
||||||
|
%152 = OpVectorShuffle %v3int %151 %151 2 0 1
|
||||||
|
OpStore %zxy %152
|
||||||
|
%154 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%155 = OpLoad %v3int %154
|
||||||
|
%156 = OpVectorShuffle %v3int %155 %155 2 0 2
|
||||||
|
OpStore %zxz %156
|
||||||
|
%158 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%159 = OpLoad %v3int %158
|
||||||
|
%160 = OpVectorShuffle %v3int %159 %159 2 1 0
|
||||||
|
OpStore %zyx %160
|
||||||
|
%162 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%163 = OpLoad %v3int %162
|
||||||
|
%164 = OpVectorShuffle %v3int %163 %163 2 1 1
|
||||||
|
OpStore %zyy %164
|
||||||
|
%166 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%167 = OpLoad %v3int %166
|
||||||
|
%168 = OpVectorShuffle %v3int %167 %167 2 1 2
|
||||||
|
OpStore %zyz %168
|
||||||
|
%170 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%171 = OpLoad %v3int %170
|
||||||
|
%172 = OpVectorShuffle %v3int %171 %171 2 2 0
|
||||||
|
OpStore %zzx %172
|
||||||
|
%174 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%175 = OpLoad %v3int %174
|
||||||
|
%176 = OpVectorShuffle %v3int %175 %175 2 2 1
|
||||||
|
OpStore %zzy %176
|
||||||
|
%178 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%179 = OpLoad %v3int %178
|
||||||
|
%180 = OpVectorShuffle %v3int %179 %179 2 2 2
|
||||||
|
OpStore %zzz %180
|
||||||
|
%182 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%184 = OpLoad %v3int %182
|
||||||
|
%185 = OpVectorShuffle %v4int %184 %184 0 0 0 0
|
||||||
|
OpStore %xxxx %185
|
||||||
|
%189 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%190 = OpLoad %v3int %189
|
||||||
|
%191 = OpVectorShuffle %v4int %190 %190 0 0 0 1
|
||||||
|
OpStore %xxxy %191
|
||||||
|
%193 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%194 = OpLoad %v3int %193
|
||||||
|
%195 = OpVectorShuffle %v4int %194 %194 0 0 0 2
|
||||||
|
OpStore %xxxz %195
|
||||||
|
%197 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%198 = OpLoad %v3int %197
|
||||||
|
%199 = OpVectorShuffle %v4int %198 %198 0 0 1 0
|
||||||
|
OpStore %xxyx %199
|
||||||
|
%201 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%202 = OpLoad %v3int %201
|
||||||
|
%203 = OpVectorShuffle %v4int %202 %202 0 0 1 1
|
||||||
|
OpStore %xxyy %203
|
||||||
|
%205 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%206 = OpLoad %v3int %205
|
||||||
|
%207 = OpVectorShuffle %v4int %206 %206 0 0 1 2
|
||||||
|
OpStore %xxyz %207
|
||||||
|
%209 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%210 = OpLoad %v3int %209
|
||||||
|
%211 = OpVectorShuffle %v4int %210 %210 0 0 2 0
|
||||||
|
OpStore %xxzx %211
|
||||||
|
%213 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%214 = OpLoad %v3int %213
|
||||||
|
%215 = OpVectorShuffle %v4int %214 %214 0 0 2 1
|
||||||
|
OpStore %xxzy %215
|
||||||
|
%217 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%218 = OpLoad %v3int %217
|
||||||
|
%219 = OpVectorShuffle %v4int %218 %218 0 0 2 2
|
||||||
|
OpStore %xxzz %219
|
||||||
|
%221 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%222 = OpLoad %v3int %221
|
||||||
|
%223 = OpVectorShuffle %v4int %222 %222 0 1 0 0
|
||||||
|
OpStore %xyxx %223
|
||||||
|
%225 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%226 = OpLoad %v3int %225
|
||||||
|
%227 = OpVectorShuffle %v4int %226 %226 0 1 0 1
|
||||||
|
OpStore %xyxy %227
|
||||||
|
%229 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%230 = OpLoad %v3int %229
|
||||||
|
%231 = OpVectorShuffle %v4int %230 %230 0 1 0 2
|
||||||
|
OpStore %xyxz %231
|
||||||
|
%233 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%234 = OpLoad %v3int %233
|
||||||
|
%235 = OpVectorShuffle %v4int %234 %234 0 1 1 0
|
||||||
|
OpStore %xyyx %235
|
||||||
|
%237 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%238 = OpLoad %v3int %237
|
||||||
|
%239 = OpVectorShuffle %v4int %238 %238 0 1 1 1
|
||||||
|
OpStore %xyyy %239
|
||||||
|
%241 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%242 = OpLoad %v3int %241
|
||||||
|
%243 = OpVectorShuffle %v4int %242 %242 0 1 1 2
|
||||||
|
OpStore %xyyz %243
|
||||||
|
%245 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%246 = OpLoad %v3int %245
|
||||||
|
%247 = OpVectorShuffle %v4int %246 %246 0 1 2 0
|
||||||
|
OpStore %xyzx %247
|
||||||
|
%249 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%250 = OpLoad %v3int %249
|
||||||
|
%251 = OpVectorShuffle %v4int %250 %250 0 1 2 1
|
||||||
|
OpStore %xyzy %251
|
||||||
|
%253 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%254 = OpLoad %v3int %253
|
||||||
|
%255 = OpVectorShuffle %v4int %254 %254 0 1 2 2
|
||||||
|
OpStore %xyzz %255
|
||||||
|
%257 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%258 = OpLoad %v3int %257
|
||||||
|
%259 = OpVectorShuffle %v4int %258 %258 0 2 0 0
|
||||||
|
OpStore %xzxx %259
|
||||||
|
%261 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%262 = OpLoad %v3int %261
|
||||||
|
%263 = OpVectorShuffle %v4int %262 %262 0 2 0 1
|
||||||
|
OpStore %xzxy %263
|
||||||
|
%265 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%266 = OpLoad %v3int %265
|
||||||
|
%267 = OpVectorShuffle %v4int %266 %266 0 2 0 2
|
||||||
|
OpStore %xzxz %267
|
||||||
|
%269 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%270 = OpLoad %v3int %269
|
||||||
|
%271 = OpVectorShuffle %v4int %270 %270 0 2 1 0
|
||||||
|
OpStore %xzyx %271
|
||||||
|
%273 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%274 = OpLoad %v3int %273
|
||||||
|
%275 = OpVectorShuffle %v4int %274 %274 0 2 1 1
|
||||||
|
OpStore %xzyy %275
|
||||||
|
%277 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%278 = OpLoad %v3int %277
|
||||||
|
%279 = OpVectorShuffle %v4int %278 %278 0 2 1 2
|
||||||
|
OpStore %xzyz %279
|
||||||
|
%281 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%282 = OpLoad %v3int %281
|
||||||
|
%283 = OpVectorShuffle %v4int %282 %282 0 2 2 0
|
||||||
|
OpStore %xzzx %283
|
||||||
|
%285 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%286 = OpLoad %v3int %285
|
||||||
|
%287 = OpVectorShuffle %v4int %286 %286 0 2 2 1
|
||||||
|
OpStore %xzzy %287
|
||||||
|
%289 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%290 = OpLoad %v3int %289
|
||||||
|
%291 = OpVectorShuffle %v4int %290 %290 0 2 2 2
|
||||||
|
OpStore %xzzz %291
|
||||||
|
%293 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%294 = OpLoad %v3int %293
|
||||||
|
%295 = OpVectorShuffle %v4int %294 %294 1 0 0 0
|
||||||
|
OpStore %yxxx %295
|
||||||
|
%297 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%298 = OpLoad %v3int %297
|
||||||
|
%299 = OpVectorShuffle %v4int %298 %298 1 0 0 1
|
||||||
|
OpStore %yxxy %299
|
||||||
|
%301 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%302 = OpLoad %v3int %301
|
||||||
|
%303 = OpVectorShuffle %v4int %302 %302 1 0 0 2
|
||||||
|
OpStore %yxxz %303
|
||||||
|
%305 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%306 = OpLoad %v3int %305
|
||||||
|
%307 = OpVectorShuffle %v4int %306 %306 1 0 1 0
|
||||||
|
OpStore %yxyx %307
|
||||||
|
%309 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%310 = OpLoad %v3int %309
|
||||||
|
%311 = OpVectorShuffle %v4int %310 %310 1 0 1 1
|
||||||
|
OpStore %yxyy %311
|
||||||
|
%313 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%314 = OpLoad %v3int %313
|
||||||
|
%315 = OpVectorShuffle %v4int %314 %314 1 0 1 2
|
||||||
|
OpStore %yxyz %315
|
||||||
|
%317 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%318 = OpLoad %v3int %317
|
||||||
|
%319 = OpVectorShuffle %v4int %318 %318 1 0 2 0
|
||||||
|
OpStore %yxzx %319
|
||||||
|
%321 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%322 = OpLoad %v3int %321
|
||||||
|
%323 = OpVectorShuffle %v4int %322 %322 1 0 2 1
|
||||||
|
OpStore %yxzy %323
|
||||||
|
%325 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%326 = OpLoad %v3int %325
|
||||||
|
%327 = OpVectorShuffle %v4int %326 %326 1 0 2 2
|
||||||
|
OpStore %yxzz %327
|
||||||
|
%329 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%330 = OpLoad %v3int %329
|
||||||
|
%331 = OpVectorShuffle %v4int %330 %330 1 1 0 0
|
||||||
|
OpStore %yyxx %331
|
||||||
|
%333 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%334 = OpLoad %v3int %333
|
||||||
|
%335 = OpVectorShuffle %v4int %334 %334 1 1 0 1
|
||||||
|
OpStore %yyxy %335
|
||||||
|
%337 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%338 = OpLoad %v3int %337
|
||||||
|
%339 = OpVectorShuffle %v4int %338 %338 1 1 0 2
|
||||||
|
OpStore %yyxz %339
|
||||||
|
%341 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%342 = OpLoad %v3int %341
|
||||||
|
%343 = OpVectorShuffle %v4int %342 %342 1 1 1 0
|
||||||
|
OpStore %yyyx %343
|
||||||
|
%345 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%346 = OpLoad %v3int %345
|
||||||
|
%347 = OpVectorShuffle %v4int %346 %346 1 1 1 1
|
||||||
|
OpStore %yyyy %347
|
||||||
|
%349 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%350 = OpLoad %v3int %349
|
||||||
|
%351 = OpVectorShuffle %v4int %350 %350 1 1 1 2
|
||||||
|
OpStore %yyyz %351
|
||||||
|
%353 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%354 = OpLoad %v3int %353
|
||||||
|
%355 = OpVectorShuffle %v4int %354 %354 1 1 2 0
|
||||||
|
OpStore %yyzx %355
|
||||||
|
%357 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%358 = OpLoad %v3int %357
|
||||||
|
%359 = OpVectorShuffle %v4int %358 %358 1 1 2 1
|
||||||
|
OpStore %yyzy %359
|
||||||
|
%361 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%362 = OpLoad %v3int %361
|
||||||
|
%363 = OpVectorShuffle %v4int %362 %362 1 1 2 2
|
||||||
|
OpStore %yyzz %363
|
||||||
|
%365 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%366 = OpLoad %v3int %365
|
||||||
|
%367 = OpVectorShuffle %v4int %366 %366 1 2 0 0
|
||||||
|
OpStore %yzxx %367
|
||||||
|
%369 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%370 = OpLoad %v3int %369
|
||||||
|
%371 = OpVectorShuffle %v4int %370 %370 1 2 0 1
|
||||||
|
OpStore %yzxy %371
|
||||||
|
%373 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%374 = OpLoad %v3int %373
|
||||||
|
%375 = OpVectorShuffle %v4int %374 %374 1 2 0 2
|
||||||
|
OpStore %yzxz %375
|
||||||
|
%377 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%378 = OpLoad %v3int %377
|
||||||
|
%379 = OpVectorShuffle %v4int %378 %378 1 2 1 0
|
||||||
|
OpStore %yzyx %379
|
||||||
|
%381 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%382 = OpLoad %v3int %381
|
||||||
|
%383 = OpVectorShuffle %v4int %382 %382 1 2 1 1
|
||||||
|
OpStore %yzyy %383
|
||||||
|
%385 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%386 = OpLoad %v3int %385
|
||||||
|
%387 = OpVectorShuffle %v4int %386 %386 1 2 1 2
|
||||||
|
OpStore %yzyz %387
|
||||||
|
%389 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%390 = OpLoad %v3int %389
|
||||||
|
%391 = OpVectorShuffle %v4int %390 %390 1 2 2 0
|
||||||
|
OpStore %yzzx %391
|
||||||
|
%393 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%394 = OpLoad %v3int %393
|
||||||
|
%395 = OpVectorShuffle %v4int %394 %394 1 2 2 1
|
||||||
|
OpStore %yzzy %395
|
||||||
|
%397 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%398 = OpLoad %v3int %397
|
||||||
|
%399 = OpVectorShuffle %v4int %398 %398 1 2 2 2
|
||||||
|
OpStore %yzzz %399
|
||||||
|
%401 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%402 = OpLoad %v3int %401
|
||||||
|
%403 = OpVectorShuffle %v4int %402 %402 2 0 0 0
|
||||||
|
OpStore %zxxx %403
|
||||||
|
%405 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%406 = OpLoad %v3int %405
|
||||||
|
%407 = OpVectorShuffle %v4int %406 %406 2 0 0 1
|
||||||
|
OpStore %zxxy %407
|
||||||
|
%409 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%410 = OpLoad %v3int %409
|
||||||
|
%411 = OpVectorShuffle %v4int %410 %410 2 0 0 2
|
||||||
|
OpStore %zxxz %411
|
||||||
|
%413 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%414 = OpLoad %v3int %413
|
||||||
|
%415 = OpVectorShuffle %v4int %414 %414 2 0 1 0
|
||||||
|
OpStore %zxyx %415
|
||||||
|
%417 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%418 = OpLoad %v3int %417
|
||||||
|
%419 = OpVectorShuffle %v4int %418 %418 2 0 1 1
|
||||||
|
OpStore %zxyy %419
|
||||||
|
%421 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%422 = OpLoad %v3int %421
|
||||||
|
%423 = OpVectorShuffle %v4int %422 %422 2 0 1 2
|
||||||
|
OpStore %zxyz %423
|
||||||
|
%425 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%426 = OpLoad %v3int %425
|
||||||
|
%427 = OpVectorShuffle %v4int %426 %426 2 0 2 0
|
||||||
|
OpStore %zxzx %427
|
||||||
|
%429 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%430 = OpLoad %v3int %429
|
||||||
|
%431 = OpVectorShuffle %v4int %430 %430 2 0 2 1
|
||||||
|
OpStore %zxzy %431
|
||||||
|
%433 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%434 = OpLoad %v3int %433
|
||||||
|
%435 = OpVectorShuffle %v4int %434 %434 2 0 2 2
|
||||||
|
OpStore %zxzz %435
|
||||||
|
%437 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%438 = OpLoad %v3int %437
|
||||||
|
%439 = OpVectorShuffle %v4int %438 %438 2 1 0 0
|
||||||
|
OpStore %zyxx %439
|
||||||
|
%441 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%442 = OpLoad %v3int %441
|
||||||
|
%443 = OpVectorShuffle %v4int %442 %442 2 1 0 1
|
||||||
|
OpStore %zyxy %443
|
||||||
|
%445 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%446 = OpLoad %v3int %445
|
||||||
|
%447 = OpVectorShuffle %v4int %446 %446 2 1 0 2
|
||||||
|
OpStore %zyxz %447
|
||||||
|
%449 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%450 = OpLoad %v3int %449
|
||||||
|
%451 = OpVectorShuffle %v4int %450 %450 2 1 1 0
|
||||||
|
OpStore %zyyx %451
|
||||||
|
%453 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%454 = OpLoad %v3int %453
|
||||||
|
%455 = OpVectorShuffle %v4int %454 %454 2 1 1 1
|
||||||
|
OpStore %zyyy %455
|
||||||
|
%457 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%458 = OpLoad %v3int %457
|
||||||
|
%459 = OpVectorShuffle %v4int %458 %458 2 1 1 2
|
||||||
|
OpStore %zyyz %459
|
||||||
|
%461 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%462 = OpLoad %v3int %461
|
||||||
|
%463 = OpVectorShuffle %v4int %462 %462 2 1 2 0
|
||||||
|
OpStore %zyzx %463
|
||||||
|
%465 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%466 = OpLoad %v3int %465
|
||||||
|
%467 = OpVectorShuffle %v4int %466 %466 2 1 2 1
|
||||||
|
OpStore %zyzy %467
|
||||||
|
%469 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%470 = OpLoad %v3int %469
|
||||||
|
%471 = OpVectorShuffle %v4int %470 %470 2 1 2 2
|
||||||
|
OpStore %zyzz %471
|
||||||
|
%473 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%474 = OpLoad %v3int %473
|
||||||
|
%475 = OpVectorShuffle %v4int %474 %474 2 2 0 0
|
||||||
|
OpStore %zzxx %475
|
||||||
|
%477 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%478 = OpLoad %v3int %477
|
||||||
|
%479 = OpVectorShuffle %v4int %478 %478 2 2 0 1
|
||||||
|
OpStore %zzxy %479
|
||||||
|
%481 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%482 = OpLoad %v3int %481
|
||||||
|
%483 = OpVectorShuffle %v4int %482 %482 2 2 0 2
|
||||||
|
OpStore %zzxz %483
|
||||||
|
%485 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%486 = OpLoad %v3int %485
|
||||||
|
%487 = OpVectorShuffle %v4int %486 %486 2 2 1 0
|
||||||
|
OpStore %zzyx %487
|
||||||
|
%489 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%490 = OpLoad %v3int %489
|
||||||
|
%491 = OpVectorShuffle %v4int %490 %490 2 2 1 1
|
||||||
|
OpStore %zzyy %491
|
||||||
|
%493 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%494 = OpLoad %v3int %493
|
||||||
|
%495 = OpVectorShuffle %v4int %494 %494 2 2 1 2
|
||||||
|
OpStore %zzyz %495
|
||||||
|
%497 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%498 = OpLoad %v3int %497
|
||||||
|
%499 = OpVectorShuffle %v4int %498 %498 2 2 2 0
|
||||||
|
OpStore %zzzx %499
|
||||||
|
%501 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%502 = OpLoad %v3int %501
|
||||||
|
%503 = OpVectorShuffle %v4int %502 %502 2 2 2 1
|
||||||
|
OpStore %zzzy %503
|
||||||
|
%505 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
%506 = OpLoad %v3int %505
|
||||||
|
%507 = OpVectorShuffle %v4int %506 %506 2 2 2 2
|
||||||
|
OpStore %zzzz %507
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,129 @@
|
||||||
|
struct S {
|
||||||
|
v : vec3<i32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = P.v;
|
||||||
|
var x = P.v.x;
|
||||||
|
var y = P.v.y;
|
||||||
|
var z = P.v.z;
|
||||||
|
var xx = P.v.xx;
|
||||||
|
var xy = P.v.xy;
|
||||||
|
var xz = P.v.xz;
|
||||||
|
var yx = P.v.yx;
|
||||||
|
var yy = P.v.yy;
|
||||||
|
var yz = P.v.yz;
|
||||||
|
var zx = P.v.zx;
|
||||||
|
var zy = P.v.zy;
|
||||||
|
var zz = P.v.zz;
|
||||||
|
var xxx = P.v.xxx;
|
||||||
|
var xxy = P.v.xxy;
|
||||||
|
var xxz = P.v.xxz;
|
||||||
|
var xyx = P.v.xyx;
|
||||||
|
var xyy = P.v.xyy;
|
||||||
|
var xyz = P.v.xyz;
|
||||||
|
var xzx = P.v.xzx;
|
||||||
|
var xzy = P.v.xzy;
|
||||||
|
var xzz = P.v.xzz;
|
||||||
|
var yxx = P.v.yxx;
|
||||||
|
var yxy = P.v.yxy;
|
||||||
|
var yxz = P.v.yxz;
|
||||||
|
var yyx = P.v.yyx;
|
||||||
|
var yyy = P.v.yyy;
|
||||||
|
var yyz = P.v.yyz;
|
||||||
|
var yzx = P.v.yzx;
|
||||||
|
var yzy = P.v.yzy;
|
||||||
|
var yzz = P.v.yzz;
|
||||||
|
var zxx = P.v.zxx;
|
||||||
|
var zxy = P.v.zxy;
|
||||||
|
var zxz = P.v.zxz;
|
||||||
|
var zyx = P.v.zyx;
|
||||||
|
var zyy = P.v.zyy;
|
||||||
|
var zyz = P.v.zyz;
|
||||||
|
var zzx = P.v.zzx;
|
||||||
|
var zzy = P.v.zzy;
|
||||||
|
var zzz = P.v.zzz;
|
||||||
|
var xxxx = P.v.xxxx;
|
||||||
|
var xxxy = P.v.xxxy;
|
||||||
|
var xxxz = P.v.xxxz;
|
||||||
|
var xxyx = P.v.xxyx;
|
||||||
|
var xxyy = P.v.xxyy;
|
||||||
|
var xxyz = P.v.xxyz;
|
||||||
|
var xxzx = P.v.xxzx;
|
||||||
|
var xxzy = P.v.xxzy;
|
||||||
|
var xxzz = P.v.xxzz;
|
||||||
|
var xyxx = P.v.xyxx;
|
||||||
|
var xyxy = P.v.xyxy;
|
||||||
|
var xyxz = P.v.xyxz;
|
||||||
|
var xyyx = P.v.xyyx;
|
||||||
|
var xyyy = P.v.xyyy;
|
||||||
|
var xyyz = P.v.xyyz;
|
||||||
|
var xyzx = P.v.xyzx;
|
||||||
|
var xyzy = P.v.xyzy;
|
||||||
|
var xyzz = P.v.xyzz;
|
||||||
|
var xzxx = P.v.xzxx;
|
||||||
|
var xzxy = P.v.xzxy;
|
||||||
|
var xzxz = P.v.xzxz;
|
||||||
|
var xzyx = P.v.xzyx;
|
||||||
|
var xzyy = P.v.xzyy;
|
||||||
|
var xzyz = P.v.xzyz;
|
||||||
|
var xzzx = P.v.xzzx;
|
||||||
|
var xzzy = P.v.xzzy;
|
||||||
|
var xzzz = P.v.xzzz;
|
||||||
|
var yxxx = P.v.yxxx;
|
||||||
|
var yxxy = P.v.yxxy;
|
||||||
|
var yxxz = P.v.yxxz;
|
||||||
|
var yxyx = P.v.yxyx;
|
||||||
|
var yxyy = P.v.yxyy;
|
||||||
|
var yxyz = P.v.yxyz;
|
||||||
|
var yxzx = P.v.yxzx;
|
||||||
|
var yxzy = P.v.yxzy;
|
||||||
|
var yxzz = P.v.yxzz;
|
||||||
|
var yyxx = P.v.yyxx;
|
||||||
|
var yyxy = P.v.yyxy;
|
||||||
|
var yyxz = P.v.yyxz;
|
||||||
|
var yyyx = P.v.yyyx;
|
||||||
|
var yyyy = P.v.yyyy;
|
||||||
|
var yyyz = P.v.yyyz;
|
||||||
|
var yyzx = P.v.yyzx;
|
||||||
|
var yyzy = P.v.yyzy;
|
||||||
|
var yyzz = P.v.yyzz;
|
||||||
|
var yzxx = P.v.yzxx;
|
||||||
|
var yzxy = P.v.yzxy;
|
||||||
|
var yzxz = P.v.yzxz;
|
||||||
|
var yzyx = P.v.yzyx;
|
||||||
|
var yzyy = P.v.yzyy;
|
||||||
|
var yzyz = P.v.yzyz;
|
||||||
|
var yzzx = P.v.yzzx;
|
||||||
|
var yzzy = P.v.yzzy;
|
||||||
|
var yzzz = P.v.yzzz;
|
||||||
|
var zxxx = P.v.zxxx;
|
||||||
|
var zxxy = P.v.zxxy;
|
||||||
|
var zxxz = P.v.zxxz;
|
||||||
|
var zxyx = P.v.zxyx;
|
||||||
|
var zxyy = P.v.zxyy;
|
||||||
|
var zxyz = P.v.zxyz;
|
||||||
|
var zxzx = P.v.zxzx;
|
||||||
|
var zxzy = P.v.zxzy;
|
||||||
|
var zxzz = P.v.zxzz;
|
||||||
|
var zyxx = P.v.zyxx;
|
||||||
|
var zyxy = P.v.zyxy;
|
||||||
|
var zyxz = P.v.zyxz;
|
||||||
|
var zyyx = P.v.zyyx;
|
||||||
|
var zyyy = P.v.zyyy;
|
||||||
|
var zyyz = P.v.zyyz;
|
||||||
|
var zyzx = P.v.zyzx;
|
||||||
|
var zyzy = P.v.zyzy;
|
||||||
|
var zyzz = P.v.zyzz;
|
||||||
|
var zzxx = P.v.zzxx;
|
||||||
|
var zzxy = P.v.zzxy;
|
||||||
|
var zzxz = P.v.zzxz;
|
||||||
|
var zzyx = P.v.zzyx;
|
||||||
|
var zzyy = P.v.zzyy;
|
||||||
|
var zzyz = P.v.zzyz;
|
||||||
|
var zzzx = P.v.zzzx;
|
||||||
|
var zzzy = P.v.zzzy;
|
||||||
|
var zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,143 @@
|
||||||
|
struct S {
|
||||||
|
v: vec3<u32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = P.v;
|
||||||
|
|
||||||
|
var x = P.v.x;
|
||||||
|
var y = P.v.y;
|
||||||
|
var z = P.v.z;
|
||||||
|
|
||||||
|
var xx = P.v.xx;
|
||||||
|
var xy = P.v.xy;
|
||||||
|
var xz = P.v.xz;
|
||||||
|
var yx = P.v.yx;
|
||||||
|
var yy = P.v.yy;
|
||||||
|
var yz = P.v.yz;
|
||||||
|
var zx = P.v.zx;
|
||||||
|
var zy = P.v.zy;
|
||||||
|
var zz = P.v.zz;
|
||||||
|
|
||||||
|
var xxx = P.v.xxx;
|
||||||
|
var xxy = P.v.xxy;
|
||||||
|
var xxz = P.v.xxz;
|
||||||
|
var xyx = P.v.xyx;
|
||||||
|
var xyy = P.v.xyy;
|
||||||
|
var xyz = P.v.xyz;
|
||||||
|
var xzx = P.v.xzx;
|
||||||
|
var xzy = P.v.xzy;
|
||||||
|
var xzz = P.v.xzz;
|
||||||
|
|
||||||
|
var yxx = P.v.yxx;
|
||||||
|
var yxy = P.v.yxy;
|
||||||
|
var yxz = P.v.yxz;
|
||||||
|
var yyx = P.v.yyx;
|
||||||
|
var yyy = P.v.yyy;
|
||||||
|
var yyz = P.v.yyz;
|
||||||
|
var yzx = P.v.yzx;
|
||||||
|
var yzy = P.v.yzy;
|
||||||
|
var yzz = P.v.yzz;
|
||||||
|
|
||||||
|
var zxx = P.v.zxx;
|
||||||
|
var zxy = P.v.zxy;
|
||||||
|
var zxz = P.v.zxz;
|
||||||
|
var zyx = P.v.zyx;
|
||||||
|
var zyy = P.v.zyy;
|
||||||
|
var zyz = P.v.zyz;
|
||||||
|
var zzx = P.v.zzx;
|
||||||
|
var zzy = P.v.zzy;
|
||||||
|
var zzz = P.v.zzz;
|
||||||
|
|
||||||
|
var xxxx = P.v.xxxx;
|
||||||
|
var xxxy = P.v.xxxy;
|
||||||
|
var xxxz = P.v.xxxz;
|
||||||
|
var xxyx = P.v.xxyx;
|
||||||
|
var xxyy = P.v.xxyy;
|
||||||
|
var xxyz = P.v.xxyz;
|
||||||
|
var xxzx = P.v.xxzx;
|
||||||
|
var xxzy = P.v.xxzy;
|
||||||
|
var xxzz = P.v.xxzz;
|
||||||
|
|
||||||
|
var xyxx = P.v.xyxx;
|
||||||
|
var xyxy = P.v.xyxy;
|
||||||
|
var xyxz = P.v.xyxz;
|
||||||
|
var xyyx = P.v.xyyx;
|
||||||
|
var xyyy = P.v.xyyy;
|
||||||
|
var xyyz = P.v.xyyz;
|
||||||
|
var xyzx = P.v.xyzx;
|
||||||
|
var xyzy = P.v.xyzy;
|
||||||
|
var xyzz = P.v.xyzz;
|
||||||
|
|
||||||
|
var xzxx = P.v.xzxx;
|
||||||
|
var xzxy = P.v.xzxy;
|
||||||
|
var xzxz = P.v.xzxz;
|
||||||
|
var xzyx = P.v.xzyx;
|
||||||
|
var xzyy = P.v.xzyy;
|
||||||
|
var xzyz = P.v.xzyz;
|
||||||
|
var xzzx = P.v.xzzx;
|
||||||
|
var xzzy = P.v.xzzy;
|
||||||
|
var xzzz = P.v.xzzz;
|
||||||
|
|
||||||
|
var yxxx = P.v.yxxx;
|
||||||
|
var yxxy = P.v.yxxy;
|
||||||
|
var yxxz = P.v.yxxz;
|
||||||
|
var yxyx = P.v.yxyx;
|
||||||
|
var yxyy = P.v.yxyy;
|
||||||
|
var yxyz = P.v.yxyz;
|
||||||
|
var yxzx = P.v.yxzx;
|
||||||
|
var yxzy = P.v.yxzy;
|
||||||
|
var yxzz = P.v.yxzz;
|
||||||
|
|
||||||
|
var yyxx = P.v.yyxx;
|
||||||
|
var yyxy = P.v.yyxy;
|
||||||
|
var yyxz = P.v.yyxz;
|
||||||
|
var yyyx = P.v.yyyx;
|
||||||
|
var yyyy = P.v.yyyy;
|
||||||
|
var yyyz = P.v.yyyz;
|
||||||
|
var yyzx = P.v.yyzx;
|
||||||
|
var yyzy = P.v.yyzy;
|
||||||
|
var yyzz = P.v.yyzz;
|
||||||
|
|
||||||
|
var yzxx = P.v.yzxx;
|
||||||
|
var yzxy = P.v.yzxy;
|
||||||
|
var yzxz = P.v.yzxz;
|
||||||
|
var yzyx = P.v.yzyx;
|
||||||
|
var yzyy = P.v.yzyy;
|
||||||
|
var yzyz = P.v.yzyz;
|
||||||
|
var yzzx = P.v.yzzx;
|
||||||
|
var yzzy = P.v.yzzy;
|
||||||
|
var yzzz = P.v.yzzz;
|
||||||
|
|
||||||
|
var zxxx = P.v.zxxx;
|
||||||
|
var zxxy = P.v.zxxy;
|
||||||
|
var zxxz = P.v.zxxz;
|
||||||
|
var zxyx = P.v.zxyx;
|
||||||
|
var zxyy = P.v.zxyy;
|
||||||
|
var zxyz = P.v.zxyz;
|
||||||
|
var zxzx = P.v.zxzx;
|
||||||
|
var zxzy = P.v.zxzy;
|
||||||
|
var zxzz = P.v.zxzz;
|
||||||
|
|
||||||
|
var zyxx = P.v.zyxx;
|
||||||
|
var zyxy = P.v.zyxy;
|
||||||
|
var zyxz = P.v.zyxz;
|
||||||
|
var zyyx = P.v.zyyx;
|
||||||
|
var zyyy = P.v.zyyy;
|
||||||
|
var zyyz = P.v.zyyz;
|
||||||
|
var zyzx = P.v.zyzx;
|
||||||
|
var zyzy = P.v.zyzy;
|
||||||
|
var zyzz = P.v.zyzz;
|
||||||
|
|
||||||
|
var zzxx = P.v.zzxx;
|
||||||
|
var zzxy = P.v.zzxy;
|
||||||
|
var zzxz = P.v.zzxz;
|
||||||
|
var zzyx = P.v.zzyx;
|
||||||
|
var zzyy = P.v.zzyy;
|
||||||
|
var zzyz = P.v.zzyz;
|
||||||
|
var zzzx = P.v.zzzx;
|
||||||
|
var zzzy = P.v.zzzy;
|
||||||
|
var zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,134 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
uint3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
static S P = (S)0;
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
uint3 v = P.v;
|
||||||
|
uint x = P.v.x;
|
||||||
|
uint y = P.v.y;
|
||||||
|
uint z = P.v.z;
|
||||||
|
uint2 xx = P.v.xx;
|
||||||
|
uint2 xy = P.v.xy;
|
||||||
|
uint2 xz = P.v.xz;
|
||||||
|
uint2 yx = P.v.yx;
|
||||||
|
uint2 yy = P.v.yy;
|
||||||
|
uint2 yz = P.v.yz;
|
||||||
|
uint2 zx = P.v.zx;
|
||||||
|
uint2 zy = P.v.zy;
|
||||||
|
uint2 zz = P.v.zz;
|
||||||
|
uint3 xxx = P.v.xxx;
|
||||||
|
uint3 xxy = P.v.xxy;
|
||||||
|
uint3 xxz = P.v.xxz;
|
||||||
|
uint3 xyx = P.v.xyx;
|
||||||
|
uint3 xyy = P.v.xyy;
|
||||||
|
uint3 xyz = P.v.xyz;
|
||||||
|
uint3 xzx = P.v.xzx;
|
||||||
|
uint3 xzy = P.v.xzy;
|
||||||
|
uint3 xzz = P.v.xzz;
|
||||||
|
uint3 yxx = P.v.yxx;
|
||||||
|
uint3 yxy = P.v.yxy;
|
||||||
|
uint3 yxz = P.v.yxz;
|
||||||
|
uint3 yyx = P.v.yyx;
|
||||||
|
uint3 yyy = P.v.yyy;
|
||||||
|
uint3 yyz = P.v.yyz;
|
||||||
|
uint3 yzx = P.v.yzx;
|
||||||
|
uint3 yzy = P.v.yzy;
|
||||||
|
uint3 yzz = P.v.yzz;
|
||||||
|
uint3 zxx = P.v.zxx;
|
||||||
|
uint3 zxy = P.v.zxy;
|
||||||
|
uint3 zxz = P.v.zxz;
|
||||||
|
uint3 zyx = P.v.zyx;
|
||||||
|
uint3 zyy = P.v.zyy;
|
||||||
|
uint3 zyz = P.v.zyz;
|
||||||
|
uint3 zzx = P.v.zzx;
|
||||||
|
uint3 zzy = P.v.zzy;
|
||||||
|
uint3 zzz = P.v.zzz;
|
||||||
|
uint4 xxxx = P.v.xxxx;
|
||||||
|
uint4 xxxy = P.v.xxxy;
|
||||||
|
uint4 xxxz = P.v.xxxz;
|
||||||
|
uint4 xxyx = P.v.xxyx;
|
||||||
|
uint4 xxyy = P.v.xxyy;
|
||||||
|
uint4 xxyz = P.v.xxyz;
|
||||||
|
uint4 xxzx = P.v.xxzx;
|
||||||
|
uint4 xxzy = P.v.xxzy;
|
||||||
|
uint4 xxzz = P.v.xxzz;
|
||||||
|
uint4 xyxx = P.v.xyxx;
|
||||||
|
uint4 xyxy = P.v.xyxy;
|
||||||
|
uint4 xyxz = P.v.xyxz;
|
||||||
|
uint4 xyyx = P.v.xyyx;
|
||||||
|
uint4 xyyy = P.v.xyyy;
|
||||||
|
uint4 xyyz = P.v.xyyz;
|
||||||
|
uint4 xyzx = P.v.xyzx;
|
||||||
|
uint4 xyzy = P.v.xyzy;
|
||||||
|
uint4 xyzz = P.v.xyzz;
|
||||||
|
uint4 xzxx = P.v.xzxx;
|
||||||
|
uint4 xzxy = P.v.xzxy;
|
||||||
|
uint4 xzxz = P.v.xzxz;
|
||||||
|
uint4 xzyx = P.v.xzyx;
|
||||||
|
uint4 xzyy = P.v.xzyy;
|
||||||
|
uint4 xzyz = P.v.xzyz;
|
||||||
|
uint4 xzzx = P.v.xzzx;
|
||||||
|
uint4 xzzy = P.v.xzzy;
|
||||||
|
uint4 xzzz = P.v.xzzz;
|
||||||
|
uint4 yxxx = P.v.yxxx;
|
||||||
|
uint4 yxxy = P.v.yxxy;
|
||||||
|
uint4 yxxz = P.v.yxxz;
|
||||||
|
uint4 yxyx = P.v.yxyx;
|
||||||
|
uint4 yxyy = P.v.yxyy;
|
||||||
|
uint4 yxyz = P.v.yxyz;
|
||||||
|
uint4 yxzx = P.v.yxzx;
|
||||||
|
uint4 yxzy = P.v.yxzy;
|
||||||
|
uint4 yxzz = P.v.yxzz;
|
||||||
|
uint4 yyxx = P.v.yyxx;
|
||||||
|
uint4 yyxy = P.v.yyxy;
|
||||||
|
uint4 yyxz = P.v.yyxz;
|
||||||
|
uint4 yyyx = P.v.yyyx;
|
||||||
|
uint4 yyyy = P.v.yyyy;
|
||||||
|
uint4 yyyz = P.v.yyyz;
|
||||||
|
uint4 yyzx = P.v.yyzx;
|
||||||
|
uint4 yyzy = P.v.yyzy;
|
||||||
|
uint4 yyzz = P.v.yyzz;
|
||||||
|
uint4 yzxx = P.v.yzxx;
|
||||||
|
uint4 yzxy = P.v.yzxy;
|
||||||
|
uint4 yzxz = P.v.yzxz;
|
||||||
|
uint4 yzyx = P.v.yzyx;
|
||||||
|
uint4 yzyy = P.v.yzyy;
|
||||||
|
uint4 yzyz = P.v.yzyz;
|
||||||
|
uint4 yzzx = P.v.yzzx;
|
||||||
|
uint4 yzzy = P.v.yzzy;
|
||||||
|
uint4 yzzz = P.v.yzzz;
|
||||||
|
uint4 zxxx = P.v.zxxx;
|
||||||
|
uint4 zxxy = P.v.zxxy;
|
||||||
|
uint4 zxxz = P.v.zxxz;
|
||||||
|
uint4 zxyx = P.v.zxyx;
|
||||||
|
uint4 zxyy = P.v.zxyy;
|
||||||
|
uint4 zxyz = P.v.zxyz;
|
||||||
|
uint4 zxzx = P.v.zxzx;
|
||||||
|
uint4 zxzy = P.v.zxzy;
|
||||||
|
uint4 zxzz = P.v.zxzz;
|
||||||
|
uint4 zyxx = P.v.zyxx;
|
||||||
|
uint4 zyxy = P.v.zyxy;
|
||||||
|
uint4 zyxz = P.v.zyxz;
|
||||||
|
uint4 zyyx = P.v.zyyx;
|
||||||
|
uint4 zyyy = P.v.zyyy;
|
||||||
|
uint4 zyyz = P.v.zyyz;
|
||||||
|
uint4 zyzx = P.v.zyzx;
|
||||||
|
uint4 zyzy = P.v.zyzy;
|
||||||
|
uint4 zyzz = P.v.zyzz;
|
||||||
|
uint4 zzxx = P.v.zzxx;
|
||||||
|
uint4 zzxy = P.v.zzxy;
|
||||||
|
uint4 zzxz = P.v.zzxz;
|
||||||
|
uint4 zzyx = P.v.zzyx;
|
||||||
|
uint4 zzyy = P.v.zzyy;
|
||||||
|
uint4 zzyz = P.v.zzyz;
|
||||||
|
uint4 zzzx = P.v.zzzx;
|
||||||
|
uint4 zzzy = P.v.zzzy;
|
||||||
|
uint4 zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,131 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
uint3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(thread S* const tint_symbol) {
|
||||||
|
uint3 v = (*(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;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,768 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 508
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %P "P"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpName %v "v"
|
||||||
|
OpName %x "x"
|
||||||
|
OpName %y "y"
|
||||||
|
OpName %z "z"
|
||||||
|
OpName %xx "xx"
|
||||||
|
OpName %xy "xy"
|
||||||
|
OpName %xz "xz"
|
||||||
|
OpName %yx "yx"
|
||||||
|
OpName %yy "yy"
|
||||||
|
OpName %yz "yz"
|
||||||
|
OpName %zx "zx"
|
||||||
|
OpName %zy "zy"
|
||||||
|
OpName %zz "zz"
|
||||||
|
OpName %xxx "xxx"
|
||||||
|
OpName %xxy "xxy"
|
||||||
|
OpName %xxz "xxz"
|
||||||
|
OpName %xyx "xyx"
|
||||||
|
OpName %xyy "xyy"
|
||||||
|
OpName %xyz "xyz"
|
||||||
|
OpName %xzx "xzx"
|
||||||
|
OpName %xzy "xzy"
|
||||||
|
OpName %xzz "xzz"
|
||||||
|
OpName %yxx "yxx"
|
||||||
|
OpName %yxy "yxy"
|
||||||
|
OpName %yxz "yxz"
|
||||||
|
OpName %yyx "yyx"
|
||||||
|
OpName %yyy "yyy"
|
||||||
|
OpName %yyz "yyz"
|
||||||
|
OpName %yzx "yzx"
|
||||||
|
OpName %yzy "yzy"
|
||||||
|
OpName %yzz "yzz"
|
||||||
|
OpName %zxx "zxx"
|
||||||
|
OpName %zxy "zxy"
|
||||||
|
OpName %zxz "zxz"
|
||||||
|
OpName %zyx "zyx"
|
||||||
|
OpName %zyy "zyy"
|
||||||
|
OpName %zyz "zyz"
|
||||||
|
OpName %zzx "zzx"
|
||||||
|
OpName %zzy "zzy"
|
||||||
|
OpName %zzz "zzz"
|
||||||
|
OpName %xxxx "xxxx"
|
||||||
|
OpName %xxxy "xxxy"
|
||||||
|
OpName %xxxz "xxxz"
|
||||||
|
OpName %xxyx "xxyx"
|
||||||
|
OpName %xxyy "xxyy"
|
||||||
|
OpName %xxyz "xxyz"
|
||||||
|
OpName %xxzx "xxzx"
|
||||||
|
OpName %xxzy "xxzy"
|
||||||
|
OpName %xxzz "xxzz"
|
||||||
|
OpName %xyxx "xyxx"
|
||||||
|
OpName %xyxy "xyxy"
|
||||||
|
OpName %xyxz "xyxz"
|
||||||
|
OpName %xyyx "xyyx"
|
||||||
|
OpName %xyyy "xyyy"
|
||||||
|
OpName %xyyz "xyyz"
|
||||||
|
OpName %xyzx "xyzx"
|
||||||
|
OpName %xyzy "xyzy"
|
||||||
|
OpName %xyzz "xyzz"
|
||||||
|
OpName %xzxx "xzxx"
|
||||||
|
OpName %xzxy "xzxy"
|
||||||
|
OpName %xzxz "xzxz"
|
||||||
|
OpName %xzyx "xzyx"
|
||||||
|
OpName %xzyy "xzyy"
|
||||||
|
OpName %xzyz "xzyz"
|
||||||
|
OpName %xzzx "xzzx"
|
||||||
|
OpName %xzzy "xzzy"
|
||||||
|
OpName %xzzz "xzzz"
|
||||||
|
OpName %yxxx "yxxx"
|
||||||
|
OpName %yxxy "yxxy"
|
||||||
|
OpName %yxxz "yxxz"
|
||||||
|
OpName %yxyx "yxyx"
|
||||||
|
OpName %yxyy "yxyy"
|
||||||
|
OpName %yxyz "yxyz"
|
||||||
|
OpName %yxzx "yxzx"
|
||||||
|
OpName %yxzy "yxzy"
|
||||||
|
OpName %yxzz "yxzz"
|
||||||
|
OpName %yyxx "yyxx"
|
||||||
|
OpName %yyxy "yyxy"
|
||||||
|
OpName %yyxz "yyxz"
|
||||||
|
OpName %yyyx "yyyx"
|
||||||
|
OpName %yyyy "yyyy"
|
||||||
|
OpName %yyyz "yyyz"
|
||||||
|
OpName %yyzx "yyzx"
|
||||||
|
OpName %yyzy "yyzy"
|
||||||
|
OpName %yyzz "yyzz"
|
||||||
|
OpName %yzxx "yzxx"
|
||||||
|
OpName %yzxy "yzxy"
|
||||||
|
OpName %yzxz "yzxz"
|
||||||
|
OpName %yzyx "yzyx"
|
||||||
|
OpName %yzyy "yzyy"
|
||||||
|
OpName %yzyz "yzyz"
|
||||||
|
OpName %yzzx "yzzx"
|
||||||
|
OpName %yzzy "yzzy"
|
||||||
|
OpName %yzzz "yzzz"
|
||||||
|
OpName %zxxx "zxxx"
|
||||||
|
OpName %zxxy "zxxy"
|
||||||
|
OpName %zxxz "zxxz"
|
||||||
|
OpName %zxyx "zxyx"
|
||||||
|
OpName %zxyy "zxyy"
|
||||||
|
OpName %zxyz "zxyz"
|
||||||
|
OpName %zxzx "zxzx"
|
||||||
|
OpName %zxzy "zxzy"
|
||||||
|
OpName %zxzz "zxzz"
|
||||||
|
OpName %zyxx "zyxx"
|
||||||
|
OpName %zyxy "zyxy"
|
||||||
|
OpName %zyxz "zyxz"
|
||||||
|
OpName %zyyx "zyyx"
|
||||||
|
OpName %zyyy "zyyy"
|
||||||
|
OpName %zyyz "zyyz"
|
||||||
|
OpName %zyzx "zyzx"
|
||||||
|
OpName %zyzy "zyzy"
|
||||||
|
OpName %zyzz "zyzz"
|
||||||
|
OpName %zzxx "zzxx"
|
||||||
|
OpName %zzxy "zzxy"
|
||||||
|
OpName %zzxz "zzxz"
|
||||||
|
OpName %zzyx "zzyx"
|
||||||
|
OpName %zzyy "zzyy"
|
||||||
|
OpName %zzyz "zzyz"
|
||||||
|
OpName %zzzx "zzzx"
|
||||||
|
OpName %zzzy "zzzy"
|
||||||
|
OpName %zzzz "zzzz"
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%v3uint = OpTypeVector %uint 3
|
||||||
|
%S = OpTypeStruct %v3uint
|
||||||
|
%_ptr_Private_S = OpTypePointer Private %S
|
||||||
|
%6 = OpConstantNull %S
|
||||||
|
%P = OpVariable %_ptr_Private_S Private %6
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%7 = OpTypeFunction %void
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
|
||||||
|
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
|
||||||
|
%19 = OpConstantNull %v3uint
|
||||||
|
%_ptr_Private_uint = OpTypePointer Private %uint
|
||||||
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
|
%25 = OpConstantNull %uint
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%v2uint = OpTypeVector %uint 2
|
||||||
|
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
|
||||||
|
%40 = OpConstantNull %v2uint
|
||||||
|
%v4uint = OpTypeVector %uint 4
|
||||||
|
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
|
||||||
|
%187 = OpConstantNull %v4uint
|
||||||
|
%unused_entry_point = OpFunction %void None %7
|
||||||
|
%10 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %7
|
||||||
|
%12 = OpLabel
|
||||||
|
%v = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%x = OpVariable %_ptr_Function_uint Function %25
|
||||||
|
%y = OpVariable %_ptr_Function_uint Function %25
|
||||||
|
%z = OpVariable %_ptr_Function_uint Function %25
|
||||||
|
%xx = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%xy = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%xz = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%yx = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%yy = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%yz = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%zx = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%zy = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%zz = OpVariable %_ptr_Function_v2uint Function %40
|
||||||
|
%xxx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xxy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xxz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xyx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xyy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xyz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xzx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xzy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xzz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yxx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yxy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yxz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yyx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yyy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yyz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yzx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yzy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%yzz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zxx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zxy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zxz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zyx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zyy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zyz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zzx = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zzy = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%zzz = OpVariable %_ptr_Function_v3uint Function %19
|
||||||
|
%xxxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xxxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xxxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xxyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xxyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xxyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xxzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xxzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xxzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xyzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%xzzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yxzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yyzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%yzzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zxzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zyzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzxx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzxy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzxz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzyx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzyy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzyz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzzx = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzzy = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%zzzz = OpVariable %_ptr_Function_v4uint Function %187
|
||||||
|
%15 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%16 = OpLoad %v3uint %15
|
||||||
|
OpStore %v %16
|
||||||
|
%21 = OpAccessChain %_ptr_Private_uint %P %uint_0 %uint_0
|
||||||
|
%22 = OpLoad %uint %21
|
||||||
|
OpStore %x %22
|
||||||
|
%27 = OpAccessChain %_ptr_Private_uint %P %uint_0 %uint_1
|
||||||
|
%28 = OpLoad %uint %27
|
||||||
|
OpStore %y %28
|
||||||
|
%31 = OpAccessChain %_ptr_Private_uint %P %uint_0 %uint_2
|
||||||
|
%32 = OpLoad %uint %31
|
||||||
|
OpStore %z %32
|
||||||
|
%34 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%36 = OpLoad %v3uint %34
|
||||||
|
%37 = OpVectorShuffle %v2uint %36 %36 0 0
|
||||||
|
OpStore %xx %37
|
||||||
|
%41 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%42 = OpLoad %v3uint %41
|
||||||
|
%43 = OpVectorShuffle %v2uint %42 %42 0 1
|
||||||
|
OpStore %xy %43
|
||||||
|
%45 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%46 = OpLoad %v3uint %45
|
||||||
|
%47 = OpVectorShuffle %v2uint %46 %46 0 2
|
||||||
|
OpStore %xz %47
|
||||||
|
%49 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%50 = OpLoad %v3uint %49
|
||||||
|
%51 = OpVectorShuffle %v2uint %50 %50 1 0
|
||||||
|
OpStore %yx %51
|
||||||
|
%53 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%54 = OpLoad %v3uint %53
|
||||||
|
%55 = OpVectorShuffle %v2uint %54 %54 1 1
|
||||||
|
OpStore %yy %55
|
||||||
|
%57 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%58 = OpLoad %v3uint %57
|
||||||
|
%59 = OpVectorShuffle %v2uint %58 %58 1 2
|
||||||
|
OpStore %yz %59
|
||||||
|
%61 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%62 = OpLoad %v3uint %61
|
||||||
|
%63 = OpVectorShuffle %v2uint %62 %62 2 0
|
||||||
|
OpStore %zx %63
|
||||||
|
%65 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%66 = OpLoad %v3uint %65
|
||||||
|
%67 = OpVectorShuffle %v2uint %66 %66 2 1
|
||||||
|
OpStore %zy %67
|
||||||
|
%69 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%70 = OpLoad %v3uint %69
|
||||||
|
%71 = OpVectorShuffle %v2uint %70 %70 2 2
|
||||||
|
OpStore %zz %71
|
||||||
|
%73 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%74 = OpLoad %v3uint %73
|
||||||
|
%75 = OpVectorShuffle %v3uint %74 %74 0 0 0
|
||||||
|
OpStore %xxx %75
|
||||||
|
%77 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%78 = OpLoad %v3uint %77
|
||||||
|
%79 = OpVectorShuffle %v3uint %78 %78 0 0 1
|
||||||
|
OpStore %xxy %79
|
||||||
|
%81 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%82 = OpLoad %v3uint %81
|
||||||
|
%83 = OpVectorShuffle %v3uint %82 %82 0 0 2
|
||||||
|
OpStore %xxz %83
|
||||||
|
%85 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%86 = OpLoad %v3uint %85
|
||||||
|
%87 = OpVectorShuffle %v3uint %86 %86 0 1 0
|
||||||
|
OpStore %xyx %87
|
||||||
|
%89 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%90 = OpLoad %v3uint %89
|
||||||
|
%91 = OpVectorShuffle %v3uint %90 %90 0 1 1
|
||||||
|
OpStore %xyy %91
|
||||||
|
%93 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%94 = OpLoad %v3uint %93
|
||||||
|
%95 = OpVectorShuffle %v3uint %94 %94 0 1 2
|
||||||
|
OpStore %xyz %95
|
||||||
|
%97 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%98 = OpLoad %v3uint %97
|
||||||
|
%99 = OpVectorShuffle %v3uint %98 %98 0 2 0
|
||||||
|
OpStore %xzx %99
|
||||||
|
%101 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%102 = OpLoad %v3uint %101
|
||||||
|
%103 = OpVectorShuffle %v3uint %102 %102 0 2 1
|
||||||
|
OpStore %xzy %103
|
||||||
|
%105 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%106 = OpLoad %v3uint %105
|
||||||
|
%107 = OpVectorShuffle %v3uint %106 %106 0 2 2
|
||||||
|
OpStore %xzz %107
|
||||||
|
%109 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%110 = OpLoad %v3uint %109
|
||||||
|
%111 = OpVectorShuffle %v3uint %110 %110 1 0 0
|
||||||
|
OpStore %yxx %111
|
||||||
|
%113 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%114 = OpLoad %v3uint %113
|
||||||
|
%115 = OpVectorShuffle %v3uint %114 %114 1 0 1
|
||||||
|
OpStore %yxy %115
|
||||||
|
%117 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%118 = OpLoad %v3uint %117
|
||||||
|
%119 = OpVectorShuffle %v3uint %118 %118 1 0 2
|
||||||
|
OpStore %yxz %119
|
||||||
|
%121 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%122 = OpLoad %v3uint %121
|
||||||
|
%123 = OpVectorShuffle %v3uint %122 %122 1 1 0
|
||||||
|
OpStore %yyx %123
|
||||||
|
%125 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%126 = OpLoad %v3uint %125
|
||||||
|
%127 = OpVectorShuffle %v3uint %126 %126 1 1 1
|
||||||
|
OpStore %yyy %127
|
||||||
|
%129 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%130 = OpLoad %v3uint %129
|
||||||
|
%131 = OpVectorShuffle %v3uint %130 %130 1 1 2
|
||||||
|
OpStore %yyz %131
|
||||||
|
%133 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%134 = OpLoad %v3uint %133
|
||||||
|
%135 = OpVectorShuffle %v3uint %134 %134 1 2 0
|
||||||
|
OpStore %yzx %135
|
||||||
|
%137 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%138 = OpLoad %v3uint %137
|
||||||
|
%139 = OpVectorShuffle %v3uint %138 %138 1 2 1
|
||||||
|
OpStore %yzy %139
|
||||||
|
%141 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%142 = OpLoad %v3uint %141
|
||||||
|
%143 = OpVectorShuffle %v3uint %142 %142 1 2 2
|
||||||
|
OpStore %yzz %143
|
||||||
|
%145 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%146 = OpLoad %v3uint %145
|
||||||
|
%147 = OpVectorShuffle %v3uint %146 %146 2 0 0
|
||||||
|
OpStore %zxx %147
|
||||||
|
%149 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%150 = OpLoad %v3uint %149
|
||||||
|
%151 = OpVectorShuffle %v3uint %150 %150 2 0 1
|
||||||
|
OpStore %zxy %151
|
||||||
|
%153 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%154 = OpLoad %v3uint %153
|
||||||
|
%155 = OpVectorShuffle %v3uint %154 %154 2 0 2
|
||||||
|
OpStore %zxz %155
|
||||||
|
%157 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%158 = OpLoad %v3uint %157
|
||||||
|
%159 = OpVectorShuffle %v3uint %158 %158 2 1 0
|
||||||
|
OpStore %zyx %159
|
||||||
|
%161 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%162 = OpLoad %v3uint %161
|
||||||
|
%163 = OpVectorShuffle %v3uint %162 %162 2 1 1
|
||||||
|
OpStore %zyy %163
|
||||||
|
%165 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%166 = OpLoad %v3uint %165
|
||||||
|
%167 = OpVectorShuffle %v3uint %166 %166 2 1 2
|
||||||
|
OpStore %zyz %167
|
||||||
|
%169 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%170 = OpLoad %v3uint %169
|
||||||
|
%171 = OpVectorShuffle %v3uint %170 %170 2 2 0
|
||||||
|
OpStore %zzx %171
|
||||||
|
%173 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%174 = OpLoad %v3uint %173
|
||||||
|
%175 = OpVectorShuffle %v3uint %174 %174 2 2 1
|
||||||
|
OpStore %zzy %175
|
||||||
|
%177 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%178 = OpLoad %v3uint %177
|
||||||
|
%179 = OpVectorShuffle %v3uint %178 %178 2 2 2
|
||||||
|
OpStore %zzz %179
|
||||||
|
%181 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%183 = OpLoad %v3uint %181
|
||||||
|
%184 = OpVectorShuffle %v4uint %183 %183 0 0 0 0
|
||||||
|
OpStore %xxxx %184
|
||||||
|
%188 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%189 = OpLoad %v3uint %188
|
||||||
|
%190 = OpVectorShuffle %v4uint %189 %189 0 0 0 1
|
||||||
|
OpStore %xxxy %190
|
||||||
|
%192 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%193 = OpLoad %v3uint %192
|
||||||
|
%194 = OpVectorShuffle %v4uint %193 %193 0 0 0 2
|
||||||
|
OpStore %xxxz %194
|
||||||
|
%196 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%197 = OpLoad %v3uint %196
|
||||||
|
%198 = OpVectorShuffle %v4uint %197 %197 0 0 1 0
|
||||||
|
OpStore %xxyx %198
|
||||||
|
%200 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%201 = OpLoad %v3uint %200
|
||||||
|
%202 = OpVectorShuffle %v4uint %201 %201 0 0 1 1
|
||||||
|
OpStore %xxyy %202
|
||||||
|
%204 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%205 = OpLoad %v3uint %204
|
||||||
|
%206 = OpVectorShuffle %v4uint %205 %205 0 0 1 2
|
||||||
|
OpStore %xxyz %206
|
||||||
|
%208 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%209 = OpLoad %v3uint %208
|
||||||
|
%210 = OpVectorShuffle %v4uint %209 %209 0 0 2 0
|
||||||
|
OpStore %xxzx %210
|
||||||
|
%212 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%213 = OpLoad %v3uint %212
|
||||||
|
%214 = OpVectorShuffle %v4uint %213 %213 0 0 2 1
|
||||||
|
OpStore %xxzy %214
|
||||||
|
%216 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%217 = OpLoad %v3uint %216
|
||||||
|
%218 = OpVectorShuffle %v4uint %217 %217 0 0 2 2
|
||||||
|
OpStore %xxzz %218
|
||||||
|
%220 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%221 = OpLoad %v3uint %220
|
||||||
|
%222 = OpVectorShuffle %v4uint %221 %221 0 1 0 0
|
||||||
|
OpStore %xyxx %222
|
||||||
|
%224 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%225 = OpLoad %v3uint %224
|
||||||
|
%226 = OpVectorShuffle %v4uint %225 %225 0 1 0 1
|
||||||
|
OpStore %xyxy %226
|
||||||
|
%228 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%229 = OpLoad %v3uint %228
|
||||||
|
%230 = OpVectorShuffle %v4uint %229 %229 0 1 0 2
|
||||||
|
OpStore %xyxz %230
|
||||||
|
%232 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%233 = OpLoad %v3uint %232
|
||||||
|
%234 = OpVectorShuffle %v4uint %233 %233 0 1 1 0
|
||||||
|
OpStore %xyyx %234
|
||||||
|
%236 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%237 = OpLoad %v3uint %236
|
||||||
|
%238 = OpVectorShuffle %v4uint %237 %237 0 1 1 1
|
||||||
|
OpStore %xyyy %238
|
||||||
|
%240 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%241 = OpLoad %v3uint %240
|
||||||
|
%242 = OpVectorShuffle %v4uint %241 %241 0 1 1 2
|
||||||
|
OpStore %xyyz %242
|
||||||
|
%244 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%245 = OpLoad %v3uint %244
|
||||||
|
%246 = OpVectorShuffle %v4uint %245 %245 0 1 2 0
|
||||||
|
OpStore %xyzx %246
|
||||||
|
%248 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%249 = OpLoad %v3uint %248
|
||||||
|
%250 = OpVectorShuffle %v4uint %249 %249 0 1 2 1
|
||||||
|
OpStore %xyzy %250
|
||||||
|
%252 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%253 = OpLoad %v3uint %252
|
||||||
|
%254 = OpVectorShuffle %v4uint %253 %253 0 1 2 2
|
||||||
|
OpStore %xyzz %254
|
||||||
|
%256 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%257 = OpLoad %v3uint %256
|
||||||
|
%258 = OpVectorShuffle %v4uint %257 %257 0 2 0 0
|
||||||
|
OpStore %xzxx %258
|
||||||
|
%260 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%261 = OpLoad %v3uint %260
|
||||||
|
%262 = OpVectorShuffle %v4uint %261 %261 0 2 0 1
|
||||||
|
OpStore %xzxy %262
|
||||||
|
%264 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%265 = OpLoad %v3uint %264
|
||||||
|
%266 = OpVectorShuffle %v4uint %265 %265 0 2 0 2
|
||||||
|
OpStore %xzxz %266
|
||||||
|
%268 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%269 = OpLoad %v3uint %268
|
||||||
|
%270 = OpVectorShuffle %v4uint %269 %269 0 2 1 0
|
||||||
|
OpStore %xzyx %270
|
||||||
|
%272 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%273 = OpLoad %v3uint %272
|
||||||
|
%274 = OpVectorShuffle %v4uint %273 %273 0 2 1 1
|
||||||
|
OpStore %xzyy %274
|
||||||
|
%276 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%277 = OpLoad %v3uint %276
|
||||||
|
%278 = OpVectorShuffle %v4uint %277 %277 0 2 1 2
|
||||||
|
OpStore %xzyz %278
|
||||||
|
%280 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%281 = OpLoad %v3uint %280
|
||||||
|
%282 = OpVectorShuffle %v4uint %281 %281 0 2 2 0
|
||||||
|
OpStore %xzzx %282
|
||||||
|
%284 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%285 = OpLoad %v3uint %284
|
||||||
|
%286 = OpVectorShuffle %v4uint %285 %285 0 2 2 1
|
||||||
|
OpStore %xzzy %286
|
||||||
|
%288 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%289 = OpLoad %v3uint %288
|
||||||
|
%290 = OpVectorShuffle %v4uint %289 %289 0 2 2 2
|
||||||
|
OpStore %xzzz %290
|
||||||
|
%292 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%293 = OpLoad %v3uint %292
|
||||||
|
%294 = OpVectorShuffle %v4uint %293 %293 1 0 0 0
|
||||||
|
OpStore %yxxx %294
|
||||||
|
%296 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%297 = OpLoad %v3uint %296
|
||||||
|
%298 = OpVectorShuffle %v4uint %297 %297 1 0 0 1
|
||||||
|
OpStore %yxxy %298
|
||||||
|
%300 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%301 = OpLoad %v3uint %300
|
||||||
|
%302 = OpVectorShuffle %v4uint %301 %301 1 0 0 2
|
||||||
|
OpStore %yxxz %302
|
||||||
|
%304 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%305 = OpLoad %v3uint %304
|
||||||
|
%306 = OpVectorShuffle %v4uint %305 %305 1 0 1 0
|
||||||
|
OpStore %yxyx %306
|
||||||
|
%308 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%309 = OpLoad %v3uint %308
|
||||||
|
%310 = OpVectorShuffle %v4uint %309 %309 1 0 1 1
|
||||||
|
OpStore %yxyy %310
|
||||||
|
%312 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%313 = OpLoad %v3uint %312
|
||||||
|
%314 = OpVectorShuffle %v4uint %313 %313 1 0 1 2
|
||||||
|
OpStore %yxyz %314
|
||||||
|
%316 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%317 = OpLoad %v3uint %316
|
||||||
|
%318 = OpVectorShuffle %v4uint %317 %317 1 0 2 0
|
||||||
|
OpStore %yxzx %318
|
||||||
|
%320 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%321 = OpLoad %v3uint %320
|
||||||
|
%322 = OpVectorShuffle %v4uint %321 %321 1 0 2 1
|
||||||
|
OpStore %yxzy %322
|
||||||
|
%324 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%325 = OpLoad %v3uint %324
|
||||||
|
%326 = OpVectorShuffle %v4uint %325 %325 1 0 2 2
|
||||||
|
OpStore %yxzz %326
|
||||||
|
%328 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%329 = OpLoad %v3uint %328
|
||||||
|
%330 = OpVectorShuffle %v4uint %329 %329 1 1 0 0
|
||||||
|
OpStore %yyxx %330
|
||||||
|
%332 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%333 = OpLoad %v3uint %332
|
||||||
|
%334 = OpVectorShuffle %v4uint %333 %333 1 1 0 1
|
||||||
|
OpStore %yyxy %334
|
||||||
|
%336 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%337 = OpLoad %v3uint %336
|
||||||
|
%338 = OpVectorShuffle %v4uint %337 %337 1 1 0 2
|
||||||
|
OpStore %yyxz %338
|
||||||
|
%340 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%341 = OpLoad %v3uint %340
|
||||||
|
%342 = OpVectorShuffle %v4uint %341 %341 1 1 1 0
|
||||||
|
OpStore %yyyx %342
|
||||||
|
%344 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%345 = OpLoad %v3uint %344
|
||||||
|
%346 = OpVectorShuffle %v4uint %345 %345 1 1 1 1
|
||||||
|
OpStore %yyyy %346
|
||||||
|
%348 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%349 = OpLoad %v3uint %348
|
||||||
|
%350 = OpVectorShuffle %v4uint %349 %349 1 1 1 2
|
||||||
|
OpStore %yyyz %350
|
||||||
|
%352 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%353 = OpLoad %v3uint %352
|
||||||
|
%354 = OpVectorShuffle %v4uint %353 %353 1 1 2 0
|
||||||
|
OpStore %yyzx %354
|
||||||
|
%356 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%357 = OpLoad %v3uint %356
|
||||||
|
%358 = OpVectorShuffle %v4uint %357 %357 1 1 2 1
|
||||||
|
OpStore %yyzy %358
|
||||||
|
%360 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%361 = OpLoad %v3uint %360
|
||||||
|
%362 = OpVectorShuffle %v4uint %361 %361 1 1 2 2
|
||||||
|
OpStore %yyzz %362
|
||||||
|
%364 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%365 = OpLoad %v3uint %364
|
||||||
|
%366 = OpVectorShuffle %v4uint %365 %365 1 2 0 0
|
||||||
|
OpStore %yzxx %366
|
||||||
|
%368 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%369 = OpLoad %v3uint %368
|
||||||
|
%370 = OpVectorShuffle %v4uint %369 %369 1 2 0 1
|
||||||
|
OpStore %yzxy %370
|
||||||
|
%372 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%373 = OpLoad %v3uint %372
|
||||||
|
%374 = OpVectorShuffle %v4uint %373 %373 1 2 0 2
|
||||||
|
OpStore %yzxz %374
|
||||||
|
%376 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%377 = OpLoad %v3uint %376
|
||||||
|
%378 = OpVectorShuffle %v4uint %377 %377 1 2 1 0
|
||||||
|
OpStore %yzyx %378
|
||||||
|
%380 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%381 = OpLoad %v3uint %380
|
||||||
|
%382 = OpVectorShuffle %v4uint %381 %381 1 2 1 1
|
||||||
|
OpStore %yzyy %382
|
||||||
|
%384 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%385 = OpLoad %v3uint %384
|
||||||
|
%386 = OpVectorShuffle %v4uint %385 %385 1 2 1 2
|
||||||
|
OpStore %yzyz %386
|
||||||
|
%388 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%389 = OpLoad %v3uint %388
|
||||||
|
%390 = OpVectorShuffle %v4uint %389 %389 1 2 2 0
|
||||||
|
OpStore %yzzx %390
|
||||||
|
%392 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%393 = OpLoad %v3uint %392
|
||||||
|
%394 = OpVectorShuffle %v4uint %393 %393 1 2 2 1
|
||||||
|
OpStore %yzzy %394
|
||||||
|
%396 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%397 = OpLoad %v3uint %396
|
||||||
|
%398 = OpVectorShuffle %v4uint %397 %397 1 2 2 2
|
||||||
|
OpStore %yzzz %398
|
||||||
|
%400 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%401 = OpLoad %v3uint %400
|
||||||
|
%402 = OpVectorShuffle %v4uint %401 %401 2 0 0 0
|
||||||
|
OpStore %zxxx %402
|
||||||
|
%404 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%405 = OpLoad %v3uint %404
|
||||||
|
%406 = OpVectorShuffle %v4uint %405 %405 2 0 0 1
|
||||||
|
OpStore %zxxy %406
|
||||||
|
%408 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%409 = OpLoad %v3uint %408
|
||||||
|
%410 = OpVectorShuffle %v4uint %409 %409 2 0 0 2
|
||||||
|
OpStore %zxxz %410
|
||||||
|
%412 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%413 = OpLoad %v3uint %412
|
||||||
|
%414 = OpVectorShuffle %v4uint %413 %413 2 0 1 0
|
||||||
|
OpStore %zxyx %414
|
||||||
|
%416 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%417 = OpLoad %v3uint %416
|
||||||
|
%418 = OpVectorShuffle %v4uint %417 %417 2 0 1 1
|
||||||
|
OpStore %zxyy %418
|
||||||
|
%420 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%421 = OpLoad %v3uint %420
|
||||||
|
%422 = OpVectorShuffle %v4uint %421 %421 2 0 1 2
|
||||||
|
OpStore %zxyz %422
|
||||||
|
%424 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%425 = OpLoad %v3uint %424
|
||||||
|
%426 = OpVectorShuffle %v4uint %425 %425 2 0 2 0
|
||||||
|
OpStore %zxzx %426
|
||||||
|
%428 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%429 = OpLoad %v3uint %428
|
||||||
|
%430 = OpVectorShuffle %v4uint %429 %429 2 0 2 1
|
||||||
|
OpStore %zxzy %430
|
||||||
|
%432 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%433 = OpLoad %v3uint %432
|
||||||
|
%434 = OpVectorShuffle %v4uint %433 %433 2 0 2 2
|
||||||
|
OpStore %zxzz %434
|
||||||
|
%436 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%437 = OpLoad %v3uint %436
|
||||||
|
%438 = OpVectorShuffle %v4uint %437 %437 2 1 0 0
|
||||||
|
OpStore %zyxx %438
|
||||||
|
%440 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%441 = OpLoad %v3uint %440
|
||||||
|
%442 = OpVectorShuffle %v4uint %441 %441 2 1 0 1
|
||||||
|
OpStore %zyxy %442
|
||||||
|
%444 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%445 = OpLoad %v3uint %444
|
||||||
|
%446 = OpVectorShuffle %v4uint %445 %445 2 1 0 2
|
||||||
|
OpStore %zyxz %446
|
||||||
|
%448 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%449 = OpLoad %v3uint %448
|
||||||
|
%450 = OpVectorShuffle %v4uint %449 %449 2 1 1 0
|
||||||
|
OpStore %zyyx %450
|
||||||
|
%452 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%453 = OpLoad %v3uint %452
|
||||||
|
%454 = OpVectorShuffle %v4uint %453 %453 2 1 1 1
|
||||||
|
OpStore %zyyy %454
|
||||||
|
%456 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%457 = OpLoad %v3uint %456
|
||||||
|
%458 = OpVectorShuffle %v4uint %457 %457 2 1 1 2
|
||||||
|
OpStore %zyyz %458
|
||||||
|
%460 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%461 = OpLoad %v3uint %460
|
||||||
|
%462 = OpVectorShuffle %v4uint %461 %461 2 1 2 0
|
||||||
|
OpStore %zyzx %462
|
||||||
|
%464 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%465 = OpLoad %v3uint %464
|
||||||
|
%466 = OpVectorShuffle %v4uint %465 %465 2 1 2 1
|
||||||
|
OpStore %zyzy %466
|
||||||
|
%468 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%469 = OpLoad %v3uint %468
|
||||||
|
%470 = OpVectorShuffle %v4uint %469 %469 2 1 2 2
|
||||||
|
OpStore %zyzz %470
|
||||||
|
%472 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%473 = OpLoad %v3uint %472
|
||||||
|
%474 = OpVectorShuffle %v4uint %473 %473 2 2 0 0
|
||||||
|
OpStore %zzxx %474
|
||||||
|
%476 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%477 = OpLoad %v3uint %476
|
||||||
|
%478 = OpVectorShuffle %v4uint %477 %477 2 2 0 1
|
||||||
|
OpStore %zzxy %478
|
||||||
|
%480 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%481 = OpLoad %v3uint %480
|
||||||
|
%482 = OpVectorShuffle %v4uint %481 %481 2 2 0 2
|
||||||
|
OpStore %zzxz %482
|
||||||
|
%484 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%485 = OpLoad %v3uint %484
|
||||||
|
%486 = OpVectorShuffle %v4uint %485 %485 2 2 1 0
|
||||||
|
OpStore %zzyx %486
|
||||||
|
%488 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%489 = OpLoad %v3uint %488
|
||||||
|
%490 = OpVectorShuffle %v4uint %489 %489 2 2 1 1
|
||||||
|
OpStore %zzyy %490
|
||||||
|
%492 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%493 = OpLoad %v3uint %492
|
||||||
|
%494 = OpVectorShuffle %v4uint %493 %493 2 2 1 2
|
||||||
|
OpStore %zzyz %494
|
||||||
|
%496 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%497 = OpLoad %v3uint %496
|
||||||
|
%498 = OpVectorShuffle %v4uint %497 %497 2 2 2 0
|
||||||
|
OpStore %zzzx %498
|
||||||
|
%500 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%501 = OpLoad %v3uint %500
|
||||||
|
%502 = OpVectorShuffle %v4uint %501 %501 2 2 2 1
|
||||||
|
OpStore %zzzy %502
|
||||||
|
%504 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
%505 = OpLoad %v3uint %504
|
||||||
|
%506 = OpVectorShuffle %v4uint %505 %505 2 2 2 2
|
||||||
|
OpStore %zzzz %506
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,129 @@
|
||||||
|
struct S {
|
||||||
|
v : vec3<u32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
var v = P.v;
|
||||||
|
var x = P.v.x;
|
||||||
|
var y = P.v.y;
|
||||||
|
var z = P.v.z;
|
||||||
|
var xx = P.v.xx;
|
||||||
|
var xy = P.v.xy;
|
||||||
|
var xz = P.v.xz;
|
||||||
|
var yx = P.v.yx;
|
||||||
|
var yy = P.v.yy;
|
||||||
|
var yz = P.v.yz;
|
||||||
|
var zx = P.v.zx;
|
||||||
|
var zy = P.v.zy;
|
||||||
|
var zz = P.v.zz;
|
||||||
|
var xxx = P.v.xxx;
|
||||||
|
var xxy = P.v.xxy;
|
||||||
|
var xxz = P.v.xxz;
|
||||||
|
var xyx = P.v.xyx;
|
||||||
|
var xyy = P.v.xyy;
|
||||||
|
var xyz = P.v.xyz;
|
||||||
|
var xzx = P.v.xzx;
|
||||||
|
var xzy = P.v.xzy;
|
||||||
|
var xzz = P.v.xzz;
|
||||||
|
var yxx = P.v.yxx;
|
||||||
|
var yxy = P.v.yxy;
|
||||||
|
var yxz = P.v.yxz;
|
||||||
|
var yyx = P.v.yyx;
|
||||||
|
var yyy = P.v.yyy;
|
||||||
|
var yyz = P.v.yyz;
|
||||||
|
var yzx = P.v.yzx;
|
||||||
|
var yzy = P.v.yzy;
|
||||||
|
var yzz = P.v.yzz;
|
||||||
|
var zxx = P.v.zxx;
|
||||||
|
var zxy = P.v.zxy;
|
||||||
|
var zxz = P.v.zxz;
|
||||||
|
var zyx = P.v.zyx;
|
||||||
|
var zyy = P.v.zyy;
|
||||||
|
var zyz = P.v.zyz;
|
||||||
|
var zzx = P.v.zzx;
|
||||||
|
var zzy = P.v.zzy;
|
||||||
|
var zzz = P.v.zzz;
|
||||||
|
var xxxx = P.v.xxxx;
|
||||||
|
var xxxy = P.v.xxxy;
|
||||||
|
var xxxz = P.v.xxxz;
|
||||||
|
var xxyx = P.v.xxyx;
|
||||||
|
var xxyy = P.v.xxyy;
|
||||||
|
var xxyz = P.v.xxyz;
|
||||||
|
var xxzx = P.v.xxzx;
|
||||||
|
var xxzy = P.v.xxzy;
|
||||||
|
var xxzz = P.v.xxzz;
|
||||||
|
var xyxx = P.v.xyxx;
|
||||||
|
var xyxy = P.v.xyxy;
|
||||||
|
var xyxz = P.v.xyxz;
|
||||||
|
var xyyx = P.v.xyyx;
|
||||||
|
var xyyy = P.v.xyyy;
|
||||||
|
var xyyz = P.v.xyyz;
|
||||||
|
var xyzx = P.v.xyzx;
|
||||||
|
var xyzy = P.v.xyzy;
|
||||||
|
var xyzz = P.v.xyzz;
|
||||||
|
var xzxx = P.v.xzxx;
|
||||||
|
var xzxy = P.v.xzxy;
|
||||||
|
var xzxz = P.v.xzxz;
|
||||||
|
var xzyx = P.v.xzyx;
|
||||||
|
var xzyy = P.v.xzyy;
|
||||||
|
var xzyz = P.v.xzyz;
|
||||||
|
var xzzx = P.v.xzzx;
|
||||||
|
var xzzy = P.v.xzzy;
|
||||||
|
var xzzz = P.v.xzzz;
|
||||||
|
var yxxx = P.v.yxxx;
|
||||||
|
var yxxy = P.v.yxxy;
|
||||||
|
var yxxz = P.v.yxxz;
|
||||||
|
var yxyx = P.v.yxyx;
|
||||||
|
var yxyy = P.v.yxyy;
|
||||||
|
var yxyz = P.v.yxyz;
|
||||||
|
var yxzx = P.v.yxzx;
|
||||||
|
var yxzy = P.v.yxzy;
|
||||||
|
var yxzz = P.v.yxzz;
|
||||||
|
var yyxx = P.v.yyxx;
|
||||||
|
var yyxy = P.v.yyxy;
|
||||||
|
var yyxz = P.v.yyxz;
|
||||||
|
var yyyx = P.v.yyyx;
|
||||||
|
var yyyy = P.v.yyyy;
|
||||||
|
var yyyz = P.v.yyyz;
|
||||||
|
var yyzx = P.v.yyzx;
|
||||||
|
var yyzy = P.v.yyzy;
|
||||||
|
var yyzz = P.v.yyzz;
|
||||||
|
var yzxx = P.v.yzxx;
|
||||||
|
var yzxy = P.v.yzxy;
|
||||||
|
var yzxz = P.v.yzxz;
|
||||||
|
var yzyx = P.v.yzyx;
|
||||||
|
var yzyy = P.v.yzyy;
|
||||||
|
var yzyz = P.v.yzyz;
|
||||||
|
var yzzx = P.v.yzzx;
|
||||||
|
var yzzy = P.v.yzzy;
|
||||||
|
var yzzz = P.v.yzzz;
|
||||||
|
var zxxx = P.v.zxxx;
|
||||||
|
var zxxy = P.v.zxxy;
|
||||||
|
var zxxz = P.v.zxxz;
|
||||||
|
var zxyx = P.v.zxyx;
|
||||||
|
var zxyy = P.v.zxyy;
|
||||||
|
var zxyz = P.v.zxyz;
|
||||||
|
var zxzx = P.v.zxzx;
|
||||||
|
var zxzy = P.v.zxzy;
|
||||||
|
var zxzz = P.v.zxzz;
|
||||||
|
var zyxx = P.v.zyxx;
|
||||||
|
var zyxy = P.v.zyxy;
|
||||||
|
var zyxz = P.v.zyxz;
|
||||||
|
var zyyx = P.v.zyyx;
|
||||||
|
var zyyy = P.v.zyyy;
|
||||||
|
var zyyz = P.v.zyyz;
|
||||||
|
var zyzx = P.v.zyzx;
|
||||||
|
var zyzy = P.v.zyzy;
|
||||||
|
var zyzz = P.v.zyzz;
|
||||||
|
var zzxx = P.v.zzxx;
|
||||||
|
var zzxy = P.v.zzxy;
|
||||||
|
var zzxz = P.v.zzxz;
|
||||||
|
var zzyx = P.v.zzyx;
|
||||||
|
var zzyy = P.v.zzyy;
|
||||||
|
var zzyz = P.v.zzyz;
|
||||||
|
var zzzx = P.v.zzzx;
|
||||||
|
var zzzy = P.v.zzzy;
|
||||||
|
var zzzz = P.v.zzzz;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v: vec3<f32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<storage, read_write> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
U.v = vec3<f32>(1.0, 2.0, 3.0);
|
||||||
|
|
||||||
|
U.v.x = 1.0;
|
||||||
|
U.v.y = 2.0;
|
||||||
|
U.v.z = 3.0;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RWByteAddressBuffer U : register(u0, space0);
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
U.Store3(0u, asuint(float3(1.0f, 2.0f, 3.0f)));
|
||||||
|
U.Store(0u, asuint(1.0f));
|
||||||
|
U.Store(4u, asuint(2.0f));
|
||||||
|
U.Store(8u, asuint(3.0f));
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
|
||||||
|
template<typename T, int N, int M>
|
||||||
|
inline auto operator*(matrix<T, N, M> lhs, packed_vec<T, N> rhs) {
|
||||||
|
return lhs * vec<T, N>(rhs);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, int N, int M>
|
||||||
|
inline auto operator*(packed_vec<T, M> lhs, matrix<T, N, M> rhs) {
|
||||||
|
return vec<T, M>(lhs) * rhs;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
/* 0x0000 */ packed_float3 v;
|
||||||
|
/* 0x000c */ int8_t tint_pad[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(device S& U) {
|
||||||
|
U.v = float3(1.0f, 2.0f, 3.0f);
|
||||||
|
U.v[0] = 1.0f;
|
||||||
|
U.v[1] = 2.0f;
|
||||||
|
U.v[2] = 3.0f;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 26
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %U "U"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpDecorate %S Block
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
OpDecorate %U DescriptorSet 0
|
||||||
|
OpDecorate %U Binding 0
|
||||||
|
%float = OpTypeFloat 32
|
||||||
|
%v3float = OpTypeVector %float 3
|
||||||
|
%S = OpTypeStruct %v3float
|
||||||
|
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
|
||||||
|
%U = OpVariable %_ptr_StorageBuffer_S StorageBuffer
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%6 = OpTypeFunction %void
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
|
||||||
|
%float_1 = OpConstant %float 1
|
||||||
|
%float_2 = OpConstant %float 2
|
||||||
|
%float_3 = OpConstant %float 3
|
||||||
|
%19 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
||||||
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%unused_entry_point = OpFunction %void None %6
|
||||||
|
%9 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %6
|
||||||
|
%11 = OpLabel
|
||||||
|
%15 = OpAccessChain %_ptr_StorageBuffer_v3float %U %uint_0
|
||||||
|
OpStore %15 %19
|
||||||
|
%21 = OpAccessChain %_ptr_StorageBuffer_float %U %uint_0 %uint_0
|
||||||
|
OpStore %21 %float_1
|
||||||
|
%23 = OpAccessChain %_ptr_StorageBuffer_float %U %uint_0 %uint_1
|
||||||
|
OpStore %23 %float_2
|
||||||
|
%25 = OpAccessChain %_ptr_StorageBuffer_float %U %uint_0 %uint_2
|
||||||
|
OpStore %25 %float_3
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,13 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v : vec3<f32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<storage, read_write> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
U.v = vec3<f32>(1.0, 2.0, 3.0);
|
||||||
|
U.v.x = 1.0;
|
||||||
|
U.v.y = 2.0;
|
||||||
|
U.v.z = 3.0;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v: vec3<i32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<storage, read_write> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
U.v = vec3<i32>(1, 2, 3);
|
||||||
|
|
||||||
|
U.v.x = 1;
|
||||||
|
U.v.y = 2;
|
||||||
|
U.v.z = 3;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RWByteAddressBuffer U : register(u0, space0);
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
U.Store3(0u, asuint(int3(1, 2, 3)));
|
||||||
|
U.Store(0u, asuint(1));
|
||||||
|
U.Store(4u, asuint(2));
|
||||||
|
U.Store(8u, asuint(3));
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
/* 0x0000 */ packed_int3 v;
|
||||||
|
/* 0x000c */ int8_t tint_pad[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(device S& U) {
|
||||||
|
U.v = int3(1, 2, 3);
|
||||||
|
U.v[0] = 1;
|
||||||
|
U.v[1] = 2;
|
||||||
|
U.v[2] = 3;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 26
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %U "U"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpDecorate %S Block
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
OpDecorate %U DescriptorSet 0
|
||||||
|
OpDecorate %U Binding 0
|
||||||
|
%int = OpTypeInt 32 1
|
||||||
|
%v3int = OpTypeVector %int 3
|
||||||
|
%S = OpTypeStruct %v3int
|
||||||
|
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
|
||||||
|
%U = OpVariable %_ptr_StorageBuffer_S StorageBuffer
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%6 = OpTypeFunction %void
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_StorageBuffer_v3int = OpTypePointer StorageBuffer %v3int
|
||||||
|
%int_1 = OpConstant %int 1
|
||||||
|
%int_2 = OpConstant %int 2
|
||||||
|
%int_3 = OpConstant %int 3
|
||||||
|
%19 = OpConstantComposite %v3int %int_1 %int_2 %int_3
|
||||||
|
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%unused_entry_point = OpFunction %void None %6
|
||||||
|
%9 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %6
|
||||||
|
%11 = OpLabel
|
||||||
|
%15 = OpAccessChain %_ptr_StorageBuffer_v3int %U %uint_0
|
||||||
|
OpStore %15 %19
|
||||||
|
%21 = OpAccessChain %_ptr_StorageBuffer_int %U %uint_0 %uint_0
|
||||||
|
OpStore %21 %int_1
|
||||||
|
%23 = OpAccessChain %_ptr_StorageBuffer_int %U %uint_0 %uint_1
|
||||||
|
OpStore %23 %int_2
|
||||||
|
%25 = OpAccessChain %_ptr_StorageBuffer_int %U %uint_0 %uint_2
|
||||||
|
OpStore %25 %int_3
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,13 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v : vec3<i32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<storage, read_write> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
U.v = vec3<i32>(1, 2, 3);
|
||||||
|
U.v.x = 1;
|
||||||
|
U.v.y = 2;
|
||||||
|
U.v.z = 3;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v: vec3<u32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<storage, read_write> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
U.v = vec3<u32>(1u, 2u, 3u);
|
||||||
|
|
||||||
|
U.v.x = 1u;
|
||||||
|
U.v.y = 2u;
|
||||||
|
U.v.z = 3u;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RWByteAddressBuffer U : register(u0, space0);
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
U.Store3(0u, asuint(uint3(1u, 2u, 3u)));
|
||||||
|
U.Store(0u, asuint(1u));
|
||||||
|
U.Store(4u, asuint(2u));
|
||||||
|
U.Store(8u, asuint(3u));
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
/* 0x0000 */ packed_uint3 v;
|
||||||
|
/* 0x000c */ int8_t tint_pad[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(device S& U) {
|
||||||
|
U.v = uint3(1u, 2u, 3u);
|
||||||
|
U.v[0] = 1u;
|
||||||
|
U.v[1] = 2u;
|
||||||
|
U.v[2] = 3u;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 23
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %U "U"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpDecorate %S Block
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
OpDecorate %U DescriptorSet 0
|
||||||
|
OpDecorate %U Binding 0
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%v3uint = OpTypeVector %uint 3
|
||||||
|
%S = OpTypeStruct %v3uint
|
||||||
|
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
|
||||||
|
%U = OpVariable %_ptr_StorageBuffer_S StorageBuffer
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%6 = OpTypeFunction %void
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_StorageBuffer_v3uint = OpTypePointer StorageBuffer %v3uint
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%uint_3 = OpConstant %uint 3
|
||||||
|
%18 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
|
||||||
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
|
%unused_entry_point = OpFunction %void None %6
|
||||||
|
%9 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %6
|
||||||
|
%11 = OpLabel
|
||||||
|
%14 = OpAccessChain %_ptr_StorageBuffer_v3uint %U %uint_0
|
||||||
|
OpStore %14 %18
|
||||||
|
%20 = OpAccessChain %_ptr_StorageBuffer_uint %U %uint_0 %uint_0
|
||||||
|
OpStore %20 %uint_1
|
||||||
|
%21 = OpAccessChain %_ptr_StorageBuffer_uint %U %uint_0 %uint_1
|
||||||
|
OpStore %21 %uint_2
|
||||||
|
%22 = OpAccessChain %_ptr_StorageBuffer_uint %U %uint_0 %uint_2
|
||||||
|
OpStore %22 %uint_3
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,13 @@
|
||||||
|
[[block]]
|
||||||
|
struct S {
|
||||||
|
v : vec3<u32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[[group(0), binding(0)]] var<storage, read_write> U : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
U.v = vec3<u32>(1u, 2u, 3u);
|
||||||
|
U.v.x = 1u;
|
||||||
|
U.v.y = 2u;
|
||||||
|
U.v.z = 3u;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
struct S {
|
||||||
|
v: vec3<f32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
P.v = vec3<f32>(1.0, 2.0, 3.0);
|
||||||
|
|
||||||
|
P.v.x = 1.0;
|
||||||
|
P.v.y = 2.0;
|
||||||
|
P.v.z = 3.0;
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
float3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
static S P = (S)0;
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
P.v = float3(1.0f, 2.0f, 3.0f);
|
||||||
|
P.v.x = 1.0f;
|
||||||
|
P.v.y = 2.0f;
|
||||||
|
P.v.z = 3.0f;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
float3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(thread S* const tint_symbol) {
|
||||||
|
(*(tint_symbol)).v = float3(1.0f, 2.0f, 3.0f);
|
||||||
|
(*(tint_symbol)).v[0] = 1.0f;
|
||||||
|
(*(tint_symbol)).v[1] = 2.0f;
|
||||||
|
(*(tint_symbol)).v[2] = 3.0f;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 27
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %P "P"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
%float = OpTypeFloat 32
|
||||||
|
%v3float = OpTypeVector %float 3
|
||||||
|
%S = OpTypeStruct %v3float
|
||||||
|
%_ptr_Private_S = OpTypePointer Private %S
|
||||||
|
%6 = OpConstantNull %S
|
||||||
|
%P = OpVariable %_ptr_Private_S Private %6
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%7 = OpTypeFunction %void
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Private_v3float = OpTypePointer Private %v3float
|
||||||
|
%float_1 = OpConstant %float 1
|
||||||
|
%float_2 = OpConstant %float 2
|
||||||
|
%float_3 = OpConstant %float 3
|
||||||
|
%20 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
||||||
|
%_ptr_Private_float = OpTypePointer Private %float
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%unused_entry_point = OpFunction %void None %7
|
||||||
|
%10 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %7
|
||||||
|
%12 = OpLabel
|
||||||
|
%16 = OpAccessChain %_ptr_Private_v3float %P %uint_0
|
||||||
|
OpStore %16 %20
|
||||||
|
%22 = OpAccessChain %_ptr_Private_float %P %uint_0 %uint_0
|
||||||
|
OpStore %22 %float_1
|
||||||
|
%24 = OpAccessChain %_ptr_Private_float %P %uint_0 %uint_1
|
||||||
|
OpStore %24 %float_2
|
||||||
|
%26 = OpAccessChain %_ptr_Private_float %P %uint_0 %uint_2
|
||||||
|
OpStore %26 %float_3
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,12 @@
|
||||||
|
struct S {
|
||||||
|
v : vec3<f32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
P.v = vec3<f32>(1.0, 2.0, 3.0);
|
||||||
|
P.v.x = 1.0;
|
||||||
|
P.v.y = 2.0;
|
||||||
|
P.v.z = 3.0;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
struct S {
|
||||||
|
v: vec3<i32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
P.v = vec3<i32>(1, 2, 3);
|
||||||
|
|
||||||
|
P.v.x = 1;
|
||||||
|
P.v.y = 2;
|
||||||
|
P.v.z = 3;
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
int3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
static S P = (S)0;
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
P.v = int3(1, 2, 3);
|
||||||
|
P.v.x = 1;
|
||||||
|
P.v.y = 2;
|
||||||
|
P.v.z = 3;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
int3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(thread S* const tint_symbol) {
|
||||||
|
(*(tint_symbol)).v = int3(1, 2, 3);
|
||||||
|
(*(tint_symbol)).v[0] = 1;
|
||||||
|
(*(tint_symbol)).v[1] = 2;
|
||||||
|
(*(tint_symbol)).v[2] = 3;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 27
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %P "P"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
%int = OpTypeInt 32 1
|
||||||
|
%v3int = OpTypeVector %int 3
|
||||||
|
%S = OpTypeStruct %v3int
|
||||||
|
%_ptr_Private_S = OpTypePointer Private %S
|
||||||
|
%6 = OpConstantNull %S
|
||||||
|
%P = OpVariable %_ptr_Private_S Private %6
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%7 = OpTypeFunction %void
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Private_v3int = OpTypePointer Private %v3int
|
||||||
|
%int_1 = OpConstant %int 1
|
||||||
|
%int_2 = OpConstant %int 2
|
||||||
|
%int_3 = OpConstant %int 3
|
||||||
|
%20 = OpConstantComposite %v3int %int_1 %int_2 %int_3
|
||||||
|
%_ptr_Private_int = OpTypePointer Private %int
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%unused_entry_point = OpFunction %void None %7
|
||||||
|
%10 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %7
|
||||||
|
%12 = OpLabel
|
||||||
|
%16 = OpAccessChain %_ptr_Private_v3int %P %uint_0
|
||||||
|
OpStore %16 %20
|
||||||
|
%22 = OpAccessChain %_ptr_Private_int %P %uint_0 %uint_0
|
||||||
|
OpStore %22 %int_1
|
||||||
|
%24 = OpAccessChain %_ptr_Private_int %P %uint_0 %uint_1
|
||||||
|
OpStore %24 %int_2
|
||||||
|
%26 = OpAccessChain %_ptr_Private_int %P %uint_0 %uint_2
|
||||||
|
OpStore %26 %int_3
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,12 @@
|
||||||
|
struct S {
|
||||||
|
v : vec3<i32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
P.v = vec3<i32>(1, 2, 3);
|
||||||
|
P.v.x = 1;
|
||||||
|
P.v.y = 2;
|
||||||
|
P.v.z = 3;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
struct S {
|
||||||
|
v: vec3<u32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
P.v = vec3<u32>(1u, 2u, 3u);
|
||||||
|
|
||||||
|
P.v.x = 1u;
|
||||||
|
P.v.y = 2u;
|
||||||
|
P.v.z = 3u;
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void unused_entry_point() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
uint3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
static S P = (S)0;
|
||||||
|
|
||||||
|
void f() {
|
||||||
|
P.v = uint3(1u, 2u, 3u);
|
||||||
|
P.v.x = 1u;
|
||||||
|
P.v.y = 2u;
|
||||||
|
P.v.z = 3u;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
struct S {
|
||||||
|
uint3 v;
|
||||||
|
};
|
||||||
|
|
||||||
|
void f(thread S* const tint_symbol) {
|
||||||
|
(*(tint_symbol)).v = uint3(1u, 2u, 3u);
|
||||||
|
(*(tint_symbol)).v[0] = 1u;
|
||||||
|
(*(tint_symbol)).v[1] = 2u;
|
||||||
|
(*(tint_symbol)).v[2] = 3u;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 24
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
||||||
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
|
OpName %S "S"
|
||||||
|
OpMemberName %S 0 "v"
|
||||||
|
OpName %P "P"
|
||||||
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
|
OpName %f "f"
|
||||||
|
OpMemberDecorate %S 0 Offset 0
|
||||||
|
%uint = OpTypeInt 32 0
|
||||||
|
%v3uint = OpTypeVector %uint 3
|
||||||
|
%S = OpTypeStruct %v3uint
|
||||||
|
%_ptr_Private_S = OpTypePointer Private %S
|
||||||
|
%6 = OpConstantNull %S
|
||||||
|
%P = OpVariable %_ptr_Private_S Private %6
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%7 = OpTypeFunction %void
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
|
||||||
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%uint_3 = OpConstant %uint 3
|
||||||
|
%19 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
|
||||||
|
%_ptr_Private_uint = OpTypePointer Private %uint
|
||||||
|
%unused_entry_point = OpFunction %void None %7
|
||||||
|
%10 = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
%f = OpFunction %void None %7
|
||||||
|
%12 = OpLabel
|
||||||
|
%15 = OpAccessChain %_ptr_Private_v3uint %P %uint_0
|
||||||
|
OpStore %15 %19
|
||||||
|
%21 = OpAccessChain %_ptr_Private_uint %P %uint_0 %uint_0
|
||||||
|
OpStore %21 %uint_1
|
||||||
|
%22 = OpAccessChain %_ptr_Private_uint %P %uint_0 %uint_1
|
||||||
|
OpStore %22 %uint_2
|
||||||
|
%23 = OpAccessChain %_ptr_Private_uint %P %uint_0 %uint_2
|
||||||
|
OpStore %23 %uint_3
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
|
@ -0,0 +1,12 @@
|
||||||
|
struct S {
|
||||||
|
v : vec3<u32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
var<private> P : S;
|
||||||
|
|
||||||
|
fn f() {
|
||||||
|
P.v = vec3<u32>(1u, 2u, 3u);
|
||||||
|
P.v.x = 1u;
|
||||||
|
P.v.y = 2u;
|
||||||
|
P.v.z = 3u;
|
||||||
|
}
|
|
@ -11,7 +11,7 @@ struct tint_symbol_3 {
|
||||||
void textureLoad_6273b1(depth2d_ms<float, access::read> tint_symbol_5) {
|
void textureLoad_6273b1(depth2d_ms<float, access::read> tint_symbol_5) {
|
||||||
float res = 0.0f;
|
float res = 0.0f;
|
||||||
float4 const x_17 = float4(tint_symbol_5.read(uint2(int2(0, 0)), 1), 0.0f, 0.0f, 0.0f);
|
float4 const x_17 = float4(tint_symbol_5.read(uint2(int2(0, 0)), 1), 0.0f, 0.0f, 0.0f);
|
||||||
res = x_17.x;
|
res = x_17[0];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,4 +18,3 @@ void f() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
C:\src\tint\test\Shader@0x0000022998AE1EF0(7,11-19): error X3708: continue cannot be used in a switch
|
C:\src\tint\test\Shader@0x0000022998AE1EF0(7,11-19): error X3708: continue cannot be used in a switch
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ using namespace metal;
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float3 v = float3(0.0f, 0.0f, 0.0f);
|
float3 v = float3(0.0f, 0.0f, 0.0f);
|
||||||
v = float3(1.0f, 2.0f, 3.0f);
|
v = float3(1.0f, 2.0f, 3.0f);
|
||||||
v.y = 5.0f;
|
v[1] = 5.0f;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
kernel void tint_symbol() {
|
kernel void tint_symbol() {
|
||||||
float3 v = float3(1.0f, 2.0f, 3.0f);
|
float3 v = float3(1.0f, 2.0f, 3.0f);
|
||||||
v.y = 5.0f;
|
v[1] = 5.0f;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,8 @@ struct Particles {
|
||||||
};
|
};
|
||||||
|
|
||||||
float4 vert_main_inner(float2 a_particlePos, float2 a_particleVel, float2 a_pos) {
|
float4 vert_main_inner(float2 a_particlePos, float2 a_particleVel, float2 a_pos) {
|
||||||
float angle = -(atan2(a_particleVel.x, a_particleVel.y));
|
float angle = -(atan2(a_particleVel[0], a_particleVel[1]));
|
||||||
float2 pos = float2(((a_pos.x * cos(angle)) - (a_pos.y * sin(angle))), ((a_pos.x * sin(angle)) + (a_pos.y * cos(angle))));
|
float2 pos = float2(((a_pos[0] * cos(angle)) - (a_pos[1] * sin(angle))), ((a_pos[0] * sin(angle)) + (a_pos[1] * cos(angle))));
|
||||||
return float4((pos + a_particlePos), 0.0f, 1.0f);
|
return float4((pos + a_particlePos), 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ fragment tint_symbol_3 frag_main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void comp_main_inner(constant SimParams& params, device Particles& particlesA, device Particles& particlesB, uint3 gl_GlobalInvocationID) {
|
void comp_main_inner(constant SimParams& params, device Particles& particlesA, device Particles& particlesB, uint3 gl_GlobalInvocationID) {
|
||||||
uint index = gl_GlobalInvocationID.x;
|
uint index = gl_GlobalInvocationID[0];
|
||||||
if ((index >= 5u)) {
|
if ((index >= 5u)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -74,8 +74,8 @@ void comp_main_inner(constant SimParams& params, device Particles& particlesA, d
|
||||||
if ((i == index)) {
|
if ((i == index)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
pos = particlesA.particles.arr[i].pos.xy;
|
pos = float2(particlesA.particles.arr[i].pos).xy;
|
||||||
vel = particlesA.particles.arr[i].vel.xy;
|
vel = float2(particlesA.particles.arr[i].vel).xy;
|
||||||
if ((distance(pos, vPos) < params.rule1Distance)) {
|
if ((distance(pos, vPos) < params.rule1Distance)) {
|
||||||
cMass = (cMass + pos);
|
cMass = (cMass + pos);
|
||||||
cMassCount = as_type<int>((as_type<uint>(cMassCount) + as_type<uint>(1)));
|
cMassCount = as_type<int>((as_type<uint>(cMassCount) + as_type<uint>(1)));
|
||||||
|
@ -97,17 +97,17 @@ void comp_main_inner(constant SimParams& params, device Particles& particlesA, d
|
||||||
vVel = (((vVel + (cMass * params.rule1Scale)) + (colVel * params.rule2Scale)) + (cVel * params.rule3Scale));
|
vVel = (((vVel + (cMass * params.rule1Scale)) + (colVel * params.rule2Scale)) + (cVel * params.rule3Scale));
|
||||||
vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.100000001f));
|
vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.100000001f));
|
||||||
vPos = (vPos + (vVel * params.deltaT));
|
vPos = (vPos + (vVel * params.deltaT));
|
||||||
if ((vPos.x < -1.0f)) {
|
if ((vPos[0] < -1.0f)) {
|
||||||
vPos.x = 1.0f;
|
vPos[0] = 1.0f;
|
||||||
}
|
}
|
||||||
if ((vPos.x > 1.0f)) {
|
if ((vPos[0] > 1.0f)) {
|
||||||
vPos.x = -1.0f;
|
vPos[0] = -1.0f;
|
||||||
}
|
}
|
||||||
if ((vPos.y < -1.0f)) {
|
if ((vPos[1] < -1.0f)) {
|
||||||
vPos.y = 1.0f;
|
vPos[1] = 1.0f;
|
||||||
}
|
}
|
||||||
if ((vPos.y > 1.0f)) {
|
if ((vPos[1] > 1.0f)) {
|
||||||
vPos.y = -1.0f;
|
vPos[1] = -1.0f;
|
||||||
}
|
}
|
||||||
particlesB.particles.arr[index].pos = vPos;
|
particlesB.particles.arr[index].pos = vPos;
|
||||||
particlesB.particles.arr[index].vel = vVel;
|
particlesB.particles.arr[index].vel = vVel;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue