[hlsl] Update DecomposeStorageAccess to conditionalize Convert creation.
When generating the decomposed indices we only need to create a
`Convert` instruction if the types don't match.
Bug: 379684039
Change-Id: Iac61a657c55239387b37528327bb76a2d3690a87
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/215634
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/lang/hlsl/writer/access_test.cc b/src/tint/lang/hlsl/writer/access_test.cc
index 147d96e..1c38b5b 100644
--- a/src/tint/lang/hlsl/writer/access_test.cc
+++ b/src/tint/lang/hlsl/writer/access_test.cc
@@ -718,9 +718,8 @@
uint v_2 = 0u;
sb.GetDimensions(v_2);
uint v_3 = (((v_2 - 16u) / 128u) - 1u);
- uint v_4 = (uint(min(uint(i), v_3)) * 128u);
- uint v_5 = (uint(min(v, 2u)) * 32u);
- float x = asfloat(sb.Load((((48u + v_4) + v_5) + (uint(min(uint(v_1), 2u)) * 4u))));
+ uint v_4 = (min(uint(i), v_3) * 128u);
+ float x = asfloat(sb.Load((((48u + v_4) + (min(v, 2u) * 32u)) + (min(uint(v_1), 2u) * 4u))));
}
)");
@@ -763,9 +762,7 @@
uint j = 1u;
uint v = 0u;
sb.GetDimensions(v);
- uint v_1 = min(j, 2u);
- uint v_2 = (uint(min(4u, (((v - 16u) / 128u) - 1u))) * 128u);
- float x = asfloat(sb.Load(((56u + v_2) + (uint(v_1) * 32u))));
+ float x = asfloat(sb.Load(((56u + (min(4u, (((v - 16u) / 128u) - 1u)) * 128u)) + (min(j, 2u) * 32u))));
}
)");
diff --git a/src/tint/lang/hlsl/writer/arraylength_test.cc b/src/tint/lang/hlsl/writer/arraylength_test.cc
index ed6031f..1f4c7c4 100644
--- a/src/tint/lang/hlsl/writer/arraylength_test.cc
+++ b/src/tint/lang/hlsl/writer/arraylength_test.cc
@@ -247,7 +247,7 @@
void foo() {
uint v = 0u;
dst.GetDimensions(v);
- dst.Store((0u + (uint(min(0u, ((v / 4u) - 1u))) * 4u)), 123u);
+ dst.Store((0u + (min(0u, ((v / 4u) - 1u)) * 4u)), 123u);
}
)");
@@ -275,7 +275,7 @@
uint4 tint_storage_buffer_sizes[1];
};
void foo() {
- dst.Store((0u + (uint(min(0u, ((tint_storage_buffer_sizes[0u].x / 4u) - 1u))) * 4u)), 123u);
+ dst.Store((0u + (min(0u, ((tint_storage_buffer_sizes[0u].x / 4u) - 1u)) * 4u)), 123u);
}
)");
diff --git a/src/tint/lang/hlsl/writer/raise/decompose_storage_access.cc b/src/tint/lang/hlsl/writer/raise/decompose_storage_access.cc
index e744c22..f5e60f9 100644
--- a/src/tint/lang/hlsl/writer/raise/decompose_storage_access.cc
+++ b/src/tint/lang/hlsl/writer/raise/decompose_storage_access.cc
@@ -359,8 +359,11 @@
offset->byte_offset += idx_value->Value()->ValueAs<uint32_t>() * elm_size;
},
[&](core::ir::Value* val) {
- offset->expr.Push(
- b.Multiply(ty.u32(), b.Convert(ty.u32(), val), u32(elm_size))->Result(0));
+ auto* idx = val;
+ if (val->Type() != ty.u32()) {
+ idx = b.Convert(ty.u32(), val)->Result(0);
+ }
+ offset->expr.Push(b.Multiply(ty.u32(), idx, u32(elm_size))->Result(0));
},
TINT_ICE_ON_NO_MATCH);
}
diff --git a/src/tint/lang/hlsl/writer/raise/decompose_storage_access_test.cc b/src/tint/lang/hlsl/writer/raise/decompose_storage_access_test.cc
index 8c4476d..1d2db45 100644
--- a/src/tint/lang/hlsl/writer/raise/decompose_storage_access_test.cc
+++ b/src/tint/lang/hlsl/writer/raise/decompose_storage_access_test.cc
@@ -1183,16 +1183,15 @@
%8:i32 = load %k
%9:u32 = convert %4
%10:u32 = mul %9, 128u
- %11:u32 = convert %6
- %12:u32 = mul %11, 32u
- %13:u32 = convert %8
- %14:u32 = mul %13, 4u
- %15:u32 = add 48u, %10
- %16:u32 = add %15, %12
- %17:u32 = add %16, %14
- %18:u32 = %sb.Load %17
- %19:f32 = bitcast %18
- %x:f32 = let %19
+ %11:u32 = mul %6, 32u
+ %12:u32 = convert %8
+ %13:u32 = mul %12, 4u
+ %14:u32 = add 48u, %10
+ %15:u32 = add %14, %11
+ %16:u32 = add %15, %13
+ %17:u32 = %sb.Load %16
+ %18:f32 = bitcast %17
+ %x:f32 = let %18
ret
}
}
@@ -1294,12 +1293,11 @@
$B2: {
%j:ptr<function, u32, read_write> = var, 1u
%4:u32 = load %j
- %5:u32 = convert %4
- %6:u32 = mul %5, 32u
- %7:u32 = add 568u, %6
- %8:u32 = %sb.Load %7
- %9:f32 = bitcast %8
- %x:f32 = let %9
+ %5:u32 = mul %4, 32u
+ %6:u32 = add 568u, %5
+ %7:u32 = %sb.Load %6
+ %8:f32 = bitcast %7
+ %x:f32 = let %8
ret
}
}
@@ -1436,15 +1434,13 @@
%foo = @fragment func(%3:u32):void {
$B2: {
- %4:u32 = convert %3
- %5:u32 = mul %4, 32u
- %6:u32 = convert %3
- %7:u32 = mul %6, 4u
- %8:ptr<function, i32, read_write> = var, 0i
- %9:u32 = add 16u, %5
- %10:u32 = add %9, %7
- %11:i32 = convert %10
- %12:void = %v.InterlockedExchange %11, 123i, %8
+ %4:u32 = mul %3, 32u
+ %5:u32 = mul %3, 4u
+ %6:ptr<function, i32, read_write> = var, 0i
+ %7:u32 = add 16u, %4
+ %8:u32 = add %7, %5
+ %9:i32 = convert %8
+ %10:void = %v.InterlockedExchange %9, 123i, %6
ret
}
}
@@ -1629,17 +1625,15 @@
%foo = @fragment func(%3:u32):void {
$B2: {
- %4:u32 = convert %3
- %5:u32 = mul %4, 32u
- %6:u32 = convert %3
- %7:u32 = mul %6, 4u
- %8:ptr<function, i32, read_write> = var, 0i
- %9:u32 = add 16u, %5
- %10:u32 = add %9, %7
- %11:i32 = convert %10
- %12:void = %v.InterlockedOr %11, 0i, %8
- %13:i32 = load %8
- %x:i32 = let %13
+ %4:u32 = mul %3, 32u
+ %5:u32 = mul %3, 4u
+ %6:ptr<function, i32, read_write> = var, 0i
+ %7:u32 = add 16u, %4
+ %8:u32 = add %7, %5
+ %9:i32 = convert %8
+ %10:void = %v.InterlockedOr %9, 0i, %6
+ %11:i32 = load %6
+ %x:i32 = let %11
ret
}
}
@@ -1828,18 +1822,16 @@
%foo = @fragment func(%3:u32):void {
$B2: {
- %4:u32 = convert %3
- %5:u32 = mul %4, 32u
- %6:u32 = convert %3
- %7:u32 = mul %6, 4u
- %8:ptr<function, i32, read_write> = var, 0i
- %9:i32 = sub 0i, 123i
- %10:u32 = add 16u, %5
- %11:u32 = add %10, %7
- %12:i32 = convert %11
- %13:void = %v.InterlockedAdd %12, %9, %8
- %14:i32 = load %8
- %x:i32 = let %14
+ %4:u32 = mul %3, 32u
+ %5:u32 = mul %3, 4u
+ %6:ptr<function, i32, read_write> = var, 0i
+ %7:i32 = sub 0i, 123i
+ %8:u32 = add 16u, %4
+ %9:u32 = add %8, %5
+ %10:i32 = convert %9
+ %11:void = %v.InterlockedAdd %10, %7, %6
+ %12:i32 = load %6
+ %x:i32 = let %12
ret
}
}
@@ -2053,19 +2045,17 @@
%foo = @fragment func(%3:u32):void {
$B2: {
- %4:u32 = convert %3
- %5:u32 = mul %4, 32u
- %6:u32 = convert %3
- %7:u32 = mul %6, 4u
- %8:ptr<function, i32, read_write> = var, 0i
- %9:u32 = add 16u, %5
- %10:u32 = add %9, %7
- %11:i32 = convert %10
- %12:void = %v.InterlockedCompareExchange %11, 123i, 345i, %8
- %13:i32 = load %8
- %14:bool = eq %13, 123i
- %15:__atomic_compare_exchange_result_i32 = construct %13, %14
- %x:__atomic_compare_exchange_result_i32 = let %15
+ %4:u32 = mul %3, 32u
+ %5:u32 = mul %3, 4u
+ %6:ptr<function, i32, read_write> = var, 0i
+ %7:u32 = add 16u, %4
+ %8:u32 = add %7, %5
+ %9:i32 = convert %8
+ %10:void = %v.InterlockedCompareExchange %9, 123i, 345i, %6
+ %11:i32 = load %6
+ %12:bool = eq %11, 123i
+ %13:__atomic_compare_exchange_result_i32 = construct %11, %12
+ %x:__atomic_compare_exchange_result_i32 = let %13
ret
}
}
@@ -2331,18 +2321,16 @@
%foo = @fragment func(%3:u32):void {
$B2: {
- %4:u32 = convert %3
- %5:u32 = mul %4, 12u
- %6:u32 = convert %3
- %7:u32 = mul %6, 4u
- %8:ptr<function, u32, read_write> = var, 0u
- %9:u32 = add 0u, %5
- %10:u32 = add %9, %7
- %11:u32 = convert %10
- %12:void = %v.)" +
- std::string(param.interlock) + R"( %11, 123u, %8
- %13:u32 = load %8
- %x:u32 = let %13
+ %4:u32 = mul %3, 12u
+ %5:u32 = mul %3, 4u
+ %6:ptr<function, u32, read_write> = var, 0u
+ %7:u32 = add 0u, %4
+ %8:u32 = add %7, %5
+ %9:u32 = convert %8
+ %10:void = %v.)" +
+ std::string(param.interlock) + R"( %9, 123u, %6
+ %11:u32 = load %6
+ %x:u32 = let %11
ret
}
}
diff --git a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
index 27ec962..233aa7c 100644
--- a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
@@ -68,28 +68,28 @@
}
void main_inner(uint idx) {
- float scalar_f32 = asfloat(sb.Load((0u + (uint(idx) * 544u))));
- int scalar_i32 = asint(sb.Load((4u + (uint(idx) * 544u))));
- uint scalar_u32 = sb.Load((8u + (uint(idx) * 544u)));
- float2 vec2_f32 = asfloat(sb.Load2((16u + (uint(idx) * 544u))));
- int2 vec2_i32 = asint(sb.Load2((24u + (uint(idx) * 544u))));
- uint2 vec2_u32 = sb.Load2((32u + (uint(idx) * 544u)));
- float3 vec3_f32 = asfloat(sb.Load3((48u + (uint(idx) * 544u))));
- int3 vec3_i32 = asint(sb.Load3((64u + (uint(idx) * 544u))));
- uint3 vec3_u32 = sb.Load3((80u + (uint(idx) * 544u)));
- float4 vec4_f32 = asfloat(sb.Load4((96u + (uint(idx) * 544u))));
- int4 vec4_i32 = asint(sb.Load4((112u + (uint(idx) * 544u))));
- uint4 vec4_u32 = sb.Load4((128u + (uint(idx) * 544u)));
- float2x2 mat2x2_f32 = v_12((144u + (uint(idx) * 544u)));
- float2x3 mat2x3_f32 = v_11((160u + (uint(idx) * 544u)));
- float2x4 mat2x4_f32 = v_10((192u + (uint(idx) * 544u)));
- float3x2 mat3x2_f32 = v_9((224u + (uint(idx) * 544u)));
- float3x3 mat3x3_f32 = v_8((256u + (uint(idx) * 544u)));
- float3x4 mat3x4_f32 = v_7((304u + (uint(idx) * 544u)));
- float4x2 mat4x2_f32 = v_6((352u + (uint(idx) * 544u)));
- float4x3 mat4x3_f32 = v_5((384u + (uint(idx) * 544u)));
- float4x4 mat4x4_f32 = v_4((448u + (uint(idx) * 544u)));
- float3 arr2_vec3_f32[2] = v((512u + (uint(idx) * 544u)));
+ float scalar_f32 = asfloat(sb.Load((0u + (idx * 544u))));
+ int scalar_i32 = asint(sb.Load((4u + (idx * 544u))));
+ uint scalar_u32 = sb.Load((8u + (idx * 544u)));
+ float2 vec2_f32 = asfloat(sb.Load2((16u + (idx * 544u))));
+ int2 vec2_i32 = asint(sb.Load2((24u + (idx * 544u))));
+ uint2 vec2_u32 = sb.Load2((32u + (idx * 544u)));
+ float3 vec3_f32 = asfloat(sb.Load3((48u + (idx * 544u))));
+ int3 vec3_i32 = asint(sb.Load3((64u + (idx * 544u))));
+ uint3 vec3_u32 = sb.Load3((80u + (idx * 544u)));
+ float4 vec4_f32 = asfloat(sb.Load4((96u + (idx * 544u))));
+ int4 vec4_i32 = asint(sb.Load4((112u + (idx * 544u))));
+ uint4 vec4_u32 = sb.Load4((128u + (idx * 544u)));
+ float2x2 mat2x2_f32 = v_12((144u + (idx * 544u)));
+ float2x3 mat2x3_f32 = v_11((160u + (idx * 544u)));
+ float2x4 mat2x4_f32 = v_10((192u + (idx * 544u)));
+ float3x2 mat3x2_f32 = v_9((224u + (idx * 544u)));
+ float3x3 mat3x3_f32 = v_8((256u + (idx * 544u)));
+ float3x4 mat3x4_f32 = v_7((304u + (idx * 544u)));
+ float4x2 mat4x2_f32 = v_6((352u + (idx * 544u)));
+ float4x3 mat4x3_f32 = v_5((384u + (idx * 544u)));
+ float4x4 mat4x4_f32 = v_4((448u + (idx * 544u)));
+ float3 arr2_vec3_f32[2] = v((512u + (idx * 544u)));
int v_13 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
int v_14 = (v_13 + int(scalar_u32));
int v_15 = ((v_14 + tint_f32_to_i32(vec2_f32.x)) + vec2_i32.x);
diff --git a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
index 27ec962..233aa7c 100644
--- a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
@@ -68,28 +68,28 @@
}
void main_inner(uint idx) {
- float scalar_f32 = asfloat(sb.Load((0u + (uint(idx) * 544u))));
- int scalar_i32 = asint(sb.Load((4u + (uint(idx) * 544u))));
- uint scalar_u32 = sb.Load((8u + (uint(idx) * 544u)));
- float2 vec2_f32 = asfloat(sb.Load2((16u + (uint(idx) * 544u))));
- int2 vec2_i32 = asint(sb.Load2((24u + (uint(idx) * 544u))));
- uint2 vec2_u32 = sb.Load2((32u + (uint(idx) * 544u)));
- float3 vec3_f32 = asfloat(sb.Load3((48u + (uint(idx) * 544u))));
- int3 vec3_i32 = asint(sb.Load3((64u + (uint(idx) * 544u))));
- uint3 vec3_u32 = sb.Load3((80u + (uint(idx) * 544u)));
- float4 vec4_f32 = asfloat(sb.Load4((96u + (uint(idx) * 544u))));
- int4 vec4_i32 = asint(sb.Load4((112u + (uint(idx) * 544u))));
- uint4 vec4_u32 = sb.Load4((128u + (uint(idx) * 544u)));
- float2x2 mat2x2_f32 = v_12((144u + (uint(idx) * 544u)));
- float2x3 mat2x3_f32 = v_11((160u + (uint(idx) * 544u)));
- float2x4 mat2x4_f32 = v_10((192u + (uint(idx) * 544u)));
- float3x2 mat3x2_f32 = v_9((224u + (uint(idx) * 544u)));
- float3x3 mat3x3_f32 = v_8((256u + (uint(idx) * 544u)));
- float3x4 mat3x4_f32 = v_7((304u + (uint(idx) * 544u)));
- float4x2 mat4x2_f32 = v_6((352u + (uint(idx) * 544u)));
- float4x3 mat4x3_f32 = v_5((384u + (uint(idx) * 544u)));
- float4x4 mat4x4_f32 = v_4((448u + (uint(idx) * 544u)));
- float3 arr2_vec3_f32[2] = v((512u + (uint(idx) * 544u)));
+ float scalar_f32 = asfloat(sb.Load((0u + (idx * 544u))));
+ int scalar_i32 = asint(sb.Load((4u + (idx * 544u))));
+ uint scalar_u32 = sb.Load((8u + (idx * 544u)));
+ float2 vec2_f32 = asfloat(sb.Load2((16u + (idx * 544u))));
+ int2 vec2_i32 = asint(sb.Load2((24u + (idx * 544u))));
+ uint2 vec2_u32 = sb.Load2((32u + (idx * 544u)));
+ float3 vec3_f32 = asfloat(sb.Load3((48u + (idx * 544u))));
+ int3 vec3_i32 = asint(sb.Load3((64u + (idx * 544u))));
+ uint3 vec3_u32 = sb.Load3((80u + (idx * 544u)));
+ float4 vec4_f32 = asfloat(sb.Load4((96u + (idx * 544u))));
+ int4 vec4_i32 = asint(sb.Load4((112u + (idx * 544u))));
+ uint4 vec4_u32 = sb.Load4((128u + (idx * 544u)));
+ float2x2 mat2x2_f32 = v_12((144u + (idx * 544u)));
+ float2x3 mat2x3_f32 = v_11((160u + (idx * 544u)));
+ float2x4 mat2x4_f32 = v_10((192u + (idx * 544u)));
+ float3x2 mat3x2_f32 = v_9((224u + (idx * 544u)));
+ float3x3 mat3x3_f32 = v_8((256u + (idx * 544u)));
+ float3x4 mat3x4_f32 = v_7((304u + (idx * 544u)));
+ float4x2 mat4x2_f32 = v_6((352u + (idx * 544u)));
+ float4x3 mat4x3_f32 = v_5((384u + (idx * 544u)));
+ float4x4 mat4x4_f32 = v_4((448u + (idx * 544u)));
+ float3 arr2_vec3_f32[2] = v((512u + (idx * 544u)));
int v_13 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
int v_14 = (v_13 + int(scalar_u32));
int v_15 = ((v_14 + tint_f32_to_i32(vec2_f32.x)) + vec2_i32.x);
diff --git a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
index 16ce66f..fe5f9bd 100644
--- a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
@@ -130,42 +130,42 @@
}
void main_inner(uint idx) {
- float scalar_f32 = asfloat(sb.Load((0u + (uint(idx) * 800u))));
- int scalar_i32 = asint(sb.Load((4u + (uint(idx) * 800u))));
- uint scalar_u32 = sb.Load((8u + (uint(idx) * 800u)));
- float16_t scalar_f16 = sb.Load<float16_t>((12u + (uint(idx) * 800u)));
- float2 vec2_f32 = asfloat(sb.Load2((16u + (uint(idx) * 800u))));
- int2 vec2_i32 = asint(sb.Load2((24u + (uint(idx) * 800u))));
- uint2 vec2_u32 = sb.Load2((32u + (uint(idx) * 800u)));
- vector<float16_t, 2> vec2_f16 = sb.Load<vector<float16_t, 2> >((40u + (uint(idx) * 800u)));
- float3 vec3_f32 = asfloat(sb.Load3((48u + (uint(idx) * 800u))));
- int3 vec3_i32 = asint(sb.Load3((64u + (uint(idx) * 800u))));
- uint3 vec3_u32 = sb.Load3((80u + (uint(idx) * 800u)));
- vector<float16_t, 3> vec3_f16 = sb.Load<vector<float16_t, 3> >((96u + (uint(idx) * 800u)));
- float4 vec4_f32 = asfloat(sb.Load4((112u + (uint(idx) * 800u))));
- int4 vec4_i32 = asint(sb.Load4((128u + (uint(idx) * 800u))));
- uint4 vec4_u32 = sb.Load4((144u + (uint(idx) * 800u)));
- vector<float16_t, 4> vec4_f16 = sb.Load<vector<float16_t, 4> >((160u + (uint(idx) * 800u)));
- float2x2 mat2x2_f32 = v_25((168u + (uint(idx) * 800u)));
- float2x3 mat2x3_f32 = v_24((192u + (uint(idx) * 800u)));
- float2x4 mat2x4_f32 = v_23((224u + (uint(idx) * 800u)));
- float3x2 mat3x2_f32 = v_22((256u + (uint(idx) * 800u)));
- float3x3 mat3x3_f32 = v_21((288u + (uint(idx) * 800u)));
- float3x4 mat3x4_f32 = v_20((336u + (uint(idx) * 800u)));
- float4x2 mat4x2_f32 = v_19((384u + (uint(idx) * 800u)));
- float4x3 mat4x3_f32 = v_18((416u + (uint(idx) * 800u)));
- float4x4 mat4x4_f32 = v_17((480u + (uint(idx) * 800u)));
- matrix<float16_t, 2, 2> mat2x2_f16 = v_16((544u + (uint(idx) * 800u)));
- matrix<float16_t, 2, 3> mat2x3_f16 = v_15((552u + (uint(idx) * 800u)));
- matrix<float16_t, 2, 4> mat2x4_f16 = v_14((568u + (uint(idx) * 800u)));
- matrix<float16_t, 3, 2> mat3x2_f16 = v_13((584u + (uint(idx) * 800u)));
- matrix<float16_t, 3, 3> mat3x3_f16 = v_12((600u + (uint(idx) * 800u)));
- matrix<float16_t, 3, 4> mat3x4_f16 = v_11((624u + (uint(idx) * 800u)));
- matrix<float16_t, 4, 2> mat4x2_f16 = v((648u + (uint(idx) * 800u)));
- matrix<float16_t, 4, 3> mat4x3_f16 = v_10((664u + (uint(idx) * 800u)));
- matrix<float16_t, 4, 4> mat4x4_f16 = v_9((696u + (uint(idx) * 800u)));
- float3 arr2_vec3_f32[2] = v_5((736u + (uint(idx) * 800u)));
- matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_1((768u + (uint(idx) * 800u)));
+ float scalar_f32 = asfloat(sb.Load((0u + (idx * 800u))));
+ int scalar_i32 = asint(sb.Load((4u + (idx * 800u))));
+ uint scalar_u32 = sb.Load((8u + (idx * 800u)));
+ float16_t scalar_f16 = sb.Load<float16_t>((12u + (idx * 800u)));
+ float2 vec2_f32 = asfloat(sb.Load2((16u + (idx * 800u))));
+ int2 vec2_i32 = asint(sb.Load2((24u + (idx * 800u))));
+ uint2 vec2_u32 = sb.Load2((32u + (idx * 800u)));
+ vector<float16_t, 2> vec2_f16 = sb.Load<vector<float16_t, 2> >((40u + (idx * 800u)));
+ float3 vec3_f32 = asfloat(sb.Load3((48u + (idx * 800u))));
+ int3 vec3_i32 = asint(sb.Load3((64u + (idx * 800u))));
+ uint3 vec3_u32 = sb.Load3((80u + (idx * 800u)));
+ vector<float16_t, 3> vec3_f16 = sb.Load<vector<float16_t, 3> >((96u + (idx * 800u)));
+ float4 vec4_f32 = asfloat(sb.Load4((112u + (idx * 800u))));
+ int4 vec4_i32 = asint(sb.Load4((128u + (idx * 800u))));
+ uint4 vec4_u32 = sb.Load4((144u + (idx * 800u)));
+ vector<float16_t, 4> vec4_f16 = sb.Load<vector<float16_t, 4> >((160u + (idx * 800u)));
+ float2x2 mat2x2_f32 = v_25((168u + (idx * 800u)));
+ float2x3 mat2x3_f32 = v_24((192u + (idx * 800u)));
+ float2x4 mat2x4_f32 = v_23((224u + (idx * 800u)));
+ float3x2 mat3x2_f32 = v_22((256u + (idx * 800u)));
+ float3x3 mat3x3_f32 = v_21((288u + (idx * 800u)));
+ float3x4 mat3x4_f32 = v_20((336u + (idx * 800u)));
+ float4x2 mat4x2_f32 = v_19((384u + (idx * 800u)));
+ float4x3 mat4x3_f32 = v_18((416u + (idx * 800u)));
+ float4x4 mat4x4_f32 = v_17((480u + (idx * 800u)));
+ matrix<float16_t, 2, 2> mat2x2_f16 = v_16((544u + (idx * 800u)));
+ matrix<float16_t, 2, 3> mat2x3_f16 = v_15((552u + (idx * 800u)));
+ matrix<float16_t, 2, 4> mat2x4_f16 = v_14((568u + (idx * 800u)));
+ matrix<float16_t, 3, 2> mat3x2_f16 = v_13((584u + (idx * 800u)));
+ matrix<float16_t, 3, 3> mat3x3_f16 = v_12((600u + (idx * 800u)));
+ matrix<float16_t, 3, 4> mat3x4_f16 = v_11((624u + (idx * 800u)));
+ matrix<float16_t, 4, 2> mat4x2_f16 = v((648u + (idx * 800u)));
+ matrix<float16_t, 4, 3> mat4x3_f16 = v_10((664u + (idx * 800u)));
+ matrix<float16_t, 4, 4> mat4x4_f16 = v_9((696u + (idx * 800u)));
+ float3 arr2_vec3_f32[2] = v_5((736u + (idx * 800u)));
+ matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_1((768u + (idx * 800u)));
int v_26 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
int v_27 = (v_26 + int(scalar_u32));
int v_28 = (v_27 + tint_f16_to_i32(scalar_f16));
diff --git a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.dxc.hlsl
index 8781737..7b4c9e1 100644
--- a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.dxc.hlsl
@@ -77,32 +77,29 @@
}
void main_inner(uint idx) {
- sb.Store((0u + (uint(idx) * 544u)), asuint(0.0f));
- sb.Store((4u + (uint(idx) * 544u)), asuint(int(0)));
- sb.Store((8u + (uint(idx) * 544u)), 0u);
- sb.Store2((16u + (uint(idx) * 544u)), asuint((0.0f).xx));
- uint v_12 = (24u + (uint(idx) * 544u));
- sb.Store2(v_12, asuint(int2((int(0)).xx)));
- sb.Store2((32u + (uint(idx) * 544u)), (0u).xx);
- sb.Store3((48u + (uint(idx) * 544u)), asuint((0.0f).xxx));
- uint v_13 = (64u + (uint(idx) * 544u));
- sb.Store3(v_13, asuint(int3((int(0)).xxx)));
- sb.Store3((80u + (uint(idx) * 544u)), (0u).xxx);
- sb.Store4((96u + (uint(idx) * 544u)), asuint((0.0f).xxxx));
- uint v_14 = (112u + (uint(idx) * 544u));
- sb.Store4(v_14, asuint(int4((int(0)).xxxx)));
- sb.Store4((128u + (uint(idx) * 544u)), (0u).xxxx);
- v_11((144u + (uint(idx) * 544u)), float2x2((0.0f).xx, (0.0f).xx));
- v_10((160u + (uint(idx) * 544u)), float2x3((0.0f).xxx, (0.0f).xxx));
- v_9((192u + (uint(idx) * 544u)), float2x4((0.0f).xxxx, (0.0f).xxxx));
- v_8((224u + (uint(idx) * 544u)), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
- v_7((256u + (uint(idx) * 544u)), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
- v_6((304u + (uint(idx) * 544u)), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
- v_5((352u + (uint(idx) * 544u)), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
- v_4((384u + (uint(idx) * 544u)), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
- v_3((448u + (uint(idx) * 544u)), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
- float3 v_15[2] = (float3[2])0;
- v((512u + (uint(idx) * 544u)), v_15);
+ sb.Store((0u + (idx * 544u)), asuint(0.0f));
+ sb.Store((4u + (idx * 544u)), asuint(int(0)));
+ sb.Store((8u + (idx * 544u)), 0u);
+ sb.Store2((16u + (idx * 544u)), asuint((0.0f).xx));
+ sb.Store2((24u + (idx * 544u)), asuint(int2((int(0)).xx)));
+ sb.Store2((32u + (idx * 544u)), (0u).xx);
+ sb.Store3((48u + (idx * 544u)), asuint((0.0f).xxx));
+ sb.Store3((64u + (idx * 544u)), asuint(int3((int(0)).xxx)));
+ sb.Store3((80u + (idx * 544u)), (0u).xxx);
+ sb.Store4((96u + (idx * 544u)), asuint((0.0f).xxxx));
+ sb.Store4((112u + (idx * 544u)), asuint(int4((int(0)).xxxx)));
+ sb.Store4((128u + (idx * 544u)), (0u).xxxx);
+ v_11((144u + (idx * 544u)), float2x2((0.0f).xx, (0.0f).xx));
+ v_10((160u + (idx * 544u)), float2x3((0.0f).xxx, (0.0f).xxx));
+ v_9((192u + (idx * 544u)), float2x4((0.0f).xxxx, (0.0f).xxxx));
+ v_8((224u + (idx * 544u)), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+ v_7((256u + (idx * 544u)), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+ v_6((304u + (idx * 544u)), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+ v_5((352u + (idx * 544u)), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+ v_4((384u + (idx * 544u)), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+ v_3((448u + (idx * 544u)), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+ float3 v_12[2] = (float3[2])0;
+ v((512u + (idx * 544u)), v_12);
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.fxc.hlsl
index 8781737..7b4c9e1 100644
--- a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.fxc.hlsl
@@ -77,32 +77,29 @@
}
void main_inner(uint idx) {
- sb.Store((0u + (uint(idx) * 544u)), asuint(0.0f));
- sb.Store((4u + (uint(idx) * 544u)), asuint(int(0)));
- sb.Store((8u + (uint(idx) * 544u)), 0u);
- sb.Store2((16u + (uint(idx) * 544u)), asuint((0.0f).xx));
- uint v_12 = (24u + (uint(idx) * 544u));
- sb.Store2(v_12, asuint(int2((int(0)).xx)));
- sb.Store2((32u + (uint(idx) * 544u)), (0u).xx);
- sb.Store3((48u + (uint(idx) * 544u)), asuint((0.0f).xxx));
- uint v_13 = (64u + (uint(idx) * 544u));
- sb.Store3(v_13, asuint(int3((int(0)).xxx)));
- sb.Store3((80u + (uint(idx) * 544u)), (0u).xxx);
- sb.Store4((96u + (uint(idx) * 544u)), asuint((0.0f).xxxx));
- uint v_14 = (112u + (uint(idx) * 544u));
- sb.Store4(v_14, asuint(int4((int(0)).xxxx)));
- sb.Store4((128u + (uint(idx) * 544u)), (0u).xxxx);
- v_11((144u + (uint(idx) * 544u)), float2x2((0.0f).xx, (0.0f).xx));
- v_10((160u + (uint(idx) * 544u)), float2x3((0.0f).xxx, (0.0f).xxx));
- v_9((192u + (uint(idx) * 544u)), float2x4((0.0f).xxxx, (0.0f).xxxx));
- v_8((224u + (uint(idx) * 544u)), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
- v_7((256u + (uint(idx) * 544u)), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
- v_6((304u + (uint(idx) * 544u)), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
- v_5((352u + (uint(idx) * 544u)), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
- v_4((384u + (uint(idx) * 544u)), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
- v_3((448u + (uint(idx) * 544u)), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
- float3 v_15[2] = (float3[2])0;
- v((512u + (uint(idx) * 544u)), v_15);
+ sb.Store((0u + (idx * 544u)), asuint(0.0f));
+ sb.Store((4u + (idx * 544u)), asuint(int(0)));
+ sb.Store((8u + (idx * 544u)), 0u);
+ sb.Store2((16u + (idx * 544u)), asuint((0.0f).xx));
+ sb.Store2((24u + (idx * 544u)), asuint(int2((int(0)).xx)));
+ sb.Store2((32u + (idx * 544u)), (0u).xx);
+ sb.Store3((48u + (idx * 544u)), asuint((0.0f).xxx));
+ sb.Store3((64u + (idx * 544u)), asuint(int3((int(0)).xxx)));
+ sb.Store3((80u + (idx * 544u)), (0u).xxx);
+ sb.Store4((96u + (idx * 544u)), asuint((0.0f).xxxx));
+ sb.Store4((112u + (idx * 544u)), asuint(int4((int(0)).xxxx)));
+ sb.Store4((128u + (idx * 544u)), (0u).xxxx);
+ v_11((144u + (idx * 544u)), float2x2((0.0f).xx, (0.0f).xx));
+ v_10((160u + (idx * 544u)), float2x3((0.0f).xxx, (0.0f).xxx));
+ v_9((192u + (idx * 544u)), float2x4((0.0f).xxxx, (0.0f).xxxx));
+ v_8((224u + (idx * 544u)), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+ v_7((256u + (idx * 544u)), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+ v_6((304u + (idx * 544u)), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+ v_5((352u + (idx * 544u)), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+ v_4((384u + (idx * 544u)), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+ v_3((448u + (idx * 544u)), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+ float3 v_12[2] = (float3[2])0;
+ v((512u + (idx * 544u)), v_12);
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.dxc.hlsl
index 1e2a82a..18469fa 100644
--- a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.dxc.hlsl
@@ -149,47 +149,44 @@
}
void main_inner(uint idx) {
- sb.Store((0u + (uint(idx) * 800u)), asuint(0.0f));
- sb.Store((4u + (uint(idx) * 800u)), asuint(int(0)));
- sb.Store((8u + (uint(idx) * 800u)), 0u);
- sb.Store<float16_t>((12u + (uint(idx) * 800u)), float16_t(0.0h));
- sb.Store2((16u + (uint(idx) * 800u)), asuint((0.0f).xx));
- uint v_24 = (24u + (uint(idx) * 800u));
- sb.Store2(v_24, asuint(int2((int(0)).xx)));
- sb.Store2((32u + (uint(idx) * 800u)), (0u).xx);
- sb.Store<vector<float16_t, 2> >((40u + (uint(idx) * 800u)), (float16_t(0.0h)).xx);
- sb.Store3((48u + (uint(idx) * 800u)), asuint((0.0f).xxx));
- uint v_25 = (64u + (uint(idx) * 800u));
- sb.Store3(v_25, asuint(int3((int(0)).xxx)));
- sb.Store3((80u + (uint(idx) * 800u)), (0u).xxx);
- sb.Store<vector<float16_t, 3> >((96u + (uint(idx) * 800u)), (float16_t(0.0h)).xxx);
- sb.Store4((112u + (uint(idx) * 800u)), asuint((0.0f).xxxx));
- uint v_26 = (128u + (uint(idx) * 800u));
- sb.Store4(v_26, asuint(int4((int(0)).xxxx)));
- sb.Store4((144u + (uint(idx) * 800u)), (0u).xxxx);
- sb.Store<vector<float16_t, 4> >((160u + (uint(idx) * 800u)), (float16_t(0.0h)).xxxx);
- v_23((168u + (uint(idx) * 800u)), float2x2((0.0f).xx, (0.0f).xx));
- v_22((192u + (uint(idx) * 800u)), float2x3((0.0f).xxx, (0.0f).xxx));
- v_21((224u + (uint(idx) * 800u)), float2x4((0.0f).xxxx, (0.0f).xxxx));
- v_20((256u + (uint(idx) * 800u)), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
- v_19((288u + (uint(idx) * 800u)), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
- v_18((336u + (uint(idx) * 800u)), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
- v_17((384u + (uint(idx) * 800u)), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
- v_16((416u + (uint(idx) * 800u)), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
- v_15((480u + (uint(idx) * 800u)), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
- v_14((544u + (uint(idx) * 800u)), matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
- v_13((552u + (uint(idx) * 800u)), matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
- v_12((568u + (uint(idx) * 800u)), matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
- v_11((584u + (uint(idx) * 800u)), matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
- v_10((600u + (uint(idx) * 800u)), matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
- v_9((624u + (uint(idx) * 800u)), matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
- v((648u + (uint(idx) * 800u)), matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
- v_8((664u + (uint(idx) * 800u)), matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
- v_7((696u + (uint(idx) * 800u)), matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
- float3 v_27[2] = (float3[2])0;
- v_4((736u + (uint(idx) * 800u)), v_27);
- matrix<float16_t, 4, 2> v_28[2] = (matrix<float16_t, 4, 2>[2])0;
- v_1((768u + (uint(idx) * 800u)), v_28);
+ sb.Store((0u + (idx * 800u)), asuint(0.0f));
+ sb.Store((4u + (idx * 800u)), asuint(int(0)));
+ sb.Store((8u + (idx * 800u)), 0u);
+ sb.Store<float16_t>((12u + (idx * 800u)), float16_t(0.0h));
+ sb.Store2((16u + (idx * 800u)), asuint((0.0f).xx));
+ sb.Store2((24u + (idx * 800u)), asuint(int2((int(0)).xx)));
+ sb.Store2((32u + (idx * 800u)), (0u).xx);
+ sb.Store<vector<float16_t, 2> >((40u + (idx * 800u)), (float16_t(0.0h)).xx);
+ sb.Store3((48u + (idx * 800u)), asuint((0.0f).xxx));
+ sb.Store3((64u + (idx * 800u)), asuint(int3((int(0)).xxx)));
+ sb.Store3((80u + (idx * 800u)), (0u).xxx);
+ sb.Store<vector<float16_t, 3> >((96u + (idx * 800u)), (float16_t(0.0h)).xxx);
+ sb.Store4((112u + (idx * 800u)), asuint((0.0f).xxxx));
+ sb.Store4((128u + (idx * 800u)), asuint(int4((int(0)).xxxx)));
+ sb.Store4((144u + (idx * 800u)), (0u).xxxx);
+ sb.Store<vector<float16_t, 4> >((160u + (idx * 800u)), (float16_t(0.0h)).xxxx);
+ v_23((168u + (idx * 800u)), float2x2((0.0f).xx, (0.0f).xx));
+ v_22((192u + (idx * 800u)), float2x3((0.0f).xxx, (0.0f).xxx));
+ v_21((224u + (idx * 800u)), float2x4((0.0f).xxxx, (0.0f).xxxx));
+ v_20((256u + (idx * 800u)), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+ v_19((288u + (idx * 800u)), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+ v_18((336u + (idx * 800u)), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+ v_17((384u + (idx * 800u)), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+ v_16((416u + (idx * 800u)), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+ v_15((480u + (idx * 800u)), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+ v_14((544u + (idx * 800u)), matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+ v_13((552u + (idx * 800u)), matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+ v_12((568u + (idx * 800u)), matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+ v_11((584u + (idx * 800u)), matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+ v_10((600u + (idx * 800u)), matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+ v_9((624u + (idx * 800u)), matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+ v((648u + (idx * 800u)), matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+ v_8((664u + (idx * 800u)), matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+ v_7((696u + (idx * 800u)), matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+ float3 v_24[2] = (float3[2])0;
+ v_4((736u + (idx * 800u)), v_24);
+ matrix<float16_t, 4, 2> v_25[2] = (matrix<float16_t, 4, 2>[2])0;
+ v_1((768u + (idx * 800u)), v_25);
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/bug/chromium/1273230.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1273230.wgsl.expected.ir.dxc.hlsl
index 6bfefb7..74902a5 100644
--- a/test/tint/bug/chromium/1273230.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1273230.wgsl.expected.ir.dxc.hlsl
@@ -52,23 +52,21 @@
}
float3 loadPosition(uint vertexIndex) {
- float v_1 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 0u)) * 4u))));
- float v_2 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 1u)) * 4u))));
- float3 position = float3(v_1, v_2, asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 2u)) * 4u)))));
+ float3 position = float3(asfloat(positions.Load((0u + (((3u * vertexIndex) + 0u) * 4u)))), asfloat(positions.Load((0u + (((3u * vertexIndex) + 1u) * 4u)))), asfloat(positions.Load((0u + (((3u * vertexIndex) + 2u) * 4u)))));
return position;
}
void doIgnore() {
uint g43 = uniforms[0u].x;
uint kj6 = dbg.Load(20u);
- uint v_3 = 0u;
- counters.InterlockedOr(uint(0u), 0u, v_3);
- uint b53 = v_3;
+ uint v_1 = 0u;
+ counters.InterlockedOr(uint(0u), 0u, v_1);
+ uint b53 = v_1;
uint rwg = indices.Load(0u);
float rb5 = asfloat(positions.Load(0u));
- int v_4 = int(0);
- LUT.InterlockedOr(int(0u), int(0), v_4);
- int g55 = v_4;
+ int v_2 = int(0);
+ LUT.InterlockedOr(int(0u), int(0), v_2);
+ int g55 = v_2;
}
void main_count_inner(uint3 GlobalInvocationID) {
@@ -77,18 +75,18 @@
return;
}
doIgnore();
- uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
- uint i1 = indices.Load((0u + (uint(((3u * i0) + 1u)) * 4u)));
- uint i2 = indices.Load((0u + (uint(((3u * i0) + 2u)) * 4u)));
+ uint i0 = indices.Load((0u + (((3u * triangleIndex) + 0u) * 4u)));
+ uint i1 = indices.Load((0u + (((3u * i0) + 1u) * 4u)));
+ uint i2 = indices.Load((0u + (((3u * i0) + 2u) * 4u)));
float3 p0 = loadPosition(i0);
float3 p1 = loadPosition(i0);
float3 p2 = loadPosition(i2);
float3 center = (((p0 + p2) + p1) / 3.0f);
float3 voxelPos = toVoxelPos(p1);
uint lIndex = toIndex1D(uniforms[0u].y, p0);
- int v_5 = int(0);
- LUT.InterlockedAdd(int((0u + (uint(i1) * 4u))), int(1), v_5);
- int triangleOffset = v_5;
+ int v_3 = int(0);
+ LUT.InterlockedAdd(int((0u + (i1 * 4u))), int(1), v_3);
+ int triangleOffset = v_3;
}
[numthreads(128, 1, 1)]
diff --git a/test/tint/bug/chromium/1273230.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1273230.wgsl.expected.ir.fxc.hlsl
index 6bfefb7..74902a5 100644
--- a/test/tint/bug/chromium/1273230.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1273230.wgsl.expected.ir.fxc.hlsl
@@ -52,23 +52,21 @@
}
float3 loadPosition(uint vertexIndex) {
- float v_1 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 0u)) * 4u))));
- float v_2 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 1u)) * 4u))));
- float3 position = float3(v_1, v_2, asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 2u)) * 4u)))));
+ float3 position = float3(asfloat(positions.Load((0u + (((3u * vertexIndex) + 0u) * 4u)))), asfloat(positions.Load((0u + (((3u * vertexIndex) + 1u) * 4u)))), asfloat(positions.Load((0u + (((3u * vertexIndex) + 2u) * 4u)))));
return position;
}
void doIgnore() {
uint g43 = uniforms[0u].x;
uint kj6 = dbg.Load(20u);
- uint v_3 = 0u;
- counters.InterlockedOr(uint(0u), 0u, v_3);
- uint b53 = v_3;
+ uint v_1 = 0u;
+ counters.InterlockedOr(uint(0u), 0u, v_1);
+ uint b53 = v_1;
uint rwg = indices.Load(0u);
float rb5 = asfloat(positions.Load(0u));
- int v_4 = int(0);
- LUT.InterlockedOr(int(0u), int(0), v_4);
- int g55 = v_4;
+ int v_2 = int(0);
+ LUT.InterlockedOr(int(0u), int(0), v_2);
+ int g55 = v_2;
}
void main_count_inner(uint3 GlobalInvocationID) {
@@ -77,18 +75,18 @@
return;
}
doIgnore();
- uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
- uint i1 = indices.Load((0u + (uint(((3u * i0) + 1u)) * 4u)));
- uint i2 = indices.Load((0u + (uint(((3u * i0) + 2u)) * 4u)));
+ uint i0 = indices.Load((0u + (((3u * triangleIndex) + 0u) * 4u)));
+ uint i1 = indices.Load((0u + (((3u * i0) + 1u) * 4u)));
+ uint i2 = indices.Load((0u + (((3u * i0) + 2u) * 4u)));
float3 p0 = loadPosition(i0);
float3 p1 = loadPosition(i0);
float3 p2 = loadPosition(i2);
float3 center = (((p0 + p2) + p1) / 3.0f);
float3 voxelPos = toVoxelPos(p1);
uint lIndex = toIndex1D(uniforms[0u].y, p0);
- int v_5 = int(0);
- LUT.InterlockedAdd(int((0u + (uint(i1) * 4u))), int(1), v_5);
- int triangleOffset = v_5;
+ int v_3 = int(0);
+ LUT.InterlockedAdd(int((0u + (i1 * 4u))), int(1), v_3);
+ int triangleOffset = v_3;
}
[numthreads(128, 1, 1)]
diff --git a/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
index e99d442..ad1d8c7 100644
--- a/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
@@ -111,41 +111,39 @@
float2 v_8 = (v_7 * float2(GlobalInvocationID.xy));
rand_seed = (v_8 * asfloat(sim_params[1u]).zw);
uint idx = GlobalInvocationID.x;
- Particle particle = v_5((0u + (uint(idx) * 48u)));
- uint v_9 = (uint(idx) * 48u);
- Particle v_10 = particle;
- v_4((0u + v_9), v_10);
+ Particle particle = v_5((0u + (idx * 48u)));
+ Particle v_9 = particle;
+ v_4((0u + (idx * 48u)), v_9);
}
void export_level_inner(uint3 coord) {
- uint2 v_11 = (0u).xx;
- tex_out.GetDimensions(v_11.x, v_11.y);
- if (all((coord.xy < uint2(v_11)))) {
+ uint2 v_10 = (0u).xx;
+ tex_out.GetDimensions(v_10.x, v_10.y);
+ if (all((coord.xy < uint2(v_10)))) {
uint dst_offset = (coord.x << ((coord.y * ubo[0u].x) & 31u));
uint src_offset = ((coord.x - 2u) + ((coord.y >> (2u & 31u)) * ubo[0u].x));
- float a = asfloat(buf_in.Load((0u + (uint((src_offset << (0u & 31u))) * 4u))));
- float b = asfloat(buf_in.Load((0u + (uint((src_offset + 1u)) * 4u))));
- float c = asfloat(buf_in.Load((0u + (uint(((src_offset + 1u) + ubo[0u].x)) * 4u))));
- float d = asfloat(buf_in.Load((0u + (uint(((src_offset + 1u) + ubo[0u].x)) * 4u))));
+ float a = asfloat(buf_in.Load((0u + ((src_offset << (0u & 31u)) * 4u))));
+ float b = asfloat(buf_in.Load((0u + ((src_offset + 1u) * 4u))));
+ float c = asfloat(buf_in.Load((0u + (((src_offset + 1u) + ubo[0u].x) * 4u))));
+ float d = asfloat(buf_in.Load((0u + (((src_offset + 1u) + ubo[0u].x) * 4u))));
float sum = dot(float4(a, b, c, d), (1.0f).xxxx);
- uint v_12 = (uint(dst_offset) * 4u);
- float v_13 = (sum / 4.0f);
- buf_out.Store((0u + v_12), asuint((sum - ((((v_13 < 0.0f)) ? (ceil(v_13)) : (floor(v_13))) * 4.0f))));
+ float v_11 = (sum / 4.0f);
+ buf_out.Store((0u + (dst_offset * 4u)), asuint((sum - ((((v_11 < 0.0f)) ? (ceil(v_11)) : (floor(v_11))) * 4.0f))));
float4 probabilities = (float4(a, (a * b), ((a / b) + c), sum) + max(sum, 0.0f));
tex_out[int2(coord.xy)] = probabilities;
}
}
vertex_main_outputs vertex_main() {
- vertex_main_outputs v_14 = {vertex_main_inner()};
- return v_14;
+ vertex_main_outputs v_12 = {vertex_main_inner()};
+ return v_12;
}
vs_main_outputs vs_main(vs_main_inputs inputs) {
- VertexInput v_15 = {inputs.VertexInput_position, inputs.VertexInput_color, inputs.VertexInput_quad_pos};
- VertexOutput v_16 = vs_main_inner(v_15);
- vs_main_outputs v_17 = {v_16.color, v_16.quad_pos, v_16.position};
- return v_17;
+ VertexInput v_13 = {inputs.VertexInput_position, inputs.VertexInput_color, inputs.VertexInput_quad_pos};
+ VertexOutput v_14 = vs_main_inner(v_13);
+ vs_main_outputs v_15 = {v_14.color, v_14.quad_pos, v_14.position};
+ return v_15;
}
[numthreads(64, 1, 1)]
diff --git a/test/tint/bug/fxc/vector_assignment_dynamic_index/storage_var.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/vector_assignment_dynamic_index/storage_var.wgsl.expected.ir.dxc.hlsl
index b301a66..ad136e3 100644
--- a/test/tint/bug/fxc/vector_assignment_dynamic_index/storage_var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_dynamic_index/storage_var.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
RWByteAddressBuffer v1 : register(u1);
[numthreads(1, 1, 1)]
void main() {
- v1.Store((0u + (uint(i[0u].x) * 4u)), asuint(1.0f));
+ v1.Store((0u + (i[0u].x * 4u)), asuint(1.0f));
}
diff --git a/test/tint/bug/fxc/vector_assignment_dynamic_index/storage_var.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/vector_assignment_dynamic_index/storage_var.wgsl.expected.ir.fxc.hlsl
index b301a66..ad136e3 100644
--- a/test/tint/bug/fxc/vector_assignment_dynamic_index/storage_var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_dynamic_index/storage_var.wgsl.expected.ir.fxc.hlsl
@@ -5,6 +5,6 @@
RWByteAddressBuffer v1 : register(u1);
[numthreads(1, 1, 1)]
void main() {
- v1.Store((0u + (uint(i[0u].x) * 4u)), asuint(1.0f));
+ v1.Store((0u + (i[0u].x * 4u)), asuint(1.0f));
}
diff --git a/test/tint/bug/tint/1113.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1113.wgsl.expected.ir.dxc.hlsl
index 3fc28ad..1b8a4e2 100644
--- a/test/tint/bug/tint/1113.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1113.wgsl.expected.ir.dxc.hlsl
@@ -57,23 +57,21 @@
}
float3 loadPosition(uint vertexIndex) {
- float v_1 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 0u)) * 4u))));
- float v_2 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 1u)) * 4u))));
- float3 position = float3(v_1, v_2, asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 2u)) * 4u)))));
+ float3 position = float3(asfloat(positions.Load((0u + (((3u * vertexIndex) + 0u) * 4u)))), asfloat(positions.Load((0u + (((3u * vertexIndex) + 1u) * 4u)))), asfloat(positions.Load((0u + (((3u * vertexIndex) + 2u) * 4u)))));
return position;
}
void doIgnore() {
uint g42 = uniforms[0u].x;
uint kj6 = dbg.Load(20u);
- uint v_3 = 0u;
- counters.InterlockedOr(uint(0u), 0u, v_3);
- uint b53 = v_3;
+ uint v_1 = 0u;
+ counters.InterlockedOr(uint(0u), 0u, v_1);
+ uint b53 = v_1;
uint rwg = indices.Load(0u);
float rb5 = asfloat(positions.Load(0u));
- int v_4 = int(0);
- LUT.InterlockedOr(int(0u), int(0), v_4);
- int g55 = v_4;
+ int v_2 = int(0);
+ LUT.InterlockedOr(int(0u), int(0), v_2);
+ int g55 = v_2;
}
void main_count_inner(uint3 GlobalInvocationID) {
@@ -82,18 +80,18 @@
return;
}
doIgnore();
- uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
- uint i1 = indices.Load((0u + (uint(((3u * triangleIndex) + 1u)) * 4u)));
- uint i2 = indices.Load((0u + (uint(((3u * triangleIndex) + 2u)) * 4u)));
+ uint i0 = indices.Load((0u + (((3u * triangleIndex) + 0u) * 4u)));
+ uint i1 = indices.Load((0u + (((3u * triangleIndex) + 1u) * 4u)));
+ uint i2 = indices.Load((0u + (((3u * triangleIndex) + 2u) * 4u)));
float3 p0 = loadPosition(i0);
float3 p1 = loadPosition(i1);
float3 p2 = loadPosition(i2);
float3 center = (((p0 + p1) + p2) / 3.0f);
float3 voxelPos = toVoxelPos(center);
uint voxelIndex = toIndex1D(uniforms[0u].y, voxelPos);
- uint v_5 = 0u;
- counters.InterlockedAdd(uint((0u + (uint(voxelIndex) * 4u))), 1u, v_5);
- uint acefg = v_5;
+ uint v_3 = 0u;
+ counters.InterlockedAdd(uint((0u + (voxelIndex * 4u))), 1u, v_3);
+ uint acefg = v_3;
if ((triangleIndex == 0u)) {
dbg.Store(16u, uniforms[0u].y);
dbg.Store(32u, asuint(center.x));
@@ -109,20 +107,19 @@
if ((voxelIndex >= maxVoxels)) {
return;
}
- uint v_6 = 0u;
- counters.InterlockedOr(uint((0u + (uint(voxelIndex) * 4u))), 0u, v_6);
- uint numTriangles = v_6;
+ uint v_4 = 0u;
+ counters.InterlockedOr(uint((0u + (voxelIndex * 4u))), 0u, v_4);
+ uint numTriangles = v_4;
int offset = int(-1);
if ((numTriangles > 0u)) {
- uint v_7 = numTriangles;
- uint v_8 = 0u;
- dbg.InterlockedAdd(uint(0u), v_7, v_8);
- offset = int(v_8);
+ uint v_5 = numTriangles;
+ uint v_6 = 0u;
+ dbg.InterlockedAdd(uint(0u), v_5, v_6);
+ offset = int(v_6);
}
- uint v_9 = (uint(voxelIndex) * 4u);
- int v_10 = offset;
- int v_11 = int(0);
- LUT.InterlockedExchange(int((0u + v_9)), v_10, v_11);
+ int v_7 = offset;
+ int v_8 = int(0);
+ LUT.InterlockedExchange(int((0u + (voxelIndex * 4u))), v_7, v_8);
}
void main_sort_triangles_inner(uint3 GlobalInvocationID) {
@@ -131,18 +128,18 @@
if ((triangleIndex >= uniforms[0u].x)) {
return;
}
- uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
- uint i1 = indices.Load((0u + (uint(((3u * triangleIndex) + 1u)) * 4u)));
- uint i2 = indices.Load((0u + (uint(((3u * triangleIndex) + 2u)) * 4u)));
+ uint i0 = indices.Load((0u + (((3u * triangleIndex) + 0u) * 4u)));
+ uint i1 = indices.Load((0u + (((3u * triangleIndex) + 1u) * 4u)));
+ uint i2 = indices.Load((0u + (((3u * triangleIndex) + 2u) * 4u)));
float3 p0 = loadPosition(i0);
float3 p1 = loadPosition(i1);
float3 p2 = loadPosition(i2);
float3 center = (((p0 + p1) + p2) / 3.0f);
float3 voxelPos = toVoxelPos(center);
uint voxelIndex = toIndex1D(uniforms[0u].y, voxelPos);
- int v_12 = int(0);
- LUT.InterlockedAdd(int((0u + (uint(voxelIndex) * 4u))), int(1), v_12);
- int triangleOffset = v_12;
+ int v_9 = int(0);
+ LUT.InterlockedAdd(int((0u + (voxelIndex * 4u))), int(1), v_9);
+ int triangleOffset = v_9;
}
[numthreads(128, 1, 1)]
diff --git a/test/tint/bug/tint/1113.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1113.wgsl.expected.ir.fxc.hlsl
index 3fc28ad..1b8a4e2 100644
--- a/test/tint/bug/tint/1113.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1113.wgsl.expected.ir.fxc.hlsl
@@ -57,23 +57,21 @@
}
float3 loadPosition(uint vertexIndex) {
- float v_1 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 0u)) * 4u))));
- float v_2 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 1u)) * 4u))));
- float3 position = float3(v_1, v_2, asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 2u)) * 4u)))));
+ float3 position = float3(asfloat(positions.Load((0u + (((3u * vertexIndex) + 0u) * 4u)))), asfloat(positions.Load((0u + (((3u * vertexIndex) + 1u) * 4u)))), asfloat(positions.Load((0u + (((3u * vertexIndex) + 2u) * 4u)))));
return position;
}
void doIgnore() {
uint g42 = uniforms[0u].x;
uint kj6 = dbg.Load(20u);
- uint v_3 = 0u;
- counters.InterlockedOr(uint(0u), 0u, v_3);
- uint b53 = v_3;
+ uint v_1 = 0u;
+ counters.InterlockedOr(uint(0u), 0u, v_1);
+ uint b53 = v_1;
uint rwg = indices.Load(0u);
float rb5 = asfloat(positions.Load(0u));
- int v_4 = int(0);
- LUT.InterlockedOr(int(0u), int(0), v_4);
- int g55 = v_4;
+ int v_2 = int(0);
+ LUT.InterlockedOr(int(0u), int(0), v_2);
+ int g55 = v_2;
}
void main_count_inner(uint3 GlobalInvocationID) {
@@ -82,18 +80,18 @@
return;
}
doIgnore();
- uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
- uint i1 = indices.Load((0u + (uint(((3u * triangleIndex) + 1u)) * 4u)));
- uint i2 = indices.Load((0u + (uint(((3u * triangleIndex) + 2u)) * 4u)));
+ uint i0 = indices.Load((0u + (((3u * triangleIndex) + 0u) * 4u)));
+ uint i1 = indices.Load((0u + (((3u * triangleIndex) + 1u) * 4u)));
+ uint i2 = indices.Load((0u + (((3u * triangleIndex) + 2u) * 4u)));
float3 p0 = loadPosition(i0);
float3 p1 = loadPosition(i1);
float3 p2 = loadPosition(i2);
float3 center = (((p0 + p1) + p2) / 3.0f);
float3 voxelPos = toVoxelPos(center);
uint voxelIndex = toIndex1D(uniforms[0u].y, voxelPos);
- uint v_5 = 0u;
- counters.InterlockedAdd(uint((0u + (uint(voxelIndex) * 4u))), 1u, v_5);
- uint acefg = v_5;
+ uint v_3 = 0u;
+ counters.InterlockedAdd(uint((0u + (voxelIndex * 4u))), 1u, v_3);
+ uint acefg = v_3;
if ((triangleIndex == 0u)) {
dbg.Store(16u, uniforms[0u].y);
dbg.Store(32u, asuint(center.x));
@@ -109,20 +107,19 @@
if ((voxelIndex >= maxVoxels)) {
return;
}
- uint v_6 = 0u;
- counters.InterlockedOr(uint((0u + (uint(voxelIndex) * 4u))), 0u, v_6);
- uint numTriangles = v_6;
+ uint v_4 = 0u;
+ counters.InterlockedOr(uint((0u + (voxelIndex * 4u))), 0u, v_4);
+ uint numTriangles = v_4;
int offset = int(-1);
if ((numTriangles > 0u)) {
- uint v_7 = numTriangles;
- uint v_8 = 0u;
- dbg.InterlockedAdd(uint(0u), v_7, v_8);
- offset = int(v_8);
+ uint v_5 = numTriangles;
+ uint v_6 = 0u;
+ dbg.InterlockedAdd(uint(0u), v_5, v_6);
+ offset = int(v_6);
}
- uint v_9 = (uint(voxelIndex) * 4u);
- int v_10 = offset;
- int v_11 = int(0);
- LUT.InterlockedExchange(int((0u + v_9)), v_10, v_11);
+ int v_7 = offset;
+ int v_8 = int(0);
+ LUT.InterlockedExchange(int((0u + (voxelIndex * 4u))), v_7, v_8);
}
void main_sort_triangles_inner(uint3 GlobalInvocationID) {
@@ -131,18 +128,18 @@
if ((triangleIndex >= uniforms[0u].x)) {
return;
}
- uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
- uint i1 = indices.Load((0u + (uint(((3u * triangleIndex) + 1u)) * 4u)));
- uint i2 = indices.Load((0u + (uint(((3u * triangleIndex) + 2u)) * 4u)));
+ uint i0 = indices.Load((0u + (((3u * triangleIndex) + 0u) * 4u)));
+ uint i1 = indices.Load((0u + (((3u * triangleIndex) + 1u) * 4u)));
+ uint i2 = indices.Load((0u + (((3u * triangleIndex) + 2u) * 4u)));
float3 p0 = loadPosition(i0);
float3 p1 = loadPosition(i1);
float3 p2 = loadPosition(i2);
float3 center = (((p0 + p1) + p2) / 3.0f);
float3 voxelPos = toVoxelPos(center);
uint voxelIndex = toIndex1D(uniforms[0u].y, voxelPos);
- int v_12 = int(0);
- LUT.InterlockedAdd(int((0u + (uint(voxelIndex) * 4u))), int(1), v_12);
- int triangleOffset = v_12;
+ int v_9 = int(0);
+ LUT.InterlockedAdd(int((0u + (voxelIndex * 4u))), int(1), v_9);
+ int triangleOffset = v_9;
}
[numthreads(128, 1, 1)]
diff --git a/test/tint/bug/tint/1121.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1121.wgsl.expected.ir.dxc.hlsl
index 4c3ac9e..a323990 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.ir.dxc.hlsl
@@ -20,27 +20,25 @@
if ((index >= config[0u].x)) {
return;
}
- uint v_1 = (uint(index) * 32u);
- float v_2 = (asfloat(lightsBuffer.Load((4u + (uint(index) * 32u)))) - 0.10000000149011611938f);
+ uint v_1 = (index * 32u);
+ float v_2 = (asfloat(lightsBuffer.Load((4u + (index * 32u)))) - 0.10000000149011611938f);
float v_3 = float(index);
lightsBuffer.Store((4u + v_1), asuint((v_2 + (0.00100000004749745131f * (v_3 - (64.0f * floor((float(index) / 64.0f))))))));
- float v_4 = asfloat(lightsBuffer.Load((4u + (uint(index) * 32u))));
- if ((v_4 < asfloat(uniforms[0u].y))) {
- uint v_5 = (uint(index) * 32u);
- lightsBuffer.Store((4u + v_5), asuint(asfloat(uniforms[1u].y)));
+ if ((asfloat(lightsBuffer.Load((4u + (index * 32u)))) < asfloat(uniforms[0u].y))) {
+ lightsBuffer.Store((4u + (index * 32u)), asuint(asfloat(uniforms[1u].y)));
}
float4x4 M = v(96u);
float viewNear = (-(M[int(3)].z) / (-1.0f + M[int(2)].z));
float viewFar = (-(M[int(3)].z) / (1.0f + M[int(2)].z));
- float4 lightPos = asfloat(lightsBuffer.Load4((0u + (uint(index) * 32u))));
- float4x4 v_6 = v(32u);
- lightPos = mul(lightPos, v_6);
+ float4 lightPos = asfloat(lightsBuffer.Load4((0u + (index * 32u))));
+ float4x4 v_4 = v(32u);
+ lightPos = mul(lightPos, v_4);
lightPos = (lightPos / lightPos.w);
- float lightRadius = asfloat(lightsBuffer.Load((28u + (uint(index) * 32u))));
- float4 v_7 = lightPos;
- float4 boxMin = (v_7 - float4(float3((lightRadius).xxx), 0.0f));
- float4 v_8 = lightPos;
- float4 boxMax = (v_8 + float4(float3((lightRadius).xxx), 0.0f));
+ float lightRadius = asfloat(lightsBuffer.Load((28u + (index * 32u))));
+ float4 v_5 = lightPos;
+ float4 boxMin = (v_5 - float4(float3((lightRadius).xxx), 0.0f));
+ float4 v_6 = lightPos;
+ float4 boxMax = (v_6 + float4(float3((lightRadius).xxx), 0.0f));
float4 frustumPlanes[6] = (float4[6])0;
frustumPlanes[int(4)] = float4(0.0f, 0.0f, -1.0f, viewNear);
frustumPlanes[int(5)] = float4(0.0f, 0.0f, 1.0f, -(viewFar));
@@ -62,11 +60,11 @@
break;
}
int2 tilePixel0Idx = int2((x * TILE_SIZE), (y * TILE_SIZE));
- float2 v_9 = (2.0f * float2(tilePixel0Idx));
- float2 floorCoord = ((v_9 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
- int2 v_10 = tilePixel0Idx;
- float2 v_11 = (2.0f * float2((v_10 + int2((TILE_SIZE).xx))));
- float2 ceilCoord = ((v_11 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
+ float2 v_7 = (2.0f * float2(tilePixel0Idx));
+ float2 floorCoord = ((v_7 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
+ int2 v_8 = tilePixel0Idx;
+ float2 v_9 = (2.0f * float2((v_8 + int2((TILE_SIZE).xx))));
+ float2 ceilCoord = ((v_9 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
float2 viewFloorCoord = float2((((-(viewNear) * floorCoord.x) - (M[int(2)].x * viewNear)) / M[int(0)].x), (((-(viewNear) * floorCoord.y) - (M[int(2)].y * viewNear)) / M[int(1)].y));
float2 viewCeilCoord = float2((((-(viewNear) * ceilCoord.x) - (M[int(2)].x * viewNear)) / M[int(0)].x), (((-(viewNear) * ceilCoord.y) - (M[int(2)].y * viewNear)) / M[int(1)].y));
frustumPlanes[int(0)] = float4(1.0f, 0.0f, (-(viewFloorCoord.x) / viewNear), 0.0f);
@@ -82,29 +80,29 @@
break;
}
float4 p = (0.0f).xxxx;
- uint v_12 = i;
- if ((frustumPlanes[v_12].x > 0.0f)) {
+ uint v_10 = i;
+ if ((frustumPlanes[v_10].x > 0.0f)) {
p.x = boxMax.x;
} else {
p.x = boxMin.x;
}
- uint v_13 = i;
- if ((frustumPlanes[v_13].y > 0.0f)) {
+ uint v_11 = i;
+ if ((frustumPlanes[v_11].y > 0.0f)) {
p.y = boxMax.y;
} else {
p.y = boxMin.y;
}
- uint v_14 = i;
- if ((frustumPlanes[v_14].z > 0.0f)) {
+ uint v_12 = i;
+ if ((frustumPlanes[v_12].z > 0.0f)) {
p.z = boxMax.z;
} else {
p.z = boxMin.z;
}
p.w = 1.0f;
- float v_15 = dp;
- float4 v_16 = p;
- uint v_17 = i;
- dp = (v_15 + min(0.0f, dot(v_16, frustumPlanes[v_17])));
+ float v_13 = dp;
+ float4 v_14 = p;
+ uint v_15 = i;
+ dp = (v_13 + min(0.0f, dot(v_14, frustumPlanes[v_15])));
{
i = (i + 1u);
}
@@ -113,30 +111,28 @@
}
if ((dp >= 0.0f)) {
uint tileId = uint((x + (y * TILE_COUNT_X)));
- bool v_18 = false;
+ bool v_16 = false;
if ((tileId < 0u)) {
- v_18 = true;
+ v_16 = true;
} else {
- v_18 = (tileId >= config[0u].y);
+ v_16 = (tileId >= config[0u].y);
}
- if (v_18) {
+ if (v_16) {
{
x = (x + int(1));
}
continue;
}
- uint v_19 = 0u;
- tileLightId.InterlockedAdd(uint((0u + (uint(tileId) * 260u))), 1u, v_19);
- uint offset = v_19;
+ uint v_17 = 0u;
+ tileLightId.InterlockedAdd(uint((0u + (tileId * 260u))), 1u, v_17);
+ uint offset = v_17;
if ((offset >= config[1u].x)) {
{
x = (x + int(1));
}
continue;
}
- uint v_20 = offset;
- uint v_21 = (uint(tileId) * 260u);
- tileLightId.Store(((4u + v_21) + (uint(v_20) * 4u)), GlobalInvocationID.x);
+ tileLightId.Store(((4u + (tileId * 260u)) + (offset * 4u)), GlobalInvocationID.x);
}
{
x = (x + int(1));
diff --git a/test/tint/bug/tint/1121.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1121.wgsl.expected.ir.fxc.hlsl
index 4c3ac9e..a323990 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.ir.fxc.hlsl
@@ -20,27 +20,25 @@
if ((index >= config[0u].x)) {
return;
}
- uint v_1 = (uint(index) * 32u);
- float v_2 = (asfloat(lightsBuffer.Load((4u + (uint(index) * 32u)))) - 0.10000000149011611938f);
+ uint v_1 = (index * 32u);
+ float v_2 = (asfloat(lightsBuffer.Load((4u + (index * 32u)))) - 0.10000000149011611938f);
float v_3 = float(index);
lightsBuffer.Store((4u + v_1), asuint((v_2 + (0.00100000004749745131f * (v_3 - (64.0f * floor((float(index) / 64.0f))))))));
- float v_4 = asfloat(lightsBuffer.Load((4u + (uint(index) * 32u))));
- if ((v_4 < asfloat(uniforms[0u].y))) {
- uint v_5 = (uint(index) * 32u);
- lightsBuffer.Store((4u + v_5), asuint(asfloat(uniforms[1u].y)));
+ if ((asfloat(lightsBuffer.Load((4u + (index * 32u)))) < asfloat(uniforms[0u].y))) {
+ lightsBuffer.Store((4u + (index * 32u)), asuint(asfloat(uniforms[1u].y)));
}
float4x4 M = v(96u);
float viewNear = (-(M[int(3)].z) / (-1.0f + M[int(2)].z));
float viewFar = (-(M[int(3)].z) / (1.0f + M[int(2)].z));
- float4 lightPos = asfloat(lightsBuffer.Load4((0u + (uint(index) * 32u))));
- float4x4 v_6 = v(32u);
- lightPos = mul(lightPos, v_6);
+ float4 lightPos = asfloat(lightsBuffer.Load4((0u + (index * 32u))));
+ float4x4 v_4 = v(32u);
+ lightPos = mul(lightPos, v_4);
lightPos = (lightPos / lightPos.w);
- float lightRadius = asfloat(lightsBuffer.Load((28u + (uint(index) * 32u))));
- float4 v_7 = lightPos;
- float4 boxMin = (v_7 - float4(float3((lightRadius).xxx), 0.0f));
- float4 v_8 = lightPos;
- float4 boxMax = (v_8 + float4(float3((lightRadius).xxx), 0.0f));
+ float lightRadius = asfloat(lightsBuffer.Load((28u + (index * 32u))));
+ float4 v_5 = lightPos;
+ float4 boxMin = (v_5 - float4(float3((lightRadius).xxx), 0.0f));
+ float4 v_6 = lightPos;
+ float4 boxMax = (v_6 + float4(float3((lightRadius).xxx), 0.0f));
float4 frustumPlanes[6] = (float4[6])0;
frustumPlanes[int(4)] = float4(0.0f, 0.0f, -1.0f, viewNear);
frustumPlanes[int(5)] = float4(0.0f, 0.0f, 1.0f, -(viewFar));
@@ -62,11 +60,11 @@
break;
}
int2 tilePixel0Idx = int2((x * TILE_SIZE), (y * TILE_SIZE));
- float2 v_9 = (2.0f * float2(tilePixel0Idx));
- float2 floorCoord = ((v_9 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
- int2 v_10 = tilePixel0Idx;
- float2 v_11 = (2.0f * float2((v_10 + int2((TILE_SIZE).xx))));
- float2 ceilCoord = ((v_11 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
+ float2 v_7 = (2.0f * float2(tilePixel0Idx));
+ float2 floorCoord = ((v_7 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
+ int2 v_8 = tilePixel0Idx;
+ float2 v_9 = (2.0f * float2((v_8 + int2((TILE_SIZE).xx))));
+ float2 ceilCoord = ((v_9 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
float2 viewFloorCoord = float2((((-(viewNear) * floorCoord.x) - (M[int(2)].x * viewNear)) / M[int(0)].x), (((-(viewNear) * floorCoord.y) - (M[int(2)].y * viewNear)) / M[int(1)].y));
float2 viewCeilCoord = float2((((-(viewNear) * ceilCoord.x) - (M[int(2)].x * viewNear)) / M[int(0)].x), (((-(viewNear) * ceilCoord.y) - (M[int(2)].y * viewNear)) / M[int(1)].y));
frustumPlanes[int(0)] = float4(1.0f, 0.0f, (-(viewFloorCoord.x) / viewNear), 0.0f);
@@ -82,29 +80,29 @@
break;
}
float4 p = (0.0f).xxxx;
- uint v_12 = i;
- if ((frustumPlanes[v_12].x > 0.0f)) {
+ uint v_10 = i;
+ if ((frustumPlanes[v_10].x > 0.0f)) {
p.x = boxMax.x;
} else {
p.x = boxMin.x;
}
- uint v_13 = i;
- if ((frustumPlanes[v_13].y > 0.0f)) {
+ uint v_11 = i;
+ if ((frustumPlanes[v_11].y > 0.0f)) {
p.y = boxMax.y;
} else {
p.y = boxMin.y;
}
- uint v_14 = i;
- if ((frustumPlanes[v_14].z > 0.0f)) {
+ uint v_12 = i;
+ if ((frustumPlanes[v_12].z > 0.0f)) {
p.z = boxMax.z;
} else {
p.z = boxMin.z;
}
p.w = 1.0f;
- float v_15 = dp;
- float4 v_16 = p;
- uint v_17 = i;
- dp = (v_15 + min(0.0f, dot(v_16, frustumPlanes[v_17])));
+ float v_13 = dp;
+ float4 v_14 = p;
+ uint v_15 = i;
+ dp = (v_13 + min(0.0f, dot(v_14, frustumPlanes[v_15])));
{
i = (i + 1u);
}
@@ -113,30 +111,28 @@
}
if ((dp >= 0.0f)) {
uint tileId = uint((x + (y * TILE_COUNT_X)));
- bool v_18 = false;
+ bool v_16 = false;
if ((tileId < 0u)) {
- v_18 = true;
+ v_16 = true;
} else {
- v_18 = (tileId >= config[0u].y);
+ v_16 = (tileId >= config[0u].y);
}
- if (v_18) {
+ if (v_16) {
{
x = (x + int(1));
}
continue;
}
- uint v_19 = 0u;
- tileLightId.InterlockedAdd(uint((0u + (uint(tileId) * 260u))), 1u, v_19);
- uint offset = v_19;
+ uint v_17 = 0u;
+ tileLightId.InterlockedAdd(uint((0u + (tileId * 260u))), 1u, v_17);
+ uint offset = v_17;
if ((offset >= config[1u].x)) {
{
x = (x + int(1));
}
continue;
}
- uint v_20 = offset;
- uint v_21 = (uint(tileId) * 260u);
- tileLightId.Store(((4u + v_21) + (uint(v_20) * 4u)), GlobalInvocationID.x);
+ tileLightId.Store(((4u + (tileId * 260u)) + (offset * 4u)), GlobalInvocationID.x);
}
{
x = (x + int(1));
diff --git a/test/tint/bug/tint/1725.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1725.wgsl.expected.ir.dxc.hlsl
index 7cbfd10..9a6a057 100644
--- a/test/tint/bug/tint/1725.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1725.wgsl.expected.ir.dxc.hlsl
@@ -10,7 +10,7 @@
int tint_symbol_5 = int(0);
uint v = 0u;
tint_symbol.GetDimensions(v);
- uint tint_symbol_6 = tint_symbol.Load((0u + (uint(min(tint_symbol_2, ((v / 4u) - 1u))) * 4u)));
+ uint tint_symbol_6 = tint_symbol.Load((0u + (min(tint_symbol_2, ((v / 4u) - 1u)) * 4u)));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/bug/tint/1725.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1725.wgsl.expected.ir.fxc.hlsl
index 7cbfd10..9a6a057 100644
--- a/test/tint/bug/tint/1725.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1725.wgsl.expected.ir.fxc.hlsl
@@ -10,7 +10,7 @@
int tint_symbol_5 = int(0);
uint v = 0u;
tint_symbol.GetDimensions(v);
- uint tint_symbol_6 = tint_symbol.Load((0u + (uint(min(tint_symbol_2, ((v / 4u) - 1u))) * 4u)));
+ uint tint_symbol_6 = tint_symbol.Load((0u + (min(tint_symbol_2, ((v / 4u) - 1u)) * 4u)));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/bug/tint/1875.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1875.wgsl.expected.ir.dxc.hlsl
index 49601bb..74a3dd0 100644
--- a/test/tint/bug/tint/1875.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1875.wgsl.expected.ir.dxc.hlsl
@@ -2,7 +2,7 @@
static uint count = 0u;
RWByteAddressBuffer outputs : register(u1);
void push_output(uint value) {
- outputs.Store((0u + (uint(count) * 4u)), value);
+ outputs.Store((0u + (count * 4u)), value);
count = (count + 1u);
}
diff --git a/test/tint/bug/tint/1875.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1875.wgsl.expected.ir.fxc.hlsl
index 49601bb..74a3dd0 100644
--- a/test/tint/bug/tint/1875.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1875.wgsl.expected.ir.fxc.hlsl
@@ -2,7 +2,7 @@
static uint count = 0u;
RWByteAddressBuffer outputs : register(u1);
void push_output(uint value) {
- outputs.Store((0u + (uint(count) * 4u)), value);
+ outputs.Store((0u + (count * 4u)), value);
count = (count + 1u);
}
diff --git a/test/tint/bug/tint/221.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/221.wgsl.expected.ir.dxc.hlsl
index f6f046e..67ffddd 100644
--- a/test/tint/bug/tint/221.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/221.wgsl.expected.ir.dxc.hlsl
@@ -13,7 +13,7 @@
if ((i >= b.Load(0u))) {
break;
}
- uint v_1 = (uint(i) * 4u);
+ uint v_1 = (i * 4u);
if ((tint_mod_u32(i, 2u) == 0u)) {
{
b.Store((4u + v_1), (b.Load((4u + v_1)) * 2u));
diff --git a/test/tint/bug/tint/221.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/221.wgsl.expected.ir.fxc.hlsl
index f6f046e..67ffddd 100644
--- a/test/tint/bug/tint/221.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/221.wgsl.expected.ir.fxc.hlsl
@@ -13,7 +13,7 @@
if ((i >= b.Load(0u))) {
break;
}
- uint v_1 = (uint(i) * 4u);
+ uint v_1 = (i * 4u);
if ((tint_mod_u32(i, 2u) == 0u)) {
{
b.Store((4u + v_1), (b.Load((4u + v_1)) * 2u));
diff --git a/test/tint/bug/tint/379127084.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/379127084.wgsl.expected.ir.dxc.hlsl
index 2dee3e0..df6121e 100644
--- a/test/tint/bug/tint/379127084.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/379127084.wgsl.expected.ir.dxc.hlsl
@@ -32,21 +32,20 @@
void _skslMain(FSIn _stageIn, inout FSOut _stageOut) {
shadingSsboIndex = _stageIn.ssboIndicesVar.y;
- int _56_d = asint(_storage1.Load((16u + (uint(shadingSsboIndex) * 128u))));
- float2 _57_k = float2(((_stageIn.localCoordsVar + 0.5f) * asfloat(_storage1.Load2((0u + (uint(shadingSsboIndex) * 128u))))));
+ int _56_d = asint(_storage1.Load((16u + (shadingSsboIndex * 128u))));
+ float2 _57_k = float2(((_stageIn.localCoordsVar + 0.5f) * asfloat(_storage1.Load2((0u + (shadingSsboIndex * 128u))))));
float4 _58_l = (0.0f).xxxx;
- float2 _59_m = float2(asfloat(_storage1.Load2((8u + (uint(shadingSsboIndex) * 128u)))));
+ float2 _59_m = float2(asfloat(_storage1.Load2((8u + (shadingSsboIndex * 128u)))));
float _60_n = 1.0f;
int _61_o = int(0);
{
while(true) {
- int v_1 = _61_o;
- if ((v_1 < asint(_storage1.Load((20u + (uint(shadingSsboIndex) * 128u)))))) {
+ if ((_61_o < asint(_storage1.Load((20u + (shadingSsboIndex * 128u)))))) {
float4 _62_f = (0.0f).xxxx;
float2 _skTemp2 = floor(_57_k);
_62_f = float4(_skTemp2, _62_f.zw);
_62_f = float4(_62_f.xy, (_62_f.xy + (1.0f).xx));
- if (bool(asint(_storage1.Load((24u + (uint(shadingSsboIndex) * 128u)))))) {
+ if (bool(asint(_storage1.Load((24u + (shadingSsboIndex * 128u)))))) {
float4 _skTemp3 = step(_59_m.xyxy, _62_f);
_62_f = (_62_f - (_skTemp3 * _59_m.xyxy));
}
@@ -69,14 +68,14 @@
{
while(true) {
float _73_i = ((float(_72_h) + 0.5f) * 0.25f);
- float v_2 = float(_67_p.x);
- float4 _74_j = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_2, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
- float v_3 = float(_67_p.y);
- float4 _75_k = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_3, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
- float v_4 = float(_67_p.w);
- float4 _76_l = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_4, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
- float v_5 = float(_67_p.z);
- float4 _77_m = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_5, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
+ float v_1 = float(_67_p.x);
+ float4 _74_j = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_1, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
+ float v_2 = float(_67_p.y);
+ float4 _75_k = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_2, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
+ float v_3 = float(_67_p.w);
+ float4 _76_l = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_3, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
+ float v_4 = float(_67_p.z);
+ float4 _77_m = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_4, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
float2 _78_n = _68_d;
float _skTemp7 = dot((((_74_j.yw + (_74_j.xz * 0.00390625f)) * 2.0f) - 1.0f), _78_n);
float _79_o = _skTemp7;
@@ -125,12 +124,12 @@
}
float4 _skTemp15 = saturate(_58_l);
_58_l = _skTemp15;
- float3 v_6 = float3(_58_l.xyz);
- float3 v_7 = float3((v_6 * float(_58_l.w)));
- float _skTemp16 = dot(float3(0.21259999275207519531f, 0.71520000696182250977f, 0.07220000028610229492f), float4(v_7, float(float(_58_l.w))).xyz);
+ float3 v_5 = float3(_58_l.xyz);
+ float3 v_6 = float3((v_5 * float(_58_l.w)));
+ float _skTemp16 = dot(float3(0.21259999275207519531f, 0.71520000696182250977f, 0.07220000028610229492f), float4(v_6, float(float(_58_l.w))).xyz);
float _skTemp17 = saturate(_skTemp16);
float4 _84_a = float4(0.0f, 0.0f, 0.0f, _skTemp17);
- int _85_d = asint(_storage1.Load((112u + (uint(shadingSsboIndex) * 128u))));
+ int _85_d = asint(_storage1.Load((112u + (shadingSsboIndex * 128u))));
if (bool(_85_d)) {
float4 _skTemp18 = (0.0f).xxxx;
if ((_84_a.y < _84_a.z)) {
@@ -160,9 +159,9 @@
float _skTemp23 = max(_84_a.w, 0.00009999999747378752f);
_84_a = float4((_84_a.xyz / _skTemp23), _84_a.w);
}
- float4x4 v_8 = v((32u + (uint(shadingSsboIndex) * 128u)));
- float4 v_9 = mul(float4(_84_a), v_8);
- float4 _94_f = float4((v_9 + asfloat(_storage1.Load4((96u + (uint(shadingSsboIndex) * 128u))))));
+ float4x4 v_7 = v((32u + (shadingSsboIndex * 128u)));
+ float4 v_8 = mul(float4(_84_a), v_7);
+ float4 _94_f = float4((v_8 + asfloat(_storage1.Load4((96u + (shadingSsboIndex * 128u))))));
if (bool(_85_d)) {
float _skTemp24 = abs(((2.0f * _94_f.z) - 1.0f));
float _95_b = ((1.0f - _skTemp24) * _94_f.y);
@@ -174,7 +173,7 @@
float4 _skTemp28 = saturate(float4(((((_97_d - 0.5f) * _95_b) + _94_f.z) * _94_f.w), _94_f.w));
_94_f = _skTemp28;
} else {
- if (bool(asint(_storage1.Load((116u + (uint(shadingSsboIndex) * 128u)))))) {
+ if (bool(asint(_storage1.Load((116u + (shadingSsboIndex * 128u)))))) {
float4 _skTemp29 = saturate(_94_f);
_94_f = _skTemp29;
} else {
@@ -190,14 +189,14 @@
FSOut main_inner(FSIn _stageIn) {
FSOut _stageOut = (FSOut)0;
_skslMain(_stageIn, _stageOut);
- FSOut v_10 = _stageOut;
- return v_10;
+ FSOut v_9 = _stageOut;
+ return v_9;
}
main_outputs main(main_inputs inputs) {
- FSIn v_11 = {inputs.FSIn_ssboIndicesVar, inputs.FSIn_localCoordsVar};
- FSOut v_12 = main_inner(v_11);
- main_outputs v_13 = {v_12.sk_FragColor};
- return v_13;
+ FSIn v_10 = {inputs.FSIn_ssboIndicesVar, inputs.FSIn_localCoordsVar};
+ FSOut v_11 = main_inner(v_10);
+ main_outputs v_12 = {v_11.sk_FragColor};
+ return v_12;
}
diff --git a/test/tint/bug/tint/379127084.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/379127084.wgsl.expected.ir.fxc.hlsl
index 2dd9723..4453347 100644
--- a/test/tint/bug/tint/379127084.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/379127084.wgsl.expected.ir.fxc.hlsl
@@ -32,21 +32,20 @@
void _skslMain(FSIn _stageIn, inout FSOut _stageOut) {
shadingSsboIndex = _stageIn.ssboIndicesVar.y;
- int _56_d = asint(_storage1.Load((16u + (uint(shadingSsboIndex) * 128u))));
- float2 _57_k = float2(((_stageIn.localCoordsVar + 0.5f) * asfloat(_storage1.Load2((0u + (uint(shadingSsboIndex) * 128u))))));
+ int _56_d = asint(_storage1.Load((16u + (shadingSsboIndex * 128u))));
+ float2 _57_k = float2(((_stageIn.localCoordsVar + 0.5f) * asfloat(_storage1.Load2((0u + (shadingSsboIndex * 128u))))));
float4 _58_l = (0.0f).xxxx;
- float2 _59_m = float2(asfloat(_storage1.Load2((8u + (uint(shadingSsboIndex) * 128u)))));
+ float2 _59_m = float2(asfloat(_storage1.Load2((8u + (shadingSsboIndex * 128u)))));
float _60_n = 1.0f;
int _61_o = int(0);
{
while(true) {
- int v_1 = _61_o;
- if ((v_1 < asint(_storage1.Load((20u + (uint(shadingSsboIndex) * 128u)))))) {
+ if ((_61_o < asint(_storage1.Load((20u + (shadingSsboIndex * 128u)))))) {
float4 _62_f = (0.0f).xxxx;
float2 _skTemp2 = floor(_57_k);
_62_f = float4(_skTemp2, _62_f.zw);
_62_f = float4(_62_f.xy, (_62_f.xy + (1.0f).xx));
- if (bool(asint(_storage1.Load((24u + (uint(shadingSsboIndex) * 128u)))))) {
+ if (bool(asint(_storage1.Load((24u + (shadingSsboIndex * 128u)))))) {
float4 _skTemp3 = step(_59_m.xyxy, _62_f);
_62_f = (_62_f - (_skTemp3 * _59_m.xyxy));
}
@@ -69,14 +68,14 @@
{
while(true) {
float _73_i = ((float(_72_h) + 0.5f) * 0.25f);
- float v_2 = float(_67_p.x);
- float4 _74_j = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_2, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
- float v_3 = float(_67_p.y);
- float4 _75_k = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_3, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
- float v_4 = float(_67_p.w);
- float4 _76_l = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_4, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
- float v_5 = float(_67_p.z);
- float4 _77_m = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_5, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
+ float v_1 = float(_67_p.x);
+ float4 _74_j = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_1, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
+ float v_2 = float(_67_p.y);
+ float4 _75_k = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_2, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
+ float v_3 = float(_67_p.w);
+ float4 _76_l = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_3, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
+ float v_4 = float(_67_p.z);
+ float4 _77_m = noiseSampler_1_Texture.SampleBias(noiseSampler_1_Sampler, float2(v_4, float(_73_i)), clamp(-0.47499999403953552246f, -16.0f, 15.9899997711181640625f));
float2 _78_n = _68_d;
float _skTemp7 = dot((((_74_j.yw + (_74_j.xz * 0.00390625f)) * 2.0f) - 1.0f), _78_n);
float _79_o = _skTemp7;
@@ -94,9 +93,9 @@
float _skTemp12 = lerp(_79_o, _80_p, _69_e.x);
float _82_r = _skTemp12;
float _skTemp13 = lerp(_81_q, _82_r, _69_e.y);
- float4 v_6 = _71_g;
- float4 v_7 = _72_h.xxxx;
- _71_g = (((v_7 == float4(int(0), int(1), int(2), int(3)))) ? (_skTemp13.xxxx) : (v_6));
+ float4 v_5 = _71_g;
+ float4 v_6 = _72_h.xxxx;
+ _71_g = (((v_6 == float4(int(0), int(1), int(2), int(3)))) ? (_skTemp13.xxxx) : (v_5));
{
_72_h = (_72_h + int(1));
if ((_72_h >= int(4))) { break; }
@@ -127,12 +126,12 @@
}
float4 _skTemp15 = saturate(_58_l);
_58_l = _skTemp15;
- float3 v_8 = float3(_58_l.xyz);
- float3 v_9 = float3((v_8 * float(_58_l.w)));
- float _skTemp16 = dot(float3(0.21259999275207519531f, 0.71520000696182250977f, 0.07220000028610229492f), float4(v_9, float(float(_58_l.w))).xyz);
+ float3 v_7 = float3(_58_l.xyz);
+ float3 v_8 = float3((v_7 * float(_58_l.w)));
+ float _skTemp16 = dot(float3(0.21259999275207519531f, 0.71520000696182250977f, 0.07220000028610229492f), float4(v_8, float(float(_58_l.w))).xyz);
float _skTemp17 = saturate(_skTemp16);
float4 _84_a = float4(0.0f, 0.0f, 0.0f, _skTemp17);
- int _85_d = asint(_storage1.Load((112u + (uint(shadingSsboIndex) * 128u))));
+ int _85_d = asint(_storage1.Load((112u + (shadingSsboIndex * 128u))));
if (bool(_85_d)) {
float4 _skTemp18 = (0.0f).xxxx;
if ((_84_a.y < _84_a.z)) {
@@ -162,9 +161,9 @@
float _skTemp23 = max(_84_a.w, 0.00009999999747378752f);
_84_a = float4((_84_a.xyz / _skTemp23), _84_a.w);
}
- float4x4 v_10 = v((32u + (uint(shadingSsboIndex) * 128u)));
- float4 v_11 = mul(float4(_84_a), v_10);
- float4 _94_f = float4((v_11 + asfloat(_storage1.Load4((96u + (uint(shadingSsboIndex) * 128u))))));
+ float4x4 v_9 = v((32u + (shadingSsboIndex * 128u)));
+ float4 v_10 = mul(float4(_84_a), v_9);
+ float4 _94_f = float4((v_10 + asfloat(_storage1.Load4((96u + (shadingSsboIndex * 128u))))));
if (bool(_85_d)) {
float _skTemp24 = abs(((2.0f * _94_f.z) - 1.0f));
float _95_b = ((1.0f - _skTemp24) * _94_f.y);
@@ -176,7 +175,7 @@
float4 _skTemp28 = saturate(float4(((((_97_d - 0.5f) * _95_b) + _94_f.z) * _94_f.w), _94_f.w));
_94_f = _skTemp28;
} else {
- if (bool(asint(_storage1.Load((116u + (uint(shadingSsboIndex) * 128u)))))) {
+ if (bool(asint(_storage1.Load((116u + (shadingSsboIndex * 128u)))))) {
float4 _skTemp29 = saturate(_94_f);
_94_f = _skTemp29;
} else {
@@ -192,14 +191,14 @@
FSOut main_inner(FSIn _stageIn) {
FSOut _stageOut = (FSOut)0;
_skslMain(_stageIn, _stageOut);
- FSOut v_12 = _stageOut;
- return v_12;
+ FSOut v_11 = _stageOut;
+ return v_11;
}
main_outputs main(main_inputs inputs) {
- FSIn v_13 = {inputs.FSIn_ssboIndicesVar, inputs.FSIn_localCoordsVar};
- FSOut v_14 = main_inner(v_13);
- main_outputs v_15 = {v_14.sk_FragColor};
- return v_15;
+ FSIn v_12 = {inputs.FSIn_ssboIndicesVar, inputs.FSIn_localCoordsVar};
+ FSOut v_13 = main_inner(v_12);
+ main_outputs v_14 = {v_13.sk_FragColor};
+ return v_14;
}
diff --git a/test/tint/bug/tint/379684039-2.wgsl b/test/tint/bug/tint/379684039-2.wgsl
new file mode 100644
index 0000000..1de2b8f
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl
@@ -0,0 +1,19 @@
+var<private> idx: u32;
+
+struct FSUniformData {
+ k: array<vec4f, 7>,
+ size: vec2i,
+}
+struct FSUniforms {
+ fsUniformData: array<FSUniformData>,
+}
+
+@group(0) @binding(2) var<storage, read> _storage : FSUniforms;
+fn main() {
+ var vec: vec2<i32> = vec2<i32>(0);
+ loop {
+ if vec.y >= _storage.fsUniformData[idx].size.y {
+ break;
+ }
+ }
+}
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/379684039-2.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..7f222be
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.dxc.hlsl
@@ -0,0 +1,17 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+ return;
+}
+
+static uint idx = 0u;
+
+ByteAddressBuffer _storage : register(t2);
+
+void main() {
+ int2 vec = (0).xx;
+ while (true) {
+ if ((vec.y >= asint(_storage.Load((((128u * idx) + 112u) + 4u))))) {
+ break;
+ }
+ }
+}
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/379684039-2.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..7f222be
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.fxc.hlsl
@@ -0,0 +1,17 @@
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+ return;
+}
+
+static uint idx = 0u;
+
+ByteAddressBuffer _storage : register(t2);
+
+void main() {
+ int2 vec = (0).xx;
+ while (true) {
+ if ((vec.y >= asint(_storage.Load((((128u * idx) + 112u) + 4u))))) {
+ break;
+ }
+ }
+}
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.glsl b/test/tint/bug/tint/379684039-2.wgsl.expected.glsl
new file mode 100644
index 0000000..ee77df7
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.glsl
@@ -0,0 +1,33 @@
+#version 310 es
+
+
+struct FSUniformData {
+ vec4 k[7];
+ ivec2 size;
+ uint tint_pad_0;
+ uint tint_pad_1;
+};
+
+uint idx = 0u;
+layout(binding = 2, std430)
+buffer FSUniforms_1_ssbo {
+ FSUniformData fsUniformData[];
+} _storage;
+void tint_symbol() {
+ ivec2 vec = ivec2(0);
+ {
+ while(true) {
+ int v = vec.y;
+ uint v_1 = idx;
+ if ((v >= _storage.fsUniformData[v_1].size.y)) {
+ break;
+ }
+ {
+ }
+ continue;
+ }
+ }
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+}
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/379684039-2.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..6f322dc
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,21 @@
+
+static uint idx = 0u;
+ByteAddressBuffer _storage : register(t2);
+void main() {
+ int2 vec = (int(0)).xx;
+ {
+ while(true) {
+ if ((vec.y >= asint(_storage.Load((116u + (idx * 128u)))))) {
+ break;
+ }
+ {
+ }
+ continue;
+ }
+ }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/379684039-2.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..6f322dc
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,21 @@
+
+static uint idx = 0u;
+ByteAddressBuffer _storage : register(t2);
+void main() {
+ int2 vec = (int(0)).xx;
+ {
+ while(true) {
+ if ((vec.y >= asint(_storage.Load((116u + (idx * 128u)))))) {
+ break;
+ }
+ {
+ }
+ continue;
+ }
+ }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.ir.msl b/test/tint/bug/tint/379684039-2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6dac66b
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.ir.msl
@@ -0,0 +1,46 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct FSUniformData {
+ tint_array<float4, 7> k;
+ int2 size;
+};
+
+struct FSUniforms {
+ tint_array<FSUniformData, 1> fsUniformData;
+};
+
+struct tint_module_vars_struct {
+ thread uint* idx;
+ const device FSUniforms* _storage;
+};
+
+#define TINT_ISOLATE_UB(VOLATILE_NAME) \
+ {volatile bool VOLATILE_NAME = false; if (VOLATILE_NAME) break;}
+
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+ int2 tint_symbol_1 = int2(0);
+ {
+ while(true) {
+ TINT_ISOLATE_UB(tint_volatile_false)
+ if ((tint_symbol_1[1u] >= (*tint_module_vars._storage).fsUniformData[(*tint_module_vars.idx)].size[1u])) {
+ break;
+ }
+ {
+ }
+ continue;
+ }
+ }
+}
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.msl b/test/tint/bug/tint/379684039-2.wgsl.expected.msl
new file mode 100644
index 0000000..8f868b9
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.msl
@@ -0,0 +1,43 @@
+#include <metal_stdlib>
+
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+#define TINT_ISOLATE_UB(VOLATILE_NAME) \
+ {volatile bool VOLATILE_NAME = false; if (VOLATILE_NAME) break;}
+
+struct tint_private_vars_struct {
+ uint idx;
+};
+
+struct FSUniformData {
+ /* 0x0000 */ tint_array<float4, 7> k;
+ /* 0x0070 */ int2 size;
+ /* 0x0078 */ tint_array<int8_t, 8> tint_pad;
+};
+
+struct FSUniforms {
+ /* 0x0000 */ tint_array<FSUniformData, 1> fsUniformData;
+};
+
+void tint_symbol(thread tint_private_vars_struct* const tint_private_vars, const device FSUniforms* const tint_symbol_2) {
+ int2 tint_symbol_1 = int2(0);
+ while(true) {
+ TINT_ISOLATE_UB(tint_volatile_false);
+ if ((tint_symbol_1[1] >= (*(tint_symbol_2)).fsUniformData[(*(tint_private_vars)).idx].size[1])) {
+ break;
+ }
+ }
+}
+
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.spvasm b/test/tint/bug/tint/379684039-2.wgsl.expected.spvasm
new file mode 100644
index 0000000..2c6614e
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
+ OpExecutionMode %unused_entry_point LocalSize 1 1 1
+ OpName %idx "idx"
+ OpMemberName %FSUniformData 0 "k"
+ OpMemberName %FSUniformData 1 "size"
+ OpName %FSUniformData "FSUniformData"
+ OpMemberName %FSUniforms 0 "fsUniformData"
+ OpName %FSUniforms "FSUniforms"
+ OpName %_storage "_storage"
+ OpName %main "main"
+ OpName %vec "vec"
+ OpName %unused_entry_point "unused_entry_point"
+ OpDecorate %_arr_v4float_uint_7 ArrayStride 16
+ OpMemberDecorate %FSUniformData 0 Offset 0
+ OpMemberDecorate %FSUniformData 1 Offset 112
+ OpDecorate %_runtimearr_FSUniformData ArrayStride 128
+ OpMemberDecorate %FSUniforms 0 Offset 0
+ OpDecorate %FSUniforms Block
+ OpDecorate %_storage DescriptorSet 0
+ OpDecorate %_storage Binding 2
+ OpDecorate %_storage NonWritable
+ %uint = OpTypeInt 32 0
+%_ptr_Private_uint = OpTypePointer Private %uint
+ %4 = OpConstantNull %uint
+ %idx = OpVariable %_ptr_Private_uint Private %4
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+ %uint_7 = OpConstant %uint 7
+%_arr_v4float_uint_7 = OpTypeArray %v4float %uint_7
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+%FSUniformData = OpTypeStruct %_arr_v4float_uint_7 %v2int
+%_runtimearr_FSUniformData = OpTypeRuntimeArray %FSUniformData
+ %FSUniforms = OpTypeStruct %_runtimearr_FSUniformData
+%_ptr_StorageBuffer_FSUniforms = OpTypePointer StorageBuffer %FSUniforms
+ %_storage = OpVariable %_ptr_StorageBuffer_FSUniforms StorageBuffer
+ %void = OpTypeVoid
+ %18 = OpTypeFunction %void
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer_v2int = OpTypePointer StorageBuffer %v2int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+ %bool = OpTypeBool
+ %main = OpFunction %void None %18
+ %19 = OpLabel
+ %vec = OpVariable %_ptr_Function_v2int Function
+ OpStore %vec %22
+ OpBranch %25
+ %25 = OpLabel
+ OpLoopMerge %26 %24 None
+ OpBranch %23
+ %23 = OpLabel
+ %27 = OpAccessChain %_ptr_Function_int %vec %uint_1
+ %30 = OpLoad %int %27 None
+ %31 = OpLoad %uint %idx None
+ %32 = OpAccessChain %_ptr_StorageBuffer_v2int %_storage %uint_0 %31 %uint_1
+ %35 = OpAccessChain %_ptr_StorageBuffer_int %32 %uint_1
+ %37 = OpLoad %int %35 None
+ %38 = OpSGreaterThanEqual %bool %30 %37
+ OpSelectionMerge %40 None
+ OpBranchConditional %38 %41 %40
+ %41 = OpLabel
+ OpBranch %26
+ %40 = OpLabel
+ OpBranch %24
+ %24 = OpLabel
+ OpBranch %25
+ %26 = OpLabel
+ OpReturn
+ OpFunctionEnd
+%unused_entry_point = OpFunction %void None %18
+ %43 = OpLabel
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/bug/tint/379684039-2.wgsl.expected.wgsl b/test/tint/bug/tint/379684039-2.wgsl.expected.wgsl
new file mode 100644
index 0000000..ce7c06a
--- /dev/null
+++ b/test/tint/bug/tint/379684039-2.wgsl.expected.wgsl
@@ -0,0 +1,21 @@
+var<private> idx : u32;
+
+struct FSUniformData {
+ k : array<vec4f, 7>,
+ size : vec2i,
+}
+
+struct FSUniforms {
+ fsUniformData : array<FSUniformData>,
+}
+
+@group(0) @binding(2) var<storage, read> _storage : FSUniforms;
+
+fn main() {
+ var vec : vec2<i32> = vec2<i32>(0);
+ loop {
+ if ((vec.y >= _storage.fsUniformData[idx].size.y)) {
+ break;
+ }
+ }
+}
diff --git a/test/tint/bug/tint/534.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/534.wgsl.expected.ir.dxc.hlsl
index 648e3b9..d244ca6 100644
--- a/test/tint/bug/tint/534.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/534.wgsl.expected.ir.dxc.hlsl
@@ -57,9 +57,9 @@
}
uint outputIndex = ((GlobalInvocationID.y * uint(size.x)) + GlobalInvocationID.x);
if (success) {
- output.Store((0u + (uint(outputIndex) * 4u)), 1u);
+ output.Store((0u + (outputIndex * 4u)), 1u);
} else {
- output.Store((0u + (uint(outputIndex) * 4u)), 0u);
+ output.Store((0u + (outputIndex * 4u)), 0u);
}
}
diff --git a/test/tint/bug/tint/534.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/534.wgsl.expected.ir.fxc.hlsl
index 284e962..66b230b 100644
--- a/test/tint/bug/tint/534.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/534.wgsl.expected.ir.fxc.hlsl
@@ -59,9 +59,9 @@
}
uint outputIndex = ((GlobalInvocationID.y * uint(size.x)) + GlobalInvocationID.x);
if (success) {
- output.Store((0u + (uint(outputIndex) * 4u)), 1u);
+ output.Store((0u + (outputIndex * 4u)), 1u);
} else {
- output.Store((0u + (uint(outputIndex) * 4u)), 0u);
+ output.Store((0u + (outputIndex * 4u)), 0u);
}
}
diff --git a/test/tint/bug/tint/744.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/744.wgsl.expected.ir.dxc.hlsl
index b82e738..6bdb246 100644
--- a/test/tint/bug/tint/744.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/744.wgsl.expected.ir.dxc.hlsl
@@ -23,9 +23,7 @@
}
uint a = (i + (resultCell.x * dimInner));
uint b = (resultCell.y + (i * dimOutter));
- uint v = result;
- uint v_1 = firstMatrix.Load((0u + (uint(a) * 4u)));
- result = (v + (v_1 * secondMatrix.Load((0u + (uint(b) * 4u)))));
+ result = (result + (firstMatrix.Load((0u + (a * 4u))) * secondMatrix.Load((0u + (b * 4u)))));
{
i = (i + 1u);
}
@@ -33,8 +31,7 @@
}
}
uint index = (resultCell.y + (resultCell.x * dimOutter));
- uint v_2 = (uint(index) * 4u);
- resultMatrix.Store((0u + v_2), result);
+ resultMatrix.Store((0u + (index * 4u)), result);
}
[numthreads(2, 2, 1)]
diff --git a/test/tint/bug/tint/744.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/744.wgsl.expected.ir.fxc.hlsl
index b82e738..6bdb246 100644
--- a/test/tint/bug/tint/744.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/744.wgsl.expected.ir.fxc.hlsl
@@ -23,9 +23,7 @@
}
uint a = (i + (resultCell.x * dimInner));
uint b = (resultCell.y + (i * dimOutter));
- uint v = result;
- uint v_1 = firstMatrix.Load((0u + (uint(a) * 4u)));
- result = (v + (v_1 * secondMatrix.Load((0u + (uint(b) * 4u)))));
+ result = (result + (firstMatrix.Load((0u + (a * 4u))) * secondMatrix.Load((0u + (b * 4u)))));
{
i = (i + 1u);
}
@@ -33,8 +31,7 @@
}
}
uint index = (resultCell.y + (resultCell.x * dimOutter));
- uint v_2 = (uint(index) * 4u);
- resultMatrix.Store((0u + v_2), result);
+ resultMatrix.Store((0u + (index * 4u)), result);
}
[numthreads(2, 2, 1)]
diff --git a/test/tint/bug/tint/757.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/757.wgsl.expected.ir.dxc.hlsl
index 738bd64..584799b 100644
--- a/test/tint/bug/tint/757.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/757.wgsl.expected.ir.dxc.hlsl
@@ -21,8 +21,7 @@
} else {
break;
}
- uint v_2 = (uint((flatIndex + i)) * 4u);
- result.Store((0u + v_2), asuint(texel.x));
+ result.Store((0u + ((flatIndex + i) * 4u)), asuint(texel.x));
{
i = (i + 1u);
}
diff --git a/test/tint/bug/tint/757.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/757.wgsl.expected.ir.fxc.hlsl
index 738bd64..584799b 100644
--- a/test/tint/bug/tint/757.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/757.wgsl.expected.ir.fxc.hlsl
@@ -21,8 +21,7 @@
} else {
break;
}
- uint v_2 = (uint((flatIndex + i)) * 4u);
- result.Store((0u + v_2), asuint(texel.x));
+ result.Store((0u + ((flatIndex + i) * 4u)), asuint(texel.x));
{
i = (i + 1u);
}
diff --git a/test/tint/bug/tint/827.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/827.wgsl.expected.ir.dxc.hlsl
index 379ded0..8030b09 100644
--- a/test/tint/bug/tint/827.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/827.wgsl.expected.ir.dxc.hlsl
@@ -6,10 +6,9 @@
Texture2D tex : register(t0);
RWByteAddressBuffer result : register(u1);
void main_inner(uint3 GlobalInvocationId) {
- uint v = (uint(((GlobalInvocationId.y * 128u) + GlobalInvocationId.x)) * 4u);
- int v_1 = int(GlobalInvocationId.x);
- int2 v_2 = int2(int2(v_1, int(GlobalInvocationId.y)));
- result.Store((0u + v), asuint(tex.Load(int3(v_2, int(int(0)))).x));
+ int v = int(GlobalInvocationId.x);
+ int2 v_1 = int2(int2(v, int(GlobalInvocationId.y)));
+ result.Store((0u + (((GlobalInvocationId.y * 128u) + GlobalInvocationId.x) * 4u)), asuint(tex.Load(int3(v_1, int(int(0)))).x));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/bug/tint/827.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/827.wgsl.expected.ir.fxc.hlsl
index 379ded0..8030b09 100644
--- a/test/tint/bug/tint/827.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/827.wgsl.expected.ir.fxc.hlsl
@@ -6,10 +6,9 @@
Texture2D tex : register(t0);
RWByteAddressBuffer result : register(u1);
void main_inner(uint3 GlobalInvocationId) {
- uint v = (uint(((GlobalInvocationId.y * 128u) + GlobalInvocationId.x)) * 4u);
- int v_1 = int(GlobalInvocationId.x);
- int2 v_2 = int2(int2(v_1, int(GlobalInvocationId.y)));
- result.Store((0u + v), asuint(tex.Load(int3(v_2, int(int(0)))).x));
+ int v = int(GlobalInvocationId.x);
+ int2 v_1 = int2(int2(v, int(GlobalInvocationId.y)));
+ result.Store((0u + (((GlobalInvocationId.y * 128u) + GlobalInvocationId.x) * 4u)), asuint(tex.Load(int3(v_1, int(int(0)))).x));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/bug/tint/913.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/913.wgsl.expected.ir.dxc.hlsl
index f2dfb96..7100aeb 100644
--- a/test/tint/bug/tint/913.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/913.wgsl.expected.ir.dxc.hlsl
@@ -103,9 +103,9 @@
}
uint outputIndex = ((GlobalInvocationID.y * dstSize.x) + GlobalInvocationID.x);
if (success) {
- output.Store((0u + (uint(outputIndex) * 4u)), 1u);
+ output.Store((0u + (outputIndex * 4u)), 1u);
} else {
- output.Store((0u + (uint(outputIndex) * 4u)), 0u);
+ output.Store((0u + (outputIndex * 4u)), 0u);
}
}
diff --git a/test/tint/bug/tint/913.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/913.wgsl.expected.ir.fxc.hlsl
index f2dfb96..7100aeb 100644
--- a/test/tint/bug/tint/913.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/913.wgsl.expected.ir.fxc.hlsl
@@ -103,9 +103,9 @@
}
uint outputIndex = ((GlobalInvocationID.y * dstSize.x) + GlobalInvocationID.x);
if (success) {
- output.Store((0u + (uint(outputIndex) * 4u)), 1u);
+ output.Store((0u + (outputIndex * 4u)), 1u);
} else {
- output.Store((0u + (uint(outputIndex) * 4u)), 0u);
+ output.Store((0u + (outputIndex * 4u)), 0u);
}
}
diff --git a/test/tint/bug/tint/914.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/914.wgsl.expected.ir.dxc.hlsl
index f6e006c..d1d7ff9 100644
--- a/test/tint/bug/tint/914.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/914.wgsl.expected.ir.dxc.hlsl
@@ -21,7 +21,7 @@
v = false;
}
if (v) {
- float result = asfloat(firstMatrix.Load((0u + (uint(((row * uniforms[0u].y) + col)) * 4u))));
+ float result = asfloat(firstMatrix.Load((0u + (((row * uniforms[0u].y) + col) * 4u))));
return result;
}
return 0.0f;
@@ -35,7 +35,7 @@
v_1 = false;
}
if (v_1) {
- float result = asfloat(secondMatrix.Load((0u + (uint(((row * uniforms[0u].z) + col)) * 4u))));
+ float result = asfloat(secondMatrix.Load((0u + (((row * uniforms[0u].z) + col) * 4u))));
return result;
}
return 0.0f;
@@ -50,7 +50,7 @@
}
if (v_2) {
uint index = (col + (row * uniforms[0u].z));
- resultMatrix.Store((0u + (uint(index) * 4u)), asuint(value));
+ resultMatrix.Store((0u + (index * 4u)), asuint(value));
}
}
diff --git a/test/tint/bug/tint/914.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/914.wgsl.expected.ir.fxc.hlsl
index f6e006c..d1d7ff9 100644
--- a/test/tint/bug/tint/914.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/914.wgsl.expected.ir.fxc.hlsl
@@ -21,7 +21,7 @@
v = false;
}
if (v) {
- float result = asfloat(firstMatrix.Load((0u + (uint(((row * uniforms[0u].y) + col)) * 4u))));
+ float result = asfloat(firstMatrix.Load((0u + (((row * uniforms[0u].y) + col) * 4u))));
return result;
}
return 0.0f;
@@ -35,7 +35,7 @@
v_1 = false;
}
if (v_1) {
- float result = asfloat(secondMatrix.Load((0u + (uint(((row * uniforms[0u].z) + col)) * 4u))));
+ float result = asfloat(secondMatrix.Load((0u + (((row * uniforms[0u].z) + col) * 4u))));
return result;
}
return 0.0f;
@@ -50,7 +50,7 @@
}
if (v_2) {
uint index = (col + (row * uniforms[0u].z));
- resultMatrix.Store((0u + (uint(index) * 4u)), asuint(value));
+ resultMatrix.Store((0u + (index * 4u)), asuint(value));
}
}
diff --git a/test/tint/bug/tint/993.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/993.wgsl.expected.ir.dxc.hlsl
index 4a9726d..f5cf4d4 100644
--- a/test/tint/bug/tint/993.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/993.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
RWByteAddressBuffer s : register(u0);
int runTest() {
int v = int(0);
- s.InterlockedOr(int((0u + (uint((0u + uint(constants[0u].x))) * 4u))), int(0), v);
+ s.InterlockedOr(int((0u + ((0u + uint(constants[0u].x)) * 4u))), int(0), v);
return v;
}
diff --git a/test/tint/bug/tint/993.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/993.wgsl.expected.ir.fxc.hlsl
index 4a9726d..f5cf4d4 100644
--- a/test/tint/bug/tint/993.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/993.wgsl.expected.ir.fxc.hlsl
@@ -6,7 +6,7 @@
RWByteAddressBuffer s : register(u0);
int runTest() {
int v = int(0);
- s.InterlockedOr(int((0u + (uint((0u + uint(constants[0u].x))) * 4u))), int(0), v);
+ s.InterlockedOr(int((0u + ((0u + uint(constants[0u].x)) * 4u))), int(0), v);
return v;
}
diff --git a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 38fdfdf..9b159eb 100644
--- a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -10,7 +10,7 @@
}
str func(uint pointer_indices[1]) {
- str v_2 = v((0u + (uint(pointer_indices[0u]) * 4u)));
+ str v_2 = v((0u + (pointer_indices[0u] * 4u)));
return v_2;
}
diff --git a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 38fdfdf..9b159eb 100644
--- a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -10,7 +10,7 @@
}
str func(uint pointer_indices[1]) {
- str v_2 = v((0u + (uint(pointer_indices[0u]) * 4u)));
+ str v_2 = v((0u + (pointer_indices[0u] * 4u)));
return v_2;
}
diff --git a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 7c51992..cfb8784 100644
--- a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,7 @@
ByteAddressBuffer S : register(t0);
float2 func(uint pointer_indices[1]) {
- return asfloat(S.Load2((0u + (uint(pointer_indices[0u]) * 8u))));
+ return asfloat(S.Load2((0u + (pointer_indices[0u] * 8u))));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 7c51992..cfb8784 100644
--- a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
ByteAddressBuffer S : register(t0);
float2 func(uint pointer_indices[1]) {
- return asfloat(S.Load2((0u + (uint(pointer_indices[0u]) * 8u))));
+ return asfloat(S.Load2((0u + (pointer_indices[0u] * 8u))));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index d102c40..daafc36 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,7 @@
ByteAddressBuffer S : register(t0);
float4 func(uint pointer_indices[1]) {
- return asfloat(S.Load4((0u + (uint(pointer_indices[0u]) * 16u))));
+ return asfloat(S.Load4((0u + (pointer_indices[0u] * 16u))));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index d102c40..daafc36 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
ByteAddressBuffer S : register(t0);
float4 func(uint pointer_indices[1]) {
- return asfloat(S.Load4((0u + (uint(pointer_indices[0u]) * 16u))));
+ return asfloat(S.Load4((0u + (pointer_indices[0u] * 16u))));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6eca4ed..9be45eb 100644
--- a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -10,7 +10,7 @@
void func(uint pointer_indices[1]) {
str v_1 = (str)0;
- v((0u + (uint(pointer_indices[0u]) * 4u)), v_1);
+ v((0u + (pointer_indices[0u] * 4u)), v_1);
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6eca4ed..9be45eb 100644
--- a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -10,7 +10,7 @@
void func(uint pointer_indices[1]) {
str v_1 = (str)0;
- v((0u + (uint(pointer_indices[0u]) * 4u)), v_1);
+ v((0u + (pointer_indices[0u] * 4u)), v_1);
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 104d2da..91a2ae9 100644
--- a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,7 @@
RWByteAddressBuffer S : register(u0);
void func(uint pointer_indices[1]) {
- S.Store2((0u + (uint(pointer_indices[0u]) * 8u)), asuint((0.0f).xx));
+ S.Store2((0u + (pointer_indices[0u] * 8u)), asuint((0.0f).xx));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 104d2da..91a2ae9 100644
--- a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
RWByteAddressBuffer S : register(u0);
void func(uint pointer_indices[1]) {
- S.Store2((0u + (uint(pointer_indices[0u]) * 8u)), asuint((0.0f).xx));
+ S.Store2((0u + (pointer_indices[0u] * 8u)), asuint((0.0f).xx));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 114277b..0318dcc 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,7 @@
RWByteAddressBuffer S : register(u0);
void func(uint pointer_indices[1]) {
- S.Store4((0u + (uint(pointer_indices[0u]) * 16u)), asuint((0.0f).xxxx));
+ S.Store4((0u + (pointer_indices[0u] * 16u)), asuint((0.0f).xxxx));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 114277b..0318dcc 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
RWByteAddressBuffer S : register(u0);
void func(uint pointer_indices[1]) {
- S.Store4((0u + (uint(pointer_indices[0u]) * 16u)), asuint((0.0f).xxxx));
+ S.Store4((0u + (pointer_indices[0u] * 16u)), asuint((0.0f).xxxx));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/samples/compute_boids.wgsl.expected.ir.dxc.hlsl b/test/tint/samples/compute_boids.wgsl.expected.ir.dxc.hlsl
index a9909fb..90ba35a 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.ir.dxc.hlsl
@@ -37,8 +37,8 @@
if ((index >= 5u)) {
return;
}
- float2 vPos = asfloat(particlesA.Load2((0u + (uint(index) * 16u))));
- float2 vVel = asfloat(particlesA.Load2((8u + (uint(index) * 16u))));
+ float2 vPos = asfloat(particlesA.Load2((0u + (index * 16u))));
+ float2 vVel = asfloat(particlesA.Load2((8u + (index * 16u))));
float2 cMass = (0.0f).xx;
float2 cVel = (0.0f).xx;
float2 colVel = (0.0f).xx;
@@ -59,8 +59,8 @@
}
continue;
}
- pos = asfloat(particlesA.Load2((0u + (uint(i) * 16u)))).xy;
- vel = asfloat(particlesA.Load2((8u + (uint(i) * 16u)))).xy;
+ pos = asfloat(particlesA.Load2((0u + (i * 16u)))).xy;
+ vel = asfloat(particlesA.Load2((8u + (i * 16u)))).xy;
if ((distance(pos, vPos) < asfloat(params[0u].y))) {
cMass = (cMass + pos);
cMassCount = (cMassCount + int(1));
@@ -104,20 +104,18 @@
if ((vPos.y > 1.0f)) {
vPos.y = -1.0f;
}
- uint v_5 = (uint(index) * 16u);
- particlesB.Store2((0u + v_5), asuint(vPos));
- uint v_6 = (uint(index) * 16u);
- particlesB.Store2((8u + v_6), asuint(vVel));
+ particlesB.Store2((0u + (index * 16u)), asuint(vPos));
+ particlesB.Store2((8u + (index * 16u)), asuint(vVel));
}
vert_main_outputs vert_main(vert_main_inputs inputs) {
- vert_main_outputs v_7 = {vert_main_inner(inputs.a_particlePos, inputs.a_particleVel, inputs.a_pos)};
- return v_7;
+ vert_main_outputs v_5 = {vert_main_inner(inputs.a_particlePos, inputs.a_particleVel, inputs.a_pos)};
+ return v_5;
}
frag_main_outputs frag_main() {
- frag_main_outputs v_8 = {frag_main_inner()};
- return v_8;
+ frag_main_outputs v_6 = {frag_main_inner()};
+ return v_6;
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/samples/compute_boids.wgsl.expected.ir.fxc.hlsl b/test/tint/samples/compute_boids.wgsl.expected.ir.fxc.hlsl
index a9909fb..90ba35a 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.ir.fxc.hlsl
@@ -37,8 +37,8 @@
if ((index >= 5u)) {
return;
}
- float2 vPos = asfloat(particlesA.Load2((0u + (uint(index) * 16u))));
- float2 vVel = asfloat(particlesA.Load2((8u + (uint(index) * 16u))));
+ float2 vPos = asfloat(particlesA.Load2((0u + (index * 16u))));
+ float2 vVel = asfloat(particlesA.Load2((8u + (index * 16u))));
float2 cMass = (0.0f).xx;
float2 cVel = (0.0f).xx;
float2 colVel = (0.0f).xx;
@@ -59,8 +59,8 @@
}
continue;
}
- pos = asfloat(particlesA.Load2((0u + (uint(i) * 16u)))).xy;
- vel = asfloat(particlesA.Load2((8u + (uint(i) * 16u)))).xy;
+ pos = asfloat(particlesA.Load2((0u + (i * 16u)))).xy;
+ vel = asfloat(particlesA.Load2((8u + (i * 16u)))).xy;
if ((distance(pos, vPos) < asfloat(params[0u].y))) {
cMass = (cMass + pos);
cMassCount = (cMassCount + int(1));
@@ -104,20 +104,18 @@
if ((vPos.y > 1.0f)) {
vPos.y = -1.0f;
}
- uint v_5 = (uint(index) * 16u);
- particlesB.Store2((0u + v_5), asuint(vPos));
- uint v_6 = (uint(index) * 16u);
- particlesB.Store2((8u + v_6), asuint(vVel));
+ particlesB.Store2((0u + (index * 16u)), asuint(vPos));
+ particlesB.Store2((8u + (index * 16u)), asuint(vVel));
}
vert_main_outputs vert_main(vert_main_inputs inputs) {
- vert_main_outputs v_7 = {vert_main_inner(inputs.a_particlePos, inputs.a_particleVel, inputs.a_pos)};
- return v_7;
+ vert_main_outputs v_5 = {vert_main_inner(inputs.a_particlePos, inputs.a_particleVel, inputs.a_pos)};
+ return v_5;
}
frag_main_outputs frag_main() {
- frag_main_outputs v_8 = {frag_main_inner()};
- return v_8;
+ frag_main_outputs v_6 = {frag_main_inner()};
+ return v_6;
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.dxc.hlsl
index b1bb6bb..5aa8396 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.dxc.hlsl
@@ -14,8 +14,7 @@
[numthreads(1, 1, 1)]
void main() {
InnerS v = (InnerS)0;
- uint v_2 = (uint(uniforms[0u].x) * 4u);
- InnerS v_3 = v;
- v_1((0u + v_2), v_3);
+ InnerS v_2 = v;
+ v_1((0u + (uniforms[0u].x * 4u)), v_2);
}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.fxc.hlsl
index b1bb6bb..5aa8396 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.fxc.hlsl
@@ -14,8 +14,7 @@
[numthreads(1, 1, 1)]
void main() {
InnerS v = (InnerS)0;
- uint v_2 = (uint(uniforms[0u].x) * 4u);
- InnerS v_3 = v;
- v_1((0u + v_2), v_3);
+ InnerS v_2 = v;
+ v_1((0u + (uniforms[0u].x * 4u)), v_2);
}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.dxc.hlsl
index 3583560..6af205b 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.dxc.hlsl
@@ -14,10 +14,7 @@
[numthreads(1, 1, 1)]
void main() {
InnerS v = (InnerS)0;
- uint v_2 = uniforms[0u].y;
- uint v_3 = (uint(uniforms[0u].x) * 32u);
- uint v_4 = (uint(v_2) * 4u);
- InnerS v_5 = v;
- v_1(((0u + v_3) + v_4), v_5);
+ InnerS v_2 = v;
+ v_1(((0u + (uniforms[0u].x * 32u)) + (uniforms[0u].y * 4u)), v_2);
}
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.fxc.hlsl
index 3583560..6af205b 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.fxc.hlsl
@@ -14,10 +14,7 @@
[numthreads(1, 1, 1)]
void main() {
InnerS v = (InnerS)0;
- uint v_2 = uniforms[0u].y;
- uint v_3 = (uint(uniforms[0u].x) * 32u);
- uint v_4 = (uint(v_2) * 4u);
- InnerS v_5 = v;
- v_1(((0u + v_3) + v_4), v_5);
+ InnerS v_2 = v;
+ v_1(((0u + (uniforms[0u].x * 32u)) + (uniforms[0u].y * 4u)), v_2);
}
diff --git a/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
index bc15bbd..c6004cc 100644
--- a/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,7 @@
RWByteAddressBuffer output : register(u0);
void main_inner(uint subgroup_invocation_id, uint subgroup_size) {
- output.Store((0u + (uint(subgroup_invocation_id) * 4u)), subgroup_size);
+ output.Store((0u + (subgroup_invocation_id * 4u)), subgroup_size);
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
index 08784ba..3ac97da 100644
--- a/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
RWByteAddressBuffer output : register(u0);
void main_inner(ComputeInputs inputs) {
- output.Store((0u + (uint(inputs.subgroup_invocation_id) * 4u)), inputs.subgroup_size);
+ output.Store((0u + (inputs.subgroup_invocation_id * 4u)), inputs.subgroup_size);
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/types/functions/shader_io/fragment_subgroup_builtins.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
index 2deb010..c3a47ea 100644
--- a/test/tint/types/functions/shader_io/fragment_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,7 @@
RWByteAddressBuffer output : register(u0);
void main_inner(uint subgroup_invocation_id, uint subgroup_size) {
- output.Store((0u + (uint(subgroup_invocation_id) * 4u)), subgroup_size);
+ output.Store((0u + (subgroup_invocation_id * 4u)), subgroup_size);
}
void main() {
diff --git a/test/tint/types/functions/shader_io/fragment_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
index ad0d324..22272af 100644
--- a/test/tint/types/functions/shader_io/fragment_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
@@ -6,7 +6,7 @@
RWByteAddressBuffer output : register(u0);
void main_inner(FragmentInputs inputs) {
- output.Store((0u + (uint(inputs.subgroup_invocation_id) * 4u)), inputs.subgroup_size);
+ output.Store((0u + (inputs.subgroup_invocation_id * 4u)), inputs.subgroup_size);
}
void main() {