Lines Matching refs:AVX512CD
5 …tr=+avx512cd,-avx512vl | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX512CD
74 ; AVX512CD-LABEL: testv4i64:
75 ; AVX512CD: # BB#0:
76 ; AVX512CD-NEXT: vpxor %ymm1, %ymm1, %ymm1
77 ; AVX512CD-NEXT: vpsubq %ymm0, %ymm1, %ymm2
78 ; AVX512CD-NEXT: vpand %ymm2, %ymm0, %ymm0
79 ; AVX512CD-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
80 ; AVX512CD-NEXT: vpsubq %ymm2, %ymm0, %ymm0
81 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,…
82 ; AVX512CD-NEXT: vpand %ymm2, %ymm0, %ymm3
83 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,…
84 ; AVX512CD-NEXT: vpshufb %ymm3, %ymm4, %ymm3
85 ; AVX512CD-NEXT: vpsrlw $4, %ymm0, %ymm0
86 ; AVX512CD-NEXT: vpand %ymm2, %ymm0, %ymm0
87 ; AVX512CD-NEXT: vpshufb %ymm0, %ymm4, %ymm0
88 ; AVX512CD-NEXT: vpaddb %ymm3, %ymm0, %ymm0
89 ; AVX512CD-NEXT: vpsadbw %ymm1, %ymm0, %ymm0
90 ; AVX512CD-NEXT: retq
155 ; AVX512CD-LABEL: testv4i64u:
156 ; AVX512CD: # BB#0:
157 ; AVX512CD-NEXT: vpxor %ymm1, %ymm1, %ymm1
158 ; AVX512CD-NEXT: vpsubq %ymm0, %ymm1, %ymm1
159 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
160 ; AVX512CD-NEXT: vplzcntq %zmm0, %zmm0
161 ; AVX512CD-NEXT: vpbroadcastq {{.*}}(%rip), %ymm1
162 ; AVX512CD-NEXT: vpsubq %ymm0, %ymm1, %ymm0
163 ; AVX512CD-NEXT: retq
251 ; AVX512CD-LABEL: testv8i32:
252 ; AVX512CD: # BB#0:
253 ; AVX512CD-NEXT: vpxor %ymm1, %ymm1, %ymm1
254 ; AVX512CD-NEXT: vpsubd %ymm0, %ymm1, %ymm2
255 ; AVX512CD-NEXT: vpand %ymm2, %ymm0, %ymm0
256 ; AVX512CD-NEXT: vpbroadcastd {{.*}}(%rip), %ymm2
257 ; AVX512CD-NEXT: vpsubd %ymm2, %ymm0, %ymm0
258 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,…
259 ; AVX512CD-NEXT: vpand %ymm2, %ymm0, %ymm3
260 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,…
261 ; AVX512CD-NEXT: vpshufb %ymm3, %ymm4, %ymm3
262 ; AVX512CD-NEXT: vpsrlw $4, %ymm0, %ymm0
263 ; AVX512CD-NEXT: vpand %ymm2, %ymm0, %ymm0
264 ; AVX512CD-NEXT: vpshufb %ymm0, %ymm4, %ymm0
265 ; AVX512CD-NEXT: vpaddb %ymm3, %ymm0, %ymm0
266 ; AVX512CD-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0…
267 ; AVX512CD-NEXT: vpsadbw %ymm1, %ymm2, %ymm2
268 ; AVX512CD-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0…
269 ; AVX512CD-NEXT: vpsadbw %ymm1, %ymm0, %ymm0
270 ; AVX512CD-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
271 ; AVX512CD-NEXT: retq
348 ; AVX512CD-LABEL: testv8i32u:
349 ; AVX512CD: # BB#0:
350 ; AVX512CD-NEXT: vpxor %ymm1, %ymm1, %ymm1
351 ; AVX512CD-NEXT: vpsubd %ymm0, %ymm1, %ymm1
352 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
353 ; AVX512CD-NEXT: vplzcntd %zmm0, %zmm0
354 ; AVX512CD-NEXT: vpbroadcastd {{.*}}(%rip), %ymm1
355 ; AVX512CD-NEXT: vpsubd %ymm0, %ymm1, %ymm0
356 ; AVX512CD-NEXT: retq
435 ; AVX512CD-LABEL: testv16i16:
436 ; AVX512CD: # BB#0:
437 ; AVX512CD-NEXT: vpxor %ymm1, %ymm1, %ymm1
438 ; AVX512CD-NEXT: vpsubw %ymm0, %ymm1, %ymm1
439 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
440 ; AVX512CD-NEXT: vpsubw {{.*}}(%rip), %ymm0, %ymm0
441 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,…
442 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm2
443 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,…
444 ; AVX512CD-NEXT: vpshufb %ymm2, %ymm3, %ymm2
445 ; AVX512CD-NEXT: vpsrlw $4, %ymm0, %ymm0
446 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
447 ; AVX512CD-NEXT: vpshufb %ymm0, %ymm3, %ymm0
448 ; AVX512CD-NEXT: vpaddb %ymm2, %ymm0, %ymm0
449 ; AVX512CD-NEXT: vpsllw $8, %ymm0, %ymm1
450 ; AVX512CD-NEXT: vpaddb %ymm0, %ymm1, %ymm0
451 ; AVX512CD-NEXT: vpsrlw $8, %ymm0, %ymm0
452 ; AVX512CD-NEXT: retq
531 ; AVX512CD-LABEL: testv16i16u:
532 ; AVX512CD: # BB#0:
533 ; AVX512CD-NEXT: vpxor %ymm1, %ymm1, %ymm1
534 ; AVX512CD-NEXT: vpsubw %ymm0, %ymm1, %ymm1
535 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
536 ; AVX512CD-NEXT: vpsubw {{.*}}(%rip), %ymm0, %ymm0
537 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,…
538 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm2
539 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,…
540 ; AVX512CD-NEXT: vpshufb %ymm2, %ymm3, %ymm2
541 ; AVX512CD-NEXT: vpsrlw $4, %ymm0, %ymm0
542 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
543 ; AVX512CD-NEXT: vpshufb %ymm0, %ymm3, %ymm0
544 ; AVX512CD-NEXT: vpaddb %ymm2, %ymm0, %ymm0
545 ; AVX512CD-NEXT: vpsllw $8, %ymm0, %ymm1
546 ; AVX512CD-NEXT: vpaddb %ymm0, %ymm1, %ymm0
547 ; AVX512CD-NEXT: vpsrlw $8, %ymm0, %ymm0
548 ; AVX512CD-NEXT: retq
615 ; AVX512CD-LABEL: testv32i8:
616 ; AVX512CD: # BB#0:
617 ; AVX512CD-NEXT: vpxor %ymm1, %ymm1, %ymm1
618 ; AVX512CD-NEXT: vpsubb %ymm0, %ymm1, %ymm1
619 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
620 ; AVX512CD-NEXT: vpsubb {{.*}}(%rip), %ymm0, %ymm0
621 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,…
622 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm2
623 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,…
624 ; AVX512CD-NEXT: vpshufb %ymm2, %ymm3, %ymm2
625 ; AVX512CD-NEXT: vpsrlw $4, %ymm0, %ymm0
626 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
627 ; AVX512CD-NEXT: vpshufb %ymm0, %ymm3, %ymm0
628 ; AVX512CD-NEXT: vpaddb %ymm2, %ymm0, %ymm0
629 ; AVX512CD-NEXT: retq
696 ; AVX512CD-LABEL: testv32i8u:
697 ; AVX512CD: # BB#0:
698 ; AVX512CD-NEXT: vpxor %ymm1, %ymm1, %ymm1
699 ; AVX512CD-NEXT: vpsubb %ymm0, %ymm1, %ymm1
700 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
701 ; AVX512CD-NEXT: vpsubb {{.*}}(%rip), %ymm0, %ymm0
702 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,…
703 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm2
704 ; AVX512CD-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,…
705 ; AVX512CD-NEXT: vpshufb %ymm2, %ymm3, %ymm2
706 ; AVX512CD-NEXT: vpsrlw $4, %ymm0, %ymm0
707 ; AVX512CD-NEXT: vpand %ymm1, %ymm0, %ymm0
708 ; AVX512CD-NEXT: vpshufb %ymm0, %ymm3, %ymm0
709 ; AVX512CD-NEXT: vpaddb %ymm2, %ymm0, %ymm0
710 ; AVX512CD-NEXT: retq
731 ; AVX512CD-LABEL: foldv4i64:
732 ; AVX512CD: # BB#0:
733 ; AVX512CD-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,64,0]
734 ; AVX512CD-NEXT: retq
755 ; AVX512CD-LABEL: foldv4i64u:
756 ; AVX512CD: # BB#0:
757 ; AVX512CD-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,64,0]
758 ; AVX512CD-NEXT: retq
779 ; AVX512CD-LABEL: foldv8i32:
780 ; AVX512CD: # BB#0:
781 ; AVX512CD-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,32,0,16,0,3,3]
782 ; AVX512CD-NEXT: retq
803 ; AVX512CD-LABEL: foldv8i32u:
804 ; AVX512CD: # BB#0:
805 ; AVX512CD-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,32,0,16,0,3,3]
806 ; AVX512CD-NEXT: retq
827 ; AVX512CD-LABEL: foldv16i16:
828 ; AVX512CD: # BB#0:
829 ; AVX512CD-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,16,0,16,0,3,3,1,1,0,1,2,3,4,5]
830 ; AVX512CD-NEXT: retq
851 ; AVX512CD-LABEL: foldv16i16u:
852 ; AVX512CD: # BB#0:
853 ; AVX512CD-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,16,0,16,0,3,3,1,1,0,1,2,3,4,5]
854 ; AVX512CD-NEXT: retq
875 ; AVX512CD-LABEL: foldv32i8:
876 ; AVX512CD: # BB#0:
877 ; AVX512CD-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,8,0,8,0,3,3,1,1,0,1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,…
878 ; AVX512CD-NEXT: retq
899 ; AVX512CD-LABEL: foldv32i8u:
900 ; AVX512CD: # BB#0:
901 ; AVX512CD-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,8,0,8,0,3,3,1,1,0,1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,…
902 ; AVX512CD-NEXT: retq