1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc < %s -mtriple=i686-unknown-unknown -mcpu=knl | FileCheck %s --check-prefix=X86
3
- ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=knl | FileCheck %s --check-prefix=X64
2
+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=avx512f | FileCheck %s --check-prefixes=X86,X86-AVX512F
3
+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx512f | FileCheck %s --check-prefixes=X64,X64-AVX512F
4
+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=avx512bw | FileCheck %s --check-prefixes=X86,X86-AVX512BW
5
+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx512bw | FileCheck %s --check-prefixes=X64,X64-AVX512BW
4
6
5
7
define <16 x i32 > @select00 (i32 %a , <16 x i32 > %b ) nounwind {
6
8
; X86-LABEL: select00:
@@ -147,25 +149,45 @@ define i8 @select05(i8 %a.0, i8 %m) {
147
149
}
148
150
149
151
define i8 @select05_mem (<8 x i1 >* %a.0 , <8 x i1 >* %m ) {
150
- ; X86-LABEL: select05_mem:
151
- ; X86: # %bb.0:
152
- ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
153
- ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
154
- ; X86-NEXT: kmovw (%ecx), %k0
155
- ; X86-NEXT: kmovw (%eax), %k1
156
- ; X86-NEXT: korw %k1, %k0, %k0
157
- ; X86-NEXT: kmovw %k0, %eax
158
- ; X86-NEXT: # kill: def $al killed $al killed $eax
159
- ; X86-NEXT: retl
152
+ ; X86-AVX512F- LABEL: select05_mem:
153
+ ; X86-AVX512F : # %bb.0:
154
+ ; X86-AVX512F- NEXT: movl {{[0-9]+}}(%esp), %eax
155
+ ; X86-AVX512F- NEXT: movl {{[0-9]+}}(%esp), %ecx
156
+ ; X86-AVX512F- NEXT: kmovw (%ecx), %k0
157
+ ; X86-AVX512F- NEXT: kmovw (%eax), %k1
158
+ ; X86-AVX512F- NEXT: korw %k1, %k0, %k0
159
+ ; X86-AVX512F- NEXT: kmovw %k0, %eax
160
+ ; X86-AVX512F- NEXT: # kill: def $al killed $al killed $eax
161
+ ; X86-AVX512F- NEXT: retl
160
162
;
161
- ; X64-LABEL: select05_mem:
162
- ; X64: # %bb.0:
163
- ; X64-NEXT: kmovw (%rsi), %k0
164
- ; X64-NEXT: kmovw (%rdi), %k1
165
- ; X64-NEXT: korw %k1, %k0, %k0
166
- ; X64-NEXT: kmovw %k0, %eax
167
- ; X64-NEXT: # kill: def $al killed $al killed $eax
168
- ; X64-NEXT: retq
163
+ ; X64-AVX512F-LABEL: select05_mem:
164
+ ; X64-AVX512F: # %bb.0:
165
+ ; X64-AVX512F-NEXT: kmovw (%rsi), %k0
166
+ ; X64-AVX512F-NEXT: kmovw (%rdi), %k1
167
+ ; X64-AVX512F-NEXT: korw %k1, %k0, %k0
168
+ ; X64-AVX512F-NEXT: kmovw %k0, %eax
169
+ ; X64-AVX512F-NEXT: # kill: def $al killed $al killed $eax
170
+ ; X64-AVX512F-NEXT: retq
171
+ ;
172
+ ; X86-AVX512BW-LABEL: select05_mem:
173
+ ; X86-AVX512BW: # %bb.0:
174
+ ; X86-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %eax
175
+ ; X86-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %ecx
176
+ ; X86-AVX512BW-NEXT: kmovw (%ecx), %k0
177
+ ; X86-AVX512BW-NEXT: kmovw (%eax), %k1
178
+ ; X86-AVX512BW-NEXT: korw %k1, %k0, %k0
179
+ ; X86-AVX512BW-NEXT: kmovd %k0, %eax
180
+ ; X86-AVX512BW-NEXT: # kill: def $al killed $al killed $eax
181
+ ; X86-AVX512BW-NEXT: retl
182
+ ;
183
+ ; X64-AVX512BW-LABEL: select05_mem:
184
+ ; X64-AVX512BW: # %bb.0:
185
+ ; X64-AVX512BW-NEXT: kmovw (%rsi), %k0
186
+ ; X64-AVX512BW-NEXT: kmovw (%rdi), %k1
187
+ ; X64-AVX512BW-NEXT: korw %k1, %k0, %k0
188
+ ; X64-AVX512BW-NEXT: kmovd %k0, %eax
189
+ ; X64-AVX512BW-NEXT: # kill: def $al killed $al killed $eax
190
+ ; X64-AVX512BW-NEXT: retq
169
191
%mask = load <8 x i1 > , <8 x i1 >* %m
170
192
%a = load <8 x i1 > , <8 x i1 >* %a.0
171
193
%r = select <8 x i1 > %mask , <8 x i1 > <i1 -1 , i1 -1 , i1 -1 , i1 -1 , i1 -1 , i1 -1 , i1 -1 , i1 -1 >, <8 x i1 > %a
@@ -194,58 +216,105 @@ define i8 @select06(i8 %a.0, i8 %m) {
194
216
}
195
217
196
218
define i8 @select06_mem (<8 x i1 >* %a.0 , <8 x i1 >* %m ) {
197
- ; X86-LABEL: select06_mem:
198
- ; X86: # %bb.0:
199
- ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
200
- ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
201
- ; X86-NEXT: kmovw (%ecx), %k0
202
- ; X86-NEXT: kmovw (%eax), %k1
203
- ; X86-NEXT: kandw %k1, %k0, %k0
204
- ; X86-NEXT: kmovw %k0, %eax
205
- ; X86-NEXT: # kill: def $al killed $al killed $eax
206
- ; X86-NEXT: retl
219
+ ; X86-AVX512F- LABEL: select06_mem:
220
+ ; X86-AVX512F : # %bb.0:
221
+ ; X86-AVX512F- NEXT: movl {{[0-9]+}}(%esp), %eax
222
+ ; X86-AVX512F- NEXT: movl {{[0-9]+}}(%esp), %ecx
223
+ ; X86-AVX512F- NEXT: kmovw (%ecx), %k0
224
+ ; X86-AVX512F- NEXT: kmovw (%eax), %k1
225
+ ; X86-AVX512F- NEXT: kandw %k1, %k0, %k0
226
+ ; X86-AVX512F- NEXT: kmovw %k0, %eax
227
+ ; X86-AVX512F- NEXT: # kill: def $al killed $al killed $eax
228
+ ; X86-AVX512F- NEXT: retl
207
229
;
208
- ; X64-LABEL: select06_mem:
209
- ; X64: # %bb.0:
210
- ; X64-NEXT: kmovw (%rsi), %k0
211
- ; X64-NEXT: kmovw (%rdi), %k1
212
- ; X64-NEXT: kandw %k1, %k0, %k0
213
- ; X64-NEXT: kmovw %k0, %eax
214
- ; X64-NEXT: # kill: def $al killed $al killed $eax
215
- ; X64-NEXT: retq
230
+ ; X64-AVX512F-LABEL: select06_mem:
231
+ ; X64-AVX512F: # %bb.0:
232
+ ; X64-AVX512F-NEXT: kmovw (%rsi), %k0
233
+ ; X64-AVX512F-NEXT: kmovw (%rdi), %k1
234
+ ; X64-AVX512F-NEXT: kandw %k1, %k0, %k0
235
+ ; X64-AVX512F-NEXT: kmovw %k0, %eax
236
+ ; X64-AVX512F-NEXT: # kill: def $al killed $al killed $eax
237
+ ; X64-AVX512F-NEXT: retq
238
+ ;
239
+ ; X86-AVX512BW-LABEL: select06_mem:
240
+ ; X86-AVX512BW: # %bb.0:
241
+ ; X86-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %eax
242
+ ; X86-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %ecx
243
+ ; X86-AVX512BW-NEXT: kmovw (%ecx), %k0
244
+ ; X86-AVX512BW-NEXT: kmovw (%eax), %k1
245
+ ; X86-AVX512BW-NEXT: kandw %k1, %k0, %k0
246
+ ; X86-AVX512BW-NEXT: kmovd %k0, %eax
247
+ ; X86-AVX512BW-NEXT: # kill: def $al killed $al killed $eax
248
+ ; X86-AVX512BW-NEXT: retl
249
+ ;
250
+ ; X64-AVX512BW-LABEL: select06_mem:
251
+ ; X64-AVX512BW: # %bb.0:
252
+ ; X64-AVX512BW-NEXT: kmovw (%rsi), %k0
253
+ ; X64-AVX512BW-NEXT: kmovw (%rdi), %k1
254
+ ; X64-AVX512BW-NEXT: kandw %k1, %k0, %k0
255
+ ; X64-AVX512BW-NEXT: kmovd %k0, %eax
256
+ ; X64-AVX512BW-NEXT: # kill: def $al killed $al killed $eax
257
+ ; X64-AVX512BW-NEXT: retq
216
258
%mask = load <8 x i1 > , <8 x i1 >* %m
217
259
%a = load <8 x i1 > , <8 x i1 >* %a.0
218
260
%r = select <8 x i1 > %mask , <8 x i1 > %a , <8 x i1 > zeroinitializer
219
261
%res = bitcast <8 x i1 > %r to i8
220
262
ret i8 %res ;
221
263
}
222
264
define i8 @select07 (i8 %a.0 , i8 %b.0 , i8 %m ) {
223
- ; X86-LABEL: select07:
224
- ; X86: # %bb.0:
225
- ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
226
- ; X86-NEXT: kmovw %eax, %k0
227
- ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
228
- ; X86-NEXT: kmovw %eax, %k1
229
- ; X86-NEXT: movzbl {{[0-9]+}}(%esp), %eax
230
- ; X86-NEXT: kmovw %eax, %k2
231
- ; X86-NEXT: kandnw %k2, %k0, %k2
232
- ; X86-NEXT: kandw %k0, %k1, %k0
233
- ; X86-NEXT: korw %k2, %k0, %k0
234
- ; X86-NEXT: kmovw %k0, %eax
235
- ; X86-NEXT: # kill: def $al killed $al killed $eax
236
- ; X86-NEXT: retl
265
+ ; X86-AVX512F- LABEL: select07:
266
+ ; X86-AVX512F : # %bb.0:
267
+ ; X86-AVX512F- NEXT: movzbl {{[0-9]+}}(%esp), %eax
268
+ ; X86-AVX512F- NEXT: kmovw %eax, %k0
269
+ ; X86-AVX512F- NEXT: movzbl {{[0-9]+}}(%esp), %eax
270
+ ; X86-AVX512F- NEXT: kmovw %eax, %k1
271
+ ; X86-AVX512F- NEXT: movzbl {{[0-9]+}}(%esp), %eax
272
+ ; X86-AVX512F- NEXT: kmovw %eax, %k2
273
+ ; X86-AVX512F- NEXT: kandnw %k2, %k0, %k2
274
+ ; X86-AVX512F- NEXT: kandw %k0, %k1, %k0
275
+ ; X86-AVX512F- NEXT: korw %k2, %k0, %k0
276
+ ; X86-AVX512F- NEXT: kmovw %k0, %eax
277
+ ; X86-AVX512F- NEXT: # kill: def $al killed $al killed $eax
278
+ ; X86-AVX512F- NEXT: retl
237
279
;
238
- ; X64-LABEL: select07:
239
- ; X64: # %bb.0:
240
- ; X64-NEXT: kmovw %edx, %k0
241
- ; X64-NEXT: kmovw %edi, %k1
242
- ; X64-NEXT: kmovw %esi, %k2
243
- ; X64-NEXT: kandnw %k2, %k0, %k2
244
- ; X64-NEXT: kandw %k0, %k1, %k0
245
- ; X64-NEXT: korw %k2, %k0, %k0
246
- ; X64-NEXT: kmovw %k0, %eax
247
- ; X64-NEXT: # kill: def $al killed $al killed $eax
248
- ; X64-NEXT: retq
280
+ ; X64-AVX512F-LABEL: select07:
281
+ ; X64-AVX512F: # %bb.0:
282
+ ; X64-AVX512F-NEXT: kmovw %edx, %k0
283
+ ; X64-AVX512F-NEXT: kmovw %edi, %k1
284
+ ; X64-AVX512F-NEXT: kmovw %esi, %k2
285
+ ; X64-AVX512F-NEXT: kandnw %k2, %k0, %k2
286
+ ; X64-AVX512F-NEXT: kandw %k0, %k1, %k0
287
+ ; X64-AVX512F-NEXT: korw %k2, %k0, %k0
288
+ ; X64-AVX512F-NEXT: kmovw %k0, %eax
289
+ ; X64-AVX512F-NEXT: # kill: def $al killed $al killed $eax
290
+ ; X64-AVX512F-NEXT: retq
291
+ ;
292
+ ; X86-AVX512BW-LABEL: select07:
293
+ ; X86-AVX512BW: # %bb.0:
294
+ ; X86-AVX512BW-NEXT: movzbl {{[0-9]+}}(%esp), %eax
295
+ ; X86-AVX512BW-NEXT: kmovd %eax, %k0
296
+ ; X86-AVX512BW-NEXT: movzbl {{[0-9]+}}(%esp), %eax
297
+ ; X86-AVX512BW-NEXT: kmovd %eax, %k1
298
+ ; X86-AVX512BW-NEXT: movzbl {{[0-9]+}}(%esp), %eax
299
+ ; X86-AVX512BW-NEXT: kmovd %eax, %k2
300
+ ; X86-AVX512BW-NEXT: kandnw %k2, %k0, %k2
301
+ ; X86-AVX512BW-NEXT: kandw %k0, %k1, %k0
302
+ ; X86-AVX512BW-NEXT: korw %k2, %k0, %k0
303
+ ; X86-AVX512BW-NEXT: kmovd %k0, %eax
304
+ ; X86-AVX512BW-NEXT: # kill: def $al killed $al killed $eax
305
+ ; X86-AVX512BW-NEXT: retl
306
+ ;
307
+ ; X64-AVX512BW-LABEL: select07:
308
+ ; X64-AVX512BW: # %bb.0:
309
+ ; X64-AVX512BW-NEXT: kmovd %edx, %k0
310
+ ; X64-AVX512BW-NEXT: kmovd %edi, %k1
311
+ ; X64-AVX512BW-NEXT: kmovd %esi, %k2
312
+ ; X64-AVX512BW-NEXT: kandnw %k2, %k0, %k2
313
+ ; X64-AVX512BW-NEXT: kandw %k0, %k1, %k0
314
+ ; X64-AVX512BW-NEXT: korw %k2, %k0, %k0
315
+ ; X64-AVX512BW-NEXT: kmovd %k0, %eax
316
+ ; X64-AVX512BW-NEXT: # kill: def $al killed $al killed $eax
317
+ ; X64-AVX512BW-NEXT: retq
249
318
%mask = bitcast i8 %m to <8 x i1 >
250
319
%a = bitcast i8 %a.0 to <8 x i1 >
251
320
%b = bitcast i8 %b.0 to <8 x i1 >
@@ -279,11 +348,17 @@ define double @pr30561_f64(double %b, double %a, i1 %c) {
279
348
; X86-NEXT: fldl (%ecx)
280
349
; X86-NEXT: retl
281
350
;
282
- ; X64-LABEL: pr30561_f64:
283
- ; X64: # %bb.0:
284
- ; X64-NEXT: kmovw %edi, %k1
285
- ; X64-NEXT: vmovsd %xmm1, %xmm0, %xmm0 {%k1}
286
- ; X64-NEXT: retq
351
+ ; X64-AVX512F-LABEL: pr30561_f64:
352
+ ; X64-AVX512F: # %bb.0:
353
+ ; X64-AVX512F-NEXT: kmovw %edi, %k1
354
+ ; X64-AVX512F-NEXT: vmovsd %xmm1, %xmm0, %xmm0 {%k1}
355
+ ; X64-AVX512F-NEXT: retq
356
+ ;
357
+ ; X64-AVX512BW-LABEL: pr30561_f64:
358
+ ; X64-AVX512BW: # %bb.0:
359
+ ; X64-AVX512BW-NEXT: kmovd %edi, %k1
360
+ ; X64-AVX512BW-NEXT: vmovsd %xmm1, %xmm0, %xmm0 {%k1}
361
+ ; X64-AVX512BW-NEXT: retq
287
362
%cond = select i1 %c , double %a , double %b
288
363
ret double %cond
289
364
}
@@ -298,33 +373,61 @@ define float @pr30561_f32(float %b, float %a, i1 %c) {
298
373
; X86-NEXT: flds (%ecx)
299
374
; X86-NEXT: retl
300
375
;
301
- ; X64-LABEL: pr30561_f32:
302
- ; X64: # %bb.0:
303
- ; X64-NEXT: kmovw %edi, %k1
304
- ; X64-NEXT: vmovss %xmm1, %xmm0, %xmm0 {%k1}
305
- ; X64-NEXT: retq
376
+ ; X64-AVX512F-LABEL: pr30561_f32:
377
+ ; X64-AVX512F: # %bb.0:
378
+ ; X64-AVX512F-NEXT: kmovw %edi, %k1
379
+ ; X64-AVX512F-NEXT: vmovss %xmm1, %xmm0, %xmm0 {%k1}
380
+ ; X64-AVX512F-NEXT: retq
381
+ ;
382
+ ; X64-AVX512BW-LABEL: pr30561_f32:
383
+ ; X64-AVX512BW: # %bb.0:
384
+ ; X64-AVX512BW-NEXT: kmovd %edi, %k1
385
+ ; X64-AVX512BW-NEXT: vmovss %xmm1, %xmm0, %xmm0 {%k1}
386
+ ; X64-AVX512BW-NEXT: retq
306
387
%cond = select i1 %c , float %a , float %b
307
388
ret float %cond
308
389
}
309
390
310
391
define <16 x i16 > @pr31515 (<16 x i1 > %a , <16 x i1 > %b , <16 x i16 > %c ) nounwind {
311
- ; X86-LABEL: pr31515:
312
- ; X86: # %bb.0:
313
- ; X86-NEXT: vpand %xmm1, %xmm0, %xmm0
314
- ; X86-NEXT: vpmovzxbw {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero,xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero
315
- ; X86-NEXT: vpsllw $15, %ymm0, %ymm0
316
- ; X86-NEXT: vpsraw $15, %ymm0, %ymm0
317
- ; X86-NEXT: vpandn %ymm2, %ymm0, %ymm0
318
- ; X86-NEXT: retl
392
+ ; X86-AVX512F- LABEL: pr31515:
393
+ ; X86-AVX512F : # %bb.0:
394
+ ; X86-AVX512F- NEXT: vpand %xmm1, %xmm0, %xmm0
395
+ ; X86-AVX512F- NEXT: vpmovzxbw {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero,xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero
396
+ ; X86-AVX512F- NEXT: vpsllw $15, %ymm0, %ymm0
397
+ ; X86-AVX512F- NEXT: vpsraw $15, %ymm0, %ymm0
398
+ ; X86-AVX512F- NEXT: vpandn %ymm2, %ymm0, %ymm0
399
+ ; X86-AVX512F- NEXT: retl
319
400
;
320
- ; X64-LABEL: pr31515:
321
- ; X64: # %bb.0:
322
- ; X64-NEXT: vpand %xmm1, %xmm0, %xmm0
323
- ; X64-NEXT: vpmovzxbw {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero,xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero
324
- ; X64-NEXT: vpsllw $15, %ymm0, %ymm0
325
- ; X64-NEXT: vpsraw $15, %ymm0, %ymm0
326
- ; X64-NEXT: vpandn %ymm2, %ymm0, %ymm0
327
- ; X64-NEXT: retq
401
+ ; X64-AVX512F-LABEL: pr31515:
402
+ ; X64-AVX512F: # %bb.0:
403
+ ; X64-AVX512F-NEXT: vpand %xmm1, %xmm0, %xmm0
404
+ ; X64-AVX512F-NEXT: vpmovzxbw {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero,xmm0[8],zero,xmm0[9],zero,xmm0[10],zero,xmm0[11],zero,xmm0[12],zero,xmm0[13],zero,xmm0[14],zero,xmm0[15],zero
405
+ ; X64-AVX512F-NEXT: vpsllw $15, %ymm0, %ymm0
406
+ ; X64-AVX512F-NEXT: vpsraw $15, %ymm0, %ymm0
407
+ ; X64-AVX512F-NEXT: vpandn %ymm2, %ymm0, %ymm0
408
+ ; X64-AVX512F-NEXT: retq
409
+ ;
410
+ ; X86-AVX512BW-LABEL: pr31515:
411
+ ; X86-AVX512BW: # %bb.0:
412
+ ; X86-AVX512BW-NEXT: # kill: def $ymm2 killed $ymm2 def $zmm2
413
+ ; X86-AVX512BW-NEXT: vpand %xmm1, %xmm0, %xmm0
414
+ ; X86-AVX512BW-NEXT: vpsllw $7, %xmm0, %xmm0
415
+ ; X86-AVX512BW-NEXT: vpmovb2m %zmm0, %k0
416
+ ; X86-AVX512BW-NEXT: knotw %k0, %k1
417
+ ; X86-AVX512BW-NEXT: vmovdqu16 %zmm2, %zmm0 {%k1} {z}
418
+ ; X86-AVX512BW-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
419
+ ; X86-AVX512BW-NEXT: retl
420
+ ;
421
+ ; X64-AVX512BW-LABEL: pr31515:
422
+ ; X64-AVX512BW: # %bb.0:
423
+ ; X64-AVX512BW-NEXT: # kill: def $ymm2 killed $ymm2 def $zmm2
424
+ ; X64-AVX512BW-NEXT: vpand %xmm1, %xmm0, %xmm0
425
+ ; X64-AVX512BW-NEXT: vpsllw $7, %xmm0, %xmm0
426
+ ; X64-AVX512BW-NEXT: vpmovb2m %zmm0, %k0
427
+ ; X64-AVX512BW-NEXT: knotw %k0, %k1
428
+ ; X64-AVX512BW-NEXT: vmovdqu16 %zmm2, %zmm0 {%k1} {z}
429
+ ; X64-AVX512BW-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
430
+ ; X64-AVX512BW-NEXT: retq
328
431
%mask = and <16 x i1 > %a , %b
329
432
%res = select <16 x i1 > %mask , <16 x i16 > zeroinitializer , <16 x i16 > %c
330
433
ret <16 x i16 > %res
0 commit comments