llvm.org GIT mirror llvm / 1bdf83d
[X86][AVX512] Add combine for TESTM Add an X86 combine for TESTM when one of the operands is a BUILD_VECTOR(0,0,...). TESTM op0, BUILD_VECTOR(0,0,...) -> BUILD_VECTOR(0,0,...) TESTM BUILD_VECTOR(0,0,...), op1 -> BUILD_VECTOR(0,0,...) Differential Revision: https://reviews.llvm.org/D36536 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310787 91177308-0d34-0410-b5e6-96231b3b80d8 Guy Blank 2 years ago
2 changed file(s) with 1009 addition(s) and 1400 deletion(s). Raw diff Collapse all Expand all
3546735467 {Chain, LHS, RHS}, VT, MMO);
3546835468 }
3546935469
35470 // TEST (AND a, b) ,(AND a, b) -> TEST a, b
35471 static SDValue combineTestM(SDNode *N, SelectionDAG &DAG) {
35470 static SDValue combineTestM(SDNode *N, SelectionDAG &DAG,
35471 const X86Subtarget &Subtarget) {
3547235472 SDValue Op0 = N->getOperand(0);
3547335473 SDValue Op1 = N->getOperand(1);
3547435474
35475 if (Op0 != Op1 || Op1->getOpcode() != ISD::AND)
35476 return SDValue();
35477
35478 EVT VT = N->getValueType(0);
35475 MVT VT = N->getSimpleValueType(0);
3547935476 SDLoc DL(N);
3548035477
35481 return DAG.getNode(X86ISD::TESTM, DL, VT,
35482 Op0->getOperand(0), Op0->getOperand(1));
35478 // TEST (AND a, b) ,(AND a, b) -> TEST a, b
35479 if (Op0 == Op1 && Op1->getOpcode() == ISD::AND)
35480 return DAG.getNode(X86ISD::TESTM, DL, VT, Op0->getOperand(0),
35481 Op0->getOperand(1));
35482
35483 // TEST op0, BUILD_VECTOR(all_zero) -> BUILD_VECTOR(all_zero)
35484 // TEST BUILD_VECTOR(all_zero), op1 -> BUILD_VECTOR(all_zero)
35485 if (ISD::isBuildVectorAllZeros(Op0.getNode()) ||
35486 ISD::isBuildVectorAllZeros(Op1.getNode()))
35487 return getZeroVector(VT, Subtarget, DAG, DL);
35488
35489 return SDValue();
3548335490 }
3548435491
3548535492 static SDValue combineVectorCompare(SDNode *N, SelectionDAG &DAG,
3570135708 case ISD::MGATHER:
3570235709 case ISD::MSCATTER: return combineGatherScatter(N, DAG);
3570335710 case X86ISD::LSUB: return combineLockSub(N, DAG, Subtarget);
35704 case X86ISD::TESTM: return combineTestM(N, DAG);
35711 case X86ISD::TESTM: return combineTestM(N, DAG, Subtarget);
3570535712 case X86ISD::PCMPEQ:
3570635713 case X86ISD::PCMPGT: return combineVectorCompare(N, DAG, Subtarget);
3570735714 }
3939 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
4040 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
4141 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
42 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
43 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
42 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
4443 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
4544 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
4645 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
165164 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
166165 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
167166 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
168 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
169 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
167 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
170168 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
171169 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
172170 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
294292 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
295293 ; NoVLX-NEXT: kmovw %edi, %k1
296294 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
297 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
298 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
295 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
299296 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
300297 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
301298 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
424421 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
425422 ; NoVLX-NEXT: kmovw %edi, %k1
426423 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
427 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
428 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
424 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
429425 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
430426 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
431427 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
554550 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
555551 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
556552 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
557 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
558 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
553 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
559554 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
560555 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
561556 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
685680 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
686681 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
687682 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
688 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
689 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
683 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
690684 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
691685 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
692686 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
819813 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
820814 ; NoVLX-NEXT: kmovw %edi, %k1
821815 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
822 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
823 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
816 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
824817 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
825818 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
826819 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
954947 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
955948 ; NoVLX-NEXT: kmovw %edi, %k1
956949 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
957 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
958 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
950 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
959951 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
960952 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
961953 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
10821074 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
10831075 ; NoVLX-NEXT: kmovw %k0, (%rsp)
10841076 ; NoVLX-NEXT: movl (%rsp), %ecx
1085 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1086 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1077 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
10871078 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
10881079 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
10891080 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
11321123 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
11331124 ; NoVLX-NEXT: kmovw %k0, (%rsp)
11341125 ; NoVLX-NEXT: movl (%rsp), %ecx
1135 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1136 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1126 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
11371127 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
11381128 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
11391129 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
11801170 ; NoVLX-NEXT: vpmovdb %zmm2, %xmm2
11811171 ; NoVLX-NEXT: vpternlogd $255, %zmm3, %zmm3, %zmm3 {%k2} {z}
11821172 ; NoVLX-NEXT: vpmovdb %zmm3, %xmm3
1183 ; NoVLX-NEXT: vxorps %xmm4, %xmm4, %xmm4
11841173 ; NoVLX-NEXT: vpcmpeqb %ymm1, %ymm0, %ymm0
11851174 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
11861175 ; NoVLX-NEXT: vpand %xmm3, %xmm1, %xmm1
11941183 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
11951184 ; NoVLX-NEXT: kmovw %k0, (%rsp)
11961185 ; NoVLX-NEXT: movl (%rsp), %ecx
1197 ; NoVLX-NEXT: vptestmd %zmm4, %zmm4, %k0
1186 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
11981187 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
11991188 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
12001189 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
12421231 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
12431232 ; NoVLX-NEXT: vpternlogd $255, %zmm2, %zmm2, %zmm2 {%k2} {z}
12441233 ; NoVLX-NEXT: vpmovdb %zmm2, %xmm2
1245 ; NoVLX-NEXT: vxorps %xmm3, %xmm3, %xmm3
12461234 ; NoVLX-NEXT: vpcmpeqb (%rsi), %ymm0, %ymm0
1247 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm4
1248 ; NoVLX-NEXT: vpand %xmm2, %xmm4, %xmm2
1235 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm3
1236 ; NoVLX-NEXT: vpand %xmm2, %xmm3, %xmm2
12491237 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
12501238 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
12511239 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
12561244 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
12571245 ; NoVLX-NEXT: kmovw %k0, (%rsp)
12581246 ; NoVLX-NEXT: movl (%rsp), %ecx
1259 ; NoVLX-NEXT: vptestmd %zmm3, %zmm3, %k0
1247 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
12601248 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
12611249 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
12621250 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
14241412 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
14251413 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
14261414 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
1427 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1428 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
1415 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
14291416 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
14301417 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
14311418 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
15001487 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
15011488 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
15021489 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
1503 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1504 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
1490 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
15051491 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
15061492 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
15071493 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
15791565 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
15801566 ; NoVLX-NEXT: kmovw %edi, %k1
15811567 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
1582 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1583 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
1568 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
15841569 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
15851570 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
15861571 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16591644 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
16601645 ; NoVLX-NEXT: kmovw %edi, %k1
16611646 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
1662 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1663 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
1647 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
16641648 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
16651649 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
16661650 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17391723 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
17401724 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
17411725 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
1742 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1743 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
1726 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
17441727 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
17451728 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
17461729 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
18201803 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
18211804 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
18221805 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
1823 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1824 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
1806 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
18251807 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
18261808 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
18271809 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
19041886 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
19051887 ; NoVLX-NEXT: kmovw %edi, %k1
19061888 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
1907 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1908 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
1889 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
19091890 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
19101891 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
19111892 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
19891970 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
19901971 ; NoVLX-NEXT: kmovw %edi, %k1
19911972 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
1992 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
1993 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
1973 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
19941974 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
19951975 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
19961976 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
20902070 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
20912071 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
20922072 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2093 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
2094 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
2073 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
20952074 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
20962075 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
20972076 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
22172196 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
22182197 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
22192198 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2220 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
2221 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
2199 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
22222200 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
22232201 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
22242202 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
23472325 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
23482326 ; NoVLX-NEXT: kmovw %edi, %k1
23492327 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
2350 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
2351 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
2328 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
23522329 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
23532330 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
23542331 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
24782455 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
24792456 ; NoVLX-NEXT: kmovw %edi, %k1
24802457 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
2481 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
2482 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
2458 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
24832459 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
24842460 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
24852461 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
26092585 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
26102586 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
26112587 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2612 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
2613 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
2588 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
26142589 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
26152590 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
26162591 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
27412716 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
27422717 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
27432718 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2744 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
2745 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
2719 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
27462720 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
27472721 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
27482722 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
28762850 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
28772851 ; NoVLX-NEXT: kmovw %edi, %k1
28782852 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
2879 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
2880 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
2853 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
28812854 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
28822855 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
28832856 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
30122985 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
30132986 ; NoVLX-NEXT: kmovw %edi, %k1
30142987 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
3015 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
3016 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
2988 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
30172989 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
30182990 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
30192991 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
34423414 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
34433415 ; NoVLX-NEXT: kmovw %k0, (%rsp)
34443416 ; NoVLX-NEXT: movl (%rsp), %ecx
3445 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
3446 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3417 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
34473418 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
34483419 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
34493420 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
37093680 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
37103681 ; NoVLX-NEXT: kmovw %k0, (%rsp)
37113682 ; NoVLX-NEXT: movl (%rsp), %ecx
3712 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
3713 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3683 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
37143684 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
37153685 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
37163686 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
39073877 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm2, %xmm2
39083878 ; NoVLX-NEXT: vpextrq $1, %xmm1, %rax
39093879 ; NoVLX-NEXT: vinserti128 $1, %xmm9, %ymm4, %ymm1
3910 ; NoVLX-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm8
3880 ; NoVLX-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm4
39113881 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k1
39123882 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k2
3883 ; NoVLX-NEXT: vinserti128 $1, %xmm7, %ymm3, %ymm3
39133884 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3914 ; NoVLX-NEXT: vinserti128 $1, %xmm7, %ymm3, %ymm3
39153885 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3916 ; NoVLX-NEXT: vpternlogd $255, %zmm6, %zmm6, %zmm6 {%k2} {z}
3917 ; NoVLX-NEXT: vpcmpeqw %ymm3, %ymm1, %ymm4
3918 ; NoVLX-NEXT: vpmovdb %zmm6, %xmm6
3886 ; NoVLX-NEXT: vpcmpeqw %ymm3, %ymm1, %ymm3
3887 ; NoVLX-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k2} {z}
3888 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
39193889 ; NoVLX-NEXT: shrq $48, %rcx
3920 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm1
3890 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm2
39213891 ; NoVLX-NEXT: movl %eax, %ecx
39223892 ; NoVLX-NEXT: shrl $16, %ecx
3923 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
3924 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm2
3893 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm2, %xmm2
3894 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm2, %xmm2
39253895 ; NoVLX-NEXT: movq %rax, %rcx
39263896 ; NoVLX-NEXT: shrq $48, %rax
39273897 ; NoVLX-NEXT: shrq $32, %rcx
3928 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
39293898 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm2, %xmm2
39303899 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm2, %xmm2
39313900 ; NoVLX-NEXT: vinserti128 $1, %xmm5, %ymm2, %ymm2
3932 ; NoVLX-NEXT: vpcmpeqw %ymm2, %ymm8, %ymm2
3901 ; NoVLX-NEXT: vpcmpeqw %ymm2, %ymm4, %ymm2
39333902 ; NoVLX-NEXT: vpmovsxwd %ymm2, %zmm2
39343903 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
39353904 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
39953964 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
39963965 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
39973966 ; NoVLX-NEXT: kmovw %k0, %eax
3998 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm3
3999 ; NoVLX-NEXT: vpmovsxwd %ymm4, %zmm2
4000 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
4001 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
3967 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
3968 ; NoVLX-NEXT: vpmovsxwd %ymm3, %zmm3
3969 ; NoVLX-NEXT: vpslld $31, %zmm3, %zmm3
3970 ; NoVLX-NEXT: vptestmd %zmm3, %zmm3, %k0
40023971 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
40033972 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40043973 ; NoVLX-NEXT: kmovw %k1, %eax
40053974 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
40063975 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40073976 ; NoVLX-NEXT: kmovw %k1, %ecx
4008 ; NoVLX-NEXT: vmovd %ecx, %xmm2
4009 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
3977 ; NoVLX-NEXT: vmovd %ecx, %xmm3
3978 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
40103979 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
40113980 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40123981 ; NoVLX-NEXT: kmovw %k1, %eax
4013 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
3982 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
40143983 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
40153984 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40163985 ; NoVLX-NEXT: kmovw %k1, %eax
4017 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
3986 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
40183987 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
40193988 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40203989 ; NoVLX-NEXT: kmovw %k1, %eax
4021 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
3990 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
40223991 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
40233992 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40243993 ; NoVLX-NEXT: kmovw %k1, %eax
4025 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
3994 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
40263995 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
40273996 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40283997 ; NoVLX-NEXT: kmovw %k1, %eax
4029 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
3998 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
40303999 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
40314000 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40324001 ; NoVLX-NEXT: kmovw %k1, %eax
4033 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
4002 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
40344003 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
40354004 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40364005 ; NoVLX-NEXT: kmovw %k1, %eax
4037 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
4006 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
40384007 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
40394008 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40404009 ; NoVLX-NEXT: kmovw %k1, %eax
4041 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
4010 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
40424011 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
40434012 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40444013 ; NoVLX-NEXT: kmovw %k1, %eax
4045 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
4014 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
40464015 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
40474016 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40484017 ; NoVLX-NEXT: kmovw %k1, %eax
4049 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
4018 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
40504019 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
40514020 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40524021 ; NoVLX-NEXT: kmovw %k1, %eax
4053 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
4022 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
40544023 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
40554024 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40564025 ; NoVLX-NEXT: kmovw %k1, %eax
4057 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
4026 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
40584027 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
40594028 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
40604029 ; NoVLX-NEXT: kmovw %k1, %eax
4061 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
4030 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
40624031 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
40634032 ; NoVLX-NEXT: kmovw %k0, %eax
4064 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
4065 ; NoVLX-NEXT: vpand %xmm6, %xmm2, %xmm2
4066 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
4067 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
4068 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
4033 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3
4034 ; NoVLX-NEXT: vpand %xmm1, %xmm3, %xmm1
4035 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
4036 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
4037 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
40694038 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
4070 ; NoVLX-NEXT: vpand %xmm0, %xmm3, %xmm0
4039 ; NoVLX-NEXT: vpand %xmm0, %xmm2, %xmm0
40714040 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
40724041 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
40734042 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
40744043 ; NoVLX-NEXT: kmovw %k0, (%rsp)
40754044 ; NoVLX-NEXT: movl (%rsp), %ecx
4076 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
4045 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
40774046 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
40784047 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
40794048 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
41384107 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
41394108 ; NoVLX-NEXT: vmovq %xmm4, %rcx
41404109 ; NoVLX-NEXT: shrq $48, %rax
4141 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm2
4110 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm1
41424111 ; NoVLX-NEXT: movl %ecx, %eax
41434112 ; NoVLX-NEXT: shrl $16, %eax
4144 ; NoVLX-NEXT: vmovd %ecx, %xmm1
4145 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
4113 ; NoVLX-NEXT: vmovd %ecx, %xmm2
4114 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm2, %xmm2
41464115 ; NoVLX-NEXT: movq %rcx, %rax
41474116 ; NoVLX-NEXT: shrq $32, %rax
4148 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
4117 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm2, %xmm2
41494118 ; NoVLX-NEXT: vpextrq $1, %xmm4, %rax
41504119 ; NoVLX-NEXT: shrq $48, %rcx
4151 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm1
4120 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm2
41524121 ; NoVLX-NEXT: movl %eax, %ecx
41534122 ; NoVLX-NEXT: shrl $16, %ecx
4154 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
4155 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm1
4123 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm2, %xmm2
4124 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm2, %xmm2
41564125 ; NoVLX-NEXT: movq %rax, %rcx
41574126 ; NoVLX-NEXT: shrq $32, %rcx
4158 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
4127 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm2, %xmm2
41594128 ; NoVLX-NEXT: vmovq %xmm3, %rcx
41604129 ; NoVLX-NEXT: shrq $48, %rax
4161 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm4
4130 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm2, %xmm2
41624131 ; NoVLX-NEXT: movl %ecx, %eax
41634132 ; NoVLX-NEXT: shrl $16, %eax
4164 ; NoVLX-NEXT: vmovd %ecx, %xmm1
4165 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
4133 ; NoVLX-NEXT: vmovd %ecx, %xmm4
4134 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm4, %xmm4
41664135 ; NoVLX-NEXT: movq %rcx, %rax
41674136 ; NoVLX-NEXT: shrq $32, %rax
4168 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
4137 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm4, %xmm4
41694138 ; NoVLX-NEXT: vpextrq $1, %xmm3, %rax
41704139 ; NoVLX-NEXT: shrq $48, %rcx
4171 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm1
4140 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm4, %xmm3
41724141 ; NoVLX-NEXT: movl %eax, %ecx
41734142 ; NoVLX-NEXT: shrl $16, %ecx
4174 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
4175 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm1
4143 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm3, %xmm3
4144 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm3, %xmm3
41764145 ; NoVLX-NEXT: movq %rax, %rcx
41774146 ; NoVLX-NEXT: shrq $32, %rcx
4178 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
4147 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm3, %xmm3
41794148 ; NoVLX-NEXT: vmovq %xmm0, %rcx
41804149 ; NoVLX-NEXT: shrq $48, %rax
4181 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm3
4150 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm3, %xmm4
41824151 ; NoVLX-NEXT: movl %ecx, %eax
41834152 ; NoVLX-NEXT: shrl $16, %eax
4184 ; NoVLX-NEXT: vmovd %ecx, %xmm1
4185 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
4153 ; NoVLX-NEXT: vmovd %ecx, %xmm3
4154 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm3, %xmm3
41864155 ; NoVLX-NEXT: movq %rcx, %rax
41874156 ; NoVLX-NEXT: shrq $32, %rax
4188 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
4157 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm3, %xmm3
41894158 ; NoVLX-NEXT: vpextrq $1, %xmm0, %rax
41904159 ; NoVLX-NEXT: shrq $48, %rcx
4191 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm0
4160 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm3, %xmm0
41924161 ; NoVLX-NEXT: movl %eax, %ecx
41934162 ; NoVLX-NEXT: shrl $16, %ecx
41944163 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
41994168 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k1
42004169 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k2
42014170 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
4202 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm1
4203 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k2} {z}
4204 ; NoVLX-NEXT: vinserti128 $1, %xmm2, %ymm4, %ymm4
4205 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm2
4171 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
4172 ; NoVLX-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm3
4173 ; NoVLX-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k2} {z}
4174 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
42064175 ; NoVLX-NEXT: shrq $48, %rax
4207 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
4208 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm5, %xmm5
4209 ; NoVLX-NEXT: vinserti128 $1, %xmm3, %ymm5, %ymm3
4210 ; NoVLX-NEXT: vpcmpeqw (%rsi), %ymm3, %ymm3
4176 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm5, %xmm2
4177 ; NoVLX-NEXT: vinserti128 $1, %xmm4, %ymm2, %ymm2
4178 ; NoVLX-NEXT: vpcmpeqw (%rsi), %ymm2, %ymm2
4179 ; NoVLX-NEXT: vpmovsxwd %ymm2, %zmm2
4180 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
4181 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
4182 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
4183 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4184 ; NoVLX-NEXT: kmovw %k1, %eax
4185 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
4186 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4187 ; NoVLX-NEXT: vmovd %eax, %xmm2
4188 ; NoVLX-NEXT: kmovw %k1, %eax
4189 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
4190 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
4191 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4192 ; NoVLX-NEXT: kmovw %k1, %eax
4193 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
4194 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
4195 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4196 ; NoVLX-NEXT: kmovw %k1, %eax
4197 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
4198 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
4199 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4200 ; NoVLX-NEXT: kmovw %k1, %eax
4201 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
4202 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
4203 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4204 ; NoVLX-NEXT: kmovw %k1, %eax
4205 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
4206 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
4207 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4208 ; NoVLX-NEXT: kmovw %k1, %eax
4209 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
4210 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
4211 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4212 ; NoVLX-NEXT: kmovw %k1, %eax
4213 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
4214 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
4215 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4216 ; NoVLX-NEXT: kmovw %k1, %eax
4217 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
4218 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
4219 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4220 ; NoVLX-NEXT: kmovw %k1, %eax
4221 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
4222 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
4223 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4224 ; NoVLX-NEXT: kmovw %k1, %eax
4225 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
4226 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
4227 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4228 ; NoVLX-NEXT: kmovw %k1, %eax
4229 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
4230 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
4231 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4232 ; NoVLX-NEXT: kmovw %k1, %eax
4233 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
4234 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
4235 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4236 ; NoVLX-NEXT: kmovw %k1, %eax
4237 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
4238 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
4239 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4240 ; NoVLX-NEXT: kmovw %k1, %eax
4241 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
4242 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
4243 ; NoVLX-NEXT: kmovw %k0, %eax
4244 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
4245 ; NoVLX-NEXT: vpcmpeqw 32(%rsi), %ymm3, %ymm3
42114246 ; NoVLX-NEXT: vpmovsxwd %ymm3, %zmm3
42124247 ; NoVLX-NEXT: vpslld $31, %zmm3, %zmm3
42134248 ; NoVLX-NEXT: vptestmd %zmm3, %zmm3, %k0
4249 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
4250 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4251 ; NoVLX-NEXT: kmovw %k1, %eax
42144252 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
42154253 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4216 ; NoVLX-NEXT: kmovw %k1, %eax
4217 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
4218 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4219 ; NoVLX-NEXT: vmovd %eax, %xmm3
4220 ; NoVLX-NEXT: kmovw %k1, %eax
4254 ; NoVLX-NEXT: kmovw %k1, %ecx
4255 ; NoVLX-NEXT: vmovd %ecx, %xmm3
42214256 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
42224257 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
42234258 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
42744309 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
42754310 ; NoVLX-NEXT: kmovw %k0, %eax
42764311 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3
4277 ; NoVLX-NEXT: vpcmpeqw 32(%rsi), %ymm4, %ymm4
4278 ; NoVLX-NEXT: vpmovsxwd %ymm4, %zmm4
4279 ; NoVLX-NEXT: vpslld $31, %zmm4, %zmm4
4280 ; NoVLX-NEXT: vptestmd %zmm4, %zmm4, %k0
4281 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
4282 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4283 ; NoVLX-NEXT: kmovw %k1, %eax
4284 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
4285 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4286 ; NoVLX-NEXT: kmovw %k1, %ecx
4287 ; NoVLX-NEXT: vmovd %ecx, %xmm4
4288 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm4, %xmm4
4289 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
4290 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4291 ; NoVLX-NEXT: kmovw %k1, %eax
4292 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm4, %xmm4
4293 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
4294 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4295 ; NoVLX-NEXT: kmovw %k1, %eax
4296 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm4, %xmm4
4297 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
4298 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4299 ; NoVLX-NEXT: kmovw %k1, %eax
4300 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm4, %xmm4
4301 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
4302 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4303 ; NoVLX-NEXT: kmovw %k1, %eax
4304 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm4, %xmm4
4305 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
4306 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4307 ; NoVLX-NEXT: kmovw %k1, %eax
4308 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm4, %xmm4
4309 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
4310 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4311 ; NoVLX-NEXT: kmovw %k1, %eax
4312 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm4, %xmm4
4313 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
4314 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4315 ; NoVLX-NEXT: kmovw %k1, %eax
4316 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm4, %xmm4
4317 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
4318 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4319 ; NoVLX-NEXT: kmovw %k1, %eax
4320 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm4, %xmm4
4321 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
4322 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4323 ; NoVLX-NEXT: kmovw %k1, %eax
4324 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm4, %xmm4
4325 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
4326 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4327 ; NoVLX-NEXT: kmovw %k1, %eax
4328 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm4, %xmm4
4329 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
4330 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4331 ; NoVLX-NEXT: kmovw %k1, %eax
4332 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm4, %xmm4
4333 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
4334 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4335 ; NoVLX-NEXT: kmovw %k1, %eax
4336 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm4, %xmm4
4337 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
4338 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
4339 ; NoVLX-NEXT: kmovw %k1, %eax
4340 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm4, %xmm4
4341 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
4342 ; NoVLX-NEXT: kmovw %k0, %eax
4343 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm4, %xmm4
4344 ; NoVLX-NEXT: vpand %xmm2, %xmm4, %xmm2
4345 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
4346 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
4347 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
4348 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
43494312 ; NoVLX-NEXT: vpand %xmm1, %xmm3, %xmm1
43504313 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
43514314 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
43524315 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
4316 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
4317 ; NoVLX-NEXT: vpand %xmm0, %xmm2, %xmm0
4318 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
4319 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
4320 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
43534321 ; NoVLX-NEXT: kmovw %k0, (%rsp)
43544322 ; NoVLX-NEXT: movl (%rsp), %ecx
4355 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
4323 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
43564324 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
43574325 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
43584326 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
55345502 ; NoVLX-NEXT: andq $-32, %rsp
55355503 ; NoVLX-NEXT: subq $64, %rsp
55365504 ; NoVLX-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
5537 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
5538 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
5505 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
55395506 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
55405507 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
55415508 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
55845551 ; NoVLX-NEXT: andq $-32, %rsp
55855552 ; NoVLX-NEXT: subq $64, %rsp
55865553 ; NoVLX-NEXT: vpcmpeqd (%rdi), %xmm0, %xmm0
5587 ; NoVLX-NEXT: vxorps %xmm1, %xmm1, %xmm1
5588 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
5554 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
55895555 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
55905556 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
55915557 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
56545620 ; NoVLX-NEXT: kmovw %k1, %eax
56555621 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
56565622 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
5657 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
5658 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
5623 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
56595624 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
56605625 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
56615626 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
57265691 ; NoVLX-NEXT: kmovw %k1, %eax
57275692 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
57285693 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
5729 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
5730 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
5694 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
57315695 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
57325696 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
57335697 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
57825746 ; NoVLX-NEXT: subq $64, %rsp
57835747 ; NoVLX-NEXT: vpbroadcastd (%rdi), %xmm1
57845748 ; NoVLX-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
5785 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
5786 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
5749 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
57875750 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
57885751 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
57895752 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
58545817 ; NoVLX-NEXT: kmovw %k1, %eax
58555818 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
58565819 ; NoVLX-NEXT: vpand %xmm0, %xmm1, %xmm0
5857 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
5858 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
5820 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
58595821 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
58605822 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
58615823 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
61016063 ; NoVLX-NEXT: # kill: %YMM1 %YMM1 %ZMM1
61026064 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
61036065 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
6104 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6105 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6066 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
61066067 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
61076068 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
61086069 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
61776138 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
61786139 ; NoVLX-NEXT: vmovdqa (%rdi), %ymm1
61796140 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
6180 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6181 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6141 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
61826142 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
61836143 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
61846144 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
62576217 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
62586218 ; NoVLX-NEXT: kmovw %edi, %k1
62596219 ; NoVLX-NEXT: kandw %k1, %k0, %k0
6260 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6261 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6220 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
62626221 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
62636222 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
62646223 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
63386297 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
63396298 ; NoVLX-NEXT: kmovw %edi, %k1
63406299 ; NoVLX-NEXT: kandw %k1, %k0, %k0
6341 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6342 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6300 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
63436301 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
63446302 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
63456303 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
64186376 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
64196377 ; NoVLX-NEXT: vpbroadcastd (%rdi), %ymm1
64206378 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
6421 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6422 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6379 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
64236380 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
64246381 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
64256382 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
64996456 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
65006457 ; NoVLX-NEXT: kmovw %edi, %k1
65016458 ; NoVLX-NEXT: kandw %k0, %k1, %k0
6502 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6503 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6459 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
65046460 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
65056461 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
65066462 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
65806536 ; NoVLX-NEXT: # kill: %YMM1 %YMM1 %ZMM1
65816537 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
65826538 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
6583 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6584 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6539 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
65856540 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
65866541 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
65876542 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
66616616 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
66626617 ; NoVLX-NEXT: vmovdqa (%rdi), %ymm1
66636618 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
6664 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6665 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6619 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
66666620 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
66676621 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
66686622 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
67466700 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
67476701 ; NoVLX-NEXT: kmovw %edi, %k1
67486702 ; NoVLX-NEXT: kandw %k1, %k0, %k0
6749 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6750 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6703 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
67516704 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
67526705 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
67536706 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
68326785 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
68336786 ; NoVLX-NEXT: kmovw %edi, %k1
68346787 ; NoVLX-NEXT: kandw %k1, %k0, %k0
6835 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6836 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6788 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
68376789 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
68386790 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
68396791 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
69176869 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
69186870 ; NoVLX-NEXT: vpbroadcastd (%rdi), %ymm1
69196871 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
6920 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
6921 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6872 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
69226873 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
69236874 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
69246875 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
70036954 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
70046955 ; NoVLX-NEXT: kmovw %edi, %k1
70056956 ; NoVLX-NEXT: kandw %k0, %k1, %k0
7006 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7007 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
6957 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
70086958 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
70096959 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
70106960 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
71027052 ; NoVLX-NEXT: .Lcfi255:
71037053 ; NoVLX-NEXT: .cfi_offset %r15, -24
71047054 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
7105 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7106 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
7055 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
71077056 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
71087057 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
71097058 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
72267175 ; NoVLX-NEXT: .Lcfi263:
72277176 ; NoVLX-NEXT: .cfi_offset %r15, -24
72287177 ; NoVLX-NEXT: vpcmpeqd (%rdi), %zmm0, %k0
7229 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7230 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
7178 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
72317179 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
72327180 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
72337181 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
73537301 ; NoVLX-NEXT: .cfi_offset %r15, -24
73547302 ; NoVLX-NEXT: kmovw %edi, %k1
73557303 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0 {%k1}
7356 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7357 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
7304 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
73587305 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
73597306 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
73607307 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
74817428 ; NoVLX-NEXT: .cfi_offset %r15, -24
74827429 ; NoVLX-NEXT: kmovw %edi, %k1
74837430 ; NoVLX-NEXT: vpcmpeqd (%rsi), %zmm0, %k0 {%k1}
7484 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7485 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
7431 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
74867432 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
74877433 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
74887434 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
76097555 ; NoVLX-NEXT: .Lcfi287:
76107556 ; NoVLX-NEXT: .cfi_offset %r15, -24
76117557 ; NoVLX-NEXT: vpcmpeqd (%rdi){1to16}, %zmm0, %k0
7612 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7613 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
7558 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
76147559 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
76157560 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
76167561 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
77377682 ; NoVLX-NEXT: .cfi_offset %r15, -24
77387683 ; NoVLX-NEXT: kmovw %edi, %k1
77397684 ; NoVLX-NEXT: vpcmpeqd (%rsi){1to16}, %zmm0, %k0 {%k1}
7740 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7741 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
7685 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
77427686 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
77437687 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
77447688 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
78667810 ; NoVLX-NEXT: .Lcfi303:
78677811 ; NoVLX-NEXT: .cfi_offset %r15, -24
78687812 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
7869 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7870 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
7813 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
78717814 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
78727815 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
78737816 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
79957938 ; NoVLX-NEXT: .Lcfi311:
79967939 ; NoVLX-NEXT: .cfi_offset %r15, -24
79977940 ; NoVLX-NEXT: vpcmpeqd (%rdi), %zmm0, %k0
7998 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
7999 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
7941 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
80007942 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
80017943 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
80027944 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
81278069 ; NoVLX-NEXT: .cfi_offset %r15, -24
81288070 ; NoVLX-NEXT: kmovw %edi, %k1
81298071 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0 {%k1}
8130 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
8131 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
8072 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
81328073 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
81338074 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
81348075 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
82608201 ; NoVLX-NEXT: .cfi_offset %r15, -24
82618202 ; NoVLX-NEXT: kmovw %edi, %k1
82628203 ; NoVLX-NEXT: vpcmpeqd (%rsi), %zmm0, %k0 {%k1}
8263 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
8264 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
8204 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
82658205 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
82668206 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
82678207 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
83938333 ; NoVLX-NEXT: .Lcfi335:
83948334 ; NoVLX-NEXT: .cfi_offset %r15, -24
83958335 ; NoVLX-NEXT: vpcmpeqd (%rdi){1to16}, %zmm0, %k0
8396 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
8397 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
8336 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
83988337 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
83998338 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
84008339 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
85268465 ; NoVLX-NEXT: .cfi_offset %r15, -24
85278466 ; NoVLX-NEXT: kmovw %edi, %k1
85288467 ; NoVLX-NEXT: vpcmpeqd (%rsi){1to16}, %zmm0, %k0 {%k1}
8529 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
8530 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
8468 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
85318469 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
85328470 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
85338471 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
97349672 ; NoVLX-NEXT: andq $-32, %rsp
97359673 ; NoVLX-NEXT: subq $64, %rsp
97369674 ; NoVLX-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm0
9737 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
9738 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
9675 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
97399676 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
97409677 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
97419678 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
97849721 ; NoVLX-NEXT: andq $-32, %rsp
97859722 ; NoVLX-NEXT: subq $64, %rsp
97869723 ; NoVLX-NEXT: vpcmpeqq (%rdi), %xmm0, %xmm0
9787 ; NoVLX-NEXT: vxorps %xmm1, %xmm1, %xmm1
9788 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
9724 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
97899725 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
97909726 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
97919727 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
98469782 ; NoVLX-NEXT: vmovd %ecx, %xmm1
98479783 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
98489784 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
9849 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
9850 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
9785 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
98519786 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
98529787 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
98539788 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
99109845 ; NoVLX-NEXT: vmovd %ecx, %xmm1
99119846 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
99129847 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
9913 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
9914 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
9848 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
99159849 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
99169850 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
99179851 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
99669900 ; NoVLX-NEXT: subq $64, %rsp
99679901 ; NoVLX-NEXT: vpbroadcastq (%rdi), %xmm1
99689902 ; NoVLX-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm0
9969 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
9970 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
9903 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
99719904 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
99729905 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
99739906 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
100309963 ; NoVLX-NEXT: vmovd %ecx, %xmm1
100319964 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
100329965 ; NoVLX-NEXT: vpand %xmm0, %xmm1, %xmm0
10033 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
10034 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
9966 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
100359967 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
100369968 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
100379969 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1126411196 ; NoVLX-NEXT: subq $64, %rsp
1126511197 ; NoVLX-NEXT: vpcmpeqq %ymm1, %ymm0, %ymm0
1126611198 ; NoVLX-NEXT: vpmovqd %zmm0, %ymm0
11267 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
11268 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
11199 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1126911200 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1127011201 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1127111202 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1131611247 ; NoVLX-NEXT: subq $64, %rsp
1131711248 ; NoVLX-NEXT: vpcmpeqq (%rdi), %ymm0, %ymm0
1131811249 ; NoVLX-NEXT: vpmovqd %zmm0, %ymm0
11319 ; NoVLX-NEXT: vxorps %xmm1, %xmm1, %xmm1
11320 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
11250 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1132111251 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1132211252 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1132311253 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1138811318 ; NoVLX-NEXT: kmovw %k1, %eax
1138911319 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
1139011320 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
11391 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
11392 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
11321 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1139311322 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1139411323 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1139511324 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1146211391 ; NoVLX-NEXT: kmovw %k1, %eax
1146311392 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
1146411393 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
11465 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
11466 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
11394 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1146711395 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1146811396 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1146911397 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1152011448 ; NoVLX-NEXT: vpbroadcastq (%rdi), %ymm1
1152111449 ; NoVLX-NEXT: vpcmpeqq %ymm1, %ymm0, %ymm0
1152211450 ; NoVLX-NEXT: vpmovqd %zmm0, %ymm0
11523 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
11524 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
11451 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1152511452 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1152611453 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1152711454 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1159411521 ; NoVLX-NEXT: kmovw %k1, %eax
1159511522 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
1159611523 ; NoVLX-NEXT: vpand %xmm0, %xmm1, %xmm0
11597 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
11598 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
11524 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1159911525 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1160011526 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1160111527 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1181511741 ; NoVLX-NEXT: andq $-32, %rsp
1181611742 ; NoVLX-NEXT: subq $32, %rsp
1181711743 ; NoVLX-NEXT: vpcmpeqq %zmm1, %zmm0, %k0
11818 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
11819 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
11744 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1182011745 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1182111746 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1182211747 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1188911814 ; NoVLX-NEXT: andq $-32, %rsp
1189011815 ; NoVLX-NEXT: subq $32, %rsp
1189111816 ; NoVLX-NEXT: vpcmpeqq (%rdi), %zmm0, %k0
11892 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
11893 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
11817 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1189411818 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1189511819 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1189611820 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1196611890 ; NoVLX-NEXT: subq $32, %rsp
1196711891 ; NoVLX-NEXT: kmovw %edi, %k1
1196811892 ; NoVLX-NEXT: vpcmpeqq %zmm1, %zmm0, %k0 {%k1}
11969 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
11970 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
11893 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1197111894 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1197211895 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1197311896 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1204411967 ; NoVLX-NEXT: subq $32, %rsp
1204511968 ; NoVLX-NEXT: kmovw %edi, %k1
1204611969 ; NoVLX-NEXT: vpcmpeqq (%rsi), %zmm0, %k0 {%k1}
12047 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12048 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
11970 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1204911971 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1205011972 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1205111973 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1212212044 ; NoVLX-NEXT: andq $-32, %rsp
1212312045 ; NoVLX-NEXT: subq $32, %rsp
1212412046 ; NoVLX-NEXT: vpcmpeqq (%rdi){1to8}, %zmm0, %k0
12125 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12126 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12047 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1212712048 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1212812049 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1212912050 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1220012121 ; NoVLX-NEXT: subq $32, %rsp
1220112122 ; NoVLX-NEXT: kmovw %edi, %k1
1220212123 ; NoVLX-NEXT: vpcmpeqq (%rsi){1to8}, %zmm0, %k0 {%k1}
12203 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12204 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12124 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1220512125 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1220612126 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1220712127 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1227912199 ; NoVLX-NEXT: andq $-32, %rsp
1228012200 ; NoVLX-NEXT: subq $64, %rsp
1228112201 ; NoVLX-NEXT: vpcmpeqq %zmm1, %zmm0, %k0
12282 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12283 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12202 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1228412203 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1228512204 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1228612205 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1235812277 ; NoVLX-NEXT: andq $-32, %rsp
1235912278 ; NoVLX-NEXT: subq $64, %rsp
1236012279 ; NoVLX-NEXT: vpcmpeqq (%rdi), %zmm0, %k0
12361 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12362 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12280 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1236312281 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1236412282 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1236512283 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1244012358 ; NoVLX-NEXT: subq $64, %rsp
1244112359 ; NoVLX-NEXT: kmovw %edi, %k1
1244212360 ; NoVLX-NEXT: vpcmpeqq %zmm1, %zmm0, %k0 {%k1}
12443 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12444 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12361 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1244512362 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1244612363 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1244712364 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1252312440 ; NoVLX-NEXT: subq $64, %rsp
1252412441 ; NoVLX-NEXT: kmovw %edi, %k1
1252512442 ; NoVLX-NEXT: vpcmpeqq (%rsi), %zmm0, %k0 {%k1}
12526 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12527 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12443 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1252812444 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1252912445 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1253012446 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1260612522 ; NoVLX-NEXT: andq $-32, %rsp
1260712523 ; NoVLX-NEXT: subq $64, %rsp
1260812524 ; NoVLX-NEXT: vpcmpeqq (%rdi){1to8}, %zmm0, %k0
12609 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12610 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12525 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1261112526 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1261212527 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1261312528 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1268912604 ; NoVLX-NEXT: subq $64, %rsp
1269012605 ; NoVLX-NEXT: kmovw %edi, %k1
1269112606 ; NoVLX-NEXT: vpcmpeqq (%rsi){1to8}, %zmm0, %k0 {%k1}
12692 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12693 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12607 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1269412608 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1269512609 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1269612610 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1279012704 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1279112705 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1279212706 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
12793 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12794 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12707 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1279512708 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1279612709 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1279712710 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1291612829 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1291712830 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1291812831 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
12919 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
12920 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12832 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1292112833 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1292212834 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1292312835 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1304512957 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1304612958 ; NoVLX-NEXT: kmovw %edi, %k1
1304712959 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
13048 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
13049 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
12960 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1305012961 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1305112962 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1305212963 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1317513086 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1317613087 ; NoVLX-NEXT: kmovw %edi, %k1
1317713088 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
13178 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
13179 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
13089 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1318013090 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1318113091 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1318213092 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1330513215 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1330613216 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1330713217 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
13308 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
13309 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
13218 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1331013219 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1331113220 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1331213221 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1343613345 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1343713346 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1343813347 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
13439 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
13440 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
13348 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1344113349 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1344213350 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1344313351 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1357013478 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1357113479 ; NoVLX-NEXT: kmovw %edi, %k1
1357213480 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
13573 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
13574 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
13481 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1357513482 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1357613483 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1357713484 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1370513612 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1370613613 ; NoVLX-NEXT: kmovw %edi, %k1
1370713614 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
13708 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
13709 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
13615 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1371013616 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1371113617 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1371213618 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1383313739 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1383413740 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1383513741 ; NoVLX-NEXT: movl (%rsp), %ecx
13836 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
13837 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
13742 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1383813743 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1383913744 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1384013745 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
1388313788 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1388413789 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1388513790 ; NoVLX-NEXT: movl (%rsp), %ecx
13886 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
13887 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
13791 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1388813792 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1388913793 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1389013794 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
1393113835 ; NoVLX-NEXT: vpmovdb %zmm2, %xmm2
1393213836 ; NoVLX-NEXT: vpternlogd $255, %zmm3, %zmm3, %zmm3 {%k2} {z}
1393313837 ; NoVLX-NEXT: vpmovdb %zmm3, %xmm3
13934 ; NoVLX-NEXT: vxorps %xmm4, %xmm4, %xmm4
1393513838 ; NoVLX-NEXT: vpcmpgtb %ymm1, %ymm0, %ymm0
1393613839 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1393713840 ; NoVLX-NEXT: vpand %xmm3, %xmm1, %xmm1
1394513848 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1394613849 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1394713850 ; NoVLX-NEXT: movl (%rsp), %ecx
13948 ; NoVLX-NEXT: vptestmd %zmm4, %zmm4, %k0
13851 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1394913852 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1395013853 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1395113854 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
1399313896 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
1399413897 ; NoVLX-NEXT: vpternlogd $255, %zmm2, %zmm2, %zmm2 {%k2} {z}
1399513898 ; NoVLX-NEXT: vpmovdb %zmm2, %xmm2
13996 ; NoVLX-NEXT: vxorps %xmm3, %xmm3, %xmm3
1399713899 ; NoVLX-NEXT: vpcmpgtb (%rsi), %ymm0, %ymm0
13998 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm4
13999 ; NoVLX-NEXT: vpand %xmm2, %xmm4, %xmm2
13900 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm3
13901 ; NoVLX-NEXT: vpand %xmm2, %xmm3, %xmm2
1400013902 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
1400113903 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
1400213904 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
1400713909 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1400813910 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1400913911 ; NoVLX-NEXT: movl (%rsp), %ecx
14010 ; NoVLX-NEXT: vptestmd %zmm3, %zmm3, %k0
13912 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1401113913 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1401213914 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1401313915 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
1417514077 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
1417614078 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1417714079 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
14178 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14179 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14080 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1418014081 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1418114082 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1418214083 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1425114152 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
1425214153 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1425314154 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
14254 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14255 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14155 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1425614156 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1425714157 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1425814158 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1433014230 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1433114231 ; NoVLX-NEXT: kmovw %edi, %k1
1433214232 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
14333 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14334 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14233 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1433514234 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1433614235 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1433714236 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1441014309 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1441114310 ; NoVLX-NEXT: kmovw %edi, %k1
1441214311 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
14413 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14414 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14312 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1441514313 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1441614314 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1441714315 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1449014388 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
1449114389 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1449214390 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
14493 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14494 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14391 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1449514392 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1449614393 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1449714394 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1457114468 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
1457214469 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1457314470 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
14574 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14575 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14471 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1457614472 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1457714473 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1457814474 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1465514551 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1465614552 ; NoVLX-NEXT: kmovw %edi, %k1
1465714553 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
14658 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14659 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14554 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1466014555 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1466114556 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1466214557 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1474014635 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1474114636 ; NoVLX-NEXT: kmovw %edi, %k1
1474214637 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
14743 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14744 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14638 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1474514639 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1474614640 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1474714641 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1484114735 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1484214736 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1484314737 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
14844 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14845 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14738 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1484614739 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1484714740 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1484814741 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1496814861 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1496914862 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1497014863 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
14971 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
14972 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14864 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1497314865 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1497414866 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1497514867 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1509814990 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1509914991 ; NoVLX-NEXT: kmovw %edi, %k1
1510014992 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
15101 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
15102 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
14993 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1510314994 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1510414995 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1510514996 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1522915120 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1523015121 ; NoVLX-NEXT: kmovw %edi, %k1
1523115122 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
15232 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
15233 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
15123 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1523415124 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1523515125 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1523615126 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1536015250 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1536115251 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1536215252 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
15363 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
15364 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
15253 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1536515254 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1536615255 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1536715256 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1549215381 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1549315382 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1549415383 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
15495 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
15496 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
15384 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1549715385 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1549815386 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1549915387 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1562715515 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1562815516 ; NoVLX-NEXT: kmovw %edi, %k1
1562915517 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
15630 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
15631 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
15518 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1563215519 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1563315520 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1563415521 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1576315650 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1576415651 ; NoVLX-NEXT: kmovw %edi, %k1
1576515652 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
15766 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
15767 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
15653 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1576815654 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1576915655 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1577015656 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1619316079 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1619416080 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1619516081 ; NoVLX-NEXT: movl (%rsp), %ecx
16196 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
16197 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
16082 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1619816083 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1619916084 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1620016085 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
1646016345 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1646116346 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1646216347 ; NoVLX-NEXT: movl (%rsp), %ecx
16463 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
16464 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
16348 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1646516349 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1646616350 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1646716351 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
1665816542 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm2, %xmm2
1665916543 ; NoVLX-NEXT: vpextrq $1, %xmm1, %rax
1666016544 ; NoVLX-NEXT: vinserti128 $1, %xmm9, %ymm4, %ymm1
16661 ; NoVLX-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm8
16545 ; NoVLX-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm4
1666216546 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k1
1666316547 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k2
16548 ; NoVLX-NEXT: vinserti128 $1, %xmm7, %ymm3, %ymm3
1666416549 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
16665 ; NoVLX-NEXT: vinserti128 $1, %xmm7, %ymm3, %ymm3
1666616550 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
16667 ; NoVLX-NEXT: vpternlogd $255, %zmm6, %zmm6, %zmm6 {%k2} {z}
16668 ; NoVLX-NEXT: vpcmpgtw %ymm3, %ymm1, %ymm4
16669 ; NoVLX-NEXT: vpmovdb %zmm6, %xmm6
16551 ; NoVLX-NEXT: vpcmpgtw %ymm3, %ymm1, %ymm3
16552 ; NoVLX-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k2} {z}
16553 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
1667016554 ; NoVLX-NEXT: shrq $48, %rcx
16671 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm1
16555 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm2
1667216556 ; NoVLX-NEXT: movl %eax, %ecx
1667316557 ; NoVLX-NEXT: shrl $16, %ecx
16674 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
16675 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm2
16558 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm2, %xmm2
16559 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm2, %xmm2
1667616560 ; NoVLX-NEXT: movq %rax, %rcx
1667716561 ; NoVLX-NEXT: shrq $48, %rax
1667816562 ; NoVLX-NEXT: shrq $32, %rcx
16679 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
1668016563 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm2, %xmm2
1668116564 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm2, %xmm2
1668216565 ; NoVLX-NEXT: vinserti128 $1, %xmm5, %ymm2, %ymm2
16683 ; NoVLX-NEXT: vpcmpgtw %ymm2, %ymm8, %ymm2
16566 ; NoVLX-NEXT: vpcmpgtw %ymm2, %ymm4, %ymm2
1668416567 ; NoVLX-NEXT: vpmovsxwd %ymm2, %zmm2
1668516568 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
1668616569 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
1674616629 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
1674716630 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
1674816631 ; NoVLX-NEXT: kmovw %k0, %eax
16749 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm3
16750 ; NoVLX-NEXT: vpmovsxwd %ymm4, %zmm2
16751 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
16752 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
16632 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
16633 ; NoVLX-NEXT: vpmovsxwd %ymm3, %zmm3
16634 ; NoVLX-NEXT: vpslld $31, %zmm3, %zmm3
16635 ; NoVLX-NEXT: vptestmd %zmm3, %zmm3, %k0
1675316636 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1675416637 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1675516638 ; NoVLX-NEXT: kmovw %k1, %eax
1675616639 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1675716640 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1675816641 ; NoVLX-NEXT: kmovw %k1, %ecx
16759 ; NoVLX-NEXT: vmovd %ecx, %xmm2
16760 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
16642 ; NoVLX-NEXT: vmovd %ecx, %xmm3
16643 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
1676116644 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
1676216645 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1676316646 ; NoVLX-NEXT: kmovw %k1, %eax
16764 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
16647 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
1676516648 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
1676616649 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1676716650 ; NoVLX-NEXT: kmovw %k1, %eax
16768 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
16651 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
1676916652 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
1677016653 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1677116654 ; NoVLX-NEXT: kmovw %k1, %eax
16772 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
16655 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
1677316656 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
1677416657 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1677516658 ; NoVLX-NEXT: kmovw %k1, %eax
16776 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
16659 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
1677716660 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
1677816661 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1677916662 ; NoVLX-NEXT: kmovw %k1, %eax
16780 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
16663 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
1678116664 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
1678216665 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1678316666 ; NoVLX-NEXT: kmovw %k1, %eax
16784 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
16667 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
1678516668 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
1678616669 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1678716670 ; NoVLX-NEXT: kmovw %k1, %eax
16788 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
16671 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
1678916672 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
1679016673 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1679116674 ; NoVLX-NEXT: kmovw %k1, %eax
16792 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
16675 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
1679316676 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
1679416677 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1679516678 ; NoVLX-NEXT: kmovw %k1, %eax
16796 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
16679 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
1679716680 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
1679816681 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1679916682 ; NoVLX-NEXT: kmovw %k1, %eax
16800 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
16683 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
1680116684 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
1680216685 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1680316686 ; NoVLX-NEXT: kmovw %k1, %eax
16804 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
16687 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
1680516688 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
1680616689 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1680716690 ; NoVLX-NEXT: kmovw %k1, %eax
16808 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
16691 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
1680916692 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
1681016693 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1681116694 ; NoVLX-NEXT: kmovw %k1, %eax
16812 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
16695 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
1681316696 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
1681416697 ; NoVLX-NEXT: kmovw %k0, %eax
16815 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
16816 ; NoVLX-NEXT: vpand %xmm6, %xmm2, %xmm2
16817 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
16818 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
16819 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
16698 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3
16699 ; NoVLX-NEXT: vpand %xmm1, %xmm3, %xmm1
16700 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16701 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
16702 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1682016703 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
16821 ; NoVLX-NEXT: vpand %xmm0, %xmm3, %xmm0
16704 ; NoVLX-NEXT: vpand %xmm0, %xmm2, %xmm0
1682216705 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1682316706 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1682416707 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1682516708 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1682616709 ; NoVLX-NEXT: movl (%rsp), %ecx
16827 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
16710 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1682816711 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1682916712 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1683016713 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
1688916772 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
1689016773 ; NoVLX-NEXT: vmovq %xmm4, %rcx
1689116774 ; NoVLX-NEXT: shrq $48, %rax
16892 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm2
16775 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm1
1689316776 ; NoVLX-NEXT: movl %ecx, %eax
1689416777 ; NoVLX-NEXT: shrl $16, %eax
16895 ; NoVLX-NEXT: vmovd %ecx, %xmm1
16896 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
16778 ; NoVLX-NEXT: vmovd %ecx, %xmm2
16779 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm2, %xmm2
1689716780 ; NoVLX-NEXT: movq %rcx, %rax
1689816781 ; NoVLX-NEXT: shrq $32, %rax
16899 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
16782 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm2, %xmm2
1690016783 ; NoVLX-NEXT: vpextrq $1, %xmm4, %rax
1690116784 ; NoVLX-NEXT: shrq $48, %rcx
16902 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm1
16785 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm2
1690316786 ; NoVLX-NEXT: movl %eax, %ecx
1690416787 ; NoVLX-NEXT: shrl $16, %ecx
16905 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
16906 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm1
16788 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm2, %xmm2
16789 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm2, %xmm2
1690716790 ; NoVLX-NEXT: movq %rax, %rcx
1690816791 ; NoVLX-NEXT: shrq $32, %rcx
16909 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
16792 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm2, %xmm2
1691016793 ; NoVLX-NEXT: vmovq %xmm3, %rcx
1691116794 ; NoVLX-NEXT: shrq $48, %rax
16912 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm4
16795 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm2, %xmm2
1691316796 ; NoVLX-NEXT: movl %ecx, %eax
1691416797 ; NoVLX-NEXT: shrl $16, %eax
16915 ; NoVLX-NEXT: vmovd %ecx, %xmm1
16916 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
16798 ; NoVLX-NEXT: vmovd %ecx, %xmm4
16799 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm4, %xmm4
1691716800 ; NoVLX-NEXT: movq %rcx, %rax
1691816801 ; NoVLX-NEXT: shrq $32, %rax
16919 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
16802 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm4, %xmm4
1692016803 ; NoVLX-NEXT: vpextrq $1, %xmm3, %rax
1692116804 ; NoVLX-NEXT: shrq $48, %rcx
16922 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm1
16805 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm4, %xmm3
1692316806 ; NoVLX-NEXT: movl %eax, %ecx
1692416807 ; NoVLX-NEXT: shrl $16, %ecx
16925 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
16926 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm1
16808 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm3, %xmm3
16809 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm3, %xmm3
1692716810 ; NoVLX-NEXT: movq %rax, %rcx
1692816811 ; NoVLX-NEXT: shrq $32, %rcx
16929 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
16812 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm3, %xmm3
1693016813 ; NoVLX-NEXT: vmovq %xmm0, %rcx
1693116814 ; NoVLX-NEXT: shrq $48, %rax
16932 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm3
16815 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm3, %xmm4
1693316816 ; NoVLX-NEXT: movl %ecx, %eax
1693416817 ; NoVLX-NEXT: shrl $16, %eax
16935 ; NoVLX-NEXT: vmovd %ecx, %xmm1
16936 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
16818 ; NoVLX-NEXT: vmovd %ecx, %xmm3
16819 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm3, %xmm3
1693716820 ; NoVLX-NEXT: movq %rcx, %rax
1693816821 ; NoVLX-NEXT: shrq $32, %rax
16939 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
16822 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm3, %xmm3
1694016823 ; NoVLX-NEXT: vpextrq $1, %xmm0, %rax
1694116824 ; NoVLX-NEXT: shrq $48, %rcx
16942 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm0
16825 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm3, %xmm0
1694316826 ; NoVLX-NEXT: movl %eax, %ecx
1694416827 ; NoVLX-NEXT: shrl $16, %ecx
1694516828 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
1695016833 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k1
1695116834 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k2
1695216835 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
16953 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm1
16954 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k2} {z}
16955 ; NoVLX-NEXT: vinserti128 $1, %xmm2, %ymm4, %ymm4
16956 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm2
16836 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
16837 ; NoVLX-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm3
16838 ; NoVLX-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k2} {z}
16839 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
1695716840 ; NoVLX-NEXT: shrq $48, %rax
16958 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
16959 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm5, %xmm5
16960 ; NoVLX-NEXT: vinserti128 $1, %xmm3, %ymm5, %ymm3
16961 ; NoVLX-NEXT: vpcmpgtw (%rsi), %ymm3, %ymm3
16841 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm5, %xmm2
16842 ; NoVLX-NEXT: vinserti128 $1, %xmm4, %ymm2, %ymm2
16843 ; NoVLX-NEXT: vpcmpgtw (%rsi), %ymm2, %ymm2
16844 ; NoVLX-NEXT: vpmovsxwd %ymm2, %zmm2
16845 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
16846 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
16847 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
16848 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16849 ; NoVLX-NEXT: kmovw %k1, %eax
16850 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
16851 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16852 ; NoVLX-NEXT: vmovd %eax, %xmm2
16853 ; NoVLX-NEXT: kmovw %k1, %eax
16854 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
16855 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
16856 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16857 ; NoVLX-NEXT: kmovw %k1, %eax
16858 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
16859 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
16860 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16861 ; NoVLX-NEXT: kmovw %k1, %eax
16862 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
16863 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
16864 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16865 ; NoVLX-NEXT: kmovw %k1, %eax
16866 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
16867 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
16868 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16869 ; NoVLX-NEXT: kmovw %k1, %eax
16870 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
16871 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
16872 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16873 ; NoVLX-NEXT: kmovw %k1, %eax
16874 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
16875 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
16876 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16877 ; NoVLX-NEXT: kmovw %k1, %eax
16878 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
16879 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
16880 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16881 ; NoVLX-NEXT: kmovw %k1, %eax
16882 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
16883 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
16884 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16885 ; NoVLX-NEXT: kmovw %k1, %eax
16886 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
16887 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
16888 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16889 ; NoVLX-NEXT: kmovw %k1, %eax
16890 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
16891 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
16892 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16893 ; NoVLX-NEXT: kmovw %k1, %eax
16894 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
16895 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
16896 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16897 ; NoVLX-NEXT: kmovw %k1, %eax
16898 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
16899 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
16900 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16901 ; NoVLX-NEXT: kmovw %k1, %eax
16902 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
16903 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
16904 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16905 ; NoVLX-NEXT: kmovw %k1, %eax
16906 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
16907 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
16908 ; NoVLX-NEXT: kmovw %k0, %eax
16909 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
16910 ; NoVLX-NEXT: vpcmpgtw 32(%rsi), %ymm3, %ymm3
1696216911 ; NoVLX-NEXT: vpmovsxwd %ymm3, %zmm3
1696316912 ; NoVLX-NEXT: vpslld $31, %zmm3, %zmm3
1696416913 ; NoVLX-NEXT: vptestmd %zmm3, %zmm3, %k0
16914 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
16915 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16916 ; NoVLX-NEXT: kmovw %k1, %eax
1696516917 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1696616918 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16967 ; NoVLX-NEXT: kmovw %k1, %eax
16968 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
16969 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
16970 ; NoVLX-NEXT: vmovd %eax, %xmm3
16971 ; NoVLX-NEXT: kmovw %k1, %eax
16919 ; NoVLX-NEXT: kmovw %k1, %ecx
16920 ; NoVLX-NEXT: vmovd %ecx, %xmm3
1697216921 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
1697316922 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
1697416923 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1702516974 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
1702616975 ; NoVLX-NEXT: kmovw %k0, %eax
1702716976 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3
17028 ; NoVLX-NEXT: vpcmpgtw 32(%rsi), %ymm4, %ymm4
17029 ; NoVLX-NEXT: vpmovsxwd %ymm4, %zmm4
17030 ; NoVLX-NEXT: vpslld $31, %zmm4, %zmm4
17031 ; NoVLX-NEXT: vptestmd %zmm4, %zmm4, %k0
17032 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
17033 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17034 ; NoVLX-NEXT: kmovw %k1, %eax
17035 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
17036 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17037 ; NoVLX-NEXT: kmovw %k1, %ecx
17038 ; NoVLX-NEXT: vmovd %ecx, %xmm4
17039 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm4, %xmm4
17040 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
17041 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17042 ; NoVLX-NEXT: kmovw %k1, %eax
17043 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm4, %xmm4
17044 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
17045 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17046 ; NoVLX-NEXT: kmovw %k1, %eax
17047 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm4, %xmm4
17048 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
17049 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17050 ; NoVLX-NEXT: kmovw %k1, %eax
17051 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm4, %xmm4
17052 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
17053 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17054 ; NoVLX-NEXT: kmovw %k1, %eax
17055 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm4, %xmm4
17056 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
17057 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17058 ; NoVLX-NEXT: kmovw %k1, %eax
17059 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm4, %xmm4
17060 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
17061 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17062 ; NoVLX-NEXT: kmovw %k1, %eax
17063 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm4, %xmm4
17064 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
17065 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17066 ; NoVLX-NEXT: kmovw %k1, %eax
17067 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm4, %xmm4
17068 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
17069 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17070 ; NoVLX-NEXT: kmovw %k1, %eax
17071 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm4, %xmm4
17072 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
17073 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17074 ; NoVLX-NEXT: kmovw %k1, %eax
17075 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm4, %xmm4
17076 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
17077 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17078 ; NoVLX-NEXT: kmovw %k1, %eax
17079 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm4, %xmm4
17080 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
17081 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17082 ; NoVLX-NEXT: kmovw %k1, %eax
17083 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm4, %xmm4
17084 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
17085 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17086 ; NoVLX-NEXT: kmovw %k1, %eax
17087 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm4, %xmm4
17088 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
17089 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
17090 ; NoVLX-NEXT: kmovw %k1, %eax
17091 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm4, %xmm4
17092 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
17093 ; NoVLX-NEXT: kmovw %k0, %eax
17094 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm4, %xmm4
17095 ; NoVLX-NEXT: vpand %xmm2, %xmm4, %xmm2
17096 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
17097 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
17098 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
17099 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1710016977 ; NoVLX-NEXT: vpand %xmm1, %xmm3, %xmm1
1710116978 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
1710216979 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1710316980 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
16981 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
16982 ; NoVLX-NEXT: vpand %xmm0, %xmm2, %xmm0
16983 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
16984 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
16985 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1710416986 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1710516987 ; NoVLX-NEXT: movl (%rsp), %ecx
17106 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
16988 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1710716989 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1710816990 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1710916991 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
1828518167 ; NoVLX-NEXT: andq $-32, %rsp
1828618168 ; NoVLX-NEXT: subq $64, %rsp
1828718169 ; NoVLX-NEXT: vpcmpgtd %xmm1, %xmm0, %xmm0
18288 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
18289 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
18170 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1829018171 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1829118172 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1829218173 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1833518216 ; NoVLX-NEXT: andq $-32, %rsp
1833618217 ; NoVLX-NEXT: subq $64, %rsp
1833718218 ; NoVLX-NEXT: vpcmpgtd (%rdi), %xmm0, %xmm0
18338 ; NoVLX-NEXT: vxorps %xmm1, %xmm1, %xmm1
18339 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
18219 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1834018220 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1834118221 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1834218222 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1840518285 ; NoVLX-NEXT: kmovw %k1, %eax
1840618286 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
1840718287 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
18408 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
18409 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
18288 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1841018289 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1841118290 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1841218291 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1847718356 ; NoVLX-NEXT: kmovw %k1, %eax
1847818357 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
1847918358 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
18480 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
18481 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
18359 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1848218360 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1848318361 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1848418362 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1853318411 ; NoVLX-NEXT: subq $64, %rsp
1853418412 ; NoVLX-NEXT: vpbroadcastd (%rdi), %xmm1
1853518413 ; NoVLX-NEXT: vpcmpgtd %xmm1, %xmm0, %xmm0
18536 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
18537 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
18414 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1853818415 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1853918416 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1854018417 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1860518482 ; NoVLX-NEXT: kmovw %k1, %eax
1860618483 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
1860718484 ; NoVLX-NEXT: vpand %xmm0, %xmm1, %xmm0
18608 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
18609 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
18485 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1861018486 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1861118487 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1861218488 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
1885218728 ; NoVLX-NEXT: # kill: %YMM1 %YMM1 %ZMM1
1885318729 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
1885418730 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
18855 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
18856 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
18731 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1885718732 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1885818733 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1885918734 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1892818803 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
1892918804 ; NoVLX-NEXT: vmovdqa (%rdi), %ymm1
1893018805 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
18931 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
18932 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
18806 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1893318807 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1893418808 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1893518809 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1900818882 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
1900918883 ; NoVLX-NEXT: kmovw %edi, %k1
1901018884 ; NoVLX-NEXT: kandw %k1, %k0, %k0
19011 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19012 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
18885 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1901318886 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1901418887 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1901518888 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1908918962 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
1909018963 ; NoVLX-NEXT: kmovw %edi, %k1
1909118964 ; NoVLX-NEXT: kandw %k1, %k0, %k0
19092 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19093 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
18965 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1909418966 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1909518967 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1909618968 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1916919041 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
1917019042 ; NoVLX-NEXT: vpbroadcastd (%rdi), %ymm1
1917119043 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
19172 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19173 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19044 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1917419045 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1917519046 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1917619047 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1925019121 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
1925119122 ; NoVLX-NEXT: kmovw %edi, %k1
1925219123 ; NoVLX-NEXT: kandw %k0, %k1, %k0
19253 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19254 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19124 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1925519125 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1925619126 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1925719127 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1933119201 ; NoVLX-NEXT: # kill: %YMM1 %YMM1 %ZMM1
1933219202 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
1933319203 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
19334 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19335 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19204 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1933619205 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1933719206 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1933819207 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1941219281 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
1941319282 ; NoVLX-NEXT: vmovdqa (%rdi), %ymm1
1941419283 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
19415 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19416 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19284 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1941719285 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1941819286 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1941919287 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1949719365 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
1949819366 ; NoVLX-NEXT: kmovw %edi, %k1
1949919367 ; NoVLX-NEXT: kandw %k1, %k0, %k0
19500 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19501 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19368 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1950219369 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1950319370 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1950419371 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1958319450 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
1958419451 ; NoVLX-NEXT: kmovw %edi, %k1
1958519452 ; NoVLX-NEXT: kandw %k1, %k0, %k0
19586 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19587 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19453 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1958819454 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1958919455 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1959019456 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1966819534 ; NoVLX-NEXT: # kill: %YMM0 %YMM0 %ZMM0
1966919535 ; NoVLX-NEXT: vpbroadcastd (%rdi), %ymm1
1967019536 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
19671 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19672 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19537 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1967319538 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1967419539 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1967519540 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1975419619 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
1975519620 ; NoVLX-NEXT: kmovw %edi, %k1
1975619621 ; NoVLX-NEXT: kandw %k0, %k1, %k0
19757 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19758 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19622 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1975919623 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1976019624 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1976119625 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1985319717 ; NoVLX-NEXT: .Lcfi707:
1985419718 ; NoVLX-NEXT: .cfi_offset %r15, -24
1985519719 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
19856 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19857 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19720 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1985819721 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1985919722 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1986019723 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1997719840 ; NoVLX-NEXT: .Lcfi715:
1997819841 ; NoVLX-NEXT: .cfi_offset %r15, -24
1997919842 ; NoVLX-NEXT: vpcmpgtd (%rdi), %zmm0, %k0
19980 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
19981 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19843 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1998219844 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1998319845 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1998419846 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2010419966 ; NoVLX-NEXT: .cfi_offset %r15, -24
2010519967 ; NoVLX-NEXT: kmovw %edi, %k1
2010619968 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0 {%k1}
20107 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
20108 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
19969 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2010919970 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2011019971 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2011119972 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2023220093 ; NoVLX-NEXT: .cfi_offset %r15, -24
2023320094 ; NoVLX-NEXT: kmovw %edi, %k1
2023420095 ; NoVLX-NEXT: vpcmpgtd (%rsi), %zmm0, %k0 {%k1}
20235 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
20236 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
20096 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2023720097 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2023820098 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2023920099 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2036020220 ; NoVLX-NEXT: .Lcfi739:
2036120221 ; NoVLX-NEXT: .cfi_offset %r15, -24
2036220222 ; NoVLX-NEXT: vpcmpgtd (%rdi){1to16}, %zmm0, %k0
20363 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
20364 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
20223 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2036520224 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2036620225 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2036720226 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2048820347 ; NoVLX-NEXT: .cfi_offset %r15, -24
2048920348 ; NoVLX-NEXT: kmovw %edi, %k1
2049020349 ; NoVLX-NEXT: vpcmpgtd (%rsi){1to16}, %zmm0, %k0 {%k1}
20491 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
20492 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
20350 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2049320351 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2049420352 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2049520353 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2061720475 ; NoVLX-NEXT: .Lcfi755:
2061820476 ; NoVLX-NEXT: .cfi_offset %r15, -24
2061920477 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
20620 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
20621 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
20478 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2062220479 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2062320480 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2062420481 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2074620603 ; NoVLX-NEXT: .Lcfi763:
2074720604 ; NoVLX-NEXT: .cfi_offset %r15, -24
2074820605 ; NoVLX-NEXT: vpcmpgtd (%rdi), %zmm0, %k0
20749 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
20750 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
20606 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2075120607 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2075220608 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2075320609 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2087820734 ; NoVLX-NEXT: .cfi_offset %r15, -24
2087920735 ; NoVLX-NEXT: kmovw %edi, %k1
2088020736 ; NoVLX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0 {%k1}
20881 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
20882 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
20737 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2088320738 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2088420739 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2088520740 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2101120866 ; NoVLX-NEXT: .cfi_offset %r15, -24
2101220867 ; NoVLX-NEXT: kmovw %edi, %k1
2101320868 ; NoVLX-NEXT: vpcmpgtd (%rsi), %zmm0, %k0 {%k1}
21014 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
21015 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
20869 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2101620870 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2101720871 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2101820872 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2114420998 ; NoVLX-NEXT: .Lcfi787:
2114520999 ; NoVLX-NEXT: .cfi_offset %r15, -24
2114621000 ; NoVLX-NEXT: vpcmpgtd (%rdi){1to16}, %zmm0, %k0
21147 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
21148 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
21001 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2114921002 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2115021003 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2115121004 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2127721130 ; NoVLX-NEXT: .cfi_offset %r15, -24
2127821131 ; NoVLX-NEXT: kmovw %edi, %k1
2127921132 ; NoVLX-NEXT: vpcmpgtd (%rsi){1to16}, %zmm0, %k0 {%k1}
21280 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
21281 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
21133 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2128221134 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2128321135 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2128421136 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2248522337 ; NoVLX-NEXT: andq $-32, %rsp
2248622338 ; NoVLX-NEXT: subq $64, %rsp
2248722339 ; NoVLX-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm0
22488 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
22489 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
22340 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2249022341 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2249122342 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2249222343 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2253522386 ; NoVLX-NEXT: andq $-32, %rsp
2253622387 ; NoVLX-NEXT: subq $64, %rsp
2253722388 ; NoVLX-NEXT: vpcmpgtq (%rdi), %xmm0, %xmm0
22538 ; NoVLX-NEXT: vxorps %xmm1, %xmm1, %xmm1
22539 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
22389 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2254022390 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2254122391 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2254222392 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2259722447 ; NoVLX-NEXT: vmovd %ecx, %xmm1
2259822448 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
2259922449 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
22600 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
22601 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
22450 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2260222451 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2260322452 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2260422453 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2266122510 ; NoVLX-NEXT: vmovd %ecx, %xmm1
2266222511 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
2266322512 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
22664 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
22665 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
22513 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2266622514 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2266722515 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2266822516 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2271722565 ; NoVLX-NEXT: subq $64, %rsp
2271822566 ; NoVLX-NEXT: vpbroadcastq (%rdi), %xmm1
2271922567 ; NoVLX-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm0
22720 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
22721 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
22568 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2272222569 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2272322570 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2272422571 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2278122628 ; NoVLX-NEXT: vmovd %ecx, %xmm1
2278222629 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
2278322630 ; NoVLX-NEXT: vpand %xmm0, %xmm1, %xmm0
22784 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
22785 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
22631 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2278622632 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2278722633 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2278822634 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,8],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2401523861 ; NoVLX-NEXT: subq $64, %rsp
2401623862 ; NoVLX-NEXT: vpcmpgtq %ymm1, %ymm0, %ymm0
2401723863 ; NoVLX-NEXT: vpmovqd %zmm0, %ymm0
24018 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
24019 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
23864 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2402023865 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2402123866 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2402223867 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2406723912 ; NoVLX-NEXT: subq $64, %rsp
2406823913 ; NoVLX-NEXT: vpcmpgtq (%rdi), %ymm0, %ymm0
2406923914 ; NoVLX-NEXT: vpmovqd %zmm0, %ymm0
24070 ; NoVLX-NEXT: vxorps %xmm1, %xmm1, %xmm1
24071 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
23915 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2407223916 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2407323917 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2407423918 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2413923983 ; NoVLX-NEXT: kmovw %k1, %eax
2414023984 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
2414123985 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
24142 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
24143 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
23986 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2414423987 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2414523988 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2414623989 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2421324056 ; NoVLX-NEXT: kmovw %k1, %eax
2421424057 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
2421524058 ; NoVLX-NEXT: vpand %xmm1, %xmm0, %xmm0
24216 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
24217 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
24059 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2421824060 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2421924061 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2422024062 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2427124113 ; NoVLX-NEXT: vpbroadcastq (%rdi), %ymm1
2427224114 ; NoVLX-NEXT: vpcmpgtq %ymm1, %ymm0, %ymm0
2427324115 ; NoVLX-NEXT: vpmovqd %zmm0, %ymm0
24274 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
24275 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
24116 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2427624117 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2427724118 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2427824119 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2434524186 ; NoVLX-NEXT: kmovw %k1, %eax
2434624187 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
2434724188 ; NoVLX-NEXT: vpand %xmm0, %xmm1, %xmm0
24348 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
24349 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
24189 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2435024190 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2435124191 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2435224192 ; NoVLX-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,4,8,12],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
2456624406 ; NoVLX-NEXT: andq $-32, %rsp
2456724407 ; NoVLX-NEXT: subq $32, %rsp
2456824408 ; NoVLX-NEXT: vpcmpgtq %zmm1, %zmm0, %k0
24569 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
24570 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
24409 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2457124410 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2457224411 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2457324412 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2464024479 ; NoVLX-NEXT: andq $-32, %rsp
2464124480 ; NoVLX-NEXT: subq $32, %rsp
2464224481 ; NoVLX-NEXT: vpcmpgtq (%rdi), %zmm0, %k0
24643 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
24644 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
24482 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2464524483 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2464624484 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2464724485 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2471724555 ; NoVLX-NEXT: subq $32, %rsp
2471824556 ; NoVLX-NEXT: kmovw %edi, %k1
2471924557 ; NoVLX-NEXT: vpcmpgtq %zmm1, %zmm0, %k0 {%k1}
24720 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
24721 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
24558 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2472224559 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2472324560 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2472424561 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2479524632 ; NoVLX-NEXT: subq $32, %rsp
2479624633 ; NoVLX-NEXT: kmovw %edi, %k1
2479724634 ; NoVLX-NEXT: vpcmpgtq (%rsi), %zmm0, %k0 {%k1}
24798 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
24799 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
24635 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2480024636 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2480124637 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2480224638 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2487324709 ; NoVLX-NEXT: andq $-32, %rsp
2487424710 ; NoVLX-NEXT: subq $32, %rsp
2487524711 ; NoVLX-NEXT: vpcmpgtq (%rdi){1to8}, %zmm0, %k0
24876 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
24877 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
24712 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2487824713 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2487924714 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2488024715 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2495124786 ; NoVLX-NEXT: subq $32, %rsp
2495224787 ; NoVLX-NEXT: kmovw %edi, %k1
2495324788 ; NoVLX-NEXT: vpcmpgtq (%rsi){1to8}, %zmm0, %k0 {%k1}
24954 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
24955 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
24789 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2495624790 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2495724791 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2495824792 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2503024864 ; NoVLX-NEXT: andq $-32, %rsp
2503124865 ; NoVLX-NEXT: subq $64, %rsp
2503224866 ; NoVLX-NEXT: vpcmpgtq %zmm1, %zmm0, %k0
25033 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25034 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
24867 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2503524868 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2503624869 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2503724870 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2510924942 ; NoVLX-NEXT: andq $-32, %rsp
2511024943 ; NoVLX-NEXT: subq $64, %rsp
2511124944 ; NoVLX-NEXT: vpcmpgtq (%rdi), %zmm0, %k0
25112 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25113 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
24945 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2511424946 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2511524947 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2511624948 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2519125023 ; NoVLX-NEXT: subq $64, %rsp
2519225024 ; NoVLX-NEXT: kmovw %edi, %k1
2519325025 ; NoVLX-NEXT: vpcmpgtq %zmm1, %zmm0, %k0 {%k1}
25194 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25195 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25026 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2519625027 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2519725028 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2519825029 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2527425105 ; NoVLX-NEXT: subq $64, %rsp
2527525106 ; NoVLX-NEXT: kmovw %edi, %k1
2527625107 ; NoVLX-NEXT: vpcmpgtq (%rsi), %zmm0, %k0 {%k1}
25277 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25278 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25108 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2527925109 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2528025110 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2528125111 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2535725187 ; NoVLX-NEXT: andq $-32, %rsp
2535825188 ; NoVLX-NEXT: subq $64, %rsp
2535925189 ; NoVLX-NEXT: vpcmpgtq (%rdi){1to8}, %zmm0, %k0
25360 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25361 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25190 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2536225191 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2536325192 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2536425193 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2544025269 ; NoVLX-NEXT: subq $64, %rsp
2544125270 ; NoVLX-NEXT: kmovw %edi, %k1
2544225271 ; NoVLX-NEXT: vpcmpgtq (%rsi){1to8}, %zmm0, %k0 {%k1}
25443 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25444 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25272 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2544525273 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2544625274 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2544725275 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2554325371 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2554425372 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2554525373 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
25546 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25547 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25374 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2554825375 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2554925376 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2555025377 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2567225499 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2567325500 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2567425501 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
25675 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25676 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25502 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2567725503 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2567825504 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2567925505 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2580325629 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2580425630 ; NoVLX-NEXT: kmovw %edi, %k1
2580525631 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
25806 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25807 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25632 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2580825633 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2580925634 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2581025635 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2593625761 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2593725762 ; NoVLX-NEXT: kmovw %edi, %k1
2593825763 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
25939 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
25940 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25764 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2594125765 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2594225766 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2594325767 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2606825892 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2606925893 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2607025894 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
26071 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
26072 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
25895 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2607325896 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2607425897 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2607525898 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2620226025 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2620326026 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2620426027 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
26205 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
26206 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
26028 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2620726029 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2620826030 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2620926031 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2633826160 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2633926161 ; NoVLX-NEXT: kmovw %edi, %k1
2634026162 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
26341 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
26342 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
26163 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2634326164 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2634426165 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2634526166 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2647626297 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2647726298 ; NoVLX-NEXT: kmovw %edi, %k1
2647826299 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
26479 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
26480 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
26300 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2648126301 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2648226302 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2648326303 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2660626426 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2660726427 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2660826428 ; NoVLX-NEXT: movl (%rsp), %ecx
26609 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
26610 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
26429 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2661126430 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2661226431 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2661326432 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
2665926478 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2666026479 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2666126480 ; NoVLX-NEXT: movl (%rsp), %ecx
26662 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
26663 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
26481 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2666426482 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2666526483 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2666626484 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
2670726525 ; NoVLX-NEXT: vpmovdb %zmm2, %xmm2
2670826526 ; NoVLX-NEXT: vpternlogd $255, %zmm3, %zmm3, %zmm3 {%k2} {z}
2670926527 ; NoVLX-NEXT: vpmovdb %zmm3, %xmm3
26710 ; NoVLX-NEXT: vxorps %xmm4, %xmm4, %xmm4
2671126528 ; NoVLX-NEXT: vpcmpgtb %ymm0, %ymm1, %ymm0
2671226529 ; NoVLX-NEXT: vpcmpeqd %ymm1, %ymm1, %ymm1
2671326530 ; NoVLX-NEXT: vpxor %ymm1, %ymm0, %ymm0
2672326540 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2672426541 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2672526542 ; NoVLX-NEXT: movl (%rsp), %ecx
26726 ; NoVLX-NEXT: vptestmd %zmm4, %zmm4, %k0
26543 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2672726544 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2672826545 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2672926546 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
2677126588 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
2677226589 ; NoVLX-NEXT: vpternlogd $255, %zmm2, %zmm2, %zmm2 {%k2} {z}
2677326590 ; NoVLX-NEXT: vpmovdb %zmm2, %xmm2
26774 ; NoVLX-NEXT: vxorps %xmm3, %xmm3, %xmm3
26775 ; NoVLX-NEXT: vmovdqa (%rsi), %ymm4
26776 ; NoVLX-NEXT: vpcmpgtb %ymm0, %ymm4, %ymm0
26777 ; NoVLX-NEXT: vpcmpeqd %ymm4, %ymm4, %ymm4
26778 ; NoVLX-NEXT: vpxor %ymm4, %ymm0, %ymm0
26779 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm4
26780 ; NoVLX-NEXT: vpand %xmm2, %xmm4, %xmm2
26591 ; NoVLX-NEXT: vmovdqa (%rsi), %ymm3
26592 ; NoVLX-NEXT: vpcmpgtb %ymm0, %ymm3, %ymm0
26593 ; NoVLX-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3
26594 ; NoVLX-NEXT: vpxor %ymm3, %ymm0, %ymm0
26595 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm3
26596 ; NoVLX-NEXT: vpand %xmm2, %xmm3, %xmm2
2678126597 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
2678226598 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
2678326599 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
2678826604 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2678926605 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2679026606 ; NoVLX-NEXT: movl (%rsp), %ecx
26791 ; NoVLX-NEXT: vptestmd %zmm3, %zmm3, %k0
26607 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2679226608 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2679326609 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2679426610 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
2696826784 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
2696926785 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2697026786 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
26971 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
26972 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
26787 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2697326788 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2697426789 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2697526790 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2704726862 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
2704826863 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2704926864 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
27050 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27051 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
26865 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2705226866 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2705326867 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2705426868 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2712826942 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2712926943 ; NoVLX-NEXT: kmovw %edi, %k1
2713026944 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
27131 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27132 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
26945 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2713326946 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2713426947 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2713526948 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2721127024 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2721227025 ; NoVLX-NEXT: kmovw %edi, %k1
2721327026 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
27214 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27215 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27027 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2721627028 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2721727029 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2721827030 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2729327105 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
2729427106 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2729527107 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
27296 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27297 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27108 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2729827109 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2729927110 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2730027111 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2737727188 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
2737827189 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2737927190 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
27380 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27381 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27191 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2738227192 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2738327193 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2738427194 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2746327273 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2746427274 ; NoVLX-NEXT: kmovw %edi, %k1
2746527275 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
27466 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27467 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27276 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2746827277 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2746927278 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2747027279 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2755127360 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2755227361 ; NoVLX-NEXT: kmovw %edi, %k1
2755327362 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
27554 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27555 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27363 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2755627364 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2755727365 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2755827366 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2765427462 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2765527463 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2765627464 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
27657 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27658 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27465 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2765927466 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2766027467 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2766127468 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2778427591 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2778527592 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2778627593 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
27787 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27788 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27594 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2778927595 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2779027596 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2779127597 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2791627722 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2791727723 ; NoVLX-NEXT: kmovw %edi, %k1
2791827724 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
27919 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
27920 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27725 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2792127726 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2792227727 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2792327728 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2805027855 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2805127856 ; NoVLX-NEXT: kmovw %edi, %k1
2805227857 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
28053 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
28054 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27858 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2805527859 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2805627860 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2805727861 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2818327987 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2818427988 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2818527989 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
28186 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
28187 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
27990 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2818827991 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2818927992 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2819027993 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2831828121 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2831928122 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2832028123 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
28321 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
28322 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
28124 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2832328125 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2832428126 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2832528127 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2845528257 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2845628258 ; NoVLX-NEXT: kmovw %edi, %k1
2845728259 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
28458 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
28459 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
28260 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2846028261 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2846128262 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2846228263 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2859428395 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2859528396 ; NoVLX-NEXT: kmovw %edi, %k1
2859628397 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
28597 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
28598 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1
28398 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2859928399 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2860028400 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2860128401 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2902728827 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2902828828 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2902928829 ; NoVLX-NEXT: movl (%rsp), %ecx
29030 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
29031 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
28830 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2903228831 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2903328832 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2903428833 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
2929929098 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2930029099 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2930129100 ; NoVLX-NEXT: movl (%rsp), %ecx
29302 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
29303 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
29101 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2930429102 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2930529103 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2930629104 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
2949729295 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm2, %xmm2
2949829296 ; NoVLX-NEXT: vpextrq $1, %xmm1, %rax
2949929297 ; NoVLX-NEXT: vinserti128 $1, %xmm9, %ymm4, %ymm1
29500 ; NoVLX-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm8
29298 ; NoVLX-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm4
2950129299 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k1
2950229300 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k2
29301 ; NoVLX-NEXT: vinserti128 $1, %xmm7, %ymm3, %ymm3
2950329302 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
29504 ; NoVLX-NEXT: vinserti128 $1, %xmm7, %ymm3, %ymm3
2950529303 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
29506 ; NoVLX-NEXT: vpternlogd $255, %zmm6, %zmm6, %zmm6 {%k2} {z}
29507 ; NoVLX-NEXT: vpcmpgtw %ymm1, %ymm3, %ymm4
29508 ; NoVLX-NEXT: vpmovdb %zmm6, %xmm6
29304 ; NoVLX-NEXT: vpcmpgtw %ymm1, %ymm3, %ymm3
29305 ; NoVLX-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k2} {z}
29306 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
2950929307 ; NoVLX-NEXT: shrq $48, %rcx
29510 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm1
29308 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm2
2951129309 ; NoVLX-NEXT: movl %eax, %ecx
2951229310 ; NoVLX-NEXT: shrl $16, %ecx
29513 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
29514 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm2
29311 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm2, %xmm2
29312 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm2, %xmm2
2951529313 ; NoVLX-NEXT: movq %rax, %rcx
2951629314 ; NoVLX-NEXT: shrq $48, %rax
2951729315 ; NoVLX-NEXT: shrq $32, %rcx
29518 ; NoVLX-NEXT: vpxor %xmm1, %xmm1, %xmm1
2951929316 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm2, %xmm2
2952029317 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm2, %xmm2
2952129318 ; NoVLX-NEXT: vinserti128 $1, %xmm5, %ymm2, %ymm2
29522 ; NoVLX-NEXT: vpcmpgtw %ymm8, %ymm2, %ymm2
29523 ; NoVLX-NEXT: vpcmpeqd %ymm5, %ymm5, %ymm5
29524 ; NoVLX-NEXT: vpxor %ymm5, %ymm2, %ymm2
29319 ; NoVLX-NEXT: vpcmpgtw %ymm4, %ymm2, %ymm2
29320 ; NoVLX-NEXT: vpcmpeqd %ymm4, %ymm4, %ymm4
29321 ; NoVLX-NEXT: vpxor %ymm4, %ymm2, %ymm2
2952529322 ; NoVLX-NEXT: vpmovsxwd %ymm2, %zmm2
2952629323 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
2952729324 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
2958729384 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
2958829385 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
2958929386 ; NoVLX-NEXT: kmovw %k0, %eax
29590 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm3
29591 ; NoVLX-NEXT: vpxor %ymm5, %ymm4, %ymm2
29592 ; NoVLX-NEXT: vpmovsxwd %ymm2, %zmm2
29593 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
29594 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
29387 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
29388 ; NoVLX-NEXT: vpxor %ymm4, %ymm3, %ymm3
29389 ; NoVLX-NEXT: vpmovsxwd %ymm3, %zmm3
29390 ; NoVLX-NEXT: vpslld $31, %zmm3, %zmm3
29391 ; NoVLX-NEXT: vptestmd %zmm3, %zmm3, %k0
2959529392 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2959629393 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2959729394 ; NoVLX-NEXT: kmovw %k1, %eax
2959829395 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2959929396 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2960029397 ; NoVLX-NEXT: kmovw %k1, %ecx
29601 ; NoVLX-NEXT: vmovd %ecx, %xmm2
29602 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
29398 ; NoVLX-NEXT: vmovd %ecx, %xmm3
29399 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
2960329400 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
2960429401 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2960529402 ; NoVLX-NEXT: kmovw %k1, %eax
29606 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
29403 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
2960729404 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
2960829405 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2960929406 ; NoVLX-NEXT: kmovw %k1, %eax
29610 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
29407 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
2961129408 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
2961229409 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2961329410 ; NoVLX-NEXT: kmovw %k1, %eax
29614 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
29411 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
2961529412 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
2961629413 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2961729414 ; NoVLX-NEXT: kmovw %k1, %eax
29618 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
29415 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
2961929416 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
2962029417 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2962129418 ; NoVLX-NEXT: kmovw %k1, %eax
29622 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
29419 ; NoVLX-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
2962329420 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
2962429421 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2962529422 ; NoVLX-NEXT: kmovw %k1, %eax
29626 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
29423 ; NoVLX-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
2962729424 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
2962829425 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2962929426 ; NoVLX-NEXT: kmovw %k1, %eax
29630 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
29427 ; NoVLX-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
2963129428 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
2963229429 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2963329430 ; NoVLX-NEXT: kmovw %k1, %eax
29634 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
29431 ; NoVLX-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
2963529432 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
2963629433 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2963729434 ; NoVLX-NEXT: kmovw %k1, %eax
29638 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
29435 ; NoVLX-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
2963929436 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
2964029437 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2964129438 ; NoVLX-NEXT: kmovw %k1, %eax
29642 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
29439 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
2964329440 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
2964429441 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2964529442 ; NoVLX-NEXT: kmovw %k1, %eax
29646 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
29443 ; NoVLX-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
2964729444 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
2964829445 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2964929446 ; NoVLX-NEXT: kmovw %k1, %eax
29650 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
29447 ; NoVLX-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
2965129448 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
2965229449 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2965329450 ; NoVLX-NEXT: kmovw %k1, %eax
29654 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
29451 ; NoVLX-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
2965529452 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
2965629453 ; NoVLX-NEXT: kmovw %k0, %eax
29657 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
29658 ; NoVLX-NEXT: vpand %xmm6, %xmm2, %xmm2
29659 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
29660 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
29661 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
29454 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3
29455 ; NoVLX-NEXT: vpand %xmm1, %xmm3, %xmm1
29456 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
29457 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
29458 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2966229459 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
29663 ; NoVLX-NEXT: vpand %xmm0, %xmm3, %xmm0
29460 ; NoVLX-NEXT: vpand %xmm0, %xmm2, %xmm0
2966429461 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2966529462 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2966629463 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2966729464 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2966829465 ; NoVLX-NEXT: movl (%rsp), %ecx
29669 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
29466 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2967029467 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2967129468 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2967229469 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %eax
2973129528 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
2973229529 ; NoVLX-NEXT: vmovq %xmm4, %rcx
2973329530 ; NoVLX-NEXT: shrq $48, %rax
29734 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm2
29531 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm1
2973529532 ; NoVLX-NEXT: movl %ecx, %eax
2973629533 ; NoVLX-NEXT: shrl $16, %eax
29737 ; NoVLX-NEXT: vmovd %ecx, %xmm1
29738 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
29534 ; NoVLX-NEXT: vmovd %ecx, %xmm2
29535 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm2, %xmm2
2973929536 ; NoVLX-NEXT: movq %rcx, %rax
2974029537 ; NoVLX-NEXT: shrq $32, %rax
29741 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
29538 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm2, %xmm2
2974229539 ; NoVLX-NEXT: vpextrq $1, %xmm4, %rax
2974329540 ; NoVLX-NEXT: shrq $48, %rcx
29744 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm1
29541 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm2, %xmm2
2974529542 ; NoVLX-NEXT: movl %eax, %ecx
2974629543 ; NoVLX-NEXT: shrl $16, %ecx
29747 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
29748 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm1
29544 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm2, %xmm2
29545 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm2, %xmm2
2974929546 ; NoVLX-NEXT: movq %rax, %rcx
2975029547 ; NoVLX-NEXT: shrq $32, %rcx
29751 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
29548 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm2, %xmm2
2975229549 ; NoVLX-NEXT: vmovq %xmm3, %rcx
2975329550 ; NoVLX-NEXT: shrq $48, %rax
29754 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm4
29551 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm2, %xmm2
2975529552 ; NoVLX-NEXT: movl %ecx, %eax
2975629553 ; NoVLX-NEXT: shrl $16, %eax
29757 ; NoVLX-NEXT: vmovd %ecx, %xmm1
29758 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
29554 ; NoVLX-NEXT: vmovd %ecx, %xmm4
29555 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm4, %xmm4
2975929556 ; NoVLX-NEXT: movq %rcx, %rax
2976029557 ; NoVLX-NEXT: shrq $32, %rax
29761 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
29558 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm4, %xmm4
2976229559 ; NoVLX-NEXT: vpextrq $1, %xmm3, %rax
2976329560 ; NoVLX-NEXT: shrq $48, %rcx
29764 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm1
29561 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm4, %xmm3
2976529562 ; NoVLX-NEXT: movl %eax, %ecx
2976629563 ; NoVLX-NEXT: shrl $16, %ecx
29767 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm1, %xmm1
29768 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm1, %xmm1
29564 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm3, %xmm3
29565 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm3, %xmm3
2976929566 ; NoVLX-NEXT: movq %rax, %rcx
2977029567 ; NoVLX-NEXT: shrq $32, %rcx
29771 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm1, %xmm1
29568 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm3, %xmm3
2977229569 ; NoVLX-NEXT: vmovq %xmm0, %rcx
2977329570 ; NoVLX-NEXT: shrq $48, %rax
29774 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm1, %xmm3
29571 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm3, %xmm3
2977529572 ; NoVLX-NEXT: movl %ecx, %eax
2977629573 ; NoVLX-NEXT: shrl $16, %eax
29777 ; NoVLX-NEXT: vmovd %ecx, %xmm1
29778 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm1, %xmm1
29574 ; NoVLX-NEXT: vmovd %ecx, %xmm4
29575 ; NoVLX-NEXT: vpinsrw $1, %eax, %xmm4, %xmm4
2977929576 ; NoVLX-NEXT: movq %rcx, %rax
2978029577 ; NoVLX-NEXT: shrq $32, %rax
29781 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm1, %xmm1
29578 ; NoVLX-NEXT: vpinsrw $2, %eax, %xmm4, %xmm4
2978229579 ; NoVLX-NEXT: vpextrq $1, %xmm0, %rax
2978329580 ; NoVLX-NEXT: shrq $48, %rcx
29784 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm1, %xmm0
29581 ; NoVLX-NEXT: vpinsrw $3, %ecx, %xmm4, %xmm0
2978529582 ; NoVLX-NEXT: movl %eax, %ecx
2978629583 ; NoVLX-NEXT: shrl $16, %ecx
2978729584 ; NoVLX-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
2978829585 ; NoVLX-NEXT: vpinsrw $5, %ecx, %xmm0, %xmm0
2978929586 ; NoVLX-NEXT: movq %rax, %rcx
2979029587 ; NoVLX-NEXT: shrq $32, %rcx
29791 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm0, %xmm5
29588 ; NoVLX-NEXT: vpinsrw $6, %ecx, %xmm0, %xmm4
2979229589 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k1
2979329590 ; NoVLX-NEXT: kmovw {{[0-9]+}}(%rsp), %k2
2979429591 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
29795 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm1
29796 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k2} {z}
29797 ; NoVLX-NEXT: vinserti128 $1, %xmm2, %ymm4, %ymm4
29798 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm2
29592 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
29593 ; NoVLX-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm2
29594 ; NoVLX-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k2} {z}
29595 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
2979929596 ; NoVLX-NEXT: shrq $48, %rax
29800 ; NoVLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
29801 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm5, %xmm5
29802 ; NoVLX-NEXT: vinserti128 $1, %xmm3, %ymm5, %ymm3
29803 ; NoVLX-NEXT: vmovdqa (%rsi), %ymm5
29804 ; NoVLX-NEXT: vpcmpgtw %ymm3, %ymm5, %ymm3
29805 ; NoVLX-NEXT: vmovdqa 32(%rsi), %ymm5
29806 ; NoVLX-NEXT: vpcmpgtw %ymm4, %ymm5, %ymm4
29807 ; NoVLX-NEXT: vpcmpeqd %ymm5, %ymm5, %ymm5
29808 ; NoVLX-NEXT: vpxor %ymm5, %ymm3, %ymm3
29597 ; NoVLX-NEXT: vpinsrw $7, %eax, %xmm4, %xmm4
29598 ; NoVLX-NEXT: vinserti128 $1, %xmm3, %ymm4, %ymm3
29599 ; NoVLX-NEXT: vmovdqa (%rsi), %ymm4
29600 ; NoVLX-NEXT: vpcmpgtw %ymm3, %ymm4, %ymm5
29601 ; NoVLX-NEXT: vmovdqa 32(%rsi), %ymm3
29602 ; NoVLX-NEXT: vpcmpgtw %ymm2, %ymm3, %ymm3
29603 ; NoVLX-NEXT: vpcmpeqd %ymm4, %ymm4, %ymm4
29604 ; NoVLX-NEXT: vpxor %ymm4, %ymm5, %ymm2
29605 ; NoVLX-NEXT: vpmovsxwd %ymm2, %zmm2
29606 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
29607 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
29608 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
29609 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
29610 ; NoVLX-NEXT: kmovw %k1, %eax
29611 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
29612 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
29613 ; NoVLX-NEXT: kmovw %k1, %ecx
29614 ; NoVLX-NEXT: vmovd %ecx, %xmm2
29615 ; NoVLX-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
29616 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
29617 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
29618 ; NoVLX-NEXT: kmovw %k1, %eax
29619 ; NoVLX-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
29620 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
29621 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
29622 ; NoVLX-NEXT: kmovw %k1, %eax
29623 ; NoVLX-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
29624 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
29625 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
29626 ; NoVLX-NEXT: kmovw %k1, %eax
29627 ; NoVLX-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
29628 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
29629 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
29630 ; NoVLX-NEXT: kmovw %k1, %eax
29631 ; NoVLX-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
29632