Skip to content

Commit f161a06

Browse files
committed
[clang][HLSL] Update DXIL/SPIRV hybird CodeGen tests to use temp var
Update all hybird DXIL/SPIRV codegen tests to use temp variable representing interchange target
1 parent e1cf849 commit f161a06

File tree

10 files changed

+205
-334
lines changed

10 files changed

+205
-334
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s --check-prefix=CHECK-SPIRV
1+
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=DXCHECK
2+
3+
// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=SPVCHECK
24

35
RWBuffer<float> Buf;
46

57
// CHECK: define linkonce_odr noundef ptr @"??0?$RWBuffer@M@hlsl@@QAA@XZ"
68
// CHECK-NEXT: entry:
79

8-
// CHECK: %[[HandleRes:[0-9]+]] = call ptr @llvm.dx.create.handle(i8 1)
10+
// DXCHECK: %[[HandleRes:[0-9]+]] = call ptr @llvm.dx.create.handle(i8 1)
11+
// SPVCHECK: %[[HandleRes:[0-9]+]] = call ptr @llvm.spv.create.handle(i8 1)
912
// CHECK: store ptr %[[HandleRes]], ptr %h, align 4
10-
11-
// CHECK-SPIRV: %[[HandleRes:[0-9]+]] = call ptr @llvm.spv.create.handle(i8 1)
12-
// CHECK-SPIRV: store ptr %[[HandleRes]], ptr %h, align 8

clang/test/CodeGenHLSL/builtins/all.hlsl

+46-88
Original file line numberDiff line numberDiff line change
@@ -16,262 +16,220 @@
1616
#ifdef __HLSL_ENABLE_16_BIT
1717
// DXIL_NATIVE_HALF: define noundef i1 @
1818
// SPIR_NATIVE_HALF: define spir_func noundef i1 @
19-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.i16
20-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.i16
19+
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF:dx]].all.i16
20+
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF:spv]].all.i16
2121
// NATIVE_HALF: ret i1 %hlsl.all
2222
bool test_all_int16_t(int16_t p0) { return all(p0); }
2323
// DXIL_NATIVE_HALF: define noundef i1 @
2424
// SPIR_NATIVE_HALF: define spir_func noundef i1 @
25-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v2i16
26-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v2i16
25+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v2i16
2726
// NATIVE_HALF: ret i1 %hlsl.all
2827
bool test_all_int16_t2(int16_t2 p0) { return all(p0); }
2928
// DXIL_NATIVE_HALF: define noundef i1 @
3029
// SPIR_NATIVE_HALF: define spir_func noundef i1 @
31-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v3i16
32-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v3i16
30+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v3i16
3331
// NATIVE_HALF: ret i1 %hlsl.all
3432
bool test_all_int16_t3(int16_t3 p0) { return all(p0); }
3533
// DXIL_NATIVE_HALF: define noundef i1 @
3634
// SPIR_NATIVE_HALF: define spir_func noundef i1 @
37-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v4i16
38-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v4i16
35+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v4i16
3936
// NATIVE_HALF: ret i1 %hlsl.all
4037
bool test_all_int16_t4(int16_t4 p0) { return all(p0); }
4138

4239
// DXIL_NATIVE_HALF: define noundef i1 @
4340
// SPIR_NATIVE_HALF: define spir_func noundef i1 @
44-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.i16
45-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.i16
41+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.i16
4642
// NATIVE_HALF: ret i1 %hlsl.all
4743
bool test_all_uint16_t(uint16_t p0) { return all(p0); }
4844
// DXIL_NATIVE_HALF: define noundef i1 @
4945
// SPIR_NATIVE_HALF: define spir_func noundef i1 @
50-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v2i16
51-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v2i16
46+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v2i16
5247
// NATIVE_HALF: ret i1 %hlsl.all
5348
bool test_all_uint16_t2(uint16_t2 p0) { return all(p0); }
5449
// DXIL_NATIVE_HALF: define noundef i1 @
5550
// SPIR_NATIVE_HALF: define spir_func noundef i1 @
56-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v3i16
57-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v3i16
51+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v3i16
5852
// NATIVE_HALF: ret i1 %hlsl.all
5953
bool test_all_uint16_t3(uint16_t3 p0) { return all(p0); }
6054
// DXIL_NATIVE_HALF: define noundef i1 @
6155
// SPIR_NATIVE_HALF: define spir_func noundef i1 @
62-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v4i16
63-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v4i16
56+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v4i16
6457
// NATIVE_HALF: ret i1 %hlsl.all
6558
bool test_all_uint16_t4(uint16_t4 p0) { return all(p0); }
6659
#endif // __HLSL_ENABLE_16_BIT
6760

6861
// DXIL_CHECK: define noundef i1 @
6962
// SPIR_CHECK: define spir_func noundef i1 @
70-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.f16
71-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.f16
72-
// DXIL_NO_HALF: %hlsl.all = call i1 @llvm.dx.all.f32
73-
// SPIR_NO_HALF: %hlsl.all = call i1 @llvm.spv.all.f32
63+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.f16
64+
// NO_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.f32
7465
// CHECK: ret i1 %hlsl.all
7566
bool test_all_half(half p0) { return all(p0); }
7667

7768
// DXIL_CHECK: define noundef i1 @
7869
// SPIR_CHECK: define spir_func noundef i1 @
79-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v2f16
80-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v2f16
81-
// DXIL_NO_HALF: %hlsl.all = call i1 @llvm.dx.all.v2f32
82-
// SPIR_NO_HALF: %hlsl.all = call i1 @llvm.spv.all.v2f32
70+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v2f16
71+
// NO_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v2f32
8372
// CHECK: ret i1 %hlsl.all
8473
bool test_all_half2(half2 p0) { return all(p0); }
8574

8675
// DXIL_CHECK: define noundef i1 @
8776
// SPIR_CHECK: define spir_func noundef i1 @
88-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v3f16
89-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v3f16
90-
// DXIL_NO_HALF: %hlsl.all = call i1 @llvm.dx.all.v3f32
91-
// SPIR_NO_HALF: %hlsl.all = call i1 @llvm.spv.all.v3f32
77+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v3f16
78+
// NO_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v3f32
9279
// CHECK: ret i1 %hlsl.all
9380
bool test_all_half3(half3 p0) { return all(p0); }
9481

9582
// DXIL_CHECK: define noundef i1 @
9683
// SPIR_CHECK: define spir_func noundef i1 @
97-
// DXIL_NATIVE_HALF: %hlsl.all = call i1 @llvm.dx.all.v4f16
98-
// SPIR_NATIVE_HALF: %hlsl.all = call i1 @llvm.spv.all.v4f16
99-
// DXIL_NO_HALF: %hlsl.all = call i1 @llvm.dx.all.v4f32
100-
// SPIR_NO_HALF: %hlsl.all = call i1 @llvm.spv.all.v4f32
84+
// NATIVE_HALF: %hlsl.all = call i1 @llvm.[[ICF]].all.v4f16
85+
// DXIL_NO_HALF: %hlsl.all = call i1 @llvm.[[ICF:dx]].all.v4f32
86+
// SPIR_NO_HALF: %hlsl.all = call i1 @llvm.[[ICF:spv]].all.v4f32
10187
// CHECK: ret i1 %hlsl.all
10288
bool test_all_half4(half4 p0) { return all(p0); }
10389

10490
// DXIL_CHECK: define noundef i1 @
10591
// SPIR_CHECK: define spir_func noundef i1 @
106-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.f32
107-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.f32
92+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.f32
10893
// CHECK: ret i1 %hlsl.all
10994
bool test_all_float(float p0) { return all(p0); }
11095
// DXIL_CHECK: define noundef i1 @
11196
// SPIR_CHECK: define spir_func noundef i1 @
112-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v2f32
113-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v2f32
97+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v2f32
11498
// CHECK: ret i1 %hlsl.all
11599
bool test_all_float2(float2 p0) { return all(p0); }
116100
// DXIL_CHECK: define noundef i1 @
117101
// SPIR_CHECK: define spir_func noundef i1 @
118-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v3f32
119-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v3f32
102+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v3f32
120103
// CHECK: ret i1 %hlsl.all
121104
bool test_all_float3(float3 p0) { return all(p0); }
122105
// DXIL_CHECK: define noundef i1 @
123106
// SPIR_CHECK: define spir_func noundef i1 @
124-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v4f32
125-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v4f32
107+
// DXIL_CHECK: %hlsl.all = call i1 @llvm.[[ICF:dx]].all.v4f32
126108
// CHECK: ret i1 %hlsl.all
127109
bool test_all_float4(float4 p0) { return all(p0); }
128110

129111
// DXIL_CHECK: define noundef i1 @
130112
// SPIR_CHECK: define spir_func noundef i1 @
131-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.f64
132-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.f64
113+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.f64
133114
// CHECK: ret i1 %hlsl.all
134115
bool test_all_double(double p0) { return all(p0); }
135116
// DXIL_CHECK: define noundef i1 @
136117
// SPIR_CHECK: define spir_func noundef i1 @
137-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v2f64
138-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v2f64
118+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v2f64
139119
// CHECK: ret i1 %hlsl.all
140120
bool test_all_double2(double2 p0) { return all(p0); }
141121
// DXIL_CHECK: define noundef i1 @
142122
// SPIR_CHECK: define spir_func noundef i1 @
143-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v3f64
144-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v3f64
123+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v3f64
145124
// CHECK: ret i1 %hlsl.all
146125
bool test_all_double3(double3 p0) { return all(p0); }
147126
// DXIL_CHECK: define noundef i1 @
148127
// SPIR_CHECK: define spir_func noundef i1 @
149-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v4f64
150-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v4f64
128+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v4f64
151129
// CHECK: ret i1 %hlsl.all
152130
bool test_all_double4(double4 p0) { return all(p0); }
153131

154132
// DXIL_CHECK: define noundef i1 @
155133
// SPIR_CHECK: define spir_func noundef i1 @
156-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.i32
157-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.i32
134+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.i32
158135
// CHECK: ret i1 %hlsl.all
159136
bool test_all_int(int p0) { return all(p0); }
160137
// DXIL_CHECK: define noundef i1 @
161138
// SPIR_CHECK: define spir_func noundef i1 @
162-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v2i32
163-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v2i32
139+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v2i32
164140
// CHECK: ret i1 %hlsl.all
165141
bool test_all_int2(int2 p0) { return all(p0); }
166142
// DXIL_CHECK: define noundef i1 @
167143
// SPIR_CHECK: define spir_func noundef i1 @
168-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v3i32
169-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v3i32
144+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v3i32
170145
// CHECK: ret i1 %hlsl.all
171146
bool test_all_int3(int3 p0) { return all(p0); }
172147
// DXIL_CHECK: define noundef i1 @
173148
// SPIR_CHECK: define spir_func noundef i1 @
174-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v4i32
175-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v4i32
149+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v4i32
176150
// CHECK: ret i1 %hlsl.all
177151
bool test_all_int4(int4 p0) { return all(p0); }
178152

179153
// DXIL_CHECK: define noundef i1 @
180154
// SPIR_CHECK: define spir_func noundef i1 @
181-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.i32
182-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.i32
155+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.i32
183156
// CHECK: ret i1 %hlsl.all
184157
bool test_all_uint(uint p0) { return all(p0); }
185158
// DXIL_CHECK: define noundef i1 @
186159
// SPIR_CHECK: define spir_func noundef i1 @
187-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v2i32
188-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v2i32
160+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v2i32
189161
// CHECK: ret i1 %hlsl.all
190162
bool test_all_uint2(uint2 p0) { return all(p0); }
191163
// DXIL_CHECK: define noundef i1 @
192164
// SPIR_CHECK: define spir_func noundef i1 @
193-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v3i32
194-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v3i32
165+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v3i32
195166
// CHECK: ret i1 %hlsl.all
196167
bool test_all_uint3(uint3 p0) { return all(p0); }
197168
// DXIL_CHECK: define noundef i1 @
198169
// SPIR_CHECK: define spir_func noundef i1 @
199-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v4i32
200-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v4i32
170+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v4i32
201171
// CHECK: ret i1 %hlsl.all
202172
bool test_all_uint4(uint4 p0) { return all(p0); }
203173

204174
// DXIL_CHECK: define noundef i1 @
205175
// SPIR_CHECK: define spir_func noundef i1 @
206-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.i64
207-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.i64
176+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.i64
208177
// CHECK: ret i1 %hlsl.all
209178
bool test_all_int64_t(int64_t p0) { return all(p0); }
210179
// DXIL_CHECK: define noundef i1 @
211180
// SPIR_CHECK: define spir_func noundef i1 @
212-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v2i64
213-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v2i64
181+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v2i64
214182
// CHECK: ret i1 %hlsl.all
215183
bool test_all_int64_t2(int64_t2 p0) { return all(p0); }
216184
// DXIL_CHECK: define noundef i1 @
217185
// SPIR_CHECK: define spir_func noundef i1 @
218-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v3i64
219-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v3i64
186+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v3i64
220187
// CHECK: ret i1 %hlsl.all
221188
bool test_all_int64_t3(int64_t3 p0) { return all(p0); }
222189
// DXIL_CHECK: define noundef i1 @
223190
// SPIR_CHECK: define spir_func noundef i1 @
224-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v4i64
225-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v4i64
191+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v4i64
226192
// CHECK: ret i1 %hlsl.all
227193
bool test_all_int64_t4(int64_t4 p0) { return all(p0); }
228194

229195
// DXIL_CHECK: define noundef i1 @
230196
// SPIR_CHECK: define spir_func noundef i1 @
231-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.i64
232-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.i64
197+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.i64
233198
// CHECK: ret i1 %hlsl.all
234199
bool test_all_uint64_t(uint64_t p0) { return all(p0); }
235200
// DXIL_CHECK: define noundef i1 @
236201
// SPIR_CHECK: define spir_func noundef i1 @
237-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v2i64
238-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v2i64
202+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v2i64
239203
// CHECK: ret i1 %hlsl.all
240204
bool test_all_uint64_t2(uint64_t2 p0) { return all(p0); }
241205
// DXIL_CHECK: define noundef i1 @
242206
// SPIR_CHECK: define spir_func noundef i1 @
243-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v3i64
244-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v3i64
207+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v3i64
245208
// CHECK: ret i1 %hlsl.all
246209
bool test_all_uint64_t3(uint64_t3 p0) { return all(p0); }
247210
// DXIL_CHECK: define noundef i1 @
248211
// SPIR_CHECK: define spir_func noundef i1 @
249-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v4i64
250-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v4i64
212+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v4i64
251213
// CHECK: ret i1 %hlsl.all
252214
bool test_all_uint64_t4(uint64_t4 p0) { return all(p0); }
253215

254216
// DXIL_CHECK: define noundef i1 @
255217
// SPIR_CHECK: define spir_func noundef i1 @
256-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.i1
257-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.i1
218+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.i1
258219
// CHECK: ret i1 %hlsl.all
259220
bool test_all_bool(bool p0) { return all(p0); }
260221
// DXIL_CHECK: define noundef i1 @
261222
// SPIR_CHECK: define spir_func noundef i1 @
262-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v2i1
263-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v2i1
223+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v2i1
264224
// CHECK: ret i1 %hlsl.all
265225
bool test_all_bool2(bool2 p0) { return all(p0); }
266226
// DXIL_CHECK: define noundef i1 @
267227
// SPIR_CHECK: define spir_func noundef i1 @
268-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v3i1
269-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v3i1
228+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v3i1
270229
// CHECK: ret i1 %hlsl.all
271230
bool test_all_bool3(bool3 p0) { return all(p0); }
272231
// DXIL_CHECK: define noundef i1 @
273232
// SPIR_CHECK: define spir_func noundef i1 @
274-
// DXIL_CHECK: %hlsl.all = call i1 @llvm.dx.all.v4i1
275-
// SPIR_CHECK: %hlsl.all = call i1 @llvm.spv.all.v4i1
233+
// CHECK: %hlsl.all = call i1 @llvm.[[ICF]].all.v4i1
276234
// CHECK: ret i1 %hlsl.all
277235
bool test_all_bool4(bool4 p0) { return all(p0); }

0 commit comments

Comments
 (0)