Lines Matching refs:AVX2

3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
39 ; AVX2-LABEL: testv4i64:
40 ; AVX2: # BB#0:
41 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
42 ; AVX2-NEXT: vpsubq %ymm0, %ymm1, %ymm2
43 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
44 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
45 ; AVX2-NEXT: vpsubq %ymm2, %ymm0, %ymm0
46 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
47 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm3
48 ; AVX2-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,3,2,…
49 ; AVX2-NEXT: vpshufb %ymm3, %ymm4, %ymm3
50 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
51 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
52 ; AVX2-NEXT: vpshufb %ymm0, %ymm4, %ymm0
53 ; AVX2-NEXT: vpaddb %ymm3, %ymm0, %ymm0
54 ; AVX2-NEXT: vpsadbw %ymm1, %ymm0, %ymm0
55 ; AVX2-NEXT: retq
127 ; AVX2-LABEL: testv4i64u:
128 ; AVX2: # BB#0:
129 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
130 ; AVX2-NEXT: vpsubq %ymm0, %ymm1, %ymm2
131 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
132 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
133 ; AVX2-NEXT: vpsubq %ymm2, %ymm0, %ymm0
134 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
135 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm3
136 ; AVX2-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,3,2,…
137 ; AVX2-NEXT: vpshufb %ymm3, %ymm4, %ymm3
138 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
139 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
140 ; AVX2-NEXT: vpshufb %ymm0, %ymm4, %ymm0
141 ; AVX2-NEXT: vpaddb %ymm3, %ymm0, %ymm0
142 ; AVX2-NEXT: vpsadbw %ymm1, %ymm0, %ymm0
143 ; AVX2-NEXT: retq
208 ; AVX2-LABEL: testv8i32:
209 ; AVX2: # BB#0:
210 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
211 ; AVX2-NEXT: vpsubd %ymm0, %ymm1, %ymm2
212 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
213 ; AVX2-NEXT: vpbroadcastd {{.*}}(%rip), %ymm2
214 ; AVX2-NEXT: vpsubd %ymm2, %ymm0, %ymm0
215 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
216 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm3
217 ; AVX2-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,3,2,…
218 ; AVX2-NEXT: vpshufb %ymm3, %ymm4, %ymm3
219 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
220 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
221 ; AVX2-NEXT: vpshufb %ymm0, %ymm4, %ymm0
222 ; AVX2-NEXT: vpaddb %ymm3, %ymm0, %ymm0
223 ; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],…
224 ; AVX2-NEXT: vpsadbw %ymm1, %ymm2, %ymm2
225 ; AVX2-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],…
226 ; AVX2-NEXT: vpsadbw %ymm1, %ymm0, %ymm0
227 ; AVX2-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
228 ; AVX2-NEXT: retq
316 ; AVX2-LABEL: testv8i32u:
317 ; AVX2: # BB#0:
318 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
319 ; AVX2-NEXT: vpsubd %ymm0, %ymm1, %ymm2
320 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
321 ; AVX2-NEXT: vpbroadcastd {{.*}}(%rip), %ymm2
322 ; AVX2-NEXT: vpsubd %ymm2, %ymm0, %ymm0
323 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
324 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm3
325 ; AVX2-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,3,2,…
326 ; AVX2-NEXT: vpshufb %ymm3, %ymm4, %ymm3
327 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
328 ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
329 ; AVX2-NEXT: vpshufb %ymm0, %ymm4, %ymm0
330 ; AVX2-NEXT: vpaddb %ymm3, %ymm0, %ymm0
331 ; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],…
332 ; AVX2-NEXT: vpsadbw %ymm1, %ymm2, %ymm2
333 ; AVX2-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],…
334 ; AVX2-NEXT: vpsadbw %ymm1, %ymm0, %ymm0
335 ; AVX2-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
336 ; AVX2-NEXT: retq
397 ; AVX2-LABEL: testv16i16:
398 ; AVX2: # BB#0:
399 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
400 ; AVX2-NEXT: vpsubw %ymm0, %ymm1, %ymm1
401 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
402 ; AVX2-NEXT: vpsubw {{.*}}(%rip), %ymm0, %ymm0
403 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
404 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
405 ; AVX2-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,3,2,…
406 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
407 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
408 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
409 ; AVX2-NEXT: vpshufb %ymm0, %ymm3, %ymm0
410 ; AVX2-NEXT: vpaddb %ymm2, %ymm0, %ymm0
411 ; AVX2-NEXT: vpsllw $8, %ymm0, %ymm1
412 ; AVX2-NEXT: vpaddb %ymm0, %ymm1, %ymm0
413 ; AVX2-NEXT: vpsrlw $8, %ymm0, %ymm0
414 ; AVX2-NEXT: retq
493 ; AVX2-LABEL: testv16i16u:
494 ; AVX2: # BB#0:
495 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
496 ; AVX2-NEXT: vpsubw %ymm0, %ymm1, %ymm1
497 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
498 ; AVX2-NEXT: vpsubw {{.*}}(%rip), %ymm0, %ymm0
499 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
500 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
501 ; AVX2-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,3,2,…
502 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
503 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
504 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
505 ; AVX2-NEXT: vpshufb %ymm0, %ymm3, %ymm0
506 ; AVX2-NEXT: vpaddb %ymm2, %ymm0, %ymm0
507 ; AVX2-NEXT: vpsllw $8, %ymm0, %ymm1
508 ; AVX2-NEXT: vpaddb %ymm0, %ymm1, %ymm0
509 ; AVX2-NEXT: vpsrlw $8, %ymm0, %ymm0
510 ; AVX2-NEXT: retq
583 ; AVX2-LABEL: testv32i8:
584 ; AVX2: # BB#0:
585 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
586 ; AVX2-NEXT: vpsubb %ymm0, %ymm1, %ymm1
587 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
588 ; AVX2-NEXT: vpsubb {{.*}}(%rip), %ymm0, %ymm0
589 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
590 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
591 ; AVX2-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,3,2,…
592 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
593 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
594 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
595 ; AVX2-NEXT: vpshufb %ymm0, %ymm3, %ymm0
596 ; AVX2-NEXT: vpaddb %ymm2, %ymm0, %ymm0
597 ; AVX2-NEXT: retq
664 ; AVX2-LABEL: testv32i8u:
665 ; AVX2: # BB#0:
666 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
667 ; AVX2-NEXT: vpsubb %ymm0, %ymm1, %ymm1
668 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
669 ; AVX2-NEXT: vpsubb {{.*}}(%rip), %ymm0, %ymm0
670 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
671 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
672 ; AVX2-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,3,2,…
673 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
674 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
675 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
676 ; AVX2-NEXT: vpshufb %ymm0, %ymm3, %ymm0
677 ; AVX2-NEXT: vpaddb %ymm2, %ymm0, %ymm0
678 ; AVX2-NEXT: retq
721 ; AVX2-LABEL: foldv4i64:
722 ; AVX2: # BB#0:
723 ; AVX2-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,64,0]
724 ; AVX2-NEXT: retq
745 ; AVX2-LABEL: foldv4i64u:
746 ; AVX2: # BB#0:
747 ; AVX2-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,64,0]
748 ; AVX2-NEXT: retq
769 ; AVX2-LABEL: foldv8i32:
770 ; AVX2: # BB#0:
771 ; AVX2-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,32,0,16,0,3,3]
772 ; AVX2-NEXT: retq
793 ; AVX2-LABEL: foldv8i32u:
794 ; AVX2: # BB#0:
795 ; AVX2-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,32,0,16,0,3,3]
796 ; AVX2-NEXT: retq
817 ; AVX2-LABEL: foldv16i16:
818 ; AVX2: # BB#0:
819 ; AVX2-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,16,0,16,0,3,3,1,1,0,1,2,3,4,5]
820 ; AVX2-NEXT: retq
841 ; AVX2-LABEL: foldv16i16u:
842 ; AVX2: # BB#0:
843 ; AVX2-NEXT: vmovaps {{.*#+}} ymm0 = [8,0,16,0,16,0,3,3,1,1,0,1,2,3,4,5]
844 ; AVX2-NEXT: retq
865 ; AVX2-LABEL: foldv32i8:
866 ; AVX2: # BB#0:
867 ; AVX2-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,0,0,…
868 ; AVX2-NEXT: retq
889 ; AVX2-LABEL: foldv32i8u:
890 ; AVX2: # BB#0:
891 ; AVX2-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,0,0,…
892 ; AVX2-NEXT: retq