Skip to content

Commit be4d45b

Browse files
author
Greg Roth
authored
[lit][SPIRV] convert runFileTest shaders to lit FileCheck test (microsoft#5898)
Convert from bottom of CodeGenSpirvTest.cpp. Skipped FileTest::CompatibilityWithVk1p1 as barrier for runCodeTest.
2 parents 2fe9714 + 6f60de9 commit be4d45b

File tree

53 files changed

+476
-644
lines changed

Some content is hidden

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

53 files changed

+476
-644
lines changed

tools/clang/test/CodeGenSPIRV/decoration.relaxed-precision.array.hlsl

Lines changed: 0 additions & 46 deletions
This file was deleted.

tools/clang/test/CodeGenSPIRV/reduce.load.size.hlsl

Lines changed: 0 additions & 32 deletions
This file was deleted.

tools/clang/test/CodeGenSPIRV/vk.shading-rate.vs.hlsl

Lines changed: 0 additions & 9 deletions
This file was deleted.

tools/clang/test/CodeGenSPIRV/decoration.coherent.hlsl renamed to tools/clang/test/CodeGenSPIRV_Lit/decoration.coherent.hlsl

Lines changed: 1 addition & 1 deletion
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
struct StructA
44
{

tools/clang/test/CodeGenSPIRV/decoration.no-contraction.stage-vars.hlsl renamed to tools/clang/test/CodeGenSPIRV_Lit/decoration.no-contraction.stage-vars.hlsl

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

3-
// CHECK: OpDecorate [[aa_1:%\d+]] NoContraction
4-
// CHECK-NEXT: OpDecorate [[aa_plus_b_1:%\d+]] NoContraction
3+
// CHECK: OpDecorate [[aa_1:%[0-9]+]] NoContraction
4+
// CHECK-NEXT: OpDecorate [[aa_plus_b_1:%[0-9]+]] NoContraction
55

6-
// CHECK-NEXT: OpDecorate [[aa_2:%\d+]] NoContraction
7-
// CHECK-NEXT: OpDecorate [[aa_plus_b_2:%\d+]] NoContraction
6+
// CHECK-NEXT: OpDecorate [[aa_2:%[0-9]+]] NoContraction
7+
// CHECK-NEXT: OpDecorate [[aa_plus_b_2:%[0-9]+]] NoContraction
88

9-
// CHECK-NEXT: OpDecorate [[ee:%\d+]] NoContraction
10-
// CHECK-NEXT: OpDecorate [[ee_plus_f:%\d+]] NoContraction
9+
// CHECK-NEXT: OpDecorate [[ee:%[0-9]+]] NoContraction
10+
// CHECK-NEXT: OpDecorate [[ee_plus_f:%[0-9]+]] NoContraction
1111

12-
// CHECK-NEXT: OpDecorate [[cc_1:%\d+]] NoContraction
13-
// CHECK-NEXT: OpDecorate [[cc_plus_d_1:%\d+]] NoContraction
12+
// CHECK-NEXT: OpDecorate [[cc_1:%[0-9]+]] NoContraction
13+
// CHECK-NEXT: OpDecorate [[cc_plus_d_1:%[0-9]+]] NoContraction
1414

15-
// CHECK-NEXT: OpDecorate [[cc_2:%\d+]] NoContraction
16-
// CHECK-NEXT: OpDecorate [[cc_plus_d_2:%\d+]] NoContraction
15+
// CHECK-NEXT: OpDecorate [[cc_2:%[0-9]+]] NoContraction
16+
// CHECK-NEXT: OpDecorate [[cc_plus_d_2:%[0-9]+]] NoContraction
1717

18-
// CHECK-NEXT: OpDecorate [[cxcy_1:%\d+]] NoContraction
19-
// CHECK-NEXT: OpDecorate [[cxcy_plus_dz_1:%\d+]] NoContraction
18+
// CHECK-NEXT: OpDecorate [[cxcy_1:%[0-9]+]] NoContraction
19+
// CHECK-NEXT: OpDecorate [[cxcy_plus_dz_1:%[0-9]+]] NoContraction
2020

2121
// CHECK-NOT: OpDecorate [[cxcy_2]] NoContraction
2222
// CHECK-NOT: OpDecorate [[cxcy_plus_dz_2]] NoContraction
2323

2424
// CHECK-NOT: OpDecorate [[cxcy_3]] NoContraction
2525
// CHECK-NOT: OpDecorate [[cxcy_plus_dz_3]] NoContraction
2626

27-
// CHECK-NEXT: OpDecorate [[aa_3:%\d+]] NoContraction
28-
// CHECK-NEXT: OpDecorate [[aa_plus_b_3:%\d+]] NoContraction
27+
// CHECK-NEXT: OpDecorate [[aa_3:%[0-9]+]] NoContraction
28+
// CHECK-NEXT: OpDecorate [[aa_plus_b_3:%[0-9]+]] NoContraction
2929

3030
struct InnerInnerStruct {
3131
precise float4 position : SV_Position; // -> BuiltIn Position in gl_Pervertex
@@ -95,14 +95,14 @@ float main(out VSOut vsOut,
9595

9696
// Output CullDistance builtin. culldis3 is NOT precise.
9797
//
98-
// CHECK: [[cxcy_2:%\d+]] = OpFMul %float
99-
// CHECK: [[cxcy_plus_dz_2:%\d+]] = OpFAdd %float
98+
// CHECK: [[cxcy_2:%[0-9]+]] = OpFMul %float
99+
// CHECK: [[cxcy_plus_dz_2:%[0-9]+]] = OpFAdd %float
100100
culldis3 = c.x * c.y + d.z;
101101

102102
// Output CullDistance builtin. clipdis6 is NOT precise.
103103
//
104-
// CHECK: [[cxcy_3:%\d+]] = OpFMul %float
105-
// CHECK: [[cxcy_plus_dz_3:%\d+]] = OpFAdd %float
104+
// CHECK: [[cxcy_3:%[0-9]+]] = OpFMul %float
105+
// CHECK: [[cxcy_plus_dz_3:%[0-9]+]] = OpFAdd %float
106106
clipdis6 = c.x * c.y + d.z;
107107

108108
// Position builtin is precise.

tools/clang/test/CodeGenSPIRV/decoration.no-contraction.struct.hlsl renamed to tools/clang/test/CodeGenSPIRV_Lit/decoration.no-contraction.struct.hlsl

Lines changed: 50 additions & 50 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
struct S {
44
float4 a;
@@ -20,56 +20,56 @@ struct T {
2020
// CHECK: OpName %w "w"
2121
// CHECK-NOT: OpDecorate [[x_mul_x_1]] NoContraction
2222
// CHECK-NOT: OpDecorate [[xx_plus_y_1]] NoContraction
23-
// CHECK-NEXT: OpDecorate [[x_mul_x_2:%\d+]] NoContraction
24-
// CHECK-NEXT: OpDecorate [[xx_plus_y_2:%\d+]] NoContraction
23+
// CHECK-NEXT: OpDecorate [[x_mul_x_2:%[0-9]+]] NoContraction
24+
// CHECK-NEXT: OpDecorate [[xx_plus_y_2:%[0-9]+]] NoContraction
2525

2626
// CHECK-NOT: OpDecorate [[z2_mul_z3_1]] NoContraction
2727
// CHECK-NOT: OpDecorate [[z2z3_plus_z4_1]] NoContraction
28-
// CHECK-NEXT: OpDecorate [[z2_mul_z3_2:%\d+]] NoContraction
29-
// CHECK-NEXT: OpDecorate [[z2z3_plus_z4_2:%\d+]] NoContraction
28+
// CHECK-NEXT: OpDecorate [[z2_mul_z3_2:%[0-9]+]] NoContraction
29+
// CHECK-NEXT: OpDecorate [[z2z3_plus_z4_2:%[0-9]+]] NoContraction
3030

3131
// CHECK-NOT: OpDecorate [[uu_row0_1]] NoContraction
3232
// CHECK-NOT: OpDecorate [[uu_row1_1]] NoContraction
33-
// CHECK-NEXT: OpDecorate [[uu_row0_2:%\d+]] NoContraction
34-
// CHECK-NEXT: OpDecorate [[uu_row1_2:%\d+]] NoContraction
33+
// CHECK-NEXT: OpDecorate [[uu_row0_2:%[0-9]+]] NoContraction
34+
// CHECK-NEXT: OpDecorate [[uu_row1_2:%[0-9]+]] NoContraction
3535

3636
// CHECK-NOT: OpDecorate [[ww_row0_1]] NoContraction
3737
// CHECK-NOT: OpDecorate [[ww_row1_1]] NoContraction
3838
// CHECK-NOT: OpDecorate [[ww_row2_1]] NoContraction
3939
// CHECK-NOT: OpDecorate [[ww_plus_w_row0_1]] NoContraction
4040
// CHECK-NOT: OpDecorate [[ww_plus_w_row1_1]] NoContraction
4141
// CHECK-NOT: OpDecorate [[ww_plus_w_row2_1]] NoContraction
42-
// CHECK-NEXT: OpDecorate [[ww_row0_2:%\d+]] NoContraction
43-
// CHECK-NEXT: OpDecorate [[ww_row1_2:%\d+]] NoContraction
44-
// CHECK-NEXT: OpDecorate [[ww_row2_2:%\d+]] NoContraction
45-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row0_2:%\d+]] NoContraction
46-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row1_2:%\d+]] NoContraction
47-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row2_2:%\d+]] NoContraction
48-
49-
// CHECK-NEXT: OpDecorate [[x_mul_x_3:%\d+]] NoContraction
50-
// CHECK-NEXT: OpDecorate [[xx_plus_y_3:%\d+]] NoContraction
51-
// CHECK-NEXT: OpDecorate [[x_mul_x_4:%\d+]] NoContraction
52-
// CHECK-NEXT: OpDecorate [[xx_plus_y_4:%\d+]] NoContraction
53-
// CHECK-NEXT: OpDecorate [[z2_mul_z3_3:%\d+]] NoContraction
54-
// CHECK-NEXT: OpDecorate [[z2z3_plus_z4_3:%\d+]] NoContraction
55-
// CHECK-NEXT: OpDecorate [[z2_mul_z3_4:%\d+]] NoContraction
56-
// CHECK-NEXT: OpDecorate [[z2z3_plus_z4_4:%\d+]] NoContraction
57-
// CHECK-NEXT: OpDecorate [[uu_row0_3:%\d+]] NoContraction
58-
// CHECK-NEXT: OpDecorate [[uu_row1_3:%\d+]] NoContraction
59-
// CHECK-NEXT: OpDecorate [[uu_row0_4:%\d+]] NoContraction
60-
// CHECK-NEXT: OpDecorate [[uu_row1_4:%\d+]] NoContraction
61-
// CHECK-NEXT: OpDecorate [[ww_row0_3:%\d+]] NoContraction
62-
// CHECK-NEXT: OpDecorate [[ww_row1_3:%\d+]] NoContraction
63-
// CHECK-NEXT: OpDecorate [[ww_row2_3:%\d+]] NoContraction
64-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row0_3:%\d+]] NoContraction
65-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row1_3:%\d+]] NoContraction
66-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row2_3:%\d+]] NoContraction
67-
// CHECK-NEXT: OpDecorate [[ww_row0_4:%\d+]] NoContraction
68-
// CHECK-NEXT: OpDecorate [[ww_row1_4:%\d+]] NoContraction
69-
// CHECK-NEXT: OpDecorate [[ww_row2_4:%\d+]] NoContraction
70-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row0_4:%\d+]] NoContraction
71-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row1_4:%\d+]] NoContraction
72-
// CHECK-NEXT: OpDecorate [[ww_plus_w_row2_4:%\d+]] NoContraction
42+
// CHECK-NEXT: OpDecorate [[ww_row0_2:%[0-9]+]] NoContraction
43+
// CHECK-NEXT: OpDecorate [[ww_row1_2:%[0-9]+]] NoContraction
44+
// CHECK-NEXT: OpDecorate [[ww_row2_2:%[0-9]+]] NoContraction
45+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row0_2:%[0-9]+]] NoContraction
46+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row1_2:%[0-9]+]] NoContraction
47+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row2_2:%[0-9]+]] NoContraction
48+
49+
// CHECK-NEXT: OpDecorate [[x_mul_x_3:%[0-9]+]] NoContraction
50+
// CHECK-NEXT: OpDecorate [[xx_plus_y_3:%[0-9]+]] NoContraction
51+
// CHECK-NEXT: OpDecorate [[x_mul_x_4:%[0-9]+]] NoContraction
52+
// CHECK-NEXT: OpDecorate [[xx_plus_y_4:%[0-9]+]] NoContraction
53+
// CHECK-NEXT: OpDecorate [[z2_mul_z3_3:%[0-9]+]] NoContraction
54+
// CHECK-NEXT: OpDecorate [[z2z3_plus_z4_3:%[0-9]+]] NoContraction
55+
// CHECK-NEXT: OpDecorate [[z2_mul_z3_4:%[0-9]+]] NoContraction
56+
// CHECK-NEXT: OpDecorate [[z2z3_plus_z4_4:%[0-9]+]] NoContraction
57+
// CHECK-NEXT: OpDecorate [[uu_row0_3:%[0-9]+]] NoContraction
58+
// CHECK-NEXT: OpDecorate [[uu_row1_3:%[0-9]+]] NoContraction
59+
// CHECK-NEXT: OpDecorate [[uu_row0_4:%[0-9]+]] NoContraction
60+
// CHECK-NEXT: OpDecorate [[uu_row1_4:%[0-9]+]] NoContraction
61+
// CHECK-NEXT: OpDecorate [[ww_row0_3:%[0-9]+]] NoContraction
62+
// CHECK-NEXT: OpDecorate [[ww_row1_3:%[0-9]+]] NoContraction
63+
// CHECK-NEXT: OpDecorate [[ww_row2_3:%[0-9]+]] NoContraction
64+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row0_3:%[0-9]+]] NoContraction
65+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row1_3:%[0-9]+]] NoContraction
66+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row2_3:%[0-9]+]] NoContraction
67+
// CHECK-NEXT: OpDecorate [[ww_row0_4:%[0-9]+]] NoContraction
68+
// CHECK-NEXT: OpDecorate [[ww_row1_4:%[0-9]+]] NoContraction
69+
// CHECK-NEXT: OpDecorate [[ww_row2_4:%[0-9]+]] NoContraction
70+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row0_4:%[0-9]+]] NoContraction
71+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row1_4:%[0-9]+]] NoContraction
72+
// CHECK-NEXT: OpDecorate [[ww_plus_w_row2_4:%[0-9]+]] NoContraction
7373

7474
void main() {
7575
T t;
@@ -81,8 +81,8 @@ void main() {
8181

8282
// 'a' is NOT precise.
8383
//
84-
// CHECK: [[x_mul_x_1:%\d+]] = OpFMul %v4float
85-
// CHECK: [[xx_plus_y_1:%\d+]] = OpFAdd %v4float
84+
// CHECK: [[x_mul_x_1:%[0-9]+]] = OpFMul %v4float
85+
// CHECK: [[xx_plus_y_1:%[0-9]+]] = OpFAdd %v4float
8686
t.sub2.a = x * x + y;
8787

8888
// 'ap' is precise.
@@ -93,8 +93,8 @@ void main() {
9393

9494
// 'b' is NOT precise.
9595
//
96-
// CHECK: [[z2_mul_z3_1:%\d+]] = OpIMul %int
97-
// CHECK: [[z2z3_plus_z4_1:%\d+]] = OpIAdd %int
96+
// CHECK: [[z2_mul_z3_1:%[0-9]+]] = OpIMul %int
97+
// CHECK: [[z2z3_plus_z4_1:%[0-9]+]] = OpIAdd %int
9898
t.sub2.b[1] = z[2] * z[3] + z[4];
9999

100100
// 'bp' is precise.
@@ -105,8 +105,8 @@ void main() {
105105

106106
// 'c' is NOT precise.
107107
//
108-
// CHECK: [[uu_row0_1:%\d+]] = OpIMul %v3int
109-
// CHECK: [[uu_row1_1:%\d+]] = OpIMul %v3int
108+
// CHECK: [[uu_row0_1:%[0-9]+]] = OpIMul %v3int
109+
// CHECK: [[uu_row1_1:%[0-9]+]] = OpIMul %v3int
110110
t.sub2.c[0][1][2] = u * u;
111111

112112
// 'cp' is precise.
@@ -117,12 +117,12 @@ void main() {
117117

118118
// 'd' is NOT precise.
119119
//
120-
// CHECK: [[ww_row0_1:%\d+]] = OpFMul %v4float
121-
// CHECK: [[ww_row1_1:%\d+]] = OpFMul %v4float
122-
// CHECK: [[ww_row2_1:%\d+]] = OpFMul %v4float
123-
// CHECK: [[ww_plus_w_row0_1:%\d+]] = OpFAdd %v4float
124-
// CHECK: [[ww_plus_w_row1_1:%\d+]] = OpFAdd %v4float
125-
// CHECK: [[ww_plus_w_row2_1:%\d+]] = OpFAdd %v4float
120+
// CHECK: [[ww_row0_1:%[0-9]+]] = OpFMul %v4float
121+
// CHECK: [[ww_row1_1:%[0-9]+]] = OpFMul %v4float
122+
// CHECK: [[ww_row2_1:%[0-9]+]] = OpFMul %v4float
123+
// CHECK: [[ww_plus_w_row0_1:%[0-9]+]] = OpFAdd %v4float
124+
// CHECK: [[ww_plus_w_row1_1:%[0-9]+]] = OpFAdd %v4float
125+
// CHECK: [[ww_plus_w_row2_1:%[0-9]+]] = OpFAdd %v4float
126126
t.sub2.d = w * w + w;
127127

128128
// 'dp' is precise.

tools/clang/test/CodeGenSPIRV/decoration.no-contraction.variable-reuse.hlsl renamed to tools/clang/test/CodeGenSPIRV_Lit/decoration.no-contraction.variable-reuse.hlsl

Lines changed: 10 additions & 10 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
// The purpose of this test is to make sure non-precise computations are *not*
44
// decorated with NoContraction.
@@ -9,15 +9,15 @@
99
void foo(float p) { p = p + 1; }
1010

1111
// CHECK: OpName %bb_entry_0 "bb.entry"
12-
// CHECK-NEXT: OpDecorate [[first_b_plus_c:%\d+]] NoContraction
12+
// CHECK-NEXT: OpDecorate [[first_b_plus_c:%[0-9]+]] NoContraction
1313
// CHECK-NOT: OpDecorate [[first_a_mul_b]] NoContraction
1414
// CHECK-NOT: OpDecorate [[ax_mul_bx]] NoContraction
15-
// CHECK-NEXT: OpDecorate [[second_a_mul_b:%\d+]] NoContraction
15+
// CHECK-NEXT: OpDecorate [[second_a_mul_b:%[0-9]+]] NoContraction
1616
// CHECK-NOT: OpDecorate [[second_a_plus_b]] NoContraction
17-
// CHECK-NEXT: OpDecorate [[first_d_plus_e:%\d+]] NoContraction
18-
// CHECK-NEXT: OpDecorate [[c_mul_d:%\d+]] NoContraction
17+
// CHECK-NEXT: OpDecorate [[first_d_plus_e:%[0-9]+]] NoContraction
18+
// CHECK-NEXT: OpDecorate [[c_mul_d:%[0-9]+]] NoContraction
1919
// CHECK-NOT: OpDecorate [[second_d_plus_e]] NoContraction
20-
// CHECK-NEXT: OpDecorate [[r_plus_s:%\d+]] NoContraction
20+
// CHECK-NEXT: OpDecorate [[r_plus_s:%[0-9]+]] NoContraction
2121

2222
void main() {
2323
float4 a, b, c, d, e;
@@ -35,13 +35,13 @@ void main() {
3535
// Even though this looks like the statement on line 52:
3636
// This changes "u", which does not affect "v" in any way. Not Precise.
3737
//
38-
// CHECK: [[first_a_mul_b:%\d+]] = OpFMul %v3float
38+
// CHECK: [[first_a_mul_b:%[0-9]+]] = OpFMul %v3float
3939
// CHECK-NEXT: OpStore %u
4040
u = float3((float3)a * (float3)b);
4141

4242
// Does not affect the value of "v". Not Precise.
4343
//
44-
// CHECK: [[ax_mul_bx:%\d+]] = OpFMul %float
44+
// CHECK: [[ax_mul_bx:%[0-9]+]] = OpFMul %float
4545
// CHECK-NEXT: OpStore %param_var_p
4646
foo(a.x * b.x);
4747

@@ -54,7 +54,7 @@ void main() {
5454
// Even though this looks identical to "a = b + c" above:
5555
// This can change the value of "a", BUT, this change will not affect "v". Not Precise.
5656
//
57-
// CHECK: [[second_a_plus_b:%\d+]] = OpFAdd %v4float
57+
// CHECK: [[second_a_plus_b:%[0-9]+]] = OpFAdd %v4float
5858
// CHECK-NEXT: OpStore %a %61
5959
a = b + c;
6060

@@ -77,7 +77,7 @@ void main() {
7777
//
7878
// CHECK: OpLoad %v4float %d
7979
// CHECK-NEXT: OpLoad %v4float %e
80-
// CHECK-NEXT: [[second_d_plus_e:%\d+]] = OpFAdd %v4float
80+
// CHECK-NEXT: [[second_d_plus_e:%[0-9]+]] = OpFAdd %v4float
8181
// CHECK-NEXT: OpStore %c
8282
c = d + e;
8383

0 commit comments

Comments
 (0)