Lines Matching refs:AVX512F
2 …%s -mtriple=x86_64-unknown -mattr=+avx512f | FileCheck %s --check-prefix=ALL --check-prefix=AVX512F
6 …N: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=X32-AVX512F
16 ; X32-AVX512F-LABEL: merge_8f64_2f64_12u4:
17 ; X32-AVX512F: # BB#0:
18 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
19 ; X32-AVX512F-NEXT: vmovupd 16(%eax), %ymm0
20 ; X32-AVX512F-NEXT: vinsertf128 $1, 64(%eax), %ymm0, %ymm1
21 ; X32-AVX512F-NEXT: vinsertf64x4 $1, %ymm1, %zmm0, %zmm0
22 ; X32-AVX512F-NEXT: retl
44 ; X32-AVX512F-LABEL: merge_8f64_2f64_23z5:
45 ; X32-AVX512F: # BB#0:
46 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
47 ; X32-AVX512F-NEXT: vmovupd 32(%eax), %ymm0
48 ; X32-AVX512F-NEXT: vxorpd %xmm1, %xmm1, %xmm1
49 ; X32-AVX512F-NEXT: vinsertf128 $1, 80(%eax), %ymm1, %ymm1
50 ; X32-AVX512F-NEXT: vinsertf64x4 $1, %ymm1, %zmm0, %zmm0
51 ; X32-AVX512F-NEXT: retl
71 ; X32-AVX512F-LABEL: merge_8f64_4f64_z2:
72 ; X32-AVX512F: # BB#0:
73 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
74 ; X32-AVX512F-NEXT: vxorpd %ymm0, %ymm0, %ymm0
75 ; X32-AVX512F-NEXT: vinsertf64x4 $1, 64(%eax), %zmm0, %zmm0
76 ; X32-AVX512F-NEXT: retl
89 ; X32-AVX512F-LABEL: merge_8f64_f64_23uuuuu9:
90 ; X32-AVX512F: # BB#0:
91 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
92 ; X32-AVX512F-NEXT: vmovupd 16(%eax), %zmm0
93 ; X32-AVX512F-NEXT: retl
116 ; X32-AVX512F-LABEL: merge_8f64_f64_12zzuuzz:
117 ; X32-AVX512F: # BB#0:
118 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
119 ; X32-AVX512F-NEXT: vmovupd 8(%eax), %xmm0
120 ; X32-AVX512F-NEXT: vxorpd %xmm1, %xmm1, %xmm1
121 ; X32-AVX512F-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
122 ; X32-AVX512F-NEXT: vxorpd %ymm1, %ymm1, %ymm1
123 ; X32-AVX512F-NEXT: vinsertf64x4 $1, %ymm1, %zmm0, %zmm0
124 ; X32-AVX512F-NEXT: retl
147 ; X32-AVX512F-LABEL: merge_8f64_f64_1u3u5zu8:
148 ; X32-AVX512F: # BB#0:
149 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
150 ; X32-AVX512F-NEXT: vmovupd 8(%eax), %zmm0
151 ; X32-AVX512F-NEXT: vpxord %zmm1, %zmm1, %zmm1
152 ; X32-AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = <0,0,u,u,2,0,u,u,4,0,13,0,u,u,7,0>
153 ; X32-AVX512F-NEXT: vpermt2pd %zmm1, %zmm2, %zmm0
154 ; X32-AVX512F-NEXT: retl
178 ; X32-AVX512F-LABEL: merge_8i64_4i64_z3:
179 ; X32-AVX512F: # BB#0:
180 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
181 ; X32-AVX512F-NEXT: vpxor %ymm0, %ymm0, %ymm0
182 ; X32-AVX512F-NEXT: vinserti64x4 $1, 96(%eax), %zmm0, %zmm0
183 ; X32-AVX512F-NEXT: retl
200 ; X32-AVX512F-LABEL: merge_8i64_i64_56zz9uzz:
201 ; X32-AVX512F: # BB#0:
202 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
203 ; X32-AVX512F-NEXT: vmovdqu 40(%eax), %xmm0
204 ; X32-AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
205 ; X32-AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
206 ; X32-AVX512F-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
207 ; X32-AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
208 ; X32-AVX512F-NEXT: retl
234 ; X32-AVX512F-LABEL: merge_8i64_i64_1u3u5zu8:
235 ; X32-AVX512F: # BB#0:
236 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
237 ; X32-AVX512F-NEXT: vmovdqu64 8(%eax), %zmm0
238 ; X32-AVX512F-NEXT: vpxord %zmm1, %zmm1, %zmm1
239 ; X32-AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = <0,0,u,u,2,0,u,u,4,0,13,0,u,u,7,0>
240 ; X32-AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
241 ; X32-AVX512F-NEXT: retl
264 ; X32-AVX512F-LABEL: merge_16f32_f32_89zzzuuuuuuuuuuuz:
265 ; X32-AVX512F: # BB#0:
266 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
267 ; X32-AVX512F-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
268 ; X32-AVX512F-NEXT: retl
288 ; X32-AVX512F-LABEL: merge_16f32_f32_45u7uuuuuuuuuuuu:
289 ; X32-AVX512F: # BB#0:
290 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
291 ; X32-AVX512F-NEXT: vmovups 16(%eax), %xmm0
292 ; X32-AVX512F-NEXT: retl
311 ; X32-AVX512F-LABEL: merge_16f32_f32_0uu3uuuuuuuuCuEF:
312 ; X32-AVX512F: # BB#0:
313 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
314 ; X32-AVX512F-NEXT: vmovups (%eax), %zmm0
315 ; X32-AVX512F-NEXT: retl
343 ; X32-AVX512F-LABEL: merge_16f32_f32_0uu3zzuuuuuzCuEF:
344 ; X32-AVX512F: # BB#0:
345 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
346 ; X32-AVX512F-NEXT: vmovups (%eax), %zmm0
347 ; X32-AVX512F-NEXT: vpxord %zmm1, %zmm1, %zmm1
348 ; X32-AVX512F-NEXT: vmovdqa32 {{.*#+}} zmm2 = <0,u,u,3,20,21,u,u,u,u,u,u,12,29,14,15>
349 ; X32-AVX512F-NEXT: vpermt2ps %zmm1, %zmm2, %zmm0
350 ; X32-AVX512F-NEXT: retl
378 ; X32-AVX512F-LABEL: merge_16i32_i32_12zzzuuuuuuuuuuuz:
379 ; X32-AVX512F: # BB#0:
380 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
381 ; X32-AVX512F-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
382 ; X32-AVX512F-NEXT: retl
402 ; X32-AVX512F-LABEL: merge_16i32_i32_23u5uuuuuuuuuuuu:
403 ; X32-AVX512F: # BB#0:
404 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
405 ; X32-AVX512F-NEXT: vmovups 8(%eax), %xmm0
406 ; X32-AVX512F-NEXT: retl
425 ; X32-AVX512F-LABEL: merge_16i32_i32_0uu3uuuuuuuuCuEF:
426 ; X32-AVX512F: # BB#0:
427 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
428 ; X32-AVX512F-NEXT: vmovdqu32 (%eax), %zmm0
429 ; X32-AVX512F-NEXT: retl
457 ; X32-AVX512F-LABEL: merge_16i32_i32_0uu3zzuuuuuzCuEF:
458 ; X32-AVX512F: # BB#0:
459 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
460 ; X32-AVX512F-NEXT: vmovdqu32 (%eax), %zmm0
461 ; X32-AVX512F-NEXT: vpxord %zmm1, %zmm1, %zmm1
462 ; X32-AVX512F-NEXT: vmovdqa32 {{.*#+}} zmm2 = <0,u,u,3,20,21,u,u,u,u,u,u,12,29,14,15>
463 ; X32-AVX512F-NEXT: vpermt2d %zmm1, %zmm2, %zmm0
464 ; X32-AVX512F-NEXT: retl
487 ; AVX512F-LABEL: merge_32i16_i16_12u4uuuuuuuuuuuuuuuuuuuuuuuuuuzz:
488 ; AVX512F: # BB#0:
489 ; AVX512F-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
490 ; AVX512F-NEXT: vxorps %ymm1, %ymm1, %ymm1
491 ; AVX512F-NEXT: retq
498 ; X32-AVX512F-LABEL: merge_32i16_i16_12u4uuuuuuuuuuuuuuuuuuuuuuuuuuzz:
499 ; X32-AVX512F: # BB#0:
500 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
501 ; X32-AVX512F-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
502 ; X32-AVX512F-NEXT: vxorps %ymm1, %ymm1, %ymm1
503 ; X32-AVX512F-NEXT: retl
524 ; X32-AVX512F-LABEL: merge_32i16_i16_45u7uuuuuuuuuuuuuuuuuuuuuuuuuuuu:
525 ; X32-AVX512F: # BB#0:
526 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
527 ; X32-AVX512F-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
528 ; X32-AVX512F-NEXT: retl
542 ; AVX512F-LABEL: merge_32i16_i16_23uzuuuuuuuuuuzzzzuuuuuuuuuuuuuu:
543 ; AVX512F: # BB#0:
544 ; AVX512F-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
545 ; AVX512F-NEXT: vxorps %ymm1, %ymm1, %ymm1
546 ; AVX512F-NEXT: retq
553 ; X32-AVX512F-LABEL: merge_32i16_i16_23uzuuuuuuuuuuzzzzuuuuuuuuuuuuuu:
554 ; X32-AVX512F: # BB#0:
555 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
556 ; X32-AVX512F-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
557 ; X32-AVX512F-NEXT: vxorps %ymm1, %ymm1, %ymm1
558 ; X32-AVX512F-NEXT: retl
574 ; AVX512F-LABEL: merge_64i8_i8_12u4uuu8uuuuuuzzzzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuz:
575 ; AVX512F: # BB#0:
576 ; AVX512F-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
577 ; AVX512F-NEXT: vxorps %ymm1, %ymm1, %ymm1
578 ; AVX512F-NEXT: retq
585 ; X32-AVX512F-LABEL: merge_64i8_i8_12u4uuu8uuuuuuzzzzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuz:
586 ; X32-AVX512F: # BB#0:
587 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
588 ; X32-AVX512F-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
589 ; X32-AVX512F-NEXT: vxorps %ymm1, %ymm1, %ymm1
590 ; X32-AVX512F-NEXT: retl
612 ; AVX512F-LABEL: merge_64i8_i8_12u4uuuuuuuuuuzzzzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuz:
613 ; AVX512F: # BB#0:
614 ; AVX512F-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
615 ; AVX512F-NEXT: vxorps %ymm1, %ymm1, %ymm1
616 ; AVX512F-NEXT: retq
623 ; X32-AVX512F-LABEL: merge_64i8_i8_12u4uuuuuuuuuuzzzzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuz:
624 ; X32-AVX512F: # BB#0:
625 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
626 ; X32-AVX512F-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
627 ; X32-AVX512F-NEXT: vxorps %ymm1, %ymm1, %ymm1
628 ; X32-AVX512F-NEXT: retl
659 ; X32-AVX512F-LABEL: merge_8f64_f64_23uuuuu9_volatile:
660 ; X32-AVX512F: # BB#0:
661 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
662 ; X32-AVX512F-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
663 ; X32-AVX512F-NEXT: vmovhpd {{.*#+}} xmm0 = xmm0[0],mem[0]
664 ; X32-AVX512F-NEXT: vbroadcastsd 72(%eax), %ymm1
665 ; X32-AVX512F-NEXT: vinsertf64x4 $1, %ymm1, %zmm0, %zmm0
666 ; X32-AVX512F-NEXT: retl
691 ; X32-AVX512F-LABEL: merge_16i32_i32_0uu3uuuuuuuuCuEF_volatile:
692 ; X32-AVX512F: # BB#0:
693 ; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
694 ; X32-AVX512F-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
695 ; X32-AVX512F-NEXT: vpinsrd $3, 12(%eax), %xmm0, %xmm0
696 ; X32-AVX512F-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
697 ; X32-AVX512F-NEXT: vpinsrd $2, 56(%eax), %xmm1, %xmm1
698 ; X32-AVX512F-NEXT: vpinsrd $3, 60(%eax), %xmm1, %xmm1
699 ; X32-AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm1
700 ; X32-AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
701 ; X32-AVX512F-NEXT: retl