Lines Matching refs:AVX2
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefix=AVX2
17 ; AVX2-LABEL: zext_and_v8i32:
18 ; AVX2: # %bb.0:
19 ; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
20 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
21 ; AVX2-NEXT: retq
40 ; AVX2-LABEL: zext_or_v8i32:
41 ; AVX2: # %bb.0:
42 ; AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
43 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
44 ; AVX2-NEXT: retq
63 ; AVX2-LABEL: zext_xor_v8i32:
64 ; AVX2: # %bb.0:
65 ; AVX2-NEXT: vpxor %xmm1, %xmm0, %xmm0
66 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
67 ; AVX2-NEXT: retq
85 ; AVX2-LABEL: sext_and_v8i32:
86 ; AVX2: # %bb.0:
87 ; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
88 ; AVX2-NEXT: vpmovsxwd %xmm0, %ymm0
89 ; AVX2-NEXT: retq
107 ; AVX2-LABEL: sext_or_v8i32:
108 ; AVX2: # %bb.0:
109 ; AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
110 ; AVX2-NEXT: vpmovsxwd %xmm0, %ymm0
111 ; AVX2-NEXT: retq
129 ; AVX2-LABEL: sext_xor_v8i32:
130 ; AVX2: # %bb.0:
131 ; AVX2-NEXT: vpxor %xmm1, %xmm0, %xmm0
132 ; AVX2-NEXT: vpmovsxwd %xmm0, %ymm0
133 ; AVX2-NEXT: retq
149 ; AVX2-LABEL: zext_and_v8i16:
150 ; AVX2: # %bb.0:
151 ; AVX2-NEXT: vpmovzxbw {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
152 ; AVX2-NEXT: vpmovzxbw {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[…
153 ; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
154 ; AVX2-NEXT: retq
170 ; AVX2-LABEL: zext_or_v8i16:
171 ; AVX2: # %bb.0:
172 ; AVX2-NEXT: vpmovzxbw {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
173 ; AVX2-NEXT: vpmovzxbw {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[…
174 ; AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
175 ; AVX2-NEXT: retq
191 ; AVX2-LABEL: zext_xor_v8i16:
192 ; AVX2: # %bb.0:
193 ; AVX2-NEXT: vpmovzxbw {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
194 ; AVX2-NEXT: vpmovzxbw {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[…
195 ; AVX2-NEXT: vpxor %xmm1, %xmm0, %xmm0
196 ; AVX2-NEXT: retq
213 ; AVX2-LABEL: sext_and_v8i16:
214 ; AVX2: # %bb.0:
215 ; AVX2-NEXT: vpmovsxbw %xmm0, %xmm0
216 ; AVX2-NEXT: vpmovsxbw %xmm1, %xmm1
217 ; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
218 ; AVX2-NEXT: retq
235 ; AVX2-LABEL: sext_or_v8i16:
236 ; AVX2: # %bb.0:
237 ; AVX2-NEXT: vpmovsxbw %xmm0, %xmm0
238 ; AVX2-NEXT: vpmovsxbw %xmm1, %xmm1
239 ; AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
240 ; AVX2-NEXT: retq
257 ; AVX2-LABEL: sext_xor_v8i16:
258 ; AVX2: # %bb.0:
259 ; AVX2-NEXT: vpmovsxbw %xmm0, %xmm0
260 ; AVX2-NEXT: vpmovsxbw %xmm1, %xmm1
261 ; AVX2-NEXT: vpxor %xmm1, %xmm0, %xmm0
262 ; AVX2-NEXT: retq
285 ; AVX2-LABEL: bool_zext_and:
286 ; AVX2: # %bb.0:
287 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
288 ; AVX2-NEXT: vpand {{.*}}(%rip), %xmm1, %xmm1
289 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[…
290 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
291 ; AVX2-NEXT: retq
311 ; AVX2-LABEL: bool_zext_or:
312 ; AVX2: # %bb.0:
313 ; AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
314 ; AVX2-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
315 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
316 ; AVX2-NEXT: retq
336 ; AVX2-LABEL: bool_zext_xor:
337 ; AVX2: # %bb.0:
338 ; AVX2-NEXT: vpxor %xmm1, %xmm0, %xmm0
339 ; AVX2-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
340 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
341 ; AVX2-NEXT: retq
370 ; AVX2-LABEL: bool_sext_and:
371 ; AVX2: # %bb.0:
372 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[…
373 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
374 ; AVX2-NEXT: vpslld $31, %ymm0, %ymm0
375 ; AVX2-NEXT: vpsrad $31, %ymm0, %ymm0
376 ; AVX2-NEXT: vpslld $31, %ymm1, %ymm1
377 ; AVX2-NEXT: vpsrad $31, %ymm1, %ymm1
378 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
379 ; AVX2-NEXT: retq
408 ; AVX2-LABEL: bool_sext_or:
409 ; AVX2: # %bb.0:
410 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[…
411 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
412 ; AVX2-NEXT: vpslld $31, %ymm0, %ymm0
413 ; AVX2-NEXT: vpsrad $31, %ymm0, %ymm0
414 ; AVX2-NEXT: vpslld $31, %ymm1, %ymm1
415 ; AVX2-NEXT: vpsrad $31, %ymm1, %ymm1
416 ; AVX2-NEXT: vpor %ymm1, %ymm0, %ymm0
417 ; AVX2-NEXT: retq
446 ; AVX2-LABEL: bool_sext_xor:
447 ; AVX2: # %bb.0:
448 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[…
449 ; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[…
450 ; AVX2-NEXT: vpslld $31, %ymm0, %ymm0
451 ; AVX2-NEXT: vpsrad $31, %ymm0, %ymm0
452 ; AVX2-NEXT: vpslld $31, %ymm1, %ymm1
453 ; AVX2-NEXT: vpsrad $31, %ymm1, %ymm1
454 ; AVX2-NEXT: vpxor %ymm1, %ymm0, %ymm0
455 ; AVX2-NEXT: retq