1
- // RUN: %dxc -T ps_6_0 -E main
1
+ // RUN: %dxc -T ps_6_0 -E main -fcgl %s -spirv | FileCheck %s
2
2
3
3
struct S {
4
4
float4 a;
@@ -20,56 +20,56 @@ struct T {
20
20
// CHECK: OpName %w "w"
21
21
// CHECK-NOT: OpDecorate [[x_mul_x_1]] NoContraction
22
22
// 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
25
25
26
26
// CHECK-NOT: OpDecorate [[z2_mul_z3_1]] NoContraction
27
27
// 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
30
30
31
31
// CHECK-NOT: OpDecorate [[uu_row0_1]] NoContraction
32
32
// 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
35
35
36
36
// CHECK-NOT: OpDecorate [[ww_row0_1]] NoContraction
37
37
// CHECK-NOT: OpDecorate [[ww_row1_1]] NoContraction
38
38
// CHECK-NOT: OpDecorate [[ww_row2_1]] NoContraction
39
39
// CHECK-NOT: OpDecorate [[ww_plus_w_row0_1]] NoContraction
40
40
// CHECK-NOT: OpDecorate [[ww_plus_w_row1_1]] NoContraction
41
41
// 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
73
73
74
74
void main () {
75
75
T t;
@@ -81,8 +81,8 @@ void main() {
81
81
82
82
// 'a' is NOT precise.
83
83
//
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
86
86
t.sub2.a = x * x + y;
87
87
88
88
// 'ap' is precise.
@@ -93,8 +93,8 @@ void main() {
93
93
94
94
// 'b' is NOT precise.
95
95
//
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
98
98
t.sub2.b[1 ] = z[2 ] * z[3 ] + z[4 ];
99
99
100
100
// 'bp' is precise.
@@ -105,8 +105,8 @@ void main() {
105
105
106
106
// 'c' is NOT precise.
107
107
//
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
110
110
t.sub2.c[0 ][1 ][2 ] = u * u;
111
111
112
112
// 'cp' is precise.
@@ -117,12 +117,12 @@ void main() {
117
117
118
118
// 'd' is NOT precise.
119
119
//
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
126
126
t.sub2.d = w * w + w;
127
127
128
128
// 'dp' is precise.
0 commit comments