Skip to content

Commit 83a28db

Browse files
committed
[lit] [SPIRV] convert validation test to lit FileCheck test.
-fgcl without -Vd will get same result as setBeforeHLSLLegalization. No validation will be translated into -Vd.
1 parent 4dc3979 commit 83a28db

File tree

43 files changed

+596
-596
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+596
-596
lines changed

tools/clang/test/CodeGenSPIRV_Lit/cs.groupshared.function-param.hlsl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -T cs_6_0 -E main
1+
// RUN: %dxc -T cs_6_0 -E main -fcgl %s -spirv | FileCheck %s
22

33
// CHECK: %A = OpVariable %_ptr_Uniform_type_RWStructuredBuffer_int Uniform
44
RWStructuredBuffer<int> A;
@@ -28,16 +28,16 @@ void main() {
2828
// CHECK-NEXT: %param_var_v = OpVariable %_ptr_Function_int Function
2929

3030

31-
// CHECK: [[A:%\d+]] = OpLoad %int {{%\d+}}
31+
// CHECK: [[A:%[0-9]+]] = OpLoad %int {{%[0-9]+}}
3232
// CHECK-NEXT: OpStore %param_var_x [[A]]
33-
// CHECK-NEXT: [[B:%\d+]] = OpLoad %int %B
33+
// CHECK-NEXT: [[B:%[0-9]+]] = OpLoad %int %B
3434
// CHECK-NEXT: OpStore %param_var_y [[B]]
35-
// CHECK-NEXT: [[C:%\d+]] = OpLoad %int %C
35+
// CHECK-NEXT: [[C:%[0-9]+]] = OpLoad %int %C
3636
// CHECK-NEXT: OpStore %param_var_z [[C]]
37-
// CHECK-NEXT: [[D:%\d+]] = OpLoad %_arr_int_uint_10 %D
37+
// CHECK-NEXT: [[D:%[0-9]+]] = OpLoad %_arr_int_uint_10 %D
3838
// CHECK-NEXT: OpStore %param_var_w [[D]]
39-
// CHECK-NEXT: [[E:%\d+]] = OpLoad %int %E
39+
// CHECK-NEXT: [[E:%[0-9]+]] = OpLoad %int %E
4040
// CHECK-NEXT: OpStore %param_var_v [[E]]
41-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %int %foo %param_var_x %param_var_y %param_var_z %param_var_w %param_var_v
41+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %int %foo %param_var_x %param_var_y %param_var_z %param_var_w %param_var_v
4242
A[0] = foo(A[0], B, C, D, E);
4343
}

tools/clang/test/CodeGenSPIRV_Lit/cs.groupshared.function-param.out.hlsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -T cs_6_0 -E main
1+
// RUN: %dxc -T cs_6_0 -E main -fcgl %s -spirv | FileCheck %s
22

33
struct S {
44
int a;
@@ -30,8 +30,8 @@ void main() {
3030
// CHECK: %E = OpVariable %_ptr_Function_int Function
3131
int E;
3232

33-
// CHECK: [[A:%\d+]] = OpAccessChain %_ptr_Uniform_int %A %int_0 %uint_0
34-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %foo [[A]] %B %C %D %E
33+
// CHECK: [[A:%[0-9]+]] = OpAccessChain %_ptr_Uniform_int %A %int_0 %uint_0
34+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %foo [[A]] %B %C %D %E
3535
foo(A[0], B, C, D, E);
3636
A[0] = A[0] | B | C | D.a | E;
3737
}

tools/clang/test/CodeGenSPIRV_Lit/cs.groupshared.struct-function.hlsl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -T cs_6_0 -E main
1+
// RUN: %dxc -T cs_6_0 -E main -fcgl %s -spirv | FileCheck %s
22

33
struct S {
44
int a;
@@ -33,15 +33,15 @@ void main() {
3333
// CHECK: %param_var_x = OpVariable %_ptr_Function_S Function
3434
// CHECK: %param_var_w = OpVariable %_ptr_Function_S Function
3535

36-
// CHECK: [[A:%\d+]] = OpAccessChain %_ptr_Uniform_S_0 %A %int_0 %uint_0
37-
// CHECK-NEXT: [[A_0:%\d+]] = OpLoad %S_0 [[A]]
38-
// CHECK-NEXT: [[a:%\d+]] = OpCompositeExtract %int [[A_0]] 0
39-
// CHECK-NEXT: [[b:%\d+]] = OpCompositeExtract %float [[A_0]] 1
40-
// CHECK-NEXT: [[A_0:%\d+]] = OpCompositeConstruct %S [[a]] [[b]]
41-
// CHECK-NEXT: OpStore %param_var_x [[A_0]]
42-
// CHECK-NEXT: [[E:%\d+]] = OpLoad %S %E
36+
// CHECK: [[A:%[0-9]+]] = OpAccessChain %_ptr_Uniform_S_0 %A %int_0 %uint_0
37+
// CHECK-NEXT: [[A_0:%[0-9]+]] = OpLoad %S_0 [[A]]
38+
// CHECK-NEXT: [[a:%[0-9]+]] = OpCompositeExtract %int [[A_0]] 0
39+
// CHECK-NEXT: [[b:%[0-9]+]] = OpCompositeExtract %float [[A_0]] 1
40+
// CHECK-NEXT: [[A_1:%[0-9]+]] = OpCompositeConstruct %S [[a]] [[b]]
41+
// CHECK-NEXT: OpStore %param_var_x [[A_1]]
42+
// CHECK-NEXT: [[E:%[0-9]+]] = OpLoad %S %E
4343
// CHECK-NEXT: OpStore %param_var_w [[E]]
44-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %S_foo %D %param_var_x %B %C %param_var_w
44+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %S_foo %D %param_var_x %B %C %param_var_w
4545
D.foo(A[0], B, C, E);
4646

4747
A[0].a = A[0].a | B.a | C.a | D.a;

tools/clang/test/CodeGenSPIRV_Lit/decoration.no-contraction.hlsl

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -T ps_6_0 -E main
1+
// RUN: %dxc -T ps_6_0 -E main -fcgl %s -spirv | FileCheck %s
22

33
float func(float e, float f, float g, float h);
44
float func2(float e, float f, float g, float h);
@@ -7,37 +7,37 @@ float func4(float i, float j, precise out float k);
77

88
// The purpose of this to make sure the first NoContraction decoration is on a_mul_b.
99
// CHECK: OpName %bb_entry_3
10-
// CHECK-NEXT: OpDecorate [[a_mul_b:%\d+]] NoContraction
11-
// CHECK-NEXT: OpDecorate [[c_mul_d:%\d+]] NoContraction
12-
// CHECK-NEXT: OpDecorate [[r_plus_s:%\d+]] NoContraction
13-
// CHECK-NEXT: OpDecorate [[aw_mul_bw:%\d+]] NoContraction
14-
// CHECK-NEXT: OpDecorate [[cw_mul_dw:%\d+]] NoContraction
15-
// CHECK-NEXT: OpDecorate [[awbw_plus_cwdw:%\d+]] NoContraction
16-
// CHECK-NEXT: OpDecorate [[func2_e_mul_f:%\d+]] NoContraction
17-
// CHECK-NEXT: OpDecorate [[func2_g_mul_h:%\d+]] NoContraction
18-
// CHECK-NEXT: OpDecorate [[func2_ef_plus_gh:%\d+]] NoContraction
19-
// CHECK-NEXT: OpDecorate [[func3_e_mul_f:%\d+]] NoContraction
20-
// CHECK-NEXT: OpDecorate [[func3_g_mul_h:%\d+]] NoContraction
21-
// CHECK-NEXT: OpDecorate [[func3_ef_plus_gh:%\d+]] NoContraction
22-
// CHECK-NEXT: OpDecorate [[func4_i_mul_i:%\d+]] NoContraction
23-
// CHECK-NEXT: OpDecorate [[func4_ii_plus_j:%\d+]] NoContraction
10+
// CHECK-NEXT: OpDecorate [[a_mul_b:%[0-9]+]] NoContraction
11+
// CHECK-NEXT: OpDecorate [[c_mul_d:%[0-9]+]] NoContraction
12+
// CHECK-NEXT: OpDecorate [[r_plus_s:%[0-9]+]] NoContraction
13+
// CHECK-NEXT: OpDecorate [[aw_mul_bw:%[0-9]+]] NoContraction
14+
// CHECK-NEXT: OpDecorate [[cw_mul_dw:%[0-9]+]] NoContraction
15+
// CHECK-NEXT: OpDecorate [[awbw_plus_cwdw:%[0-9]+]] NoContraction
16+
// CHECK-NEXT: OpDecorate [[func2_e_mul_f:%[0-9]+]] NoContraction
17+
// CHECK-NEXT: OpDecorate [[func2_g_mul_h:%[0-9]+]] NoContraction
18+
// CHECK-NEXT: OpDecorate [[func2_ef_plus_gh:%[0-9]+]] NoContraction
19+
// CHECK-NEXT: OpDecorate [[func3_e_mul_f:%[0-9]+]] NoContraction
20+
// CHECK-NEXT: OpDecorate [[func3_g_mul_h:%[0-9]+]] NoContraction
21+
// CHECK-NEXT: OpDecorate [[func3_ef_plus_gh:%[0-9]+]] NoContraction
22+
// CHECK-NEXT: OpDecorate [[func4_i_mul_i:%[0-9]+]] NoContraction
23+
// CHECK-NEXT: OpDecorate [[func4_ii_plus_j:%[0-9]+]] NoContraction
2424

2525
void main() {
2626
float4 a, b, c, d;
2727
precise float4 v;
2828

29-
// CHECK: [[a_mul_b]] = OpFMul %v3float {{%\d+}} {{%\d+}}
29+
// CHECK: [[a_mul_b]] = OpFMul %v3float {{%[0-9]+}} {{%[0-9]+}}
3030
// CHECK-NEXT: OpStore %r [[a_mul_b]]
3131
float3 r = float3((float3)a * (float3)b); // precise, used to compute v.xyz
3232

3333

34-
// CHECK: [[c_mul_d]] = OpFMul %v3float {{%\d+}} {{%\d+}}
34+
// CHECK: [[c_mul_d]] = OpFMul %v3float {{%[0-9]+}} {{%[0-9]+}}
3535
// CHECK-NEXT: OpStore %s [[c_mul_d]]
3636
float3 s = float3((float3)c * (float3)d); // precise, used to compute v.xyz
3737

3838
// CHECK: OpLoad %v3float %r
3939
// CHECK-NEXT: OpLoad %v3float %s
40-
// CHECK-NEXT: [[r_plus_s]] = OpFAdd %v3float {{%\d+}} {{%\d+}}
40+
// CHECK-NEXT: [[r_plus_s]] = OpFAdd %v3float {{%[0-9]+}} {{%[0-9]+}}
4141
v.xyz = r + s; // precise
4242

4343
// CHECK: OpAccessChain %_ptr_Function_float %a %int_3

tools/clang/test/CodeGenSPIRV_Lit/fn.ctbuffer.hlsl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -T ps_6_0 -E main
1+
// RUN: %dxc -T ps_6_0 -E main -fcgl %s -spirv | FileCheck %s
22

33
// %S : generated from struct S, with layout decorations
44
// %S_0: generated from struct S, without layout decorations
@@ -26,17 +26,17 @@ tbuffer MyTBuffer {
2626

2727
float4 main() : SV_Target {
2828
// %S vs %S_0: need destruction and construction
29-
// CHECK: [[tb_s:%\d+]] = OpAccessChain %_ptr_Uniform_S %MyTBuffer %int_1
30-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %v3float %S_get_s_val [[tb_s]]
29+
// CHECK: [[tb_s:%[0-9]+]] = OpAccessChain %_ptr_Uniform_S %MyTBuffer %int_1
30+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %v3float %S_get_s_val [[tb_s]]
3131
return get_cb_val() + float4(tb_s.get_s_val(), 0.) * get_tb_val();
3232
}
3333

34-
// CHECK: %get_cb_val = OpFunction %v4float None {{%\d+}}
35-
// CHECK: {{%\d+}} = OpAccessChain %_ptr_Uniform_v4float %MyCBuffer %int_0
34+
// CHECK: %get_cb_val = OpFunction %v4float None {{%[0-9]+}}
35+
// CHECK: {{%[0-9]+}} = OpAccessChain %_ptr_Uniform_v4float %MyCBuffer %int_0
3636

37-
// CHECK: %S_get_s_val = OpFunction %v3float None {{%\d+}}
37+
// CHECK: %S_get_s_val = OpFunction %v3float None {{%[0-9]+}}
3838
// CHECK-NEXT: %param_this = OpFunctionParameter %_ptr_Function_S_0
39-
// CHECK: {{%\d+}} = OpAccessChain %_ptr_Function_v3float %param_this %int_0
39+
// CHECK: {{%[0-9]+}} = OpAccessChain %_ptr_Function_v3float %param_this %int_0
4040

41-
// CHECK: %get_tb_val = OpFunction %float None {{%\d+}}
42-
// CHECK: {{%\d+}} = OpAccessChain %_ptr_Uniform_float %MyTBuffer %int_0
41+
// CHECK: %get_tb_val = OpFunction %float None {{%[0-9]+}}
42+
// CHECK: {{%[0-9]+}} = OpAccessChain %_ptr_Uniform_float %MyTBuffer %int_0

tools/clang/test/CodeGenSPIRV_Lit/fn.param.inout.global.resource.hlsl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -E main -T ps_6_0 -fspv-target-env=vulkan1.2
1+
// RUN: %dxc -E main -T ps_6_0 -fspv-target-env=vulkan1.2 -fcgl %s -spirv | FileCheck %s
22

33
Texture2D<float4> r0;
44
RWTexture3D<float4> r1;
@@ -36,15 +36,15 @@ float4 main(): SV_Target
3636
// CHECK: %param_var_a7 = OpVariable %_ptr_Function__ptr_StorageBuffer_type_RWStructuredBuffer_v4float Function
3737
// CHECK: %param_var_a8 = OpVariable %_ptr_Function__ptr_StorageBuffer_type_AppendStructuredBuffer_v4float Function
3838

39-
// CHECK: [[r0:%\w+]] = OpLoad %type_2d_image %r0
39+
// CHECK: [[r0:%[a-zA-Z0-9_]+]] = OpLoad %type_2d_image %r0
4040
// CHECK: OpStore %param_var_a0 [[r0]]
41-
// CHECK: [[r1:%\w+]] = OpLoad %type_3d_image %r1
41+
// CHECK: [[r1:%[a-zA-Z0-9_]+]] = OpLoad %type_3d_image %r1
4242
// CHECK: OpStore %param_var_a1 [[r1]]
43-
// CHECK: [[r2:%\w+]] = OpLoad %type_sampler %r2
43+
// CHECK: [[r2:%[a-zA-Z0-9_]+]] = OpLoad %type_sampler %r2
4444
// CHECK: OpStore %param_var_a2 [[r2]]
45-
// CHECK: [[r3:%\w+]] = OpLoad %accelerationStructureNV %r3
45+
// CHECK: [[r3:%[a-zA-Z0-9_]+]] = OpLoad %accelerationStructureNV %r3
4646
// CHECK: OpStore %param_var_a3 [[r3]]
47-
// CHECK: [[r4:%\w+]] = OpLoad %type_buffer_image %r4
47+
// CHECK: [[r4:%[a-zA-Z0-9_]+]] = OpLoad %type_buffer_image %r4
4848
// CHECK: OpStore %param_var_a4 [[r4]]
4949
// CHECK: OpStore %param_var_a5 %r5
5050
// CHECK: OpStore %param_var_a6 %r6

tools/clang/test/CodeGenSPIRV_Lit/fn.param.inout.local.resource.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -E main -T ps_6_0 -fspv-target-env=vulkan1.2
1+
// RUN: %dxc -E main -T ps_6_0 -fspv-target-env=vulkan1.2 -fcgl %s -spirv | FileCheck %s
22

33
Texture2D<float4> r0;
44
RWTexture3D<float4> r1;

tools/clang/test/CodeGenSPIRV_Lit/fn.param.inout.storage-class.hlsl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -T vs_6_0 -E main
1+
// RUN: %dxc -T vs_6_0 -E main -fcgl %s -spirv | FileCheck %s
22

33
RWStructuredBuffer<float> Data;
44

@@ -10,10 +10,10 @@ void foo(in float a, inout float b, out float c) {
1010
void main(float input : INPUT) {
1111
// CHECK: %param_var_a = OpVariable %_ptr_Function_float Function
1212

13-
// CHECK: [[val:%\d+]] = OpLoad %float %input
13+
// CHECK: [[val:%[0-9]+]] = OpLoad %float %input
1414
// CHECK: OpStore %param_var_a [[val]]
15-
// CHECK: [[p0:%\d+]] = OpAccessChain %_ptr_Uniform_float %Data %int_0 %uint_0
16-
// CHECK: [[p1:%\d+]] = OpAccessChain %_ptr_Uniform_float %Data %int_0 %uint_1
15+
// CHECK: [[p0:%[0-9]+]] = OpAccessChain %_ptr_Uniform_float %Data %int_0 %uint_0
16+
// CHECK: [[p1:%[0-9]+]] = OpAccessChain %_ptr_Uniform_float %Data %int_0 %uint_1
1717

1818
// CHECK: OpFunctionCall %void %foo %param_var_a [[p0]] [[p1]]
1919
foo(input, Data[0], Data[1]);

tools/clang/test/CodeGenSPIRV_Lit/fn.param.inout.vector.hlsl

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -T vs_6_0 -E main
1+
// RUN: %dxc -T vs_6_0 -E main -fcgl %s -spirv | FileCheck %s
22

33
RWBuffer<float4> MyRWBuffer;
44
RWTexture2D<float3> MyRWTexture;
@@ -7,36 +7,36 @@ void foo(inout float4 a, out float3 b);
77
void bar(inout float4 x, out float3 y, inout float2 z, out float w);
88

99
float4 main() : C {
10-
// CHECK: {{%\d+}} = OpFunctionCall %void %foo %param_var_a %param_var_b
11-
// CHECK-NEXT: [[a:%\d+]] = OpLoad %v4float %param_var_a
12-
// CHECK-NEXT: [[buf:%\d+]] = OpLoad %type_buffer_image %MyRWBuffer
10+
// CHECK: {{%[0-9]+}} = OpFunctionCall %void %foo %param_var_a %param_var_b
11+
// CHECK-NEXT: [[a:%[0-9]+]] = OpLoad %v4float %param_var_a
12+
// CHECK-NEXT: [[buf:%[0-9]+]] = OpLoad %type_buffer_image %MyRWBuffer
1313
// CHECK-NEXT: OpImageWrite [[buf]] %uint_5 [[a]]
14-
// CHECK-NEXT: [[b:%\d+]] = OpLoad %v3float %param_var_b
15-
// CHECK-NEXT: [[tex:%\d+]] = OpLoad %type_2d_image %MyRWTexture
16-
// CHECK-NEXT: OpImageWrite [[tex]] {{%\d+}} [[b]]
14+
// CHECK-NEXT: [[b:%[0-9]+]] = OpLoad %v3float %param_var_b
15+
// CHECK-NEXT: [[tex:%[0-9]+]] = OpLoad %type_2d_image %MyRWTexture
16+
// CHECK-NEXT: OpImageWrite [[tex]] {{%[0-9]+}} [[b]]
1717
foo(MyRWBuffer[5], MyRWTexture[uint2(6, 7)]);
1818

1919
float4 val;
20-
// CHECK: [[z_ptr:%\d+]] = OpAccessChain %_ptr_Function_float %val %int_2
21-
// CHECK: {{%\d+}} = OpFunctionCall %void %bar %val %param_var_y %param_var_z [[z_ptr]]
22-
// CHECK-NEXT: [[y:%\d+]] = OpLoad %v3float %param_var_y
23-
// CHECK-NEXT: [[old:%\d+]] = OpLoad %v4float %val
20+
// CHECK: [[z_ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_float %val %int_2
21+
// CHECK: {{%[0-9]+}} = OpFunctionCall %void %bar %val %param_var_y %param_var_z [[z_ptr]]
22+
// CHECK-NEXT: [[y:%[0-9]+]] = OpLoad %v3float %param_var_y
23+
// CHECK-NEXT: [[old:%[0-9]+]] = OpLoad %v4float %val
2424
// Write to val.zwx:
2525
// val[2] = out_val[0] => 0 + 4 = 4
2626
// val[3] = out_val[1] => 1 + 4 = 5
2727
// val[0] = out_val[2] => 2 + 4 = 6
2828
// val[1] = val[1] => 1 + 0 = 1
29-
// CHECK-NEXT: [[new:%\d+]] = OpVectorShuffle %v4float [[old]] [[y]] 6 1 4 5
29+
// CHECK-NEXT: [[new:%[0-9]+]] = OpVectorShuffle %v4float [[old]] [[y]] 6 1 4 5
3030
// CHECK-NEXT: OpStore %val [[new]]
3131
// Write to val.xy:
3232
// val[0] = out_val[0] => 0 + 4 = 4
3333
// val[1] = out_val[1] => 1 + 4 = 5
3434
// val[2] = val[2] => 2 + 0 = 2
3535
// val[3] = val[3] => 3 + 0 = 3
36-
// CHECK-NEXT: [[z:%\d+]] = OpLoad %v2float %param_var_z
37-
// CHECK-NEXT: [[old:%\d+]] = OpLoad %v4float %val
38-
// CHECK-NEXT: [[new:%\d+]] = OpVectorShuffle %v4float [[old]] [[z]] 4 5 2 3
39-
// CHECK-NEXT: OpStore %val [[new]]
36+
// CHECK-NEXT: [[z:%[0-9]+]] = OpLoad %v2float %param_var_z
37+
// CHECK-NEXT: [[old_0:%[0-9]+]] = OpLoad %v4float %val
38+
// CHECK-NEXT: [[new_0:%[0-9]+]] = OpVectorShuffle %v4float [[old_0]] [[z]] 4 5 2 3
39+
// CHECK-NEXT: OpStore %val [[new_0]]
4040
bar(val, val.zwx, val.xy, val.z);
4141

4242
return MyRWBuffer[0];

tools/clang/test/CodeGenSPIRV_Lit/fn.param.isomorphism.hlsl

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %dxc -T cs_6_0 -E main
1+
// RUN: %dxc -T cs_6_0 -E main -fcgl %s -spirv | FileCheck %s
22

33
struct R {
44
int a;
@@ -48,8 +48,8 @@ void main() {
4848
// CHECK: %arr = OpVariable %_ptr_Function__arr_int_uint_10 Function
4949
int arr[10];
5050

51-
// CHECK: [[rwsb:%\d+]] = OpAccessChain %_ptr_Uniform_R %rwsb %int_0 %uint_0
52-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %R_incr [[rwsb]]
51+
// CHECK: [[rwsb:%[0-9]+]] = OpAccessChain %_ptr_Uniform_R %rwsb %int_0 %uint_0
52+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %R_incr [[rwsb]]
5353
rwsb[0].incr();
5454

5555
// CHECK: OpFunctionCall %void %S_incr %gs
@@ -61,8 +61,8 @@ void main() {
6161
// CHECK: OpFunctionCall %void %S_incr %fn
6262
fn.incr();
6363

64-
// CHECK: [[rwsb:%\d+]] = OpAccessChain %_ptr_Uniform_R %rwsb %int_0 %uint_0
65-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %decr [[rwsb]]
64+
// CHECK: [[rwsb_0:%[0-9]+]] = OpAccessChain %_ptr_Uniform_R %rwsb %int_0 %uint_0
65+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %decr [[rwsb_0]]
6666
decr(rwsb[0]);
6767

6868
// CHECK: OpFunctionCall %void %decr2 %gs
@@ -74,34 +74,34 @@ void main() {
7474
// CHECK: OpFunctionCall %void %decr2 %fn
7575
decr2(fn);
7676

77-
// CHECK: [[gsarr:%\d+]] = OpAccessChain %_ptr_Workgroup_S %gsarr %int_0
78-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %S_incr [[gsarr]]
77+
// CHECK: [[gsarr:%[0-9]+]] = OpAccessChain %_ptr_Workgroup_S %gsarr %int_0
78+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %S_incr [[gsarr]]
7979
gsarr[0].incr();
8080

81-
// CHECK: [[starr:%\d+]] = OpAccessChain %_ptr_Private_S %starr %int_0
82-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %S_incr [[starr]]
81+
// CHECK: [[starr:%[0-9]+]] = OpAccessChain %_ptr_Private_S %starr %int_0
82+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %S_incr [[starr]]
8383
starr[0].incr();
8484

85-
// CHECK: [[fnarr:%\d+]] = OpAccessChain %_ptr_Function_S %fnarr %int_0
86-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %S_incr [[fnarr]]
85+
// CHECK: [[fnarr:%[0-9]+]] = OpAccessChain %_ptr_Function_S %fnarr %int_0
86+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %S_incr [[fnarr]]
8787
fnarr[0].incr();
8888

89-
// CHECK: [[gsarr:%\d+]] = OpAccessChain %_ptr_Workgroup_S %gsarr %int_0
90-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %decr2 [[gsarr]]
89+
// CHECK: [[gsarr_0:%[0-9]+]] = OpAccessChain %_ptr_Workgroup_S %gsarr %int_0
90+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %decr2 [[gsarr_0]]
9191
decr2(gsarr[0]);
9292

93-
// CHECK: [[starr:%\d+]] = OpAccessChain %_ptr_Private_S %starr %int_0
94-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %decr2 [[starr]]
93+
// CHECK: [[starr_0:%[0-9]+]] = OpAccessChain %_ptr_Private_S %starr %int_0
94+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %decr2 [[starr_0]]
9595
decr2(starr[0]);
9696

97-
// CHECK: [[fnarr:%\d+]] = OpAccessChain %_ptr_Function_S %fnarr %int_0
98-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %decr2 [[fnarr]]
97+
// CHECK: [[fnarr_0:%[0-9]+]] = OpAccessChain %_ptr_Function_S %fnarr %int_0
98+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %decr2 [[fnarr_0]]
9999
decr2(fnarr[0]);
100100

101-
// CHECK: [[arr:%\d+]] = OpAccessChain %_ptr_Function_int %arr %int_0
102-
// CHECK-NEXT: [[arr_0:%\d+]] = OpLoad %int [[arr]]
103-
// CHECK-NEXT: [[arr_0:%\d+]] = OpIAdd %int [[arr_0]] %int_1
104-
// CHECK-NEXT: OpStore [[arr]] [[arr_0]]
105-
// CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %int_decr [[arr]]
101+
// CHECK: [[arr:%[0-9]+]] = OpAccessChain %_ptr_Function_int %arr %int_0
102+
// CHECK-NEXT: [[arr_0:%[0-9]+]] = OpLoad %int [[arr]]
103+
// CHECK-NEXT: [[arr_1:%[0-9]+]] = OpIAdd %int [[arr_0]] %int_1
104+
// CHECK-NEXT: OpStore [[arr]] [[arr_1]]
105+
// CHECK-NEXT: {{%[0-9]+}} = OpFunctionCall %void %int_decr [[arr]]
106106
int_decr(++arr[0]);
107107
}

0 commit comments

Comments
 (0)