• Home
  • Raw
  • Download

Lines Matching refs:AVX512F

2 …RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=AVX512F
10 ; AVX512F-LABEL: ugt_1_v64i8:
11 ; AVX512F: # %bb.0:
12 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13 ; AVX512F-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2
14 ; AVX512F-NEXT: vpaddb %ymm2, %ymm1, %ymm3
15 ; AVX512F-NEXT: vpand %ymm3, %ymm1, %ymm1
16 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
17 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm1, %ymm1
18 ; AVX512F-NEXT: vpaddb %ymm2, %ymm0, %ymm2
19 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
20 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
21 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
22 ; AVX512F-NEXT: vpternlogq $15, %zmm0, %zmm0, %zmm0
23 ; AVX512F-NEXT: retq
69 ; AVX512F-LABEL: ult_2_v64i8:
70 ; AVX512F: # %bb.0:
71 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
72 ; AVX512F-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2
73 ; AVX512F-NEXT: vpaddb %ymm2, %ymm1, %ymm3
74 ; AVX512F-NEXT: vpand %ymm3, %ymm1, %ymm1
75 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
76 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm1, %ymm1
77 ; AVX512F-NEXT: vpaddb %ymm2, %ymm0, %ymm2
78 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
79 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
80 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
81 ; AVX512F-NEXT: retq
126 ; AVX512F-LABEL: ugt_2_v64i8:
127 ; AVX512F: # %bb.0:
128 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
129 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
130 ; AVX512F-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…
131 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
132 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
133 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
134 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
135 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
136 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
137 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
138 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
139 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
140 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
141 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
142 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
143 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3…
144 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm3
145 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
146 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm2, %ymm1
147 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
148 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
149 ; AVX512F-NEXT: retq
217 ; AVX512F-LABEL: ult_3_v64i8:
218 ; AVX512F: # %bb.0:
219 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
220 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
221 ; AVX512F-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…
222 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
223 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
224 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
225 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
226 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
227 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
228 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
229 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
230 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
231 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
232 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
233 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
234 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2…
235 ; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm3
236 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
237 ; AVX512F-NEXT: vpminub %ymm1, %ymm2, %ymm1
238 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
239 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
240 ; AVX512F-NEXT: retq
308 ; AVX512F-LABEL: ugt_3_v64i8:
309 ; AVX512F: # %bb.0:
310 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
311 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
312 ; AVX512F-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…
313 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
314 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
315 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
316 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
317 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
318 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
319 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
320 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
321 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
322 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
323 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
324 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
325 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4…
326 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm3
327 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
328 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm2, %ymm1
329 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
330 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
331 ; AVX512F-NEXT: retq
399 ; AVX512F-LABEL: ult_4_v64i8:
400 ; AVX512F: # %bb.0:
401 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
402 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
403 ; AVX512F-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…
404 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
405 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
406 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
407 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
408 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
409 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
410 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
411 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
412 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
413 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
414 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
415 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
416 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3…
417 ; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm3
418 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
419 ; AVX512F-NEXT: vpminub %ymm1, %ymm2, %ymm1
420 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
421 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
422 ; AVX512F-NEXT: retq
490 ; AVX512F-LABEL: ugt_4_v64i8:
491 ; AVX512F: # %bb.0:
492 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
493 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
494 ; AVX512F-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…
495 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
496 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
497 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
498 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
499 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
500 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
501 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
502 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
503 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
504 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
505 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
506 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
507 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5…
508 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm3
509 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
510 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm2, %ymm1
511 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
512 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
513 ; AVX512F-NEXT: retq
581 ; AVX512F-LABEL: ult_5_v64i8:
582 ; AVX512F: # %bb.0:
583 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
584 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
585 ; AVX512F-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…
586 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
587 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
588 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
589 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
590 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
591 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
592 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
593 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
594 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
595 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
596 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
597 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
598 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4…
599 ; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm3
600 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
601 ; AVX512F-NEXT: vpminub %ymm1, %ymm2, %ymm1
602 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
603 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
604 ; AVX512F-NEXT: retq
672 ; AVX512F-LABEL: ugt_5_v64i8:
673 ; AVX512F: # %bb.0:
674 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
675 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
676 ; AVX512F-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…
677 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
678 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
679 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
680 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
681 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
682 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
683 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
684 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
685 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
686 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
687 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
688 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
689 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6…
690 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm3
691 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
692 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm2, %ymm1
693 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
694 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
695 ; AVX512F-NEXT: retq
763 ; AVX512F-LABEL: ult_6_v64i8:
764 ; AVX512F: # %bb.0:
765 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
766 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
767 ; AVX512F-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…
768 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
769 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
770 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
771 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
772 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
773 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
774 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
775 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
776 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
777 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
778 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
779 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
780 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5…
781 ; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm3
782 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
783 ; AVX512F-NEXT: vpminub %ymm1, %ymm2, %ymm1
784 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
785 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
786 ; AVX512F-NEXT: retq
854 ; AVX512F-LABEL: ugt_6_v64i8:
855 ; AVX512F: # %bb.0:
856 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
857 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
858 ; AVX512F-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…
859 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
860 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
861 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
862 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
863 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
864 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
865 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
866 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
867 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
868 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
869 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
870 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
871 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7…
872 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm3
873 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
874 ; AVX512F-NEXT: vpmaxub %ymm1, %ymm2, %ymm1
875 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
876 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
877 ; AVX512F-NEXT: retq
945 ; AVX512F-LABEL: ult_7_v64i8:
946 ; AVX512F: # %bb.0:
947 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
948 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
949 ; AVX512F-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…
950 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
951 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
952 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
953 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
954 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
955 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
956 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
957 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
958 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
959 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
960 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
961 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
962 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6…
963 ; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm3
964 ; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm0, %ymm0
965 ; AVX512F-NEXT: vpminub %ymm1, %ymm2, %ymm1
966 ; AVX512F-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
967 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
968 ; AVX512F-NEXT: retq
1036 ; AVX512F-LABEL: ugt_1_v32i16:
1037 ; AVX512F: # %bb.0:
1038 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
1039 ; AVX512F-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2
1040 ; AVX512F-NEXT: vpaddw %ymm2, %ymm1, %ymm3
1041 ; AVX512F-NEXT: vpand %ymm3, %ymm1, %ymm1
1042 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
1043 ; AVX512F-NEXT: vpcmpeqw %ymm3, %ymm1, %ymm1
1044 ; AVX512F-NEXT: vpaddw %ymm2, %ymm0, %ymm2
1045 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
1046 ; AVX512F-NEXT: vpcmpeqw %ymm3, %ymm0, %ymm0
1047 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
1048 ; AVX512F-NEXT: vpternlogq $15, %zmm0, %zmm0, %zmm0
1049 ; AVX512F-NEXT: retq
1095 ; AVX512F-LABEL: ult_2_v32i16:
1096 ; AVX512F: # %bb.0:
1097 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
1098 ; AVX512F-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2
1099 ; AVX512F-NEXT: vpaddw %ymm2, %ymm1, %ymm3
1100 ; AVX512F-NEXT: vpand %ymm3, %ymm1, %ymm1
1101 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
1102 ; AVX512F-NEXT: vpcmpeqw %ymm3, %ymm1, %ymm1
1103 ; AVX512F-NEXT: vpaddw %ymm2, %ymm0, %ymm2
1104 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
1105 ; AVX512F-NEXT: vpcmpeqw %ymm3, %ymm0, %ymm0
1106 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
1107 ; AVX512F-NEXT: retq
1152 ; AVX512F-LABEL: ugt_2_v32i16:
1153 ; AVX512F: # %bb.0:
1154 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1155 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1156 ; AVX512F-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…
1157 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1158 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1159 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1160 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1161 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1162 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1163 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1164 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1165 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1166 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1167 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1168 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1169 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1170 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1171 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1172 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1173 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1174 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1175 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
1176 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
1177 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
1178 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1179 ; AVX512F-NEXT: retq
1243 ; AVX512F-LABEL: ult_3_v32i16:
1244 ; AVX512F: # %bb.0:
1245 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1246 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1247 ; AVX512F-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…
1248 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1249 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1250 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1251 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1252 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1253 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1254 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1255 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1256 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1257 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1258 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1259 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1260 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1261 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1262 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1263 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1264 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1265 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1266 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]
1267 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
1268 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
1269 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1270 ; AVX512F-NEXT: retq
1334 ; AVX512F-LABEL: ugt_3_v32i16:
1335 ; AVX512F: # %bb.0:
1336 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1337 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1338 ; AVX512F-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…
1339 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1340 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1341 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1342 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1343 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1344 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1345 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1346 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1347 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1348 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1349 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1350 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1351 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1352 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1353 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1354 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1355 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1356 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1357 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]
1358 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
1359 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
1360 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1361 ; AVX512F-NEXT: retq
1425 ; AVX512F-LABEL: ult_4_v32i16:
1426 ; AVX512F: # %bb.0:
1427 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1428 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1429 ; AVX512F-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…
1430 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1431 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1432 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1433 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1434 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1435 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1436 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1437 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1438 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1439 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1440 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1441 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1442 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1443 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1444 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1445 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1446 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1447 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1448 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
1449 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
1450 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
1451 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1452 ; AVX512F-NEXT: retq
1516 ; AVX512F-LABEL: ugt_4_v32i16:
1517 ; AVX512F: # %bb.0:
1518 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1519 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1520 ; AVX512F-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…
1521 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1522 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1523 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1524 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1525 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1526 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1527 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1528 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1529 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1530 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1531 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1532 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1533 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1534 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1535 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1536 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1537 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1538 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1539 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
1540 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
1541 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
1542 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1543 ; AVX512F-NEXT: retq
1607 ; AVX512F-LABEL: ult_5_v32i16:
1608 ; AVX512F: # %bb.0:
1609 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1610 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1611 ; AVX512F-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…
1612 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1613 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1614 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1615 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1616 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1617 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1618 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1619 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1620 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1621 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1622 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1623 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1624 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1625 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1626 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1627 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1628 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1629 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1630 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5]
1631 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
1632 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
1633 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1634 ; AVX512F-NEXT: retq
1698 ; AVX512F-LABEL: ugt_5_v32i16:
1699 ; AVX512F: # %bb.0:
1700 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1701 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1702 ; AVX512F-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…
1703 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1704 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1705 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1706 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1707 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1708 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1709 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1710 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1711 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1712 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1713 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1714 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1715 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1716 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1717 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1718 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1719 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1720 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1721 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5]
1722 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
1723 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
1724 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1725 ; AVX512F-NEXT: retq
1789 ; AVX512F-LABEL: ult_6_v32i16:
1790 ; AVX512F: # %bb.0:
1791 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1792 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1793 ; AVX512F-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…
1794 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1795 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1796 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1797 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1798 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1799 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1800 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1801 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1802 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1803 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1804 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1805 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1806 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1807 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1808 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1809 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1810 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1811 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1812 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6]
1813 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
1814 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
1815 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1816 ; AVX512F-NEXT: retq
1880 ; AVX512F-LABEL: ugt_6_v32i16:
1881 ; AVX512F: # %bb.0:
1882 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1883 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1884 ; AVX512F-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…
1885 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1886 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1887 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1888 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1889 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1890 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1891 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1892 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1893 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1894 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1895 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1896 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1897 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1898 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1899 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1900 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1901 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1902 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1903 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6]
1904 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
1905 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
1906 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1907 ; AVX512F-NEXT: retq
1971 ; AVX512F-LABEL: ult_7_v32i16:
1972 ; AVX512F: # %bb.0:
1973 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
1974 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
1975 ; AVX512F-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…
1976 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
1977 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
1978 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
1979 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1980 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1981 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
1982 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
1983 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
1984 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
1985 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
1986 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
1987 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
1988 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
1989 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
1990 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
1991 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
1992 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
1993 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
1994 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
1995 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
1996 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
1997 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
1998 ; AVX512F-NEXT: retq
2062 ; AVX512F-LABEL: ugt_7_v32i16:
2063 ; AVX512F: # %bb.0:
2064 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2065 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2066 ; AVX512F-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…
2067 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2068 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2069 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2070 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2071 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2072 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2073 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2074 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2075 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2076 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2077 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2078 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2079 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2080 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2081 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2082 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2083 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2084 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2085 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
2086 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
2087 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
2088 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2089 ; AVX512F-NEXT: retq
2153 ; AVX512F-LABEL: ult_8_v32i16:
2154 ; AVX512F: # %bb.0:
2155 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2156 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2157 ; AVX512F-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…
2158 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2159 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2160 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2161 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2162 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2163 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2164 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2165 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2166 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2167 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2168 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2169 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2170 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2171 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2172 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2173 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2174 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2175 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2176 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
2177 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2178 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
2179 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2180 ; AVX512F-NEXT: retq
2244 ; AVX512F-LABEL: ugt_8_v32i16:
2245 ; AVX512F: # %bb.0:
2246 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2247 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2248 ; AVX512F-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…
2249 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2250 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2251 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2252 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2253 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2254 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2255 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2256 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2257 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2258 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2259 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2260 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2261 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2262 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2263 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2264 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2265 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2266 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2267 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
2268 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
2269 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
2270 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2271 ; AVX512F-NEXT: retq
2335 ; AVX512F-LABEL: ult_9_v32i16:
2336 ; AVX512F: # %bb.0:
2337 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2338 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2339 ; AVX512F-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…
2340 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2341 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2342 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2343 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2344 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2345 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2346 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2347 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2348 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2349 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2350 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2351 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2352 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2353 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2354 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2355 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2356 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2357 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2358 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]
2359 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2360 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
2361 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2362 ; AVX512F-NEXT: retq
2426 ; AVX512F-LABEL: ugt_9_v32i16:
2427 ; AVX512F: # %bb.0:
2428 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2429 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2430 ; AVX512F-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…
2431 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2432 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2433 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2434 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2435 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2436 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2437 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2438 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2439 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2440 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2441 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2442 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2443 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2444 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2445 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2446 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2447 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2448 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2449 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]
2450 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
2451 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
2452 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2453 ; AVX512F-NEXT: retq
2517 ; AVX512F-LABEL: ult_10_v32i16:
2518 ; AVX512F: # %bb.0:
2519 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2520 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2521 ; AVX512F-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…
2522 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2523 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2524 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2525 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2526 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2527 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2528 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2529 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2530 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2531 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2532 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2533 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2534 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2535 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2536 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2537 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2538 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2539 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2540 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
2541 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2542 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
2543 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2544 ; AVX512F-NEXT: retq
2608 ; AVX512F-LABEL: ugt_10_v32i16:
2609 ; AVX512F: # %bb.0:
2610 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2611 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2612 ; AVX512F-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…
2613 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2614 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2615 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2616 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2617 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2618 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2619 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2620 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2621 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2622 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2623 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2624 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2625 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2626 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2627 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2628 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2629 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2630 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2631 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
2632 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
2633 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
2634 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2635 ; AVX512F-NEXT: retq
2699 ; AVX512F-LABEL: ult_11_v32i16:
2700 ; AVX512F: # %bb.0:
2701 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2702 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2703 ; AVX512F-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…
2704 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2705 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2706 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2707 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2708 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2709 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2710 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2711 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2712 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2713 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2714 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2715 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2716 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2717 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2718 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2719 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2720 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2721 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2722 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11]
2723 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2724 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
2725 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2726 ; AVX512F-NEXT: retq
2790 ; AVX512F-LABEL: ugt_11_v32i16:
2791 ; AVX512F: # %bb.0:
2792 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2793 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2794 ; AVX512F-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…
2795 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2796 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2797 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2798 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2799 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2800 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2801 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2802 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2803 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2804 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2805 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2806 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2807 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2808 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2809 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2810 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2811 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2812 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2813 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11]
2814 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
2815 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
2816 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2817 ; AVX512F-NEXT: retq
2881 ; AVX512F-LABEL: ult_12_v32i16:
2882 ; AVX512F: # %bb.0:
2883 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2884 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2885 ; AVX512F-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…
2886 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2887 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2888 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2889 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2890 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2891 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2892 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2893 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2894 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2895 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2896 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2897 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2898 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2899 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2900 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2901 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2902 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2903 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2904 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12]
2905 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2906 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
2907 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2908 ; AVX512F-NEXT: retq
2972 ; AVX512F-LABEL: ugt_12_v32i16:
2973 ; AVX512F: # %bb.0:
2974 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
2975 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
2976 ; AVX512F-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…
2977 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
2978 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
2979 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
2980 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2981 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2982 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
2983 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
2984 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
2985 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
2986 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
2987 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
2988 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
2989 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
2990 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
2991 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
2992 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
2993 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
2994 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
2995 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12]
2996 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
2997 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
2998 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2999 ; AVX512F-NEXT: retq
3063 ; AVX512F-LABEL: ult_13_v32i16:
3064 ; AVX512F: # %bb.0:
3065 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3066 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
3067 ; AVX512F-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…
3068 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
3069 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
3070 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
3071 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3072 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3073 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
3074 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3075 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
3076 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
3077 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
3078 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3079 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3080 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
3081 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
3082 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
3083 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
3084 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
3085 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
3086 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13]
3087 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
3088 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
3089 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
3090 ; AVX512F-NEXT: retq
3154 ; AVX512F-LABEL: ugt_13_v32i16:
3155 ; AVX512F: # %bb.0:
3156 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3157 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
3158 ; AVX512F-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…
3159 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
3160 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
3161 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
3162 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3163 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3164 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
3165 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3166 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
3167 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
3168 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
3169 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3170 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3171 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
3172 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
3173 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
3174 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
3175 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
3176 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
3177 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13]
3178 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
3179 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
3180 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
3181 ; AVX512F-NEXT: retq
3245 ; AVX512F-LABEL: ult_14_v32i16:
3246 ; AVX512F: # %bb.0:
3247 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3248 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
3249 ; AVX512F-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…
3250 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
3251 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
3252 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
3253 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3254 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3255 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
3256 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3257 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
3258 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
3259 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
3260 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3261 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3262 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
3263 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
3264 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
3265 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
3266 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
3267 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
3268 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14]
3269 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
3270 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
3271 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
3272 ; AVX512F-NEXT: retq
3336 ; AVX512F-LABEL: ugt_14_v32i16:
3337 ; AVX512F: # %bb.0:
3338 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3339 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
3340 ; AVX512F-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…
3341 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
3342 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
3343 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
3344 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3345 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3346 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
3347 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3348 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
3349 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
3350 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
3351 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3352 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3353 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
3354 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
3355 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
3356 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
3357 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
3358 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
3359 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14]
3360 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
3361 ; AVX512F-NEXT: vpcmpgtw %ymm1, %ymm2, %ymm1
3362 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
3363 ; AVX512F-NEXT: retq
3427 ; AVX512F-LABEL: ult_15_v32i16:
3428 ; AVX512F: # %bb.0:
3429 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3430 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm2
3431 ; AVX512F-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…
3432 ; AVX512F-NEXT: vpshufb %ymm2, %ymm3, %ymm2
3433 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm4
3434 ; AVX512F-NEXT: vpand %ymm1, %ymm4, %ymm4
3435 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3436 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3437 ; AVX512F-NEXT: vpsllw $8, %ymm2, %ymm4
3438 ; AVX512F-NEXT: vpaddb %ymm2, %ymm4, %ymm2
3439 ; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
3440 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm0
3441 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm4
3442 ; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm4
3443 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3444 ; AVX512F-NEXT: vpand %ymm1, %ymm0, %ymm0
3445 ; AVX512F-NEXT: vpshufb %ymm0, %ymm3, %ymm0
3446 ; AVX512F-NEXT: vpaddb %ymm4, %ymm0, %ymm0
3447 ; AVX512F-NEXT: vpsllw $8, %ymm0, %ymm1
3448 ; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
3449 ; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
3450 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
3451 ; AVX512F-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
3452 ; AVX512F-NEXT: vpcmpgtw %ymm2, %ymm1, %ymm1
3453 ; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
3454 ; AVX512F-NEXT: retq
3518 ; AVX512F-LABEL: ugt_1_v16i32:
3519 ; AVX512F: # %bb.0:
3520 ; AVX512F-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
3521 ; AVX512F-NEXT: vpaddd %zmm1, %zmm0, %zmm1
3522 ; AVX512F-NEXT: vptestmd %zmm1, %zmm0, %k1
3523 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3524 ; AVX512F-NEXT: retq
3555 ; AVX512F-LABEL: ult_2_v16i32:
3556 ; AVX512F: # %bb.0:
3557 ; AVX512F-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
3558 ; AVX512F-NEXT: vpaddd %zmm1, %zmm0, %zmm1
3559 ; AVX512F-NEXT: vptestnmd %zmm1, %zmm0, %k1
3560 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3561 ; AVX512F-NEXT: retq
3592 ; AVX512F-LABEL: ugt_2_v16i32:
3593 ; AVX512F: # %bb.0:
3594 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
3595 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3596 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
3597 ; AVX512F-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…
3598 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
3599 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
3600 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
3601 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
3602 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
3603 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
3604 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
3605 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
3606 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
3607 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
3608 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
3609 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
3610 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
3611 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3612 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
3613 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
3614 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
3615 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
3616 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
3617 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
3618 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
3619 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
3620 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
3621 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
3622 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3623 ; AVX512F-NEXT: retq
3671 ; AVX512F-LABEL: ult_3_v16i32:
3672 ; AVX512F: # %bb.0:
3673 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
3674 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3675 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
3676 ; AVX512F-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…
3677 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
3678 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
3679 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
3680 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
3681 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
3682 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
3683 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
3684 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
3685 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
3686 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
3687 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
3688 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
3689 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
3690 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3691 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
3692 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
3693 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
3694 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
3695 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
3696 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
3697 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
3698 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
3699 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
3700 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
3701 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3702 ; AVX512F-NEXT: retq
3750 ; AVX512F-LABEL: ugt_3_v16i32:
3751 ; AVX512F: # %bb.0:
3752 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
3753 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3754 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
3755 ; AVX512F-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…
3756 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
3757 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
3758 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
3759 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
3760 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
3761 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
3762 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
3763 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
3764 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
3765 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
3766 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
3767 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
3768 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
3769 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3770 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
3771 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
3772 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
3773 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
3774 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
3775 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
3776 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
3777 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
3778 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
3779 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
3780 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3781 ; AVX512F-NEXT: retq
3829 ; AVX512F-LABEL: ult_4_v16i32:
3830 ; AVX512F: # %bb.0:
3831 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
3832 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3833 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
3834 ; AVX512F-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…
3835 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
3836 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
3837 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
3838 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
3839 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
3840 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
3841 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
3842 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
3843 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
3844 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
3845 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
3846 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
3847 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
3848 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3849 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
3850 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
3851 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
3852 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
3853 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
3854 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
3855 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
3856 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
3857 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
3858 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
3859 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3860 ; AVX512F-NEXT: retq
3908 ; AVX512F-LABEL: ugt_4_v16i32:
3909 ; AVX512F: # %bb.0:
3910 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
3911 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3912 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
3913 ; AVX512F-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…
3914 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
3915 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
3916 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
3917 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
3918 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
3919 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
3920 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
3921 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
3922 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
3923 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
3924 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
3925 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
3926 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
3927 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
3928 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
3929 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
3930 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
3931 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
3932 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
3933 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
3934 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
3935 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
3936 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
3937 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
3938 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3939 ; AVX512F-NEXT: retq
3987 ; AVX512F-LABEL: ult_5_v16i32:
3988 ; AVX512F: # %bb.0:
3989 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
3990 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
3991 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
3992 ; AVX512F-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…
3993 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
3994 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
3995 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
3996 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
3997 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
3998 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
3999 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4000 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4001 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4002 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4003 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4004 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4005 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4006 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4007 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4008 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4009 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4010 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4011 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4012 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4013 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4014 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4015 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4016 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
4017 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4018 ; AVX512F-NEXT: retq
4066 ; AVX512F-LABEL: ugt_5_v16i32:
4067 ; AVX512F: # %bb.0:
4068 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4069 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4070 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4071 ; AVX512F-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…
4072 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4073 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4074 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4075 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4076 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4077 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4078 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4079 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4080 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4081 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4082 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4083 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4084 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4085 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4086 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4087 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4088 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4089 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4090 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4091 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4092 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4093 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4094 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4095 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
4096 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4097 ; AVX512F-NEXT: retq
4145 ; AVX512F-LABEL: ult_6_v16i32:
4146 ; AVX512F: # %bb.0:
4147 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4148 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4149 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4150 ; AVX512F-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…
4151 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4152 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4153 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4154 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4155 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4156 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4157 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4158 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4159 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4160 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4161 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4162 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4163 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4164 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4165 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4166 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4167 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4168 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4169 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4170 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4171 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4172 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4173 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4174 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
4175 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4176 ; AVX512F-NEXT: retq
4224 ; AVX512F-LABEL: ugt_6_v16i32:
4225 ; AVX512F: # %bb.0:
4226 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4227 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4228 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4229 ; AVX512F-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…
4230 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4231 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4232 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4233 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4234 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4235 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4236 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4237 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4238 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4239 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4240 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4241 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4242 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4243 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4244 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4245 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4246 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4247 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4248 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4249 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4250 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4251 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4252 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4253 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
4254 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4255 ; AVX512F-NEXT: retq
4303 ; AVX512F-LABEL: ult_7_v16i32:
4304 ; AVX512F: # %bb.0:
4305 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4306 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4307 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4308 ; AVX512F-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…
4309 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4310 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4311 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4312 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4313 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4314 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4315 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4316 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4317 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4318 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4319 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4320 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4321 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4322 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4323 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4324 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4325 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4326 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4327 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4328 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4329 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4330 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4331 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4332 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
4333 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4334 ; AVX512F-NEXT: retq
4382 ; AVX512F-LABEL: ugt_7_v16i32:
4383 ; AVX512F: # %bb.0:
4384 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4385 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4386 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4387 ; AVX512F-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…
4388 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4389 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4390 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4391 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4392 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4393 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4394 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4395 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4396 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4397 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4398 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4399 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4400 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4401 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4402 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4403 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4404 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4405 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4406 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4407 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4408 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4409 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4410 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4411 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
4412 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4413 ; AVX512F-NEXT: retq
4461 ; AVX512F-LABEL: ult_8_v16i32:
4462 ; AVX512F: # %bb.0:
4463 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4464 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4465 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4466 ; AVX512F-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…
4467 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4468 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4469 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4470 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4471 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4472 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4473 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4474 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4475 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4476 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4477 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4478 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4479 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4480 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4481 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4482 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4483 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4484 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4485 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4486 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4487 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4488 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4489 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4490 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
4491 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4492 ; AVX512F-NEXT: retq
4540 ; AVX512F-LABEL: ugt_8_v16i32:
4541 ; AVX512F: # %bb.0:
4542 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4543 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4544 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4545 ; AVX512F-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…
4546 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4547 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4548 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4549 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4550 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4551 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4552 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4553 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4554 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4555 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4556 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4557 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4558 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4559 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4560 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4561 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4562 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4563 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4564 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4565 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4566 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4567 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4568 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4569 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
4570 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4571 ; AVX512F-NEXT: retq
4619 ; AVX512F-LABEL: ult_9_v16i32:
4620 ; AVX512F: # %bb.0:
4621 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4622 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4623 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4624 ; AVX512F-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…
4625 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4626 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4627 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4628 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4629 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4630 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4631 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4632 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4633 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4634 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4635 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4636 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4637 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4638 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4639 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4640 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4641 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4642 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4643 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4644 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4645 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4646 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4647 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4648 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
4649 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4650 ; AVX512F-NEXT: retq
4698 ; AVX512F-LABEL: ugt_9_v16i32:
4699 ; AVX512F: # %bb.0:
4700 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4701 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4702 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4703 ; AVX512F-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…
4704 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4705 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4706 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4707 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4708 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4709 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4710 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4711 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4712 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4713 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4714 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4715 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4716 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4717 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4718 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4719 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4720 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4721 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4722 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4723 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4724 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4725 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4726 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4727 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
4728 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4729 ; AVX512F-NEXT: retq
4777 ; AVX512F-LABEL: ult_10_v16i32:
4778 ; AVX512F: # %bb.0:
4779 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4780 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4781 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4782 ; AVX512F-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…
4783 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4784 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4785 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4786 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4787 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4788 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4789 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4790 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4791 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4792 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4793 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4794 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4795 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4796 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4797 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4798 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4799 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4800 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4801 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4802 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4803 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4804 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4805 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4806 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
4807 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4808 ; AVX512F-NEXT: retq
4856 ; AVX512F-LABEL: ugt_10_v16i32:
4857 ; AVX512F: # %bb.0:
4858 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4859 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4860 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4861 ; AVX512F-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…
4862 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4863 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4864 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4865 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4866 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4867 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4868 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4869 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4870 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4871 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4872 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4873 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4874 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4875 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4876 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4877 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4878 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4879 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4880 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4881 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4882 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4883 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4884 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4885 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
4886 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4887 ; AVX512F-NEXT: retq
4935 ; AVX512F-LABEL: ult_11_v16i32:
4936 ; AVX512F: # %bb.0:
4937 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
4938 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
4939 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
4940 ; AVX512F-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…
4941 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
4942 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
4943 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
4944 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
4945 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
4946 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
4947 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
4948 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
4949 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
4950 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
4951 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
4952 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
4953 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
4954 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
4955 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
4956 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
4957 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
4958 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
4959 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
4960 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
4961 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
4962 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
4963 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
4964 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
4965 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4966 ; AVX512F-NEXT: retq
5014 ; AVX512F-LABEL: ugt_11_v16i32:
5015 ; AVX512F: # %bb.0:
5016 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5017 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5018 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5019 ; AVX512F-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…
5020 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5021 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5022 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5023 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5024 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5025 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5026 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5027 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5028 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5029 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5030 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5031 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5032 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5033 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5034 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5035 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5036 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5037 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5038 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5039 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5040 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5041 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5042 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5043 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
5044 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5045 ; AVX512F-NEXT: retq
5093 ; AVX512F-LABEL: ult_12_v16i32:
5094 ; AVX512F: # %bb.0:
5095 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5096 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5097 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5098 ; AVX512F-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…
5099 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5100 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5101 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5102 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5103 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5104 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5105 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5106 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5107 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5108 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5109 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5110 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5111 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5112 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5113 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5114 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5115 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5116 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5117 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5118 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5119 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5120 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5121 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5122 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
5123 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5124 ; AVX512F-NEXT: retq
5172 ; AVX512F-LABEL: ugt_12_v16i32:
5173 ; AVX512F: # %bb.0:
5174 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5175 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5176 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5177 ; AVX512F-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…
5178 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5179 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5180 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5181 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5182 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5183 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5184 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5185 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5186 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5187 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5188 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5189 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5190 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5191 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5192 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5193 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5194 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5195 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5196 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5197 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5198 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5199 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5200 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5201 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
5202 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5203 ; AVX512F-NEXT: retq
5251 ; AVX512F-LABEL: ult_13_v16i32:
5252 ; AVX512F: # %bb.0:
5253 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5254 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5255 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5256 ; AVX512F-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…
5257 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5258 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5259 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5260 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5261 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5262 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5263 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5264 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5265 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5266 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5267 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5268 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5269 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5270 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5271 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5272 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5273 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5274 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5275 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5276 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5277 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5278 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5279 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5280 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
5281 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5282 ; AVX512F-NEXT: retq
5330 ; AVX512F-LABEL: ugt_13_v16i32:
5331 ; AVX512F: # %bb.0:
5332 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5333 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5334 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5335 ; AVX512F-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…
5336 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5337 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5338 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5339 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5340 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5341 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5342 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5343 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5344 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5345 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5346 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5347 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5348 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5349 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5350 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5351 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5352 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5353 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5354 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5355 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5356 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5357 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5358 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5359 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
5360 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5361 ; AVX512F-NEXT: retq
5409 ; AVX512F-LABEL: ult_14_v16i32:
5410 ; AVX512F: # %bb.0:
5411 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5412 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5413 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5414 ; AVX512F-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…
5415 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5416 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5417 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5418 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5419 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5420 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5421 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5422 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5423 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5424 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5425 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5426 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5427 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5428 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5429 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5430 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5431 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5432 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5433 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5434 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5435 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5436 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5437 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5438 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
5439 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5440 ; AVX512F-NEXT: retq
5488 ; AVX512F-LABEL: ugt_14_v16i32:
5489 ; AVX512F: # %bb.0:
5490 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5491 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5492 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5493 ; AVX512F-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…
5494 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5495 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5496 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5497 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5498 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5499 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5500 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5501 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5502 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5503 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5504 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5505 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5506 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5507 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5508 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5509 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5510 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5511 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5512 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5513 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5514 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5515 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5516 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5517 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
5518 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5519 ; AVX512F-NEXT: retq
5567 ; AVX512F-LABEL: ult_15_v16i32:
5568 ; AVX512F: # %bb.0:
5569 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5570 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5571 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5572 ; AVX512F-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…
5573 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5574 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5575 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5576 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5577 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5578 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5579 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5580 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5581 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5582 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5583 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5584 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5585 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5586 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5587 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5588 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5589 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5590 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5591 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5592 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5593 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5594 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5595 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5596 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
5597 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5598 ; AVX512F-NEXT: retq
5646 ; AVX512F-LABEL: ugt_15_v16i32:
5647 ; AVX512F: # %bb.0:
5648 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5649 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5650 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5651 ; AVX512F-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…
5652 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5653 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5654 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5655 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5656 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5657 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5658 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5659 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5660 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5661 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5662 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5663 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5664 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5665 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5666 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5667 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5668 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5669 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5670 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5671 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5672 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5673 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5674 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5675 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
5676 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5677 ; AVX512F-NEXT: retq
5725 ; AVX512F-LABEL: ult_16_v16i32:
5726 ; AVX512F: # %bb.0:
5727 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5728 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5729 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5730 ; AVX512F-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…
5731 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5732 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5733 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5734 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5735 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5736 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5737 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5738 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5739 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5740 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5741 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5742 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5743 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5744 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5745 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5746 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5747 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5748 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5749 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5750 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5751 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5752 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5753 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5754 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
5755 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5756 ; AVX512F-NEXT: retq
5804 ; AVX512F-LABEL: ugt_16_v16i32:
5805 ; AVX512F: # %bb.0:
5806 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5807 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5808 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5809 ; AVX512F-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…
5810 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5811 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5812 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5813 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5814 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5815 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5816 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5817 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5818 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5819 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5820 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5821 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5822 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5823 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5824 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5825 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5826 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5827 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5828 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5829 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5830 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5831 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5832 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5833 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
5834 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5835 ; AVX512F-NEXT: retq
5883 ; AVX512F-LABEL: ult_17_v16i32:
5884 ; AVX512F: # %bb.0:
5885 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5886 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5887 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5888 ; AVX512F-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…
5889 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5890 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5891 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5892 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5893 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5894 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5895 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5896 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5897 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5898 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5899 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5900 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5901 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5902 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5903 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5904 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5905 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5906 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5907 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5908 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5909 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5910 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5911 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5912 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
5913 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5914 ; AVX512F-NEXT: retq
5962 ; AVX512F-LABEL: ugt_17_v16i32:
5963 ; AVX512F: # %bb.0:
5964 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
5965 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
5966 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
5967 ; AVX512F-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…
5968 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
5969 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
5970 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
5971 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
5972 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
5973 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
5974 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
5975 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
5976 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
5977 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
5978 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
5979 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
5980 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
5981 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
5982 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
5983 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
5984 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
5985 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
5986 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
5987 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
5988 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
5989 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
5990 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
5991 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
5992 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
5993 ; AVX512F-NEXT: retq
6041 ; AVX512F-LABEL: ult_18_v16i32:
6042 ; AVX512F: # %bb.0:
6043 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6044 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6045 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6046 ; AVX512F-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…
6047 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6048 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6049 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6050 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6051 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6052 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6053 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6054 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6055 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6056 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6057 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6058 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6059 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6060 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6061 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6062 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6063 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6064 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6065 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6066 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6067 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6068 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6069 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6070 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
6071 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6072 ; AVX512F-NEXT: retq
6120 ; AVX512F-LABEL: ugt_18_v16i32:
6121 ; AVX512F: # %bb.0:
6122 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6123 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6124 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6125 ; AVX512F-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…
6126 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6127 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6128 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6129 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6130 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6131 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6132 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6133 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6134 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6135 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6136 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6137 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6138 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6139 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6140 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6141 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6142 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6143 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6144 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6145 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6146 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6147 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6148 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6149 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
6150 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6151 ; AVX512F-NEXT: retq
6199 ; AVX512F-LABEL: ult_19_v16i32:
6200 ; AVX512F: # %bb.0:
6201 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6202 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6203 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6204 ; AVX512F-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…
6205 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6206 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6207 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6208 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6209 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6210 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6211 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6212 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6213 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6214 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6215 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6216 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6217 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6218 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6219 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6220 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6221 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6222 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6223 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6224 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6225 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6226 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6227 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6228 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
6229 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6230 ; AVX512F-NEXT: retq
6278 ; AVX512F-LABEL: ugt_19_v16i32:
6279 ; AVX512F: # %bb.0:
6280 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6281 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6282 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6283 ; AVX512F-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…
6284 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6285 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6286 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6287 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6288 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6289 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6290 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6291 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6292 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6293 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6294 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6295 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6296 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6297 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6298 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6299 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6300 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6301 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6302 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6303 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6304 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6305 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6306 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6307 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
6308 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6309 ; AVX512F-NEXT: retq
6357 ; AVX512F-LABEL: ult_20_v16i32:
6358 ; AVX512F: # %bb.0:
6359 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6360 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6361 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6362 ; AVX512F-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…
6363 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6364 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6365 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6366 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6367 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6368 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6369 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6370 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6371 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6372 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6373 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6374 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6375 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6376 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6377 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6378 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6379 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6380 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6381 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6382 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6383 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6384 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6385 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6386 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
6387 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6388 ; AVX512F-NEXT: retq
6436 ; AVX512F-LABEL: ugt_20_v16i32:
6437 ; AVX512F: # %bb.0:
6438 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6439 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6440 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6441 ; AVX512F-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…
6442 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6443 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6444 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6445 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6446 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6447 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6448 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6449 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6450 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6451 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6452 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6453 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6454 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6455 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6456 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6457 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6458 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6459 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6460 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6461 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6462 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6463 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6464 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6465 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
6466 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6467 ; AVX512F-NEXT: retq
6515 ; AVX512F-LABEL: ult_21_v16i32:
6516 ; AVX512F: # %bb.0:
6517 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6518 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6519 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6520 ; AVX512F-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…
6521 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6522 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6523 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6524 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6525 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6526 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6527 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6528 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6529 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6530 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6531 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6532 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6533 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6534 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6535 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6536 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6537 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6538 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6539 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6540 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6541 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6542 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6543 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6544 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
6545 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6546 ; AVX512F-NEXT: retq
6594 ; AVX512F-LABEL: ugt_21_v16i32:
6595 ; AVX512F: # %bb.0:
6596 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6597 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6598 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6599 ; AVX512F-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…
6600 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6601 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6602 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6603 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6604 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6605 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6606 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6607 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6608 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6609 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6610 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6611 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6612 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6613 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6614 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6615 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6616 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6617 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6618 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6619 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6620 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6621 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6622 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6623 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
6624 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6625 ; AVX512F-NEXT: retq
6673 ; AVX512F-LABEL: ult_22_v16i32:
6674 ; AVX512F: # %bb.0:
6675 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6676 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6677 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6678 ; AVX512F-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…
6679 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6680 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6681 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6682 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6683 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6684 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6685 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6686 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6687 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6688 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6689 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6690 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6691 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6692 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6693 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6694 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6695 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6696 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6697 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6698 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6699 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6700 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6701 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6702 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
6703 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6704 ; AVX512F-NEXT: retq
6752 ; AVX512F-LABEL: ugt_22_v16i32:
6753 ; AVX512F: # %bb.0:
6754 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6755 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6756 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6757 ; AVX512F-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…
6758 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6759 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6760 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6761 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6762 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6763 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6764 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6765 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6766 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6767 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6768 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6769 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6770 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6771 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6772 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6773 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6774 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6775 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6776 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6777 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6778 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6779 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6780 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6781 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
6782 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6783 ; AVX512F-NEXT: retq
6831 ; AVX512F-LABEL: ult_23_v16i32:
6832 ; AVX512F: # %bb.0:
6833 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6834 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6835 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6836 ; AVX512F-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…
6837 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6838 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6839 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6840 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6841 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6842 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6843 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6844 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6845 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6846 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6847 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6848 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6849 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6850 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6851 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6852 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6853 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6854 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6855 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6856 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6857 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6858 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6859 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6860 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
6861 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6862 ; AVX512F-NEXT: retq
6910 ; AVX512F-LABEL: ugt_23_v16i32:
6911 ; AVX512F: # %bb.0:
6912 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6913 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6914 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6915 ; AVX512F-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…
6916 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6917 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6918 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6919 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6920 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
6921 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
6922 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
6923 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
6924 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
6925 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
6926 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
6927 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
6928 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
6929 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
6930 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
6931 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
6932 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
6933 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
6934 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
6935 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
6936 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
6937 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
6938 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
6939 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
6940 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
6941 ; AVX512F-NEXT: retq
6989 ; AVX512F-LABEL: ult_24_v16i32:
6990 ; AVX512F: # %bb.0:
6991 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
6992 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
6993 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
6994 ; AVX512F-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…
6995 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
6996 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
6997 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
6998 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
6999 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7000 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7001 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7002 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7003 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7004 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7005 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7006 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7007 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7008 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7009 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7010 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7011 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7012 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7013 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7014 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7015 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7016 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7017 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7018 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
7019 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7020 ; AVX512F-NEXT: retq
7068 ; AVX512F-LABEL: ugt_24_v16i32:
7069 ; AVX512F: # %bb.0:
7070 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7071 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7072 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7073 ; AVX512F-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…
7074 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7075 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7076 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7077 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7078 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7079 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7080 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7081 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7082 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7083 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7084 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7085 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7086 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7087 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7088 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7089 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7090 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7091 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7092 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7093 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7094 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7095 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7096 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7097 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
7098 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7099 ; AVX512F-NEXT: retq
7147 ; AVX512F-LABEL: ult_25_v16i32:
7148 ; AVX512F: # %bb.0:
7149 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7150 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7151 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7152 ; AVX512F-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…
7153 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7154 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7155 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7156 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7157 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7158 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7159 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7160 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7161 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7162 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7163 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7164 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7165 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7166 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7167 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7168 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7169 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7170 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7171 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7172 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7173 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7174 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7175 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7176 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
7177 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7178 ; AVX512F-NEXT: retq
7226 ; AVX512F-LABEL: ugt_25_v16i32:
7227 ; AVX512F: # %bb.0:
7228 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7229 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7230 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7231 ; AVX512F-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…
7232 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7233 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7234 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7235 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7236 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7237 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7238 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7239 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7240 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7241 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7242 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7243 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7244 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7245 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7246 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7247 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7248 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7249 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7250 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7251 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7252 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7253 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7254 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7255 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
7256 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7257 ; AVX512F-NEXT: retq
7305 ; AVX512F-LABEL: ult_26_v16i32:
7306 ; AVX512F: # %bb.0:
7307 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7308 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7309 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7310 ; AVX512F-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…
7311 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7312 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7313 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7314 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7315 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7316 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7317 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7318 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7319 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7320 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7321 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7322 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7323 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7324 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7325 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7326 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7327 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7328 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7329 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7330 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7331 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7332 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7333 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7334 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
7335 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7336 ; AVX512F-NEXT: retq
7384 ; AVX512F-LABEL: ugt_26_v16i32:
7385 ; AVX512F: # %bb.0:
7386 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7387 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7388 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7389 ; AVX512F-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…
7390 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7391 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7392 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7393 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7394 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7395 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7396 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7397 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7398 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7399 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7400 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7401 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7402 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7403 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7404 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7405 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7406 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7407 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7408 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7409 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7410 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7411 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7412 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7413 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
7414 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7415 ; AVX512F-NEXT: retq
7463 ; AVX512F-LABEL: ult_27_v16i32:
7464 ; AVX512F: # %bb.0:
7465 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7466 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7467 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7468 ; AVX512F-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…
7469 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7470 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7471 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7472 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7473 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7474 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7475 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7476 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7477 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7478 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7479 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7480 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7481 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7482 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7483 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7484 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7485 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7486 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7487 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7488 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7489 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7490 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7491 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7492 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
7493 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7494 ; AVX512F-NEXT: retq
7542 ; AVX512F-LABEL: ugt_27_v16i32:
7543 ; AVX512F: # %bb.0:
7544 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7545 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7546 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7547 ; AVX512F-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…
7548 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7549 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7550 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7551 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7552 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7553 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7554 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7555 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7556 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7557 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7558 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7559 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7560 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7561 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7562 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7563 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7564 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7565 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7566 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7567 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7568 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7569 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7570 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7571 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
7572 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7573 ; AVX512F-NEXT: retq
7621 ; AVX512F-LABEL: ult_28_v16i32:
7622 ; AVX512F: # %bb.0:
7623 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7624 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7625 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7626 ; AVX512F-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…
7627 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7628 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7629 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7630 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7631 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7632 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7633 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7634 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7635 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7636 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7637 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7638 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7639 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7640 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7641 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7642 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7643 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7644 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7645 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7646 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7647 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7648 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7649 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7650 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
7651 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7652 ; AVX512F-NEXT: retq
7700 ; AVX512F-LABEL: ugt_28_v16i32:
7701 ; AVX512F: # %bb.0:
7702 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7703 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7704 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7705 ; AVX512F-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…
7706 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7707 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7708 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7709 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7710 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7711 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7712 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7713 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7714 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7715 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7716 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7717 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7718 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7719 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7720 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7721 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7722 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7723 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7724 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7725 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7726 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7727 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7728 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7729 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
7730 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7731 ; AVX512F-NEXT: retq
7779 ; AVX512F-LABEL: ult_29_v16i32:
7780 ; AVX512F: # %bb.0:
7781 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7782 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7783 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7784 ; AVX512F-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…
7785 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7786 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7787 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7788 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7789 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7790 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7791 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7792 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7793 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7794 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7795 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7796 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7797 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7798 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7799 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7800 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7801 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7802 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7803 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7804 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7805 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7806 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7807 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7808 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
7809 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7810 ; AVX512F-NEXT: retq
7858 ; AVX512F-LABEL: ugt_29_v16i32:
7859 ; AVX512F: # %bb.0:
7860 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7861 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7862 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7863 ; AVX512F-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…
7864 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7865 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7866 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7867 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7868 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7869 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7870 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7871 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7872 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7873 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7874 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7875 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7876 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7877 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7878 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7879 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7880 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7881 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7882 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7883 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7884 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7885 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7886 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7887 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
7888 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7889 ; AVX512F-NEXT: retq
7937 ; AVX512F-LABEL: ult_30_v16i32:
7938 ; AVX512F: # %bb.0:
7939 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
7940 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
7941 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
7942 ; AVX512F-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…
7943 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
7944 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
7945 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
7946 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
7947 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
7948 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
7949 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
7950 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
7951 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
7952 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
7953 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
7954 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
7955 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
7956 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
7957 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
7958 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
7959 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
7960 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
7961 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
7962 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
7963 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
7964 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
7965 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
7966 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
7967 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
7968 ; AVX512F-NEXT: retq
8016 ; AVX512F-LABEL: ugt_30_v16i32:
8017 ; AVX512F: # %bb.0:
8018 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8019 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8020 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8021 ; AVX512F-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…
8022 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8023 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8024 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8025 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8026 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8027 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8028 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
8029 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
8030 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
8031 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8032 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
8033 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8034 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8035 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8036 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8037 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8038 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8039 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
8040 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
8041 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
8042 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8043 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
8044 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8045 ; AVX512F-NEXT: vpcmpnleud {{.*}}(%rip){1to16}, %zmm0, %k1
8046 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8047 ; AVX512F-NEXT: retq
8095 ; AVX512F-LABEL: ult_31_v16i32:
8096 ; AVX512F: # %bb.0:
8097 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8098 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8099 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8100 ; AVX512F-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…
8101 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8102 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8103 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8104 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8105 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8106 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8107 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[…
8108 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm5, %ymm5
8109 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[…
8110 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8111 ; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
8112 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8113 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8114 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8115 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8116 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8117 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8118 ; AVX512F-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm3[2],ymm0[3],ymm3[3],ymm0[6],ymm3[6],ymm0[…
8119 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm2, %ymm2
8120 ; AVX512F-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[1],ymm3[1],ymm0[4],ymm3[4],ymm0[…
8121 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8122 ; AVX512F-NEXT: vpackuswb %ymm2, %ymm0, %ymm0
8123 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8124 ; AVX512F-NEXT: vpcmpltud {{.*}}(%rip){1to16}, %zmm0, %k1
8125 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8126 ; AVX512F-NEXT: retq
8174 ; AVX512F-LABEL: ugt_1_v8i64:
8175 ; AVX512F: # %bb.0:
8176 ; AVX512F-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
8177 ; AVX512F-NEXT: vpaddq %zmm1, %zmm0, %zmm1
8178 ; AVX512F-NEXT: vptestmq %zmm1, %zmm0, %k1
8179 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8180 ; AVX512F-NEXT: retq
8211 ; AVX512F-LABEL: ult_2_v8i64:
8212 ; AVX512F: # %bb.0:
8213 ; AVX512F-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
8214 ; AVX512F-NEXT: vpaddq %zmm1, %zmm0, %zmm1
8215 ; AVX512F-NEXT: vptestnmq %zmm1, %zmm0, %k1
8216 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8217 ; AVX512F-NEXT: retq
8248 ; AVX512F-LABEL: ugt_2_v8i64:
8249 ; AVX512F: # %bb.0:
8250 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8251 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8252 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8253 ; AVX512F-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…
8254 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8255 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8256 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8257 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8258 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8259 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8260 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8261 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8262 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8263 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8264 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8265 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8266 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8267 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8268 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8269 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
8270 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8271 ; AVX512F-NEXT: retq
8311 ; AVX512F-LABEL: ult_3_v8i64:
8312 ; AVX512F: # %bb.0:
8313 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8314 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8315 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8316 ; AVX512F-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…
8317 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8318 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8319 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8320 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8321 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8322 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8323 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8324 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8325 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8326 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8327 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8328 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8329 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8330 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8331 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8332 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
8333 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8334 ; AVX512F-NEXT: retq
8374 ; AVX512F-LABEL: ugt_3_v8i64:
8375 ; AVX512F: # %bb.0:
8376 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8377 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8378 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8379 ; AVX512F-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…
8380 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8381 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8382 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8383 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8384 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8385 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8386 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8387 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8388 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8389 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8390 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8391 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8392 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8393 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8394 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8395 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
8396 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8397 ; AVX512F-NEXT: retq
8437 ; AVX512F-LABEL: ult_4_v8i64:
8438 ; AVX512F: # %bb.0:
8439 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8440 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8441 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8442 ; AVX512F-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…
8443 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8444 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8445 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8446 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8447 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8448 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8449 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8450 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8451 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8452 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8453 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8454 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8455 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8456 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8457 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8458 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
8459 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8460 ; AVX512F-NEXT: retq
8500 ; AVX512F-LABEL: ugt_4_v8i64:
8501 ; AVX512F: # %bb.0:
8502 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8503 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8504 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8505 ; AVX512F-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…
8506 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8507 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8508 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8509 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8510 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8511 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8512 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8513 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8514 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8515 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8516 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8517 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8518 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8519 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8520 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8521 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
8522 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8523 ; AVX512F-NEXT: retq
8563 ; AVX512F-LABEL: ult_5_v8i64:
8564 ; AVX512F: # %bb.0:
8565 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8566 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8567 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8568 ; AVX512F-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…
8569 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8570 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8571 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8572 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8573 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8574 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8575 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8576 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8577 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8578 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8579 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8580 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8581 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8582 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8583 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8584 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
8585 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8586 ; AVX512F-NEXT: retq
8626 ; AVX512F-LABEL: ugt_5_v8i64:
8627 ; AVX512F: # %bb.0:
8628 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8629 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8630 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8631 ; AVX512F-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…
8632 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8633 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8634 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8635 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8636 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8637 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8638 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8639 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8640 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8641 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8642 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8643 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8644 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8645 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8646 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8647 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
8648 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8649 ; AVX512F-NEXT: retq
8689 ; AVX512F-LABEL: ult_6_v8i64:
8690 ; AVX512F: # %bb.0:
8691 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8692 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8693 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8694 ; AVX512F-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…
8695 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8696 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8697 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8698 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8699 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8700 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8701 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8702 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8703 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8704 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8705 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8706 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8707 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8708 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8709 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8710 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
8711 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8712 ; AVX512F-NEXT: retq
8752 ; AVX512F-LABEL: ugt_6_v8i64:
8753 ; AVX512F: # %bb.0:
8754 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8755 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8756 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8757 ; AVX512F-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…
8758 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8759 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8760 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8761 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8762 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8763 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8764 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8765 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8766 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8767 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8768 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8769 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8770 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8771 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8772 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8773 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
8774 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8775 ; AVX512F-NEXT: retq
8815 ; AVX512F-LABEL: ult_7_v8i64:
8816 ; AVX512F: # %bb.0:
8817 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8818 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8819 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8820 ; AVX512F-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…
8821 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8822 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8823 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8824 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8825 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8826 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8827 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8828 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8829 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8830 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8831 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8832 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8833 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8834 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8835 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8836 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
8837 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8838 ; AVX512F-NEXT: retq
8878 ; AVX512F-LABEL: ugt_7_v8i64:
8879 ; AVX512F: # %bb.0:
8880 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8881 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8882 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8883 ; AVX512F-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…
8884 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8885 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8886 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8887 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8888 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8889 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8890 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8891 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8892 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8893 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8894 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8895 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8896 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8897 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8898 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8899 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
8900 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8901 ; AVX512F-NEXT: retq
8941 ; AVX512F-LABEL: ult_8_v8i64:
8942 ; AVX512F: # %bb.0:
8943 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
8944 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
8945 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
8946 ; AVX512F-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…
8947 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
8948 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
8949 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
8950 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
8951 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
8952 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
8953 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
8954 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
8955 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
8956 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
8957 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
8958 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
8959 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
8960 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
8961 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
8962 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
8963 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
8964 ; AVX512F-NEXT: retq
9004 ; AVX512F-LABEL: ugt_8_v8i64:
9005 ; AVX512F: # %bb.0:
9006 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9007 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9008 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9009 ; AVX512F-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…
9010 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9011 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9012 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9013 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9014 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9015 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9016 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9017 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9018 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9019 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9020 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9021 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9022 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9023 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9024 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9025 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
9026 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9027 ; AVX512F-NEXT: retq
9067 ; AVX512F-LABEL: ult_9_v8i64:
9068 ; AVX512F: # %bb.0:
9069 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9070 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9071 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9072 ; AVX512F-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…
9073 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9074 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9075 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9076 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9077 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9078 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9079 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9080 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9081 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9082 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9083 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9084 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9085 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9086 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9087 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9088 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
9089 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9090 ; AVX512F-NEXT: retq
9130 ; AVX512F-LABEL: ugt_9_v8i64:
9131 ; AVX512F: # %bb.0:
9132 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9133 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9134 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9135 ; AVX512F-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…
9136 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9137 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9138 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9139 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9140 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9141 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9142 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9143 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9144 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9145 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9146 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9147 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9148 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9149 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9150 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9151 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
9152 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9153 ; AVX512F-NEXT: retq
9193 ; AVX512F-LABEL: ult_10_v8i64:
9194 ; AVX512F: # %bb.0:
9195 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9196 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9197 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9198 ; AVX512F-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…
9199 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9200 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9201 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9202 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9203 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9204 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9205 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9206 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9207 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9208 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9209 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9210 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9211 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9212 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9213 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9214 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
9215 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9216 ; AVX512F-NEXT: retq
9256 ; AVX512F-LABEL: ugt_10_v8i64:
9257 ; AVX512F: # %bb.0:
9258 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9259 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9260 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9261 ; AVX512F-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…
9262 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9263 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9264 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9265 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9266 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9267 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9268 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9269 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9270 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9271 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9272 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9273 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9274 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9275 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9276 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9277 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
9278 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9279 ; AVX512F-NEXT: retq
9319 ; AVX512F-LABEL: ult_11_v8i64:
9320 ; AVX512F: # %bb.0:
9321 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9322 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9323 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9324 ; AVX512F-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…
9325 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9326 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9327 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9328 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9329 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9330 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9331 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9332 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9333 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9334 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9335 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9336 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9337 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9338 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9339 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9340 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
9341 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9342 ; AVX512F-NEXT: retq
9382 ; AVX512F-LABEL: ugt_11_v8i64:
9383 ; AVX512F: # %bb.0:
9384 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9385 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9386 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9387 ; AVX512F-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…
9388 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9389 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9390 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9391 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9392 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9393 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9394 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9395 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9396 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9397 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9398 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9399 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9400 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9401 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9402 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9403 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
9404 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9405 ; AVX512F-NEXT: retq
9445 ; AVX512F-LABEL: ult_12_v8i64:
9446 ; AVX512F: # %bb.0:
9447 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9448 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9449 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9450 ; AVX512F-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…
9451 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9452 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9453 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9454 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9455 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9456 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9457 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9458 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9459 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9460 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9461 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9462 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9463 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9464 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9465 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9466 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
9467 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9468 ; AVX512F-NEXT: retq
9508 ; AVX512F-LABEL: ugt_12_v8i64:
9509 ; AVX512F: # %bb.0:
9510 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9511 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9512 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9513 ; AVX512F-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…
9514 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9515 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9516 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9517 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9518 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9519 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9520 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9521 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9522 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9523 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9524 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9525 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9526 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9527 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9528 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9529 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
9530 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9531 ; AVX512F-NEXT: retq
9571 ; AVX512F-LABEL: ult_13_v8i64:
9572 ; AVX512F: # %bb.0:
9573 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9574 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9575 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9576 ; AVX512F-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…
9577 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9578 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9579 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9580 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9581 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9582 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9583 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9584 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9585 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9586 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9587 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9588 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9589 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9590 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9591 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9592 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
9593 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9594 ; AVX512F-NEXT: retq
9634 ; AVX512F-LABEL: ugt_13_v8i64:
9635 ; AVX512F: # %bb.0:
9636 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9637 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9638 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9639 ; AVX512F-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…
9640 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9641 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9642 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9643 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9644 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9645 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9646 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9647 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9648 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9649 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9650 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9651 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9652 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9653 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9654 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9655 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
9656 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9657 ; AVX512F-NEXT: retq
9697 ; AVX512F-LABEL: ult_14_v8i64:
9698 ; AVX512F: # %bb.0:
9699 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9700 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9701 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9702 ; AVX512F-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…
9703 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9704 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9705 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9706 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9707 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9708 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9709 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9710 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9711 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9712 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9713 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9714 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9715 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9716 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9717 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9718 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
9719 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9720 ; AVX512F-NEXT: retq
9760 ; AVX512F-LABEL: ugt_14_v8i64:
9761 ; AVX512F: # %bb.0:
9762 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9763 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9764 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9765 ; AVX512F-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…
9766 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9767 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9768 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9769 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9770 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9771 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9772 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9773 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9774 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9775 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9776 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9777 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9778 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9779 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9780 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9781 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
9782 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9783 ; AVX512F-NEXT: retq
9823 ; AVX512F-LABEL: ult_15_v8i64:
9824 ; AVX512F: # %bb.0:
9825 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9826 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9827 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9828 ; AVX512F-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…
9829 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9830 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9831 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9832 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9833 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9834 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9835 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9836 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9837 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9838 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9839 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9840 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9841 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9842 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9843 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9844 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
9845 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9846 ; AVX512F-NEXT: retq
9886 ; AVX512F-LABEL: ugt_15_v8i64:
9887 ; AVX512F: # %bb.0:
9888 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9889 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9890 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9891 ; AVX512F-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…
9892 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9893 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9894 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9895 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9896 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9897 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9898 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9899 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9900 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9901 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9902 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9903 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9904 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9905 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9906 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9907 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
9908 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9909 ; AVX512F-NEXT: retq
9949 ; AVX512F-LABEL: ult_16_v8i64:
9950 ; AVX512F: # %bb.0:
9951 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
9952 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
9953 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
9954 ; AVX512F-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…
9955 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
9956 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
9957 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
9958 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
9959 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
9960 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
9961 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
9962 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
9963 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
9964 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
9965 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
9966 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
9967 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
9968 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
9969 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
9970 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
9971 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
9972 ; AVX512F-NEXT: retq
10012 ; AVX512F-LABEL: ugt_16_v8i64:
10013 ; AVX512F: # %bb.0:
10014 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10015 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10016 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10017 ; AVX512F-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…
10018 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10019 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10020 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10021 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10022 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10023 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10024 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10025 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10026 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10027 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10028 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10029 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10030 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10031 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10032 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10033 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
10034 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10035 ; AVX512F-NEXT: retq
10075 ; AVX512F-LABEL: ult_17_v8i64:
10076 ; AVX512F: # %bb.0:
10077 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10078 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10079 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10080 ; AVX512F-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…
10081 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10082 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10083 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10084 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10085 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10086 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10087 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10088 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10089 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10090 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10091 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10092 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10093 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10094 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10095 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10096 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
10097 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10098 ; AVX512F-NEXT: retq
10138 ; AVX512F-LABEL: ugt_17_v8i64:
10139 ; AVX512F: # %bb.0:
10140 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10141 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10142 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10143 ; AVX512F-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…
10144 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10145 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10146 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10147 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10148 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10149 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10150 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10151 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10152 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10153 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10154 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10155 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10156 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10157 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10158 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10159 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
10160 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10161 ; AVX512F-NEXT: retq
10201 ; AVX512F-LABEL: ult_18_v8i64:
10202 ; AVX512F: # %bb.0:
10203 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10204 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10205 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10206 ; AVX512F-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…
10207 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10208 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10209 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10210 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10211 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10212 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10213 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10214 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10215 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10216 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10217 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10218 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10219 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10220 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10221 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10222 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
10223 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10224 ; AVX512F-NEXT: retq
10264 ; AVX512F-LABEL: ugt_18_v8i64:
10265 ; AVX512F: # %bb.0:
10266 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10267 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10268 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10269 ; AVX512F-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…
10270 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10271 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10272 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10273 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10274 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10275 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10276 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10277 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10278 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10279 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10280 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10281 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10282 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10283 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10284 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10285 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
10286 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10287 ; AVX512F-NEXT: retq
10327 ; AVX512F-LABEL: ult_19_v8i64:
10328 ; AVX512F: # %bb.0:
10329 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10330 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10331 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10332 ; AVX512F-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…
10333 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10334 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10335 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10336 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10337 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10338 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10339 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10340 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10341 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10342 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10343 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10344 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10345 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10346 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10347 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10348 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
10349 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10350 ; AVX512F-NEXT: retq
10390 ; AVX512F-LABEL: ugt_19_v8i64:
10391 ; AVX512F: # %bb.0:
10392 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10393 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10394 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10395 ; AVX512F-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…
10396 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10397 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10398 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10399 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10400 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10401 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10402 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10403 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10404 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10405 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10406 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10407 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10408 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10409 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10410 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10411 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
10412 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10413 ; AVX512F-NEXT: retq
10453 ; AVX512F-LABEL: ult_20_v8i64:
10454 ; AVX512F: # %bb.0:
10455 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10456 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10457 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10458 ; AVX512F-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…
10459 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10460 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10461 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10462 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10463 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10464 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10465 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10466 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10467 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10468 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10469 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10470 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10471 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10472 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10473 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10474 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
10475 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10476 ; AVX512F-NEXT: retq
10516 ; AVX512F-LABEL: ugt_20_v8i64:
10517 ; AVX512F: # %bb.0:
10518 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10519 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10520 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10521 ; AVX512F-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…
10522 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10523 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10524 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10525 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10526 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10527 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10528 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10529 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10530 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10531 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10532 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10533 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10534 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10535 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10536 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10537 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
10538 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10539 ; AVX512F-NEXT: retq
10579 ; AVX512F-LABEL: ult_21_v8i64:
10580 ; AVX512F: # %bb.0:
10581 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10582 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10583 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10584 ; AVX512F-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…
10585 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10586 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10587 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10588 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10589 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10590 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10591 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10592 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10593 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10594 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10595 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10596 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10597 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10598 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10599 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10600 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
10601 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10602 ; AVX512F-NEXT: retq
10642 ; AVX512F-LABEL: ugt_21_v8i64:
10643 ; AVX512F: # %bb.0:
10644 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10645 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10646 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10647 ; AVX512F-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…
10648 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10649 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10650 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10651 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10652 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10653 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10654 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10655 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10656 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10657 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10658 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10659 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10660 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10661 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10662 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10663 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
10664 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10665 ; AVX512F-NEXT: retq
10705 ; AVX512F-LABEL: ult_22_v8i64:
10706 ; AVX512F: # %bb.0:
10707 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10708 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10709 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10710 ; AVX512F-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…
10711 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10712 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10713 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10714 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10715 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10716 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10717 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10718 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10719 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10720 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10721 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10722 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10723 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10724 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10725 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10726 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
10727 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10728 ; AVX512F-NEXT: retq
10768 ; AVX512F-LABEL: ugt_22_v8i64:
10769 ; AVX512F: # %bb.0:
10770 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10771 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10772 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10773 ; AVX512F-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…
10774 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10775 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10776 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10777 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10778 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10779 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10780 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10781 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10782 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10783 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10784 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10785 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10786 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10787 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10788 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10789 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
10790 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10791 ; AVX512F-NEXT: retq
10831 ; AVX512F-LABEL: ult_23_v8i64:
10832 ; AVX512F: # %bb.0:
10833 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10834 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10835 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10836 ; AVX512F-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…
10837 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10838 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10839 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10840 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10841 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10842 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10843 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10844 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10845 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10846 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10847 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10848 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10849 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10850 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10851 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10852 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
10853 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10854 ; AVX512F-NEXT: retq
10894 ; AVX512F-LABEL: ugt_23_v8i64:
10895 ; AVX512F: # %bb.0:
10896 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10897 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10898 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10899 ; AVX512F-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…
10900 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10901 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10902 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10903 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10904 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10905 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10906 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10907 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10908 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10909 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10910 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10911 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10912 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10913 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10914 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10915 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
10916 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10917 ; AVX512F-NEXT: retq
10957 ; AVX512F-LABEL: ult_24_v8i64:
10958 ; AVX512F: # %bb.0:
10959 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
10960 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
10961 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
10962 ; AVX512F-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…
10963 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
10964 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
10965 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
10966 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
10967 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
10968 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
10969 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
10970 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
10971 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
10972 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
10973 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
10974 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
10975 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
10976 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
10977 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
10978 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
10979 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
10980 ; AVX512F-NEXT: retq
11020 ; AVX512F-LABEL: ugt_24_v8i64:
11021 ; AVX512F: # %bb.0:
11022 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11023 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11024 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11025 ; AVX512F-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…
11026 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11027 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11028 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11029 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11030 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11031 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11032 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11033 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11034 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11035 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11036 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11037 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11038 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11039 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11040 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11041 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
11042 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11043 ; AVX512F-NEXT: retq
11083 ; AVX512F-LABEL: ult_25_v8i64:
11084 ; AVX512F: # %bb.0:
11085 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11086 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11087 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11088 ; AVX512F-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…
11089 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11090 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11091 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11092 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11093 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11094 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11095 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11096 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11097 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11098 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11099 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11100 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11101 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11102 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11103 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11104 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
11105 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11106 ; AVX512F-NEXT: retq
11146 ; AVX512F-LABEL: ugt_25_v8i64:
11147 ; AVX512F: # %bb.0:
11148 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11149 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11150 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11151 ; AVX512F-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…
11152 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11153 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11154 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11155 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11156 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11157 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11158 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11159 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11160 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11161 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11162 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11163 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11164 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11165 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11166 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11167 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
11168 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11169 ; AVX512F-NEXT: retq
11209 ; AVX512F-LABEL: ult_26_v8i64:
11210 ; AVX512F: # %bb.0:
11211 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11212 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11213 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11214 ; AVX512F-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…
11215 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11216 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11217 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11218 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11219 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11220 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11221 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11222 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11223 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11224 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11225 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11226 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11227 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11228 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11229 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11230 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
11231 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11232 ; AVX512F-NEXT: retq
11272 ; AVX512F-LABEL: ugt_26_v8i64:
11273 ; AVX512F: # %bb.0:
11274 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11275 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11276 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11277 ; AVX512F-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…
11278 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11279 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11280 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11281 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11282 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11283 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11284 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11285 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11286 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11287 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11288 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11289 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11290 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11291 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11292 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11293 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
11294 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11295 ; AVX512F-NEXT: retq
11335 ; AVX512F-LABEL: ult_27_v8i64:
11336 ; AVX512F: # %bb.0:
11337 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11338 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11339 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11340 ; AVX512F-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…
11341 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11342 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11343 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11344 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11345 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11346 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11347 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11348 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11349 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11350 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11351 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11352 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11353 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11354 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11355 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11356 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
11357 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11358 ; AVX512F-NEXT: retq
11398 ; AVX512F-LABEL: ugt_27_v8i64:
11399 ; AVX512F: # %bb.0:
11400 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11401 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11402 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11403 ; AVX512F-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…
11404 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11405 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11406 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11407 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11408 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11409 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11410 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11411 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11412 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11413 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11414 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11415 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11416 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11417 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11418 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11419 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
11420 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11421 ; AVX512F-NEXT: retq
11461 ; AVX512F-LABEL: ult_28_v8i64:
11462 ; AVX512F: # %bb.0:
11463 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11464 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11465 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11466 ; AVX512F-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…
11467 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11468 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11469 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11470 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11471 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11472 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11473 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11474 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11475 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11476 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11477 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11478 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11479 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11480 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11481 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11482 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
11483 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11484 ; AVX512F-NEXT: retq
11524 ; AVX512F-LABEL: ugt_28_v8i64:
11525 ; AVX512F: # %bb.0:
11526 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11527 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11528 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11529 ; AVX512F-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…
11530 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11531 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11532 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11533 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11534 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11535 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11536 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11537 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11538 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11539 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11540 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11541 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11542 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11543 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11544 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11545 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
11546 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11547 ; AVX512F-NEXT: retq
11587 ; AVX512F-LABEL: ult_29_v8i64:
11588 ; AVX512F: # %bb.0:
11589 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11590 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11591 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11592 ; AVX512F-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…
11593 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11594 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11595 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11596 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11597 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11598 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11599 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11600 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11601 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11602 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11603 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11604 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11605 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11606 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11607 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11608 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
11609 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11610 ; AVX512F-NEXT: retq
11650 ; AVX512F-LABEL: ugt_29_v8i64:
11651 ; AVX512F: # %bb.0:
11652 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11653 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11654 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11655 ; AVX512F-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…
11656 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11657 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11658 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11659 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11660 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11661 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11662 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11663 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11664 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11665 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11666 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11667 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11668 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11669 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11670 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11671 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
11672 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11673 ; AVX512F-NEXT: retq
11713 ; AVX512F-LABEL: ult_30_v8i64:
11714 ; AVX512F: # %bb.0:
11715 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11716 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11717 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11718 ; AVX512F-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…
11719 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11720 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11721 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11722 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11723 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11724 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11725 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11726 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11727 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11728 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11729 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11730 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11731 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11732 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11733 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11734 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
11735 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11736 ; AVX512F-NEXT: retq
11776 ; AVX512F-LABEL: ugt_30_v8i64:
11777 ; AVX512F: # %bb.0:
11778 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11779 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11780 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11781 ; AVX512F-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…
11782 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11783 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11784 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11785 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11786 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11787 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11788 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11789 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11790 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11791 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11792 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11793 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11794 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11795 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11796 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11797 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
11798 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11799 ; AVX512F-NEXT: retq
11839 ; AVX512F-LABEL: ult_31_v8i64:
11840 ; AVX512F: # %bb.0:
11841 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11842 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11843 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11844 ; AVX512F-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…
11845 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11846 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11847 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11848 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11849 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11850 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11851 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11852 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11853 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11854 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11855 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11856 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11857 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11858 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11859 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11860 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
11861 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11862 ; AVX512F-NEXT: retq
11902 ; AVX512F-LABEL: ugt_31_v8i64:
11903 ; AVX512F: # %bb.0:
11904 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11905 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11906 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11907 ; AVX512F-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…
11908 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11909 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11910 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11911 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11912 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11913 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11914 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11915 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11916 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11917 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11918 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11919 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11920 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11921 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11922 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11923 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
11924 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11925 ; AVX512F-NEXT: retq
11965 ; AVX512F-LABEL: ult_32_v8i64:
11966 ; AVX512F: # %bb.0:
11967 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
11968 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
11969 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
11970 ; AVX512F-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…
11971 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
11972 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
11973 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
11974 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
11975 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
11976 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
11977 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
11978 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
11979 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
11980 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
11981 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
11982 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
11983 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
11984 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
11985 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
11986 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
11987 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
11988 ; AVX512F-NEXT: retq
12028 ; AVX512F-LABEL: ugt_32_v8i64:
12029 ; AVX512F: # %bb.0:
12030 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12031 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12032 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12033 ; AVX512F-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…
12034 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12035 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12036 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12037 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12038 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12039 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12040 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12041 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12042 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12043 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12044 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12045 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12046 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12047 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12048 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12049 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
12050 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12051 ; AVX512F-NEXT: retq
12091 ; AVX512F-LABEL: ult_33_v8i64:
12092 ; AVX512F: # %bb.0:
12093 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12094 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12095 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12096 ; AVX512F-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…
12097 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12098 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12099 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12100 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12101 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12102 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12103 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12104 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12105 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12106 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12107 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12108 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12109 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12110 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12111 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12112 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
12113 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12114 ; AVX512F-NEXT: retq
12154 ; AVX512F-LABEL: ugt_33_v8i64:
12155 ; AVX512F: # %bb.0:
12156 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12157 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12158 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12159 ; AVX512F-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…
12160 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12161 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12162 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12163 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12164 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12165 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12166 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12167 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12168 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12169 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12170 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12171 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12172 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12173 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12174 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12175 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
12176 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12177 ; AVX512F-NEXT: retq
12217 ; AVX512F-LABEL: ult_34_v8i64:
12218 ; AVX512F: # %bb.0:
12219 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12220 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12221 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12222 ; AVX512F-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…
12223 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12224 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12225 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12226 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12227 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12228 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12229 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12230 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12231 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12232 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12233 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12234 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12235 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12236 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12237 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12238 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
12239 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12240 ; AVX512F-NEXT: retq
12280 ; AVX512F-LABEL: ugt_34_v8i64:
12281 ; AVX512F: # %bb.0:
12282 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12283 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12284 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12285 ; AVX512F-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…
12286 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12287 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12288 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12289 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12290 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12291 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12292 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12293 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12294 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12295 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12296 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12297 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12298 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12299 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12300 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12301 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
12302 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12303 ; AVX512F-NEXT: retq
12343 ; AVX512F-LABEL: ult_35_v8i64:
12344 ; AVX512F: # %bb.0:
12345 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12346 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12347 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12348 ; AVX512F-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…
12349 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12350 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12351 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12352 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12353 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12354 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12355 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12356 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12357 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12358 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12359 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12360 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12361 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12362 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12363 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12364 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
12365 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12366 ; AVX512F-NEXT: retq
12406 ; AVX512F-LABEL: ugt_35_v8i64:
12407 ; AVX512F: # %bb.0:
12408 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12409 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12410 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12411 ; AVX512F-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…
12412 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12413 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12414 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12415 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12416 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12417 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12418 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12419 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12420 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12421 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12422 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12423 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12424 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12425 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12426 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12427 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
12428 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12429 ; AVX512F-NEXT: retq
12469 ; AVX512F-LABEL: ult_36_v8i64:
12470 ; AVX512F: # %bb.0:
12471 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12472 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12473 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12474 ; AVX512F-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…
12475 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12476 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12477 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12478 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12479 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12480 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12481 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12482 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12483 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12484 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12485 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12486 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12487 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12488 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12489 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12490 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
12491 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12492 ; AVX512F-NEXT: retq
12532 ; AVX512F-LABEL: ugt_36_v8i64:
12533 ; AVX512F: # %bb.0:
12534 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12535 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12536 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12537 ; AVX512F-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…
12538 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12539 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12540 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12541 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12542 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12543 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12544 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12545 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12546 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12547 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12548 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12549 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12550 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12551 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12552 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12553 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
12554 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12555 ; AVX512F-NEXT: retq
12595 ; AVX512F-LABEL: ult_37_v8i64:
12596 ; AVX512F: # %bb.0:
12597 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12598 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12599 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12600 ; AVX512F-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…
12601 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12602 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12603 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12604 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12605 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12606 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12607 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12608 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12609 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12610 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12611 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12612 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12613 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12614 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12615 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12616 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
12617 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12618 ; AVX512F-NEXT: retq
12658 ; AVX512F-LABEL: ugt_37_v8i64:
12659 ; AVX512F: # %bb.0:
12660 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12661 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12662 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12663 ; AVX512F-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…
12664 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12665 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12666 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12667 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12668 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12669 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12670 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12671 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12672 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12673 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12674 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12675 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12676 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12677 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12678 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12679 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
12680 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12681 ; AVX512F-NEXT: retq
12721 ; AVX512F-LABEL: ult_38_v8i64:
12722 ; AVX512F: # %bb.0:
12723 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12724 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12725 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12726 ; AVX512F-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…
12727 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12728 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12729 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12730 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12731 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12732 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12733 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12734 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12735 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12736 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12737 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12738 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12739 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12740 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12741 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12742 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
12743 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12744 ; AVX512F-NEXT: retq
12784 ; AVX512F-LABEL: ugt_38_v8i64:
12785 ; AVX512F: # %bb.0:
12786 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12787 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12788 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12789 ; AVX512F-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…
12790 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12791 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12792 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12793 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12794 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12795 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12796 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12797 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12798 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12799 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12800 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12801 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12802 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12803 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12804 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12805 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
12806 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12807 ; AVX512F-NEXT: retq
12847 ; AVX512F-LABEL: ult_39_v8i64:
12848 ; AVX512F: # %bb.0:
12849 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12850 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12851 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12852 ; AVX512F-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…
12853 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12854 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12855 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12856 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12857 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12858 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12859 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12860 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12861 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12862 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12863 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12864 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12865 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12866 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12867 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12868 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
12869 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12870 ; AVX512F-NEXT: retq
12910 ; AVX512F-LABEL: ugt_39_v8i64:
12911 ; AVX512F: # %bb.0:
12912 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12913 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12914 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12915 ; AVX512F-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…
12916 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12917 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12918 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12919 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12920 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12921 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12922 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12923 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12924 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12925 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12926 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12927 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12928 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12929 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12930 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12931 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
12932 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12933 ; AVX512F-NEXT: retq
12973 ; AVX512F-LABEL: ult_40_v8i64:
12974 ; AVX512F: # %bb.0:
12975 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
12976 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
12977 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
12978 ; AVX512F-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…
12979 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
12980 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
12981 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
12982 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
12983 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
12984 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
12985 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
12986 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
12987 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
12988 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
12989 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
12990 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
12991 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
12992 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
12993 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
12994 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
12995 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
12996 ; AVX512F-NEXT: retq
13036 ; AVX512F-LABEL: ugt_40_v8i64:
13037 ; AVX512F: # %bb.0:
13038 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13039 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13040 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13041 ; AVX512F-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…
13042 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13043 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13044 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13045 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13046 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13047 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13048 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13049 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13050 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13051 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13052 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13053 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13054 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13055 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13056 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13057 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
13058 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13059 ; AVX512F-NEXT: retq
13099 ; AVX512F-LABEL: ult_41_v8i64:
13100 ; AVX512F: # %bb.0:
13101 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13102 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13103 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13104 ; AVX512F-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…
13105 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13106 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13107 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13108 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13109 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13110 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13111 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13112 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13113 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13114 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13115 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13116 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13117 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13118 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13119 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13120 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
13121 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13122 ; AVX512F-NEXT: retq
13162 ; AVX512F-LABEL: ugt_41_v8i64:
13163 ; AVX512F: # %bb.0:
13164 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13165 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13166 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13167 ; AVX512F-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…
13168 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13169 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13170 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13171 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13172 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13173 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13174 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13175 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13176 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13177 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13178 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13179 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13180 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13181 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13182 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13183 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
13184 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13185 ; AVX512F-NEXT: retq
13225 ; AVX512F-LABEL: ult_42_v8i64:
13226 ; AVX512F: # %bb.0:
13227 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13228 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13229 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13230 ; AVX512F-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…
13231 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13232 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13233 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13234 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13235 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13236 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13237 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13238 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13239 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13240 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13241 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13242 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13243 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13244 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13245 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13246 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
13247 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13248 ; AVX512F-NEXT: retq
13288 ; AVX512F-LABEL: ugt_42_v8i64:
13289 ; AVX512F: # %bb.0:
13290 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13291 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13292 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13293 ; AVX512F-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…
13294 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13295 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13296 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13297 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13298 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13299 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13300 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13301 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13302 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13303 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13304 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13305 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13306 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13307 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13308 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13309 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
13310 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13311 ; AVX512F-NEXT: retq
13351 ; AVX512F-LABEL: ult_43_v8i64:
13352 ; AVX512F: # %bb.0:
13353 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13354 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13355 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13356 ; AVX512F-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…
13357 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13358 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13359 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13360 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13361 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13362 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13363 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13364 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13365 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13366 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13367 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13368 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13369 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13370 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13371 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13372 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
13373 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13374 ; AVX512F-NEXT: retq
13414 ; AVX512F-LABEL: ugt_43_v8i64:
13415 ; AVX512F: # %bb.0:
13416 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13417 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13418 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13419 ; AVX512F-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…
13420 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13421 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13422 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13423 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13424 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13425 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13426 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13427 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13428 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13429 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13430 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13431 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13432 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13433 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13434 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13435 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
13436 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13437 ; AVX512F-NEXT: retq
13477 ; AVX512F-LABEL: ult_44_v8i64:
13478 ; AVX512F: # %bb.0:
13479 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13480 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13481 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13482 ; AVX512F-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…
13483 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13484 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13485 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13486 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13487 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13488 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13489 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13490 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13491 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13492 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13493 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13494 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13495 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13496 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13497 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13498 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
13499 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13500 ; AVX512F-NEXT: retq
13540 ; AVX512F-LABEL: ugt_44_v8i64:
13541 ; AVX512F: # %bb.0:
13542 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13543 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13544 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13545 ; AVX512F-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…
13546 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13547 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13548 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13549 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13550 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13551 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13552 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13553 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13554 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13555 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13556 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13557 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13558 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13559 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13560 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13561 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
13562 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13563 ; AVX512F-NEXT: retq
13603 ; AVX512F-LABEL: ult_45_v8i64:
13604 ; AVX512F: # %bb.0:
13605 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13606 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13607 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13608 ; AVX512F-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…
13609 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13610 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13611 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13612 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13613 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13614 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13615 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13616 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13617 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13618 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13619 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13620 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13621 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13622 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13623 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13624 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
13625 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13626 ; AVX512F-NEXT: retq
13666 ; AVX512F-LABEL: ugt_45_v8i64:
13667 ; AVX512F: # %bb.0:
13668 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13669 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13670 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13671 ; AVX512F-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…
13672 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13673 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13674 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13675 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13676 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13677 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13678 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13679 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13680 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13681 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13682 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13683 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13684 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13685 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13686 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13687 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
13688 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13689 ; AVX512F-NEXT: retq
13729 ; AVX512F-LABEL: ult_46_v8i64:
13730 ; AVX512F: # %bb.0:
13731 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13732 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13733 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13734 ; AVX512F-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…
13735 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13736 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13737 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13738 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13739 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13740 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13741 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13742 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13743 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13744 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13745 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13746 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13747 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13748 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13749 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13750 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
13751 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13752 ; AVX512F-NEXT: retq
13792 ; AVX512F-LABEL: ugt_46_v8i64:
13793 ; AVX512F: # %bb.0:
13794 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13795 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13796 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13797 ; AVX512F-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…
13798 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13799 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13800 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13801 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13802 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13803 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13804 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13805 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13806 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13807 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13808 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13809 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13810 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13811 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13812 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13813 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
13814 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13815 ; AVX512F-NEXT: retq
13855 ; AVX512F-LABEL: ult_47_v8i64:
13856 ; AVX512F: # %bb.0:
13857 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13858 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13859 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13860 ; AVX512F-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…
13861 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13862 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13863 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13864 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13865 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13866 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13867 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13868 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13869 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13870 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13871 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13872 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13873 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13874 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13875 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13876 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
13877 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13878 ; AVX512F-NEXT: retq
13918 ; AVX512F-LABEL: ugt_47_v8i64:
13919 ; AVX512F: # %bb.0:
13920 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13921 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13922 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13923 ; AVX512F-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…
13924 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13925 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13926 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13927 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13928 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13929 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13930 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13931 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13932 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13933 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13934 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13935 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13936 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
13937 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
13938 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
13939 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
13940 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13941 ; AVX512F-NEXT: retq
13981 ; AVX512F-LABEL: ult_48_v8i64:
13982 ; AVX512F: # %bb.0:
13983 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
13984 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
13985 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
13986 ; AVX512F-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…
13987 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
13988 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
13989 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
13990 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
13991 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
13992 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
13993 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
13994 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
13995 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
13996 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
13997 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
13998 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
13999 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14000 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14001 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14002 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
14003 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14004 ; AVX512F-NEXT: retq
14044 ; AVX512F-LABEL: ugt_48_v8i64:
14045 ; AVX512F: # %bb.0:
14046 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14047 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14048 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14049 ; AVX512F-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…
14050 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14051 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14052 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14053 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14054 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14055 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14056 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14057 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14058 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14059 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14060 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14061 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14062 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14063 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14064 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14065 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
14066 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14067 ; AVX512F-NEXT: retq
14107 ; AVX512F-LABEL: ult_49_v8i64:
14108 ; AVX512F: # %bb.0:
14109 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14110 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14111 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14112 ; AVX512F-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…
14113 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14114 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14115 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14116 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14117 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14118 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14119 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14120 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14121 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14122 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14123 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14124 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14125 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14126 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14127 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14128 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
14129 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14130 ; AVX512F-NEXT: retq
14170 ; AVX512F-LABEL: ugt_49_v8i64:
14171 ; AVX512F: # %bb.0:
14172 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14173 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14174 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14175 ; AVX512F-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…
14176 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14177 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14178 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14179 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14180 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14181 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14182 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14183 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14184 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14185 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14186 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14187 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14188 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14189 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14190 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14191 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
14192 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14193 ; AVX512F-NEXT: retq
14233 ; AVX512F-LABEL: ult_50_v8i64:
14234 ; AVX512F: # %bb.0:
14235 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14236 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14237 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14238 ; AVX512F-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…
14239 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14240 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14241 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14242 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14243 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14244 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14245 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14246 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14247 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14248 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14249 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14250 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14251 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14252 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14253 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14254 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
14255 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14256 ; AVX512F-NEXT: retq
14296 ; AVX512F-LABEL: ugt_50_v8i64:
14297 ; AVX512F: # %bb.0:
14298 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14299 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14300 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14301 ; AVX512F-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…
14302 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14303 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14304 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14305 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14306 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14307 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14308 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14309 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14310 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14311 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14312 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14313 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14314 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14315 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14316 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14317 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
14318 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14319 ; AVX512F-NEXT: retq
14359 ; AVX512F-LABEL: ult_51_v8i64:
14360 ; AVX512F: # %bb.0:
14361 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14362 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14363 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14364 ; AVX512F-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…
14365 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14366 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14367 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14368 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14369 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14370 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14371 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14372 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14373 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14374 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14375 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14376 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14377 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14378 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14379 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14380 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
14381 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14382 ; AVX512F-NEXT: retq
14422 ; AVX512F-LABEL: ugt_51_v8i64:
14423 ; AVX512F: # %bb.0:
14424 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14425 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14426 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14427 ; AVX512F-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…
14428 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14429 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14430 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14431 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14432 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14433 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14434 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14435 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14436 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14437 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14438 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14439 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14440 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14441 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14442 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14443 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
14444 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14445 ; AVX512F-NEXT: retq
14485 ; AVX512F-LABEL: ult_52_v8i64:
14486 ; AVX512F: # %bb.0:
14487 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14488 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14489 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14490 ; AVX512F-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…
14491 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14492 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14493 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14494 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14495 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14496 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14497 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14498 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14499 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14500 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14501 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14502 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14503 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14504 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14505 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14506 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
14507 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14508 ; AVX512F-NEXT: retq
14548 ; AVX512F-LABEL: ugt_52_v8i64:
14549 ; AVX512F: # %bb.0:
14550 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14551 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14552 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14553 ; AVX512F-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…
14554 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14555 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14556 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14557 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14558 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14559 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14560 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14561 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14562 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14563 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14564 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14565 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14566 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14567 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14568 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14569 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
14570 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14571 ; AVX512F-NEXT: retq
14611 ; AVX512F-LABEL: ult_53_v8i64:
14612 ; AVX512F: # %bb.0:
14613 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14614 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14615 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14616 ; AVX512F-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…
14617 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14618 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14619 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14620 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14621 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14622 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14623 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14624 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14625 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14626 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14627 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14628 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14629 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14630 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14631 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14632 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
14633 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14634 ; AVX512F-NEXT: retq
14674 ; AVX512F-LABEL: ugt_53_v8i64:
14675 ; AVX512F: # %bb.0:
14676 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14677 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14678 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14679 ; AVX512F-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…
14680 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14681 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14682 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14683 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14684 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14685 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14686 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14687 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14688 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14689 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14690 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14691 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14692 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14693 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14694 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14695 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
14696 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14697 ; AVX512F-NEXT: retq
14737 ; AVX512F-LABEL: ult_54_v8i64:
14738 ; AVX512F: # %bb.0:
14739 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14740 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14741 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14742 ; AVX512F-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…
14743 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14744 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14745 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14746 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14747 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14748 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14749 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14750 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14751 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14752 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14753 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14754 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14755 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14756 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14757 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14758 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
14759 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14760 ; AVX512F-NEXT: retq
14800 ; AVX512F-LABEL: ugt_54_v8i64:
14801 ; AVX512F: # %bb.0:
14802 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14803 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14804 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14805 ; AVX512F-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…
14806 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14807 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14808 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14809 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14810 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14811 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14812 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14813 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14814 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14815 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14816 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14817 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14818 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14819 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14820 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14821 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
14822 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14823 ; AVX512F-NEXT: retq
14863 ; AVX512F-LABEL: ult_55_v8i64:
14864 ; AVX512F: # %bb.0:
14865 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14866 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14867 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14868 ; AVX512F-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…
14869 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14870 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14871 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14872 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14873 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14874 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14875 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14876 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14877 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14878 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14879 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14880 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14881 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14882 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14883 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14884 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
14885 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14886 ; AVX512F-NEXT: retq
14926 ; AVX512F-LABEL: ugt_55_v8i64:
14927 ; AVX512F: # %bb.0:
14928 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14929 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14930 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14931 ; AVX512F-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…
14932 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14933 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14934 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14935 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14936 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
14937 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
14938 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
14939 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
14940 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
14941 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
14942 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
14943 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
14944 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
14945 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
14946 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
14947 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
14948 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14949 ; AVX512F-NEXT: retq
14989 ; AVX512F-LABEL: ult_56_v8i64:
14990 ; AVX512F: # %bb.0:
14991 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
14992 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
14993 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
14994 ; AVX512F-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…
14995 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
14996 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
14997 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
14998 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
14999 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15000 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15001 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15002 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15003 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15004 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15005 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15006 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15007 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15008 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15009 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15010 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
15011 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15012 ; AVX512F-NEXT: retq
15052 ; AVX512F-LABEL: ugt_56_v8i64:
15053 ; AVX512F: # %bb.0:
15054 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15055 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15056 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15057 ; AVX512F-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…
15058 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15059 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15060 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15061 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15062 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15063 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15064 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15065 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15066 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15067 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15068 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15069 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15070 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15071 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15072 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15073 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
15074 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15075 ; AVX512F-NEXT: retq
15115 ; AVX512F-LABEL: ult_57_v8i64:
15116 ; AVX512F: # %bb.0:
15117 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15118 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15119 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15120 ; AVX512F-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…
15121 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15122 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15123 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15124 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15125 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15126 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15127 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15128 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15129 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15130 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15131 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15132 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15133 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15134 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15135 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15136 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
15137 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15138 ; AVX512F-NEXT: retq
15178 ; AVX512F-LABEL: ugt_57_v8i64:
15179 ; AVX512F: # %bb.0:
15180 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15181 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15182 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15183 ; AVX512F-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…
15184 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15185 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15186 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15187 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15188 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15189 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15190 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15191 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15192 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15193 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15194 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15195 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15196 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15197 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15198 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15199 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
15200 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15201 ; AVX512F-NEXT: retq
15241 ; AVX512F-LABEL: ult_58_v8i64:
15242 ; AVX512F: # %bb.0:
15243 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15244 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15245 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15246 ; AVX512F-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…
15247 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15248 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15249 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15250 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15251 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15252 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15253 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15254 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15255 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15256 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15257 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15258 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15259 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15260 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15261 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15262 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
15263 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15264 ; AVX512F-NEXT: retq
15304 ; AVX512F-LABEL: ugt_58_v8i64:
15305 ; AVX512F: # %bb.0:
15306 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15307 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15308 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15309 ; AVX512F-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…
15310 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15311 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15312 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15313 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15314 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15315 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15316 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15317 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15318 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15319 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15320 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15321 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15322 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15323 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15324 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15325 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
15326 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15327 ; AVX512F-NEXT: retq
15367 ; AVX512F-LABEL: ult_59_v8i64:
15368 ; AVX512F: # %bb.0:
15369 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15370 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15371 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15372 ; AVX512F-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…
15373 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15374 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15375 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15376 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15377 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15378 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15379 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15380 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15381 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15382 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15383 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15384 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15385 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15386 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15387 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15388 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
15389 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15390 ; AVX512F-NEXT: retq
15430 ; AVX512F-LABEL: ugt_59_v8i64:
15431 ; AVX512F: # %bb.0:
15432 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15433 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15434 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15435 ; AVX512F-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…
15436 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15437 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15438 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15439 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15440 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15441 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15442 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15443 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15444 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15445 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15446 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15447 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15448 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15449 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15450 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15451 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
15452 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15453 ; AVX512F-NEXT: retq
15493 ; AVX512F-LABEL: ult_60_v8i64:
15494 ; AVX512F: # %bb.0:
15495 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15496 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15497 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15498 ; AVX512F-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…
15499 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15500 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15501 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15502 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15503 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15504 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15505 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15506 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15507 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15508 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15509 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15510 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15511 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15512 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15513 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15514 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
15515 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15516 ; AVX512F-NEXT: retq
15556 ; AVX512F-LABEL: ugt_60_v8i64:
15557 ; AVX512F: # %bb.0:
15558 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15559 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15560 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15561 ; AVX512F-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…
15562 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15563 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15564 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15565 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15566 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15567 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15568 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15569 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15570 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15571 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15572 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15573 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15574 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15575 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15576 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15577 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
15578 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15579 ; AVX512F-NEXT: retq
15619 ; AVX512F-LABEL: ult_61_v8i64:
15620 ; AVX512F: # %bb.0:
15621 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15622 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15623 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15624 ; AVX512F-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…
15625 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15626 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15627 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15628 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15629 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15630 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15631 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15632 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15633 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15634 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15635 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15636 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15637 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15638 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15639 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15640 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
15641 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15642 ; AVX512F-NEXT: retq
15682 ; AVX512F-LABEL: ugt_61_v8i64:
15683 ; AVX512F: # %bb.0:
15684 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15685 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15686 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15687 ; AVX512F-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…
15688 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15689 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15690 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15691 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15692 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15693 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15694 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15695 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15696 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15697 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15698 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15699 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15700 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15701 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15702 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15703 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
15704 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15705 ; AVX512F-NEXT: retq
15745 ; AVX512F-LABEL: ult_62_v8i64:
15746 ; AVX512F: # %bb.0:
15747 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15748 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15749 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15750 ; AVX512F-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…
15751 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15752 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15753 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15754 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15755 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15756 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15757 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15758 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15759 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15760 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15761 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15762 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15763 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15764 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15765 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15766 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
15767 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15768 ; AVX512F-NEXT: retq
15808 ; AVX512F-LABEL: ugt_62_v8i64:
15809 ; AVX512F: # %bb.0:
15810 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15811 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15812 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15813 ; AVX512F-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…
15814 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15815 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15816 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15817 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15818 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15819 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15820 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15821 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15822 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15823 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15824 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15825 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15826 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15827 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15828 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15829 ; AVX512F-NEXT: vpcmpnleuq {{.*}}(%rip){1to8}, %zmm0, %k1
15830 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15831 ; AVX512F-NEXT: retq
15871 ; AVX512F-LABEL: ult_63_v8i64:
15872 ; AVX512F: # %bb.0:
15873 ; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
15874 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
15875 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm3
15876 ; AVX512F-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…
15877 ; AVX512F-NEXT: vpshufb %ymm3, %ymm4, %ymm3
15878 ; AVX512F-NEXT: vpsrlw $4, %ymm1, %ymm1
15879 ; AVX512F-NEXT: vpand %ymm2, %ymm1, %ymm1
15880 ; AVX512F-NEXT: vpshufb %ymm1, %ymm4, %ymm1
15881 ; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
15882 ; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
15883 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm1, %ymm1
15884 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm5
15885 ; AVX512F-NEXT: vpshufb %ymm5, %ymm4, %ymm5
15886 ; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm0
15887 ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm0
15888 ; AVX512F-NEXT: vpshufb %ymm0, %ymm4, %ymm0
15889 ; AVX512F-NEXT: vpaddb %ymm5, %ymm0, %ymm0
15890 ; AVX512F-NEXT: vpsadbw %ymm3, %ymm0, %ymm0
15891 ; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
15892 ; AVX512F-NEXT: vpcmpltuq {{.*}}(%rip){1to8}, %zmm0, %k1
15893 ; AVX512F-NEXT: vpternlogq $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15894 ; AVX512F-NEXT: retq