llvm.org GIT mirror llvm / ce169cc
[X86] In LowerTruncateVecI1, don't add SHL if the input is known to be all sign bits. If the input is all sign bits then the LSB through MSB are all the same so we don't need to be move the LSB to the MSB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321617 91177308-0d34-0410-b5e6-96231b3b80d8 Craig Topper 2 years ago
14 changed file(s) with 25 addition(s) and 555 deletion(s). Raw diff Collapse all Expand all
1652216522 if (InVT.getScalarSizeInBits() <= 16) {
1652316523 if (Subtarget.hasBWI()) {
1652416524 // legal, will go to VPMOVB2M, VPMOVW2M
16525 // Shift packed bytes not supported natively, bitcast to word
16526 MVT ExtVT = MVT::getVectorVT(MVT::i16, InVT.getSizeInBits()/16);
16527 SDValue ShiftNode = DAG.getNode(ISD::SHL, DL, ExtVT,
16528 DAG.getBitcast(ExtVT, In),
16529 DAG.getConstant(ShiftInx, DL, ExtVT));
16530 ShiftNode = DAG.getBitcast(InVT, ShiftNode);
16531 return DAG.getNode(X86ISD::CVT2MASK, DL, VT, ShiftNode);
16525 if (DAG.ComputeNumSignBits(In) < InVT.getScalarSizeInBits()) {
16526 // We need to shift to get the lsb into sign position.
16527 // Shift packed bytes not supported natively, bitcast to word
16528 MVT ExtVT = MVT::getVectorVT(MVT::i16, InVT.getSizeInBits()/16);
16529 In = DAG.getNode(ISD::SHL, DL, ExtVT,
16530 DAG.getBitcast(ExtVT, In),
16531 DAG.getConstant(ShiftInx, DL, ExtVT));
16532 In = DAG.getBitcast(InVT, In);
16533 }
16534 return DAG.getNode(X86ISD::CVT2MASK, DL, VT, In);
1653216535 }
1653316536 // Use TESTD/Q, extended vector to packed dword/qword.
1653416537 assert((InVT.is256BitVector() || InVT.is128BitVector()) &&
1654116544 ShiftInx = InVT.getScalarSizeInBits() - 1;
1654216545 }
1654316546
16544 SDValue ShiftNode = DAG.getNode(ISD::SHL, DL, InVT, In,
16545 DAG.getConstant(ShiftInx, DL, InVT));
16546 return DAG.getNode(X86ISD::TESTM, DL, VT, ShiftNode, ShiftNode);
16547 if (DAG.ComputeNumSignBits(In) < InVT.getScalarSizeInBits()) {
16548 // We need to shift to get the lsb into sign position.
16549 In = DAG.getNode(ISD::SHL, DL, InVT, In,
16550 DAG.getConstant(ShiftInx, DL, InVT));
16551 }
16552 return DAG.getNode(X86ISD::TESTM, DL, VT, In, In);
1654716553 }
1654816554
1654916555 SDValue X86TargetLowering::LowerTRUNCATE(SDValue Op, SelectionDAG &DAG) const {
2121 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
2222 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm2, %xmm2 {%k1} {z}
2323 ; AVX512NOTDQ-NEXT: vpbroadcastq %xmm2, %xmm2
24 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm2, %xmm2
2524 ; AVX512NOTDQ-NEXT: vptestmq %xmm2, %xmm2, %k1
2625 ; AVX512NOTDQ-NEXT: vmovapd %xmm0, %xmm1 {%k1}
2726 ; AVX512NOTDQ-NEXT: vmovapd %xmm1, (%rsi)
5251 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
5352 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm2, %xmm2 {%k1} {z}
5453 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]
55 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm2, %xmm2
5654 ; AVX512NOTDQ-NEXT: vptestmq %xmm2, %xmm2, %k1
5755 ; AVX512NOTDQ-NEXT: vmovapd %xmm0, %xmm1 {%k1}
5856 ; AVX512NOTDQ-NEXT: vmovapd %xmm1, (%rsi)
8280 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
8381 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm2, %xmm2 {%k1} {z}
8482 ; AVX512NOTDQ-NEXT: vpbroadcastq %xmm2, %xmm2
85 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm2, %xmm2
8683 ; AVX512NOTDQ-NEXT: vptestmq %xmm2, %xmm2, %k1
8784 ; AVX512NOTDQ-NEXT: vmovapd %xmm0, %xmm1 {%k1}
8885 ; AVX512NOTDQ-NEXT: vmovapd %xmm1, (%rsi)
112109 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
113110 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm2, %xmm2 {%k1} {z}
114111 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm2, %xmm2
115 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm2, %xmm2
116112 ; AVX512NOTDQ-NEXT: vptestmd %xmm2, %xmm2, %k1
117113 ; AVX512NOTDQ-NEXT: vmovaps %xmm0, %xmm1 {%k1}
118114 ; AVX512NOTDQ-NEXT: vmovaps %xmm1, (%rsi)
142138 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
143139 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm2, %xmm2 {%k1} {z}
144140 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]
145 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm2, %xmm2
146141 ; AVX512NOTDQ-NEXT: vptestmq %xmm2, %xmm2, %k1
147142 ; AVX512NOTDQ-NEXT: vmovapd %xmm0, %xmm1 {%k1}
148143 ; AVX512NOTDQ-NEXT: vmovapd %xmm1, (%rsi)
172167 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
173168 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm2, %xmm2 {%k1} {z}
174169 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[3,3,3,3]
175 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm2, %xmm2
176170 ; AVX512NOTDQ-NEXT: vptestmd %xmm2, %xmm2, %k1
177171 ; AVX512NOTDQ-NEXT: vmovaps %xmm0, %xmm1 {%k1}
178172 ; AVX512NOTDQ-NEXT: vmovaps %xmm1, (%rsi)
202196 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
203197 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm2, %xmm2 {%k1} {z}
204198 ; AVX512NOTDQ-NEXT: vpbroadcastq %xmm2, %xmm2
205 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm2, %xmm2
206199 ; AVX512NOTDQ-NEXT: vptestmq %xmm2, %xmm2, %k1
207200 ; AVX512NOTDQ-NEXT: vmovapd %xmm0, %xmm1 {%k1}
208201 ; AVX512NOTDQ-NEXT: vmovapd %xmm1, (%rsi)
232225 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
233226 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm2, %xmm2 {%k1} {z}
234227 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm2, %xmm2
235 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm2, %xmm2
236228 ; AVX512NOTDQ-NEXT: vptestmd %xmm2, %xmm2, %k1
237229 ; AVX512NOTDQ-NEXT: vmovaps %xmm0, %xmm1 {%k1}
238230 ; AVX512NOTDQ-NEXT: vmovaps %xmm1, (%rsi)
263255 ; AVX512NOTDQ-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2
264256 ; AVX512NOTDQ-NEXT: vmovdqa32 %ymm2, %ymm2 {%k1} {z}
265257 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm2, %ymm2
266 ; AVX512NOTDQ-NEXT: vpslld $31, %ymm2, %ymm2
267258 ; AVX512NOTDQ-NEXT: vptestmd %ymm2, %ymm2, %k1
268259 ; AVX512NOTDQ-NEXT: vmovaps %ymm0, %ymm1 {%k1}
269260 ; AVX512NOTDQ-NEXT: vmovaps %ymm1, (%rsi)
294285 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
295286 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm2, %xmm2 {%k1} {z}
296287 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]
297 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm2, %xmm2
298288 ; AVX512NOTDQ-NEXT: vptestmq %xmm2, %xmm2, %k1
299289 ; AVX512NOTDQ-NEXT: vmovapd %xmm0, %xmm1 {%k1}
300290 ; AVX512NOTDQ-NEXT: vmovapd %xmm1, (%rsi)
324314 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
325315 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm2, %xmm2 {%k1} {z}
326316 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[3,3,3,3]
327 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm2, %xmm2
328317 ; AVX512NOTDQ-NEXT: vptestmd %xmm2, %xmm2, %k1
329318 ; AVX512NOTDQ-NEXT: vmovaps %xmm0, %xmm1 {%k1}
330319 ; AVX512NOTDQ-NEXT: vmovaps %xmm1, (%rsi)
357346 ; AVX512NOTDQ-NEXT: vmovdqa32 %ymm2, %ymm2 {%k1} {z}
358347 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[3,3,2,3,7,7,6,7]
359348 ; AVX512NOTDQ-NEXT: vpermq {{.*#+}} ymm2 = ymm2[2,2,2,2]
360 ; AVX512NOTDQ-NEXT: vpslld $31, %ymm2, %ymm2
361349 ; AVX512NOTDQ-NEXT: vptestmd %ymm2, %ymm2, %k1
362350 ; AVX512NOTDQ-NEXT: vmovaps %ymm0, %ymm1 {%k1}
363351 ; AVX512NOTDQ-NEXT: vmovaps %ymm1, (%rsi)
388376 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
389377 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm2, %xmm2 {%k1} {z}
390378 ; AVX512NOTDQ-NEXT: vpbroadcastq %xmm2, %xmm2
391 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm2, %xmm2
392379 ; AVX512NOTDQ-NEXT: vptestmq %xmm2, %xmm2, %k1
393380 ; AVX512NOTDQ-NEXT: vmovapd %xmm0, %xmm1 {%k1}
394381 ; AVX512NOTDQ-NEXT: vmovapd %xmm1, (%rsi)
418405 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
419406 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm2, %xmm2 {%k1} {z}
420407 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm2, %xmm2
421 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm2, %xmm2
422408 ; AVX512NOTDQ-NEXT: vptestmd %xmm2, %xmm2, %k1
423409 ; AVX512NOTDQ-NEXT: vmovaps %xmm0, %xmm1 {%k1}
424410 ; AVX512NOTDQ-NEXT: vmovaps %xmm1, (%rsi)
449435 ; AVX512NOTDQ-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2
450436 ; AVX512NOTDQ-NEXT: vmovdqa32 %ymm2, %ymm2 {%k1} {z}
451437 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm2, %ymm2
452 ; AVX512NOTDQ-NEXT: vpslld $31, %ymm2, %ymm2
453438 ; AVX512NOTDQ-NEXT: vptestmd %ymm2, %ymm2, %k1
454439 ; AVX512NOTDQ-NEXT: vmovaps %ymm0, %ymm1 {%k1}
455440 ; AVX512NOTDQ-NEXT: vmovaps %ymm1, (%rsi)
480465 ; AVX512NOTDQ-NEXT: kshiftrq $32, %k0, %k1
481466 ; AVX512NOTDQ-NEXT: vpternlogd $255, %zmm2, %zmm2, %zmm2 {%k1} {z}
482467 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm2, %zmm2
483 ; AVX512NOTDQ-NEXT: vpslld $31, %zmm2, %zmm2
484468 ; AVX512NOTDQ-NEXT: vptestmd %zmm2, %zmm2, %k1
485469 ; AVX512NOTDQ-NEXT: vmovaps %zmm0, %zmm1 {%k1}
486470 ; AVX512NOTDQ-NEXT: vmovaps %zmm1, (%rsi)
511495 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
512496 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm2, %xmm2 {%k1} {z}
513497 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]
514 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm2, %xmm2
515498 ; AVX512NOTDQ-NEXT: vptestmq %xmm2, %xmm2, %k1
516499 ; AVX512NOTDQ-NEXT: vmovapd %xmm0, %xmm1 {%k1}
517500 ; AVX512NOTDQ-NEXT: vmovapd %xmm1, (%rsi)
541524 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
542525 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm2, %xmm2 {%k1} {z}
543526 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm2 = xmm2[3,3,3,3]
544 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm2, %xmm2
545527 ; AVX512NOTDQ-NEXT: vptestmd %xmm2, %xmm2, %k1
546528 ; AVX512NOTDQ-NEXT: vmovaps %xmm0, %xmm1 {%k1}
547529 ; AVX512NOTDQ-NEXT: vmovaps %xmm1, (%rsi)
574556 ; AVX512NOTDQ-NEXT: vmovdqa32 %ymm2, %ymm2 {%k1} {z}
575557 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[3,3,2,3,7,7,6,7]
576558 ; AVX512NOTDQ-NEXT: vpermq {{.*#+}} ymm2 = ymm2[2,2,2,2]
577 ; AVX512NOTDQ-NEXT: vpslld $31, %ymm2, %ymm2
578559 ; AVX512NOTDQ-NEXT: vptestmd %ymm2, %ymm2, %k1
579560 ; AVX512NOTDQ-NEXT: vmovaps %ymm0, %ymm1 {%k1}
580561 ; AVX512NOTDQ-NEXT: vmovaps %ymm1, (%rsi)
607588 ; AVX512NOTDQ-NEXT: vpternlogd $255, %zmm2, %zmm2, %zmm2 {%k1} {z}
608589 ; AVX512NOTDQ-NEXT: vpbroadcastd {{.*#+}} zmm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
609590 ; AVX512NOTDQ-NEXT: vpermd %zmm2, %zmm3, %zmm2
610 ; AVX512NOTDQ-NEXT: vpslld $31, %zmm2, %zmm2
611591 ; AVX512NOTDQ-NEXT: vptestmd %zmm2, %zmm2, %k1
612592 ; AVX512NOTDQ-NEXT: vmovaps %zmm0, %zmm1 {%k1}
613593 ; AVX512NOTDQ-NEXT: vmovaps %zmm1, (%rsi)
764744 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
765745 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
766746 ; AVX512NOTDQ-NEXT: vpbroadcastq %xmm0, %xmm0
767 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm0, %xmm0
768747 ; AVX512NOTDQ-NEXT: vptestmq %xmm0, %xmm0, %k0
769748 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
770749 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
814793 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
815794 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
816795 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
817 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm0, %xmm0
818796 ; AVX512NOTDQ-NEXT: vptestmq %xmm0, %xmm0, %k0
819797 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
820798 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
862840 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
863841 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
864842 ; AVX512NOTDQ-NEXT: vpbroadcastq %xmm0, %xmm0
865 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm0, %xmm0
866843 ; AVX512NOTDQ-NEXT: vptestmq %xmm0, %xmm0, %k0
867844 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
868845 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
890867 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
891868 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm0, %xmm0 {%k1} {z}
892869 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm0, %xmm0
893 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm0, %xmm0
894870 ; AVX512NOTDQ-NEXT: vptestmd %xmm0, %xmm0, %k0
895871 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
896872 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
938914 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
939915 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
940916 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
941 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm0, %xmm0
942917 ; AVX512NOTDQ-NEXT: vptestmq %xmm0, %xmm0, %k0
943918 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
944919 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
966941 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
967942 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm0, %xmm0 {%k1} {z}
968943 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
969 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm0, %xmm0
970944 ; AVX512NOTDQ-NEXT: vptestmd %xmm0, %xmm0, %k0
971945 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
972946 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
1014988 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
1015989 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
1016990 ; AVX512NOTDQ-NEXT: vpbroadcastq %xmm0, %xmm0
1017 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm0, %xmm0
1018991 ; AVX512NOTDQ-NEXT: vptestmq %xmm0, %xmm0, %k0
1019992 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
1020993 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
10421015 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
10431016 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm0, %xmm0 {%k1} {z}
10441017 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm0, %xmm0
1045 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm0, %xmm0
10461018 ; AVX512NOTDQ-NEXT: vptestmd %xmm0, %xmm0, %k0
10471019 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
10481020 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
10711043 ; AVX512NOTDQ-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0
10721044 ; AVX512NOTDQ-NEXT: vmovdqa32 %ymm0, %ymm0 {%k1} {z}
10731045 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm0, %ymm0
1074 ; AVX512NOTDQ-NEXT: vpslld $31, %ymm0, %ymm0
10751046 ; AVX512NOTDQ-NEXT: vptestmd %ymm0, %ymm0, %k0
10761047 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
10771048 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
11201091 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
11211092 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
11221093 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
1123 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm0, %xmm0
11241094 ; AVX512NOTDQ-NEXT: vptestmq %xmm0, %xmm0, %k0
11251095 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
11261096 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
11481118 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
11491119 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm0, %xmm0 {%k1} {z}
11501120 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1151 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm0, %xmm0
11521121 ; AVX512NOTDQ-NEXT: vptestmd %xmm0, %xmm0, %k0
11531122 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
11541123 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
11791148 ; AVX512NOTDQ-NEXT: vmovdqa32 %ymm0, %ymm0 {%k1} {z}
11801149 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[3,3,2,3,7,7,6,7]
11811150 ; AVX512NOTDQ-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,2,2,2]
1182 ; AVX512NOTDQ-NEXT: vpslld $31, %ymm0, %ymm0
11831151 ; AVX512NOTDQ-NEXT: vptestmd %ymm0, %ymm0, %k0
11841152 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
11851153 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
12281196 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
12291197 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
12301198 ; AVX512NOTDQ-NEXT: vpbroadcastq %xmm0, %xmm0
1231 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm0, %xmm0
12321199 ; AVX512NOTDQ-NEXT: vptestmq %xmm0, %xmm0, %k0
12331200 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
12341201 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
12561223 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
12571224 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm0, %xmm0 {%k1} {z}
12581225 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm0, %xmm0
1259 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm0, %xmm0
12601226 ; AVX512NOTDQ-NEXT: vptestmd %xmm0, %xmm0, %k0
12611227 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
12621228 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
12851251 ; AVX512NOTDQ-NEXT: vpcmpeqd %ymm0, %ymm0, %ymm0
12861252 ; AVX512NOTDQ-NEXT: vmovdqa32 %ymm0, %ymm0 {%k1} {z}
12871253 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm0, %ymm0
1288 ; AVX512NOTDQ-NEXT: vpslld $31, %ymm0, %ymm0
12891254 ; AVX512NOTDQ-NEXT: vptestmd %ymm0, %ymm0, %k0
12901255 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
12911256 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
13141279 ; AVX512NOTDQ-NEXT: kshiftrq $32, %k0, %k1
13151280 ; AVX512NOTDQ-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13161281 ; AVX512NOTDQ-NEXT: vpbroadcastd %xmm0, %zmm0
1317 ; AVX512NOTDQ-NEXT: vpslld $31, %zmm0, %zmm0
13181282 ; AVX512NOTDQ-NEXT: vptestmd %zmm0, %zmm0, %k0
13191283 ; AVX512NOTDQ-NEXT: kmovw %k0, (%rsi)
13201284 ; AVX512NOTDQ-NEXT: vzeroupper
13621326 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
13631327 ; AVX512NOTDQ-NEXT: vmovdqa64 %xmm0, %xmm0 {%k1} {z}
13641328 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
1365 ; AVX512NOTDQ-NEXT: vpsllq $63, %xmm0, %xmm0
13661329 ; AVX512NOTDQ-NEXT: vptestmq %xmm0, %xmm0, %k0
13671330 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
13681331 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
13901353 ; AVX512NOTDQ-NEXT: vpcmpeqd %xmm0, %xmm0, %xmm0
13911354 ; AVX512NOTDQ-NEXT: vmovdqa32 %xmm0, %xmm0 {%k1} {z}
13921355 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1393 ; AVX512NOTDQ-NEXT: vpslld $31, %xmm0, %xmm0
13941356 ; AVX512NOTDQ-NEXT: vptestmd %xmm0, %xmm0, %k0
13951357 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
13961358 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
14211383 ; AVX512NOTDQ-NEXT: vmovdqa32 %ymm0, %ymm0 {%k1} {z}
14221384 ; AVX512NOTDQ-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[3,3,2,3,7,7,6,7]
14231385 ; AVX512NOTDQ-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,2,2,2]
1424 ; AVX512NOTDQ-NEXT: vpslld $31, %ymm0, %ymm0
14251386 ; AVX512NOTDQ-NEXT: vptestmd %ymm0, %ymm0, %k0
14261387 ; AVX512NOTDQ-NEXT: kmovd %k0, %eax
14271388 ; AVX512NOTDQ-NEXT: movb %al, (%rsi)
14521413 ; AVX512NOTDQ-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14531414 ; AVX512NOTDQ-NEXT: vpbroadcastd {{.*#+}} zmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
14541415 ; AVX512NOTDQ-NEXT: vpermd %zmm0, %zmm1, %zmm0
1455 ; AVX512NOTDQ-NEXT: vpslld $31, %zmm0, %zmm0
14561416 ; AVX512NOTDQ-NEXT: vptestmd %zmm0, %zmm0, %k0
14571417 ; AVX512NOTDQ-NEXT: kmovw %k0, (%rsi)
14581418 ; AVX512NOTDQ-NEXT: vzeroupper
804804 ; KNL-NEXT: vpcmpgtb %ymm0, %ymm1, %ymm0
805805 ; KNL-NEXT: vextracti128 $1, %ymm0, %xmm1
806806 ; KNL-NEXT: vpmovsxbd %xmm1, %zmm1
807 ; KNL-NEXT: vpslld $31, %zmm1, %zmm1
808807 ; KNL-NEXT: vptestmd %zmm1, %zmm1, %k0
809808 ; KNL-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
810809 ; KNL-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0
194194 ; KNL-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k1} {z}
195195 ; KNL-NEXT: vpmovdb %zmm1, %xmm1
196196 ; KNL-NEXT: vpmovsxbd %xmm1, %zmm1
197 ; KNL-NEXT: vpslld $31, %zmm1, %zmm1
198197 ; KNL-NEXT: vptestmd %zmm1, %zmm1, %k0
199198 ; KNL-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
200199 ; KNL-NEXT: vpcmpeqd %zmm2, %zmm0, %k1
201200 ; KNL-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
202201 ; KNL-NEXT: vpmovdb %zmm0, %xmm0
203202 ; KNL-NEXT: vpmovsxbd %xmm0, %zmm0
204 ; KNL-NEXT: vpslld $31, %zmm0, %zmm0
205203 ; KNL-NEXT: vptestmd %zmm0, %zmm0, %k0
206204 ; KNL-NEXT: kmovw %k0, (%rsp)
207205 ; KNL-NEXT: movl (%rsp), %eax
234232 ; KNL-NEXT: vpmovsxwd %ymm1, %zmm1
235233 ; KNL-NEXT: vpmovdb %zmm1, %xmm1
236234 ; KNL-NEXT: vpmovsxbd %xmm1, %zmm1
237 ; KNL-NEXT: vpslld $31, %zmm1, %zmm1
238235 ; KNL-NEXT: vptestmd %zmm1, %zmm1, %k0
239236 ; KNL-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
240237 ; KNL-NEXT: vpcmpeqw %ymm4, %ymm0, %ymm0
241238 ; KNL-NEXT: vpmovsxwd %ymm0, %zmm0
242239 ; KNL-NEXT: vpmovdb %zmm0, %xmm0
243240 ; KNL-NEXT: vpmovsxbd %xmm0, %zmm0
244 ; KNL-NEXT: vpslld $31, %zmm0, %zmm0
245241 ; KNL-NEXT: vptestmd %zmm0, %zmm0, %k0
246242 ; KNL-NEXT: kmovw %k0, (%rsp)
247243 ; KNL-NEXT: vpcmpeqw %ymm7, %ymm3, %ymm0
248244 ; KNL-NEXT: vpmovsxwd %ymm0, %zmm0
249245 ; KNL-NEXT: vpmovdb %zmm0, %xmm0
250246 ; KNL-NEXT: vpmovsxbd %xmm0, %zmm0
251 ; KNL-NEXT: vpslld $31, %zmm0, %zmm0
252247 ; KNL-NEXT: vptestmd %zmm0, %zmm0, %k0
253248 ; KNL-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
254249 ; KNL-NEXT: vpcmpeqw %ymm6, %ymm2, %ymm0
255250 ; KNL-NEXT: vpmovsxwd %ymm0, %zmm0
256251 ; KNL-NEXT: vpmovdb %zmm0, %xmm0
257252 ; KNL-NEXT: vpmovsxbd %xmm0, %zmm0
258 ; KNL-NEXT: vpslld $31, %zmm0, %zmm0
259253 ; KNL-NEXT: vptestmd %zmm0, %zmm0, %k0
260254 ; KNL-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
261255 ; KNL-NEXT: movl (%rsp), %ecx
2121 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2222 ; NoVLX-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
2323 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
24 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2524 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2625 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2726 ; NoVLX-NEXT: movl (%rsp), %eax
5857 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5958 ; NoVLX-NEXT: vpcmpeqb (%rdi), %xmm0, %xmm0
6059 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
61 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
6260 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
6361 ; NoVLX-NEXT: kmovw %k0, (%rsp)
6462 ; NoVLX-NEXT: movl (%rsp), %eax
9593 ; NoVLX-NEXT: subq $32, %rsp
9694 ; NoVLX-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
9795 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
98 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
9996 ; NoVLX-NEXT: kmovw %edi, %k1
10097 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
10198 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
103100 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
104101 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
105102 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
106 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
107103 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
108104 ; NoVLX-NEXT: kmovw %k0, (%rsp)
109105 ; NoVLX-NEXT: movl (%rsp), %eax
141137 ; NoVLX-NEXT: subq $32, %rsp
142138 ; NoVLX-NEXT: vpcmpeqb (%rsi), %xmm0, %xmm0
143139 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
144 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
145140 ; NoVLX-NEXT: kmovw %edi, %k1
146141 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
147142 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
149144 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
150145 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
151146 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
152 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
153147 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
154148 ; NoVLX-NEXT: kmovw %k0, (%rsp)
155149 ; NoVLX-NEXT: movl (%rsp), %eax
192186 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
193187 ; NoVLX-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
194188 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
195 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
196189 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
197190 ; NoVLX-NEXT: kmovw %k0, (%rsp)
198191 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
234227 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
235228 ; NoVLX-NEXT: vpcmpeqb (%rdi), %xmm0, %xmm0
236229 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
237 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
238230 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
239231 ; NoVLX-NEXT: kmovw %k0, (%rsp)
240232 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
274266 ; NoVLX-NEXT: subq $64, %rsp
275267 ; NoVLX-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
276268 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
277 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
278269 ; NoVLX-NEXT: kmovw %edi, %k1
279270 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
280271 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
284275 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
285276 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
286277 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
287 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
288278 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
289279 ; NoVLX-NEXT: kmovw %k0, (%rsp)
290280 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
325315 ; NoVLX-NEXT: subq $64, %rsp
326316 ; NoVLX-NEXT: vpcmpeqb (%rsi), %xmm0, %xmm0
327317 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
328 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
329318 ; NoVLX-NEXT: kmovw %edi, %k1
330319 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
331320 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
335324 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
336325 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
337326 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
338 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
339327 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
340328 ; NoVLX-NEXT: kmovw %k0, (%rsp)
341329 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
379367 ; NoVLX-NEXT: vpcmpeqb %ymm1, %ymm0, %ymm0
380368 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
381369 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
382 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
383370 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
384371 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
385372 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
386 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
387373 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
388374 ; NoVLX-NEXT: kmovw %k0, (%rsp)
389375 ; NoVLX-NEXT: movl (%rsp), %ecx
426412 ; NoVLX-NEXT: vpcmpeqb (%rdi), %ymm0, %ymm0
427413 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
428414 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
429 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
430415 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
431416 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
432417 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
433 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
434418 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
435419 ; NoVLX-NEXT: kmovw %k0, (%rsp)
436420 ; NoVLX-NEXT: movl (%rsp), %ecx
586570 ; NoVLX: # %bb.0: # %entry
587571 ; NoVLX-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
588572 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
589 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
590573 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
591574 ; NoVLX-NEXT: kmovw %k0, %eax
592575 ; NoVLX-NEXT: # kill: def %ax killed %ax killed %eax
613596 ; NoVLX: # %bb.0: # %entry
614597 ; NoVLX-NEXT: vpcmpeqw (%rdi), %xmm0, %xmm0
615598 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
616 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
617599 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
618600 ; NoVLX-NEXT: kmovw %k0, %eax
619601 ; NoVLX-NEXT: # kill: def %ax killed %ax killed %eax
642624 ; NoVLX: # %bb.0: # %entry
643625 ; NoVLX-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
644626 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
645 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
646627 ; NoVLX-NEXT: kmovw %edi, %k1
647628 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
648629 ; NoVLX-NEXT: kmovw %k0, %eax
673654 ; NoVLX: # %bb.0: # %entry
674655 ; NoVLX-NEXT: vpcmpeqw (%rsi), %xmm0, %xmm0
675656 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
676 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
677657 ; NoVLX-NEXT: kmovw %edi, %k1
678658 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
679659 ; NoVLX-NEXT: kmovw %k0, %eax
711691 ; NoVLX-NEXT: subq $32, %rsp
712692 ; NoVLX-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
713693 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
714 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
715694 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
716695 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
717696 ; NoVLX-NEXT: kmovw %k1, %r8d
775754 ; NoVLX-NEXT: subq $32, %rsp
776755 ; NoVLX-NEXT: vpcmpeqw (%rdi), %xmm0, %xmm0
777756 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
778 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
779757 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
780758 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
781759 ; NoVLX-NEXT: kmovw %k1, %r8d
841819 ; NoVLX-NEXT: subq $32, %rsp
842820 ; NoVLX-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
843821 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
844 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
845822 ; NoVLX-NEXT: kmovw %edi, %k1
846823 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
847824 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
909886 ; NoVLX-NEXT: subq $32, %rsp
910887 ; NoVLX-NEXT: vpcmpeqw (%rsi), %xmm0, %xmm0
911888 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
912 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
913889 ; NoVLX-NEXT: kmovw %edi, %k1
914890 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
915891 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
978954 ; NoVLX-NEXT: subq $64, %rsp
979955 ; NoVLX-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
980956 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
981 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
982957 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
983958 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
984959 ; NoVLX-NEXT: kmovw %k1, %r8d
10471022 ; NoVLX-NEXT: subq $64, %rsp
10481023 ; NoVLX-NEXT: vpcmpeqw (%rdi), %xmm0, %xmm0
10491024 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
1050 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
10511025 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
10521026 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
10531027 ; NoVLX-NEXT: kmovw %k1, %r8d
11181092 ; NoVLX-NEXT: subq $64, %rsp
11191093 ; NoVLX-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm0
11201094 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
1121 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
11221095 ; NoVLX-NEXT: kmovw %edi, %k1
11231096 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
11241097 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
11911164 ; NoVLX-NEXT: subq $64, %rsp
11921165 ; NoVLX-NEXT: vpcmpeqw (%rsi), %xmm0, %xmm0
11931166 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
1194 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
11951167 ; NoVLX-NEXT: kmovw %edi, %k1
11961168 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
11971169 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
12701242 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
12711243 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
12721244 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1273 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
12741245 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
12751246 ; NoVLX-NEXT: kmovw %k0, (%rsp)
12761247 ; NoVLX-NEXT: movl (%rsp), %eax
13101281 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
13111282 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
13121283 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1313 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
13141284 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
13151285 ; NoVLX-NEXT: kmovw %k0, (%rsp)
13161286 ; NoVLX-NEXT: movl (%rsp), %eax
13481318 ; NoVLX-NEXT: subq $32, %rsp
13491319 ; NoVLX-NEXT: vpcmpeqw %ymm1, %ymm0, %ymm0
13501320 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1351 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
13521321 ; NoVLX-NEXT: kmovw %edi, %k1
13531322 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
13541323 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
13561325 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
13571326 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
13581327 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1359 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
13601328 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
13611329 ; NoVLX-NEXT: kmovw %k0, (%rsp)
13621330 ; NoVLX-NEXT: movl (%rsp), %eax
13951363 ; NoVLX-NEXT: subq $32, %rsp
13961364 ; NoVLX-NEXT: vpcmpeqw (%rsi), %ymm0, %ymm0
13971365 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1398 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
13991366 ; NoVLX-NEXT: kmovw %edi, %k1
14001367 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
14011368 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
14031370 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
14041371 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
14051372 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1406 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
14071373 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
14081374 ; NoVLX-NEXT: kmovw %k0, (%rsp)
14091375 ; NoVLX-NEXT: movl (%rsp), %eax
14491415 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
14501416 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
14511417 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1452 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
14531418 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
14541419 ; NoVLX-NEXT: kmovw %k0, (%rsp)
14551420 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
14941459 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
14951460 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
14961461 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1497 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
14981462 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
14991463 ; NoVLX-NEXT: kmovw %k0, (%rsp)
15001464 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
15351499 ; NoVLX-NEXT: subq $64, %rsp
15361500 ; NoVLX-NEXT: vpcmpeqw %ymm1, %ymm0, %ymm0
15371501 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1538 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
15391502 ; NoVLX-NEXT: kmovw %edi, %k1
15401503 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
15411504 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
15451508 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15461509 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
15471510 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1548 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
15491511 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
15501512 ; NoVLX-NEXT: kmovw %k0, (%rsp)
15511513 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
15871549 ; NoVLX-NEXT: subq $64, %rsp
15881550 ; NoVLX-NEXT: vpcmpeqw (%rsi), %ymm0, %ymm0
15891551 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1590 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
15911552 ; NoVLX-NEXT: kmovw %edi, %k1
15921553 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
15931554 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
15971558 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
15981559 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
15991560 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1600 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
16011561 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
16021562 ; NoVLX-NEXT: kmovw %k0, (%rsp)
16031563 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
18131773 ; NoVLX-NEXT: vpmovsxwd %ymm1, %zmm1
18141774 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
18151775 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
1816 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
18171776 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
18181777 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
18191778 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
18201779 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
18211780 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1822 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
18231781 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
18241782 ; NoVLX-NEXT: kmovw %k0, (%rsp)
18251783 ; NoVLX-NEXT: movl (%rsp), %ecx
19481906 ; NoVLX-NEXT: vpmovsxwd %ymm1, %zmm1
19491907 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
19501908 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
1951 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
19521909 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
19531910 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
19541911 ; NoVLX-NEXT: vpcmpeqw (%rdi), %ymm0, %ymm0
19551912 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
19561913 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
19571914 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1958 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
19591915 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
19601916 ; NoVLX-NEXT: kmovw %k0, (%rsp)
19611917 ; NoVLX-NEXT: movl (%rsp), %ecx
31163072 ; 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
31173073 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
31183074 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3119 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
31203075 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
31213076 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
31223077 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3123 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
31243078 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
31253079 ; NoVLX-NEXT: kmovw %k0, (%rsp)
31263080 ; NoVLX-NEXT: movl (%rsp), %eax
31573111 ; 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
31583112 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
31593113 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3160 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
31613114 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
31623115 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
31633116 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3164 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
31653117 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
31663118 ; NoVLX-NEXT: kmovw %k0, (%rsp)
31673119 ; NoVLX-NEXT: movl (%rsp), %eax
32133165 ; 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
32143166 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
32153167 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3216 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
32173168 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
32183169 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
32193170 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32713222 ; 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
32723223 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
32733224 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3274 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
32753225 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
32763226 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
32773227 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
33183268 ; 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
33193269 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
33203270 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3321 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
33223271 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
33233272 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
33243273 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3325 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
33263274 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
33273275 ; NoVLX-NEXT: kmovw %k0, (%rsp)
33283276 ; NoVLX-NEXT: movl (%rsp), %eax
33763324 ; 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
33773325 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
33783326 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3379 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
33803327 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
33813328 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
33823329 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
34263373 ; 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
34273374 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
34283375 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3429 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
34303376 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
34313377 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
34323378 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3433 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
34343379 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
34353380 ; NoVLX-NEXT: kmovw %k0, (%rsp)
34363381 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
34733418 ; 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
34743419 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
34753420 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3476 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
34773421 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
34783422 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
34793423 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3480 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
34813424 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
34823425 ; NoVLX-NEXT: kmovw %k0, (%rsp)
34833426 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
35353478 ; 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
35363479 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
35373480 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3538 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
35393481 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
35403482 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
35413483 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
35993541 ; 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
36003542 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
36013543 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3602 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
36033544 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
36043545 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
36053546 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
36523593 ; 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
36533594 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
36543595 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3655 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
36563596 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
36573597 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
36583598 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3659 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
36603599 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
36613600 ; NoVLX-NEXT: kmovw %k0, (%rsp)
36623601 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
37163655 ; 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
37173656 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
37183657 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
3719 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
37203658 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
37213659 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
37223660 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
48014739 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
48024740 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
48034741 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
4804 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
48054742 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
48064743 ; NoVLX-NEXT: kmovw %k0, (%rsp)
48074744 ; NoVLX-NEXT: movl (%rsp), %eax
48414778 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
48424779 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
48434780 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
4844 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
48454781 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
48464782 ; NoVLX-NEXT: kmovw %k0, (%rsp)
48474783 ; NoVLX-NEXT: movl (%rsp), %eax
48844820 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
48854821 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
48864822 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
4887 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
48884823 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
48894824 ; NoVLX-NEXT: kmovw %k0, (%rsp)
48904825 ; NoVLX-NEXT: movl (%rsp), %eax
49284863 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
49294864 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
49304865 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
4931 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
49324866 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
49334867 ; NoVLX-NEXT: kmovw %k0, (%rsp)
49344868 ; NoVLX-NEXT: movl (%rsp), %eax
49724906 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
49734907 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
49744908 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
4975 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
49764909 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
49774910 ; NoVLX-NEXT: kmovw %k0, (%rsp)
49784911 ; NoVLX-NEXT: movl (%rsp), %eax
50164949 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
50174950 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
50184951 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
5019 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
50204952 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
50214953 ; NoVLX-NEXT: kmovw %k0, (%rsp)
50224954 ; NoVLX-NEXT: movl (%rsp), %eax
50634995 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
50644996 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
50654997 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
5066 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
50674998 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
50684999 ; NoVLX-NEXT: kmovw %k0, (%rsp)
50695000 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
51085039 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
51095040 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
51105041 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
5111 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
51125042 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
51135043 ; NoVLX-NEXT: kmovw %k0, (%rsp)
51145044 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
51565086 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
51575087 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
51585088 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
5159 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
51605089 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
51615090 ; NoVLX-NEXT: kmovw %k0, (%rsp)
51625091 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
52055134 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
52065135 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
52075136 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
5208 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
52095137 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
52105138 ; NoVLX-NEXT: kmovw %k0, (%rsp)
52115139 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
52545182 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
52555183 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
52565184 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
5257 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
52585185 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
52595186 ; NoVLX-NEXT: kmovw %k0, (%rsp)
52605187 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
53035230 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
53045231 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
53055232 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
5306 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
53075233 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
53085234 ; NoVLX-NEXT: kmovw %k0, (%rsp)
53095235 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
60836009 ; 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
60846010 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
60856011 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6086 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
60876012 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
60886013 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
60896014 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
6090 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
60916015 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
60926016 ; NoVLX-NEXT: kmovw %k0, (%rsp)
60936017 ; NoVLX-NEXT: movl (%rsp), %eax
61246048 ; 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
61256049 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
61266050 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6127 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
61286051 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
61296052 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
61306053 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
6131 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
61326054 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
61336055 ; NoVLX-NEXT: kmovw %k0, (%rsp)
61346056 ; NoVLX-NEXT: movl (%rsp), %eax
61746096 ; 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
61756097 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
61766098 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6177 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
61786099 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
61796100 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
61806101 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
62266147 ; 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
62276148 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
62286149 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6229 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
62306150 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
62316151 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
62326152 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
62736193 ; 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
62746194 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
62756195 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6276 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
62776196 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
62786197 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
62796198 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
6280 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
62816199 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
62826200 ; NoVLX-NEXT: kmovw %k0, (%rsp)
62836201 ; NoVLX-NEXT: movl (%rsp), %eax
63256243 ; 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
63266244 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
63276245 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6328 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
63296246 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
63306247 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
63316248 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
63756292 ; 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
63766293 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
63776294 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6378 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
63796295 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
63806296 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
63816297 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
6382 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
63836298 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
63846299 ; NoVLX-NEXT: kmovw %k0, (%rsp)
63856300 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
64226337 ; 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
64236338 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
64246339 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6425 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
64266340 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
64276341 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
64286342 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
6429 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
64306343 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
64316344 ; NoVLX-NEXT: kmovw %k0, (%rsp)
64326345 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
64786391 ; 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
64796392 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
64806393 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6481 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
64826394 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
64836395 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
64846396 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
65366448 ; 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
65376449 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
65386450 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6539 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
65406451 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
65416452 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
65426453 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
65896500 ; 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
65906501 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
65916502 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6592 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
65936503 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
65946504 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
65956505 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
6596 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
65976506 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
65986507 ; NoVLX-NEXT: kmovw %k0, (%rsp)
65996508 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
66476556 ; 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
66486557 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
66496558 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
6650 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
66516559 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
66526560 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
66536561 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
74697377 ; 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
74707378 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
74717379 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7472 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
74737380 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
74747381 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
74757382 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
75127419 ; 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
75137420 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
75147421 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7515 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
75167422 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
75177423 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
75187424 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
75707476 ; 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
75717477 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
75727478 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7573 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
75747479 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
75757480 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
75767481 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
76307535 ; 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
76317536 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
76327537 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7633 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
76347538 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
76357539 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
76367540 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
76797583 ; 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
76807584 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
76817585 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7682 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
76837586 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
76847587 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
76857588 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
77397642 ; 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
77407643 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
77417644 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7742 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
77437645 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
77447646 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
77457647 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
77917693 ; 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
77927694 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
77937695 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7794 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
77957696 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
77967697 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
77977698 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
78407741 ; 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
78417742 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
78427743 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7843 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
78447744 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
78457745 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
78467746 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
79047804 ; 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
79057805 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
79067806 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7907 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
79087807 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
79097808 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
79107809 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
79707869 ; 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
79717870 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
79727871 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
7973 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
79747872 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
79757873 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
79767874 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
80257923 ; 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
80267924 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
80277925 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
8028 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
80297926 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
80307927 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
80317928 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
80917988 ; 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
80927989 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
80937990 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
8094 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
80957991 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
80967992 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
80977993 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
91259021 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
91269022 ; NoVLX-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm0
91279023 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9128 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
91299024 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
91309025 ; NoVLX-NEXT: kmovw %k0, (%rsp)
91319026 ; NoVLX-NEXT: movl (%rsp), %eax
91629057 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
91639058 ; NoVLX-NEXT: vpcmpgtb (%rdi), %xmm0, %xmm0
91649059 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9165 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
91669060 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
91679061 ; NoVLX-NEXT: kmovw %k0, (%rsp)
91689062 ; NoVLX-NEXT: movl (%rsp), %eax
91999093 ; NoVLX-NEXT: subq $32, %rsp
92009094 ; NoVLX-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm0
92019095 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9202 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
92039096 ; NoVLX-NEXT: kmovw %edi, %k1
92049097 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
92059098 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
92079100 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
92089101 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
92099102 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9210 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
92119103 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
92129104 ; NoVLX-NEXT: kmovw %k0, (%rsp)
92139105 ; NoVLX-NEXT: movl (%rsp), %eax
92459137 ; NoVLX-NEXT: subq $32, %rsp
92469138 ; NoVLX-NEXT: vpcmpgtb (%rsi), %xmm0, %xmm0
92479139 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9248 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
92499140 ; NoVLX-NEXT: kmovw %edi, %k1
92509141 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
92519142 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
92539144 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
92549145 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
92559146 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9256 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
92579147 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
92589148 ; NoVLX-NEXT: kmovw %k0, (%rsp)
92599149 ; NoVLX-NEXT: movl (%rsp), %eax
92969186 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
92979187 ; NoVLX-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm0
92989188 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9299 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
93009189 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
93019190 ; NoVLX-NEXT: kmovw %k0, (%rsp)
93029191 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
93389227 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
93399228 ; NoVLX-NEXT: vpcmpgtb (%rdi), %xmm0, %xmm0
93409229 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9341 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
93429230 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
93439231 ; NoVLX-NEXT: kmovw %k0, (%rsp)
93449232 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
93789266 ; NoVLX-NEXT: subq $64, %rsp
93799267 ; NoVLX-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm0
93809268 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9381 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
93829269 ; NoVLX-NEXT: kmovw %edi, %k1
93839270 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
93849271 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
93889275 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
93899276 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
93909277 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9391 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
93929278 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
93939279 ; NoVLX-NEXT: kmovw %k0, (%rsp)
93949280 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
94299315 ; NoVLX-NEXT: subq $64, %rsp
94309316 ; NoVLX-NEXT: vpcmpgtb (%rsi), %xmm0, %xmm0
94319317 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9432 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
94339318 ; NoVLX-NEXT: kmovw %edi, %k1
94349319 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
94359320 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
94399324 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
94409325 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
94419326 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9442 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
94439327 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
94449328 ; NoVLX-NEXT: kmovw %k0, (%rsp)
94459329 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
94839367 ; NoVLX-NEXT: vpcmpgtb %ymm1, %ymm0, %ymm0
94849368 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
94859369 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
9486 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
94879370 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
94889371 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
94899372 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9490 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
94919373 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
94929374 ; NoVLX-NEXT: kmovw %k0, (%rsp)
94939375 ; NoVLX-NEXT: movl (%rsp), %ecx
95309412 ; NoVLX-NEXT: vpcmpgtb (%rdi), %ymm0, %ymm0
95319413 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
95329414 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
9533 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
95349415 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
95359416 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
95369417 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
9537 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
95389418 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
95399419 ; NoVLX-NEXT: kmovw %k0, (%rsp)
95409420 ; NoVLX-NEXT: movl (%rsp), %ecx
96909570 ; NoVLX: # %bb.0: # %entry
96919571 ; NoVLX-NEXT: vpcmpgtw %xmm1, %xmm0, %xmm0
96929572 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
9693 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
96949573 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
96959574 ; NoVLX-NEXT: kmovw %k0, %eax
96969575 ; NoVLX-NEXT: # kill: def %ax killed %ax killed %eax
97179596 ; NoVLX: # %bb.0: # %entry
97189597 ; NoVLX-NEXT: vpcmpgtw (%rdi), %xmm0, %xmm0
97199598 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
9720 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
97219599 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
97229600 ; NoVLX-NEXT: kmovw %k0, %eax
97239601 ; NoVLX-NEXT: # kill: def %ax killed %ax killed %eax
97469624 ; NoVLX: # %bb.0: # %entry
97479625 ; NoVLX-NEXT: vpcmpgtw %xmm1, %xmm0, %xmm0
97489626 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
9749 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
97509627 ; NoVLX-NEXT: kmovw %edi, %k1
97519628 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
97529629 ; NoVLX-NEXT: kmovw %k0, %eax
97779654 ; NoVLX: # %bb.0: # %entry
97789655 ; NoVLX-NEXT: vpcmpgtw (%rsi), %xmm0, %xmm0
97799656 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
9780 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
97819657 ; NoVLX-NEXT: kmovw %edi, %k1
97829658 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
97839659 ; NoVLX-NEXT: kmovw %k0, %eax
98159691 ; NoVLX-NEXT: subq $32, %rsp
98169692 ; NoVLX-NEXT: vpcmpgtw %xmm1, %xmm0, %xmm0
98179693 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
9818 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
98199694 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
98209695 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
98219696 ; NoVLX-NEXT: kmovw %k1, %r8d
98799754 ; NoVLX-NEXT: subq $32, %rsp
98809755 ; NoVLX-NEXT: vpcmpgtw (%rdi), %xmm0, %xmm0
98819756 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
9882 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
98839757 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
98849758 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
98859759 ; NoVLX-NEXT: kmovw %k1, %r8d
99459819 ; NoVLX-NEXT: subq $32, %rsp
99469820 ; NoVLX-NEXT: vpcmpgtw %xmm1, %xmm0, %xmm0
99479821 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
9948 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
99499822 ; NoVLX-NEXT: kmovw %edi, %k1
99509823 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
99519824 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
100139886 ; NoVLX-NEXT: subq $32, %rsp
100149887 ; NoVLX-NEXT: vpcmpgtw (%rsi), %xmm0, %xmm0
100159888 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
10016 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
100179889 ; NoVLX-NEXT: kmovw %edi, %k1
100189890 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
100199891 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
100829954 ; NoVLX-NEXT: subq $64, %rsp
100839955 ; NoVLX-NEXT: vpcmpgtw %xmm1, %xmm0, %xmm0
100849956 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
10085 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
100869957 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
100879958 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
100889959 ; NoVLX-NEXT: kmovw %k1, %r8d
1015110022 ; NoVLX-NEXT: subq $64, %rsp
1015210023 ; NoVLX-NEXT: vpcmpgtw (%rdi), %xmm0, %xmm0
1015310024 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
10154 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1015510025 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
1015610026 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
1015710027 ; NoVLX-NEXT: kmovw %k1, %r8d
1022210092 ; NoVLX-NEXT: subq $64, %rsp
1022310093 ; NoVLX-NEXT: vpcmpgtw %xmm1, %xmm0, %xmm0
1022410094 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
10225 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1022610095 ; NoVLX-NEXT: kmovw %edi, %k1
1022710096 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
1022810097 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
1029510164 ; NoVLX-NEXT: subq $64, %rsp
1029610165 ; NoVLX-NEXT: vpcmpgtw (%rsi), %xmm0, %xmm0
1029710166 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
10298 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
1029910167 ; NoVLX-NEXT: kmovw %edi, %k1
1030010168 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
1030110169 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
1037410242 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1037510243 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1037610244 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10377 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1037810245 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1037910246 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1038010247 ; NoVLX-NEXT: movl (%rsp), %eax
1041410281 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1041510282 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1041610283 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10417 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1041810284 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1041910285 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1042010286 ; NoVLX-NEXT: movl (%rsp), %eax
1045210318 ; NoVLX-NEXT: subq $32, %rsp
1045310319 ; NoVLX-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
1045410320 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
10455 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1045610321 ; NoVLX-NEXT: kmovw %edi, %k1
1045710322 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1045810323 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1046010325 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1046110326 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1046210327 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10463 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1046410328 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1046510329 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1046610330 ; NoVLX-NEXT: movl (%rsp), %eax
1049910363 ; NoVLX-NEXT: subq $32, %rsp
1050010364 ; NoVLX-NEXT: vpcmpgtw (%rsi), %ymm0, %ymm0
1050110365 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
10502 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1050310366 ; NoVLX-NEXT: kmovw %edi, %k1
1050410367 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1050510368 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1050710370 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1050810371 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1050910372 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10510 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1051110373 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1051210374 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1051310375 ; NoVLX-NEXT: movl (%rsp), %eax
1055310415 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1055410416 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1055510417 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10556 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1055710418 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1055810419 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1055910420 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1059810459 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1059910460 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1060010461 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10601 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1060210462 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1060310463 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1060410464 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1063910499 ; NoVLX-NEXT: subq $64, %rsp
1064010500 ; NoVLX-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
1064110501 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
10642 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1064310502 ; NoVLX-NEXT: kmovw %edi, %k1
1064410503 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1064510504 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1064910508 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1065010509 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1065110510 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10652 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1065310511 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1065410512 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1065510513 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1069110549 ; NoVLX-NEXT: subq $64, %rsp
1069210550 ; NoVLX-NEXT: vpcmpgtw (%rsi), %ymm0, %ymm0
1069310551 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
10694 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1069510552 ; NoVLX-NEXT: kmovw %edi, %k1
1069610553 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1069710554 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1070110558 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1070210559 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1070310560 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10704 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1070510561 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1070610562 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1070710563 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1091710773 ; NoVLX-NEXT: vpmovsxwd %ymm1, %zmm1
1091810774 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
1091910775 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
10920 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1092110776 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1092210777 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1092310778 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1092410779 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1092510780 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10926 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1092710781 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1092810782 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1092910783 ; NoVLX-NEXT: movl (%rsp), %ecx
1105210906 ; NoVLX-NEXT: vpmovsxwd %ymm1, %zmm1
1105310907 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
1105410908 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
11055 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1105610909 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1105710910 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1105810911 ; NoVLX-NEXT: vpcmpgtw (%rdi), %ymm0, %ymm0
1105910912 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1106010913 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1106110914 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
11062 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1106310915 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1106410916 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1106510917 ; NoVLX-NEXT: movl (%rsp), %ecx
1222012072 ; 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
1222112073 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1222212074 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12223 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1222412075 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1222512076 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1222612077 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
12227 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1222812078 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1222912079 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1223012080 ; NoVLX-NEXT: movl (%rsp), %eax
1226112111 ; 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
1226212112 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1226312113 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12264 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1226512114 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1226612115 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1226712116 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
12268 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1226912117 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1227012118 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1227112119 ; NoVLX-NEXT: movl (%rsp), %eax
1231712165 ; 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
1231812166 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1231912167 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12320 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1232112168 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1232212169 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1232312170 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1237512222 ; 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
1237612223 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1237712224 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12378 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1237912225 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1238012226 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1238112227 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1242212268 ; 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
1242312269 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1242412270 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12425 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1242612271 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1242712272 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1242812273 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
12429 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1243012274 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1243112275 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1243212276 ; NoVLX-NEXT: movl (%rsp), %eax
1248012324 ; 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
1248112325 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1248212326 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12483 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1248412327 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1248512328 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1248612329 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1253012373 ; 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
1253112374 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1253212375 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12533 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1253412376 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1253512377 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1253612378 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
12537 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1253812379 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1253912380 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1254012381 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1257712418 ; 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
1257812419 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1257912420 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12580 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1258112421 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1258212422 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1258312423 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
12584 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1258512424 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1258612425 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1258712426 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1263912478 ; 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
1264012479 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1264112480 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12642 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1264312481 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1264412482 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1264512483 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1270312541 ; 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
1270412542 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1270512543 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12706 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1270712544 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1270812545 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1270912546 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1275612593 ; 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
1275712594 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1275812595 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12759 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1276012596 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1276112597 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1276212598 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
12763 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1276412599 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1276512600 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1276612601 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1282012655 ; 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
1282112656 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1282212657 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
12823 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1282412658 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1282512659 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1282612660 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1390513739 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1390613740 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1390713741 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
13908 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1390913742 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1391013743 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1391113744 ; NoVLX-NEXT: movl (%rsp), %eax
1394513778 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1394613779 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1394713780 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
13948 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1394913781 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1395013782 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1395113783 ; NoVLX-NEXT: movl (%rsp), %eax
1398813820 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1398913821 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1399013822 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
13991 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1399213823 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1399313824 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1399413825 ; NoVLX-NEXT: movl (%rsp), %eax
1403213863 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1403313864 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1403413865 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14035 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1403613866 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1403713867 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1403813868 ; NoVLX-NEXT: movl (%rsp), %eax
1407613906 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1407713907 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1407813908 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14079 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1408013909 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1408113910 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1408213911 ; NoVLX-NEXT: movl (%rsp), %eax
1412013949 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1412113950 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1412213951 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14123 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1412413952 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1412513953 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1412613954 ; NoVLX-NEXT: movl (%rsp), %eax
1416713995 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1416813996 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1416913997 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14170 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1417113998 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1417213999 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1417314000 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1421214039 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1421314040 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1421414041 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14215 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1421614042 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1421714043 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1421814044 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1426014086 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1426114087 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1426214088 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14263 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1426414089 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1426514090 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1426614091 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1430914134 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1431014135 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1431114136 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14312 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1431314137 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1431414138 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1431514139 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1435814182 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1435914183 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1436014184 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14361 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1436214185 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1436314186 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1436414187 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1440714230 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1440814231 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1440914232 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
14410 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1441114233 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1441214234 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1441314235 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1518715009 ; 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
1518815010 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1518915011 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15190 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1519115012 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1519215013 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1519315014 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
15194 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1519515015 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1519615016 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1519715017 ; NoVLX-NEXT: movl (%rsp), %eax
1522815048 ; 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
1522915049 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1523015050 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15231 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1523215051 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1523315052 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1523415053 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
15235 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1523615054 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1523715055 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1523815056 ; NoVLX-NEXT: movl (%rsp), %eax
1527815096 ; 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
1527915097 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1528015098 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15281 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1528215099 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1528315100 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1528415101 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1533015147 ; 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
1533115148 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1533215149 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15333 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1533415150 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1533515151 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1533615152 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1537715193 ; 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
1537815194 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1537915195 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15380 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1538115196 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1538215197 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1538315198 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
15384 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1538515199 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1538615200 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1538715201 ; NoVLX-NEXT: movl (%rsp), %eax
1542915243 ; 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
1543015244 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1543115245 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15432 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1543315246 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1543415247 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1543515248 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1547915292 ; 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
1548015293 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1548115294 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15482 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1548315295 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1548415296 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1548515297 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
15486 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1548715298 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1548815299 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1548915300 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1552615337 ; 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
1552715338 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1552815339 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15529 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1553015340 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1553115341 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1553215342 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
15533 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1553415343 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1553515344 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1553615345 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1558215391 ; 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
1558315392 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1558415393 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15585 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1558615394 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1558715395 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1558815396 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1564015448 ; 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
1564115449 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1564215450 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15643 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1564415451 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1564515452 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1564615453 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1569315500 ; 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
1569415501 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1569515502 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15696 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1569715503 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1569815504 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1569915505 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
15700 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1570115506 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1570215507 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1570315508 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1575115556 ; 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
1575215557 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1575315558 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
15754 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1575515559 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1575615560 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1575715561 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1657316377 ; 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
1657416378 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1657516379 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16576 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1657716380 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1657816381 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1657916382 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1661616419 ; 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
1661716420 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1661816421 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16619 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1662016422 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1662116423 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1662216424 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1667416476 ; 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
1667516477 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1667616478 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16677 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1667816479 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1667916480 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1668016481 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1673416535 ; 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
1673516536 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1673616537 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16737 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1673816538 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1673916539 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1674016540 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1678316583 ; 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
1678416584 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1678516585 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16786 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1678716586 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1678816587 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1678916588 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1684316642 ; 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
1684416643 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1684516644 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16846 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1684716645 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1684816646 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1684916647 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1689516693 ; 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
1689616694 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1689716695 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16898 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1689916696 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1690016697 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1690116698 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1694416741 ; 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
1694516742 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1694616743 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
16947 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1694816744 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1694916745 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1695016746 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1700816804 ; 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
1700916805 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1701016806 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
17011 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1701216807 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1701316808 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1701416809 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1707416869 ; 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
1707516870 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1707616871 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
17077 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1707816872 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1707916873 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1708016874 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1712916923 ; 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
1713016924 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1713116925 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
17132 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1713316926 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1713416927 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1713516928 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1719516988 ; 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
1719616989 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
1719716990 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
17198 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
1719916991 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
1720016992 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1720116993 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
1831818110 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1831918111 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1832018112 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
18321 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1832218113 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1832318114 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1832418115 ; NoVLX-NEXT: movl (%rsp), %eax
1836718158 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1836818159 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1836918160 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
18370 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1837118161 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1837218162 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1837318163 ; NoVLX-NEXT: movl (%rsp), %eax
1850918299 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1851018300 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1851118301 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
18512 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1851318302 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1851418303 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1851518304 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1856318352 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1856418353 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1856518354 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
18566 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1856718355 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1856818356 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1856918357 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1963119419 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1963219420 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1963319421 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
19634 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1963519422 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1963619423 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1963719424 ; NoVLX-NEXT: movl (%rsp), %eax
1968119468 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1968219469 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1968319470 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
19684 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1968519471 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1968619472 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1968719473 ; NoVLX-NEXT: movl (%rsp), %eax
1983019616 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1983119617 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1983219618 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
19833 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1983419619 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1983519620 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1983619621 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
1988519670 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1988619671 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
1988719672 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
19888 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1988919673 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
1989019674 ; NoVLX-NEXT: kmovw %k0, (%rsp)
1989119675 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2143821222 ; 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
2143921223 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2144021224 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21441 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2144221225 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2144321226 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2144421227 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2148221265 ; 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
2148321266 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2148421267 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21485 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2148621268 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2148721269 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2148821270 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2153821320 ; 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
2153921321 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2154021322 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21541 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2154221323 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2154321324 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2154421325 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2159721378 ; 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
2159821379 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2159921380 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21600 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2160121381 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2160221382 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2160321383 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2164621426 ; 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
2164721427 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2164821428 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21649 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2165021429 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2165121430 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2165221431 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2170421483 ; 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
2170521484 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2170621485 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21707 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2170821486 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2170921487 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2171021488 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2175621534 ; 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
2175721535 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2175821536 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21759 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2176021537 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2176121538 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2176221539 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2180621583 ; 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
2180721584 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2180821585 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21809 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2181021586 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2181121587 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2181221588 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2186821644 ; 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
2186921645 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2187021646 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21871 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2187221647 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2187321648 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2187421649 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2193321708 ; 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
2193421709 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2193521710 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21936 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2193721711 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2193821712 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2193921713 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2198821762 ; 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
2198921763 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2199021764 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
21991 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2199221765 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2199321766 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2199421767 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2205221825 ; 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
2205321826 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2205421827 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
22055 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2205621828 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2205721829 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2205821830 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2313722909 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2313822910 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2313922911 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23140 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2314122912 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2314222913 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2314322914 ; NoVLX-NEXT: movl (%rsp), %eax
2317722948 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2317822949 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2317922950 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23180 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2318122951 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2318222952 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2318322953 ; NoVLX-NEXT: movl (%rsp), %eax
2322022990 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2322122991 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2322222992 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23223 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2322422993 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2322522994 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2322622995 ; NoVLX-NEXT: movl (%rsp), %eax
2326423033 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2326523034 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2326623035 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23267 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2326823036 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2326923037 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2327023038 ; NoVLX-NEXT: movl (%rsp), %eax
2330823076 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2330923077 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2331023078 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23311 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2331223079 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2331323080 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2331423081 ; NoVLX-NEXT: movl (%rsp), %eax
2335223119 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2335323120 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2335423121 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23355 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2335623122 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2335723123 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2335823124 ; NoVLX-NEXT: movl (%rsp), %eax
2339923165 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2340023166 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2340123167 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23402 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2340323168 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2340423169 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2340523170 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2344423209 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2344523210 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2344623211 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23447 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2344823212 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2344923213 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2345023214 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2349223256 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2349323257 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2349423258 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23495 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2349623259 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2349723260 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2349823261 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2354123304 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2354223305 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2354323306 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23544 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2354523307 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2354623308 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2354723309 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2359023352 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2359123353 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2359223354 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23593 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2359423355 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2359523356 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2359623357 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2363923400 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2364023401 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2364123402 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
23642 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2364323403 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2364423404 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2364523405 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2444524205 ; 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
2444624206 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2444724207 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24448 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2444924208 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2445024209 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2445124210 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2448924248 ; 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
2449024249 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2449124250 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24492 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2449324251 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2449424252 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2449524253 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2453924297 ; 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
2454024298 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2454124299 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24542 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2454324300 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2454424301 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2454524302 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2459224349 ; 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
2459324350 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2459424351 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24595 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2459624352 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2459724353 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2459824354 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2464124397 ; 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
2464224398 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2464324399 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24644 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2464524400 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2464624401 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2464724402 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2469324448 ; 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
2469424449 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2469524450 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24696 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2469724451 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2469824452 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2469924453 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2474524499 ; 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
2474624500 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2474724501 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24748 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2474924502 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2475024503 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2475124504 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2479524548 ; 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
2479624549 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2479724550 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24798 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2479924551 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2480024552 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2480124553 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2485124603 ; 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
2485224604 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2485324605 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24854 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2485524606 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2485624607 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2485724608 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2491024661 ; 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
2491124662 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2491224663 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24913 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2491424664 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2491524665 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2491624666 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2496524715 ; 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
2496624716 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2496724717 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
24968 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2496924718 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2497024719 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2497124720 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2502324772 ; 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
2502424773 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2502524774 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
25026 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2502724775 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2502824776 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2502924777 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2587525623 ; 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
2587625624 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2587725625 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
25878 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2587925626 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2588025627 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2588125628 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2592125668 ; 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
2592225669 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2592325670 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
25924 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2592525671 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2592625672 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2592725673 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2598125727 ; 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
2598225728 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2598325729 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
25984 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2598525730 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2598625731 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2598725732 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2604425789 ; 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
2604525790 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2604625791 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26047 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2604825792 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2604925793 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2605025794 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2609525839 ; 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
2609625840 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2609725841 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26098 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2609925842 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2610025843 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2610125844 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2615725900 ; 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
2615825901 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2615925902 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26160 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2616125903 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2616225904 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2616325905 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2621125953 ; 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
2621225954 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2621325955 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26214 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2621525956 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2621625957 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2621725958 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2626326004 ; 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
2626426005 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2626526006 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26266 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2626726007 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2626826008 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2626926009 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2632926069 ; 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
2633026070 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2633126071 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26332 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2633326072 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2633426073 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2633526074 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2639826137 ; 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
2639926138 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2640026139 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26401 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2640226140 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2640326141 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2640426142 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2645526193 ; 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
2645626194 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2645726195 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26458 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2645926196 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2646026197 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2646126198 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2652326260 ; 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
2652426261 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2652526262 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
26526 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2652726263 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2652826264 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2652926265 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
2756027296 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2756127297 ; NoVLX-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
2756227298 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27563 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2756427299 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2756527300 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2756627301 ; NoVLX-NEXT: movl (%rsp), %eax
2760027335 ; NoVLX-NEXT: vpxor (%rdi), %xmm1, %xmm1
2760127336 ; NoVLX-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
2760227337 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27603 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2760427338 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2760527339 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2760627340 ; NoVLX-NEXT: movl (%rsp), %eax
2764027374 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2764127375 ; NoVLX-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
2764227376 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27643 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2764427377 ; NoVLX-NEXT: kmovw %edi, %k1
2764527378 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
2764627379 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2764827381 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2764927382 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2765027383 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27651 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2765227384 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2765327385 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2765427386 ; NoVLX-NEXT: movl (%rsp), %eax
2768927421 ; NoVLX-NEXT: vpxor (%rsi), %xmm1, %xmm1
2769027422 ; NoVLX-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
2769127423 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27692 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2769327424 ; NoVLX-NEXT: kmovw %edi, %k1
2769427425 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
2769527426 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2769727428 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2769827429 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2769927430 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27700 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2770127431 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2770227432 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2770327433 ; NoVLX-NEXT: movl (%rsp), %eax
2774327473 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2774427474 ; NoVLX-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
2774527475 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27746 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2774727476 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2774827477 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2774927478 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2778827517 ; NoVLX-NEXT: vpxor (%rdi), %xmm1, %xmm1
2778927518 ; NoVLX-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
2779027519 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27791 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2779227520 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2779327521 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2779427522 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2783127559 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2783227560 ; NoVLX-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
2783327561 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27834 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2783527562 ; NoVLX-NEXT: kmovw %edi, %k1
2783627563 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
2783727564 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2784127568 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2784227569 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2784327570 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27844 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2784527571 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2784627572 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2784727573 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2788527611 ; NoVLX-NEXT: vpxor (%rsi), %xmm1, %xmm1
2788627612 ; NoVLX-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
2788727613 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27888 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2788927614 ; NoVLX-NEXT: kmovw %edi, %k1
2789027615 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
2789127616 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2789527620 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2789627621 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2789727622 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27898 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2789927623 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2790027624 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2790127625 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2794227666 ; NoVLX-NEXT: vpcmpgtb %ymm0, %ymm1, %ymm0
2794327667 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2794427668 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
27945 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2794627669 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2794727670 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2794827671 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27949 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2795027672 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2795127673 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2795227674 ; NoVLX-NEXT: movl (%rsp), %ecx
2799227714 ; NoVLX-NEXT: vpcmpgtb %ymm0, %ymm1, %ymm0
2799327715 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
2799427716 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
27995 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2799627717 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2799727718 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2799827719 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
27999 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2800027720 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2800127721 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2800227722 ; NoVLX-NEXT: movl (%rsp), %ecx
2816127881 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2816227882 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2816327883 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28164 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2816527884 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
2816627885 ; NoVLX-NEXT: kmovw %k0, %eax
2816727886 ; NoVLX-NEXT: # kill: def %ax killed %ax killed %eax
2819127910 ; NoVLX-NEXT: vpxor (%rdi), %xmm1, %xmm1
2819227911 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2819327912 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28194 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2819527913 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
2819627914 ; NoVLX-NEXT: kmovw %k0, %eax
2819727915 ; NoVLX-NEXT: # kill: def %ax killed %ax killed %eax
2822327941 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2822427942 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2822527943 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28226 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2822727944 ; NoVLX-NEXT: kmovw %edi, %k1
2822827945 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
2822927946 ; NoVLX-NEXT: kmovw %k0, %eax
2825727974 ; NoVLX-NEXT: vpxor (%rsi), %xmm1, %xmm1
2825827975 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2825927976 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28260 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2826127977 ; NoVLX-NEXT: kmovw %edi, %k1
2826227978 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
2826327979 ; NoVLX-NEXT: kmovw %k0, %eax
2829828014 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2829928015 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2830028016 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28301 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2830228017 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
2830328018 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
2830428019 ; NoVLX-NEXT: kmovw %k1, %r8d
2836528080 ; NoVLX-NEXT: vpxor (%rdi), %xmm1, %xmm1
2836628081 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2836728082 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28368 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2836928083 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
2837028084 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
2837128085 ; NoVLX-NEXT: kmovw %k1, %r8d
2843428148 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2843528149 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2843628150 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28437 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2843828151 ; NoVLX-NEXT: kmovw %edi, %k1
2843928152 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
2844028153 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
2850528218 ; NoVLX-NEXT: vpxor (%rsi), %xmm1, %xmm1
2850628219 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2850728220 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28508 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2850928221 ; NoVLX-NEXT: kmovw %edi, %k1
2851028222 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
2851128223 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
2857728289 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2857828290 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2857928291 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28580 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2858128292 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
2858228293 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
2858328294 ; NoVLX-NEXT: kmovw %k1, %r8d
2864928360 ; NoVLX-NEXT: vpxor (%rdi), %xmm1, %xmm1
2865028361 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2865128362 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28652 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2865328363 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0
2865428364 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
2865528365 ; NoVLX-NEXT: kmovw %k1, %r8d
2872328433 ; NoVLX-NEXT: vpxor %xmm2, %xmm1, %xmm1
2872428434 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2872528435 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28726 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2872728436 ; NoVLX-NEXT: kmovw %edi, %k1
2872828437 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
2872928438 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
2879928508 ; NoVLX-NEXT: vpxor (%rsi), %xmm1, %xmm1
2880028509 ; NoVLX-NEXT: vpcmpgtw %xmm0, %xmm1, %xmm0
2880128510 ; NoVLX-NEXT: vpmovsxwq %xmm0, %zmm0
28802 ; NoVLX-NEXT: vpsllq $63, %zmm0, %zmm0
2880328511 ; NoVLX-NEXT: kmovw %edi, %k1
2880428512 ; NoVLX-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1}
2880528513 ; NoVLX-NEXT: kshiftrw $7, %k0, %k1
2888128589 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2888228590 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2888328591 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
28884 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2888528592 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2888628593 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2888728594 ; NoVLX-NEXT: movl (%rsp), %eax
2892428631 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2892528632 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2892628633 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
28927 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2892828634 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2892928635 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2893028636 ; NoVLX-NEXT: movl (%rsp), %eax
2896528671 ; NoVLX-NEXT: vpxor %ymm2, %ymm1, %ymm1
2896628672 ; NoVLX-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2896728673 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
28968 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2896928674 ; NoVLX-NEXT: kmovw %edi, %k1
2897028675 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
2897128676 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2897328678 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2897428679 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2897528680 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
28976 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2897728681 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2897828682 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2897928683 ; NoVLX-NEXT: movl (%rsp), %eax
2901528719 ; NoVLX-NEXT: vpxor (%rsi), %ymm1, %ymm1
2901628720 ; NoVLX-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2901728721 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
29018 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2901928722 ; NoVLX-NEXT: kmovw %edi, %k1
2902028723 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
2902128724 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2902328726 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2902428727 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2902528728 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
29026 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2902728729 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2902828730 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2902928731 ; NoVLX-NEXT: movl (%rsp), %eax
2907228774 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2907328775 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2907428776 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
29075 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2907628777 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2907728778 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2907828779 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2912028821 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2912128822 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2912228823 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
29123 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2912428824 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2912528825 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2912628826 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2916428864 ; NoVLX-NEXT: vpxor %ymm2, %ymm1, %ymm1
2916528865 ; NoVLX-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2916628866 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
29167 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2916828867 ; NoVLX-NEXT: kmovw %edi, %k1
2916928868 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
2917028869 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2917428873 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2917528874 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2917628875 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
29177 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2917828876 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2917928877 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2918028878 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2921928917 ; NoVLX-NEXT: vpxor (%rsi), %ymm1, %ymm1
2922028918 ; NoVLX-NEXT: vpcmpgtw %ymm0, %ymm1, %ymm0
2922128919 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
29222 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2922328920 ; NoVLX-NEXT: kmovw %edi, %k1
2922428921 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
2922528922 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
2922928926 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
2923028927 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2923128928 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
29232 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2923328929 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2923428930 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2923528931 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
2944729143 ; NoVLX-NEXT: vpmovsxwd %ymm2, %zmm2
2944829144 ; NoVLX-NEXT: vpmovdb %zmm2, %xmm2
2944929145 ; NoVLX-NEXT: vpmovsxbd %xmm2, %zmm2
29450 ; NoVLX-NEXT: vpslld $31, %zmm2, %zmm2
2945129146 ; NoVLX-NEXT: vptestmd %zmm2, %zmm2, %k0
2945229147 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2945329148 ; NoVLX-NEXT: vpxor %ymm4, %ymm0, %ymm0
2945629151 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2945729152 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2945829153 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
29459 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2946029154 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2946129155 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2946229156 ; NoVLX-NEXT: movl (%rsp), %ecx
2958829282 ; NoVLX-NEXT: vpmovsxwd %ymm1, %zmm1
2958929283 ; NoVLX-NEXT: vpmovdb %zmm1, %xmm1
2959029284 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
29591 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
2959229285 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
2959329286 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2959429287 ; NoVLX-NEXT: vpxor %ymm2, %ymm0, %ymm0
2959729290 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
2959829291 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
2959929292 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
29600 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
2960129293 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
2960229294 ; NoVLX-NEXT: kmovw %k0, (%rsp)
2960329295 ; NoVLX-NEXT: movl (%rsp), %ecx
3080730499 ; 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
3080830500 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3080930501 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
30810 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3081130502 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3081230503 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3081330504 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
30814 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3081530505 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3081630506 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3081730507 ; NoVLX-NEXT: movl (%rsp), %eax
3085130541 ; 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
3085230542 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3085330543 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
30854 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3085530544 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3085630545 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3085730546 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
30858 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3085930547 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3086030548 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3086130549 ; NoVLX-NEXT: movl (%rsp), %eax
3091030598 ; 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
3091130599 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3091230600 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
30913 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3091430601 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3091530602 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3091630603 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3097130658 ; 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
3097230659 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3097330660 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
30974 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3097530661 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3097630662 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3097730663 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3102130707 ; 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
3102230708 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3102330709 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
31024 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3102530710 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3102630711 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3102730712 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
31028 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3102930713 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3103030714 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3103130715 ; NoVLX-NEXT: movl (%rsp), %eax
3108230766 ; 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
3108330767 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3108430768 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
31085 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3108630769 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3108730770 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3108830771 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3113530818 ; 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
3113630819 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3113730820 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
31138 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3113930821 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3114030822 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3114130823 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
31142 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3114330824 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3114430825 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3114530826 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3118530866 ; 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
3118630867 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3118730868 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
31188 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3118930869 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3119030870 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3119130871 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
31192 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3119330872 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3119430873 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3119530874 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3125030929 ; 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
3125130930 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3125230931 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
31253 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3125430932 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3125530933 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3125630934 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3131730995 ; 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
3131830996 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3131930997 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
31320 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3132130998 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3132230999 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3132331000 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3137331050 ; 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
3137431051 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3137531052 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
31376 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3137731053 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3137831054 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3137931055 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
31380 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3138131056 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3138231057 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3138331058 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3144031115 ; 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
3144131116 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3144231117 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
31443 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3144431118 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3144531119 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3144631120 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3252532199 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3252632200 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3252732201 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32528 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3252932202 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3253032203 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3253132204 ; NoVLX-NEXT: movl (%rsp), %eax
3256532238 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3256632239 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3256732240 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32568 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3256932241 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3257032242 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3257132243 ; NoVLX-NEXT: movl (%rsp), %eax
3260832280 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3260932281 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3261032282 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32611 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3261232283 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3261332284 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3261432285 ; NoVLX-NEXT: movl (%rsp), %eax
3265232323 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3265332324 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3265432325 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32655 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3265632326 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3265732327 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3265832328 ; NoVLX-NEXT: movl (%rsp), %eax
3269632366 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3269732367 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3269832368 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32699 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3270032369 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3270132370 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3270232371 ; NoVLX-NEXT: movl (%rsp), %eax
3274032409 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3274132410 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3274232411 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32743 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3274432412 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3274532413 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3274632414 ; NoVLX-NEXT: movl (%rsp), %eax
3278732455 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3278832456 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3278932457 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32790 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3279132458 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3279232459 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3279332460 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3283232499 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3283332500 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3283432501 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32835 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3283632502 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3283732503 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3283832504 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3288032546 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3288132547 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3288232548 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32883 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3288432549 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3288532550 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3288632551 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3292932594 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3293032595 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3293132596 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32932 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3293332597 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3293432598 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3293532599 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3297832642 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3297932643 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3298032644 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
32981 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3298232645 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3298332646 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3298432647 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3302732690 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3302832691 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3302932692 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
33030 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3303132693 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3303232694 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3303332695 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3386433526 ; 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
3386533527 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3386633528 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
33867 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3386833529 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3386933530 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3387033531 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
33871 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3387233532 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3387333533 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3387433534 ; NoVLX-NEXT: movl (%rsp), %eax
3390833568 ; 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
3390933569 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3391033570 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
33911 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3391233571 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3391333572 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3391433573 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
33915 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3391633574 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3391733575 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3391833576 ; NoVLX-NEXT: movl (%rsp), %eax
3396133619 ; 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
3396233620 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3396333621 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
33964 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3396533622 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3396633623 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3396733624 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3401633673 ; 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
3401733674 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3401833675 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34019 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3402033676 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3402133677 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3402233678 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3406633722 ; 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
3406733723 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3406833724 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34069 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3407033725 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3407133726 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3407233727 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
34073 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3407433728 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3407533729 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3407633730 ; NoVLX-NEXT: movl (%rsp), %eax
3412133775 ; 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
3412233776 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3412333777 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34124 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3412533778 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3412633779 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3412733780 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3417433827 ; 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
3417533828 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3417633829 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34177 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3417833830 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3417933831 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3418033832 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
34181 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3418233833 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3418333834 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3418433835 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3422433875 ; 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
3422533876 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3422633877 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34227 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3422833878 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3422933879 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3423033880 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
34231 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3423233881 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3423333882 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3423433883 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3428333932 ; 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
3428433933 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3428533934 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34286 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3428733935 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3428833936 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3428933937 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3434433992 ; 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
3434533993 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3434633994 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34347 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3434833995 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3434933996 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3435033997 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3440034047 ; 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
3440134048 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3440234049 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34403 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3440434050 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3440534051 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3440634052 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
34407 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3440834053 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3440934054 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3441034055 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3446134106 ; 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
3446234107 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3446334108 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
34464 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3446534109 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3446634110 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3446734111 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3532234966 ; 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
3532334967 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3532434968 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35325 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3532634969 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3532734970 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3532834971 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3536835011 ; 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
3536935012 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3537035013 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35371 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3537235014 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3537335015 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3537435016 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3542935071 ; 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
3543035072 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3543135073 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35432 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3543335074 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3543435075 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3543535076 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3549235133 ; 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
3549335134 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3549435135 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35495 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3549635136 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3549735137 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3549835138 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3554435184 ; 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
3554535185 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3554635186 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35547 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3554835187 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3554935188 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3555035189 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3560735246 ; 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
3560835247 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3560935248 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35610 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3561135249 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3561235250 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3561335251 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3566235300 ; 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
3566335301 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3566435302 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35665 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3566635303 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3566735304 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3566835305 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3571435351 ; 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
3571535352 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3571635353 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35717 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3571835354 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3571935355 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3572035356 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3578135417 ; 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
3578235418 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3578335419 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35784 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3578535420 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3578635421 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3578735422 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3585035485 ; 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
3585135486 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3585235487 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35853 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3585435488 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3585535489 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3585635490 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3590835542 ; 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
3590935543 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3591035544 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35911 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3591235545 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3591335546 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3591435547 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3597735610 ; 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
3597835611 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3597935612 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
35980 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3598135613 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3598235614 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3598335615 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3768637318 ; 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
3768737319 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3768837320 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
37689 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3769037321 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3769137322 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3769237323 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
37693 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3769437324 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3769537325 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3769637326 ; NoVLX-NEXT: movl (%rsp), %eax
3772737357 ; 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
3772837358 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3772937359 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
37730 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3773137360 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3773237361 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3773337362 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
37734 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3773537363 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3773637364 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3773737365 ; NoVLX-NEXT: movl (%rsp), %eax
3777037398 ; 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
3777137399 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3777237400 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
37773 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3777437401 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3777537402 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3777637403 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
37777 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3777837404 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3777937405 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3778037406 ; NoVLX-NEXT: movl (%rsp), %eax
3781737443 ; 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
3781837444 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3781937445 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
37820 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3782137446 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3782237447 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3782337448 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3786437489 ; 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
3786537490 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3786637491 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
37867 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3786837492 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3786937493 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3787037494 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3791337537 ; 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
3791437538 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3791537539 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
37916 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3791737540 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3791837541 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3791937542 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3796337586 ; 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
3796437587 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3796537588 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
37966 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3796737589 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3796837590 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3796937591 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
37970 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3797137592 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3797237593 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3797337594 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3801037631 ; 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
3801137632 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3801237633 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
38013 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3801437634 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3801537635 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3801637636 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
38017 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3801837637 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3801937638 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3802037639 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3805937678 ; 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
3806037679 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3806137680 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
38062 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3806337681 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3806437682 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3806537683 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
38066 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3806737684 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3806837685 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3806937686 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3811237729 ; 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
3811337730 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3811437731 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
38115 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3811637732 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3811737733 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3811837734 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3816537781 ; 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
3816637782 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3816737783 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
38168 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3816937784 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3817037785 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3817137786 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3822037835 ; 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
3822137836 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
3822237837 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
38223 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
3822437838 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
3822537839 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
3822637840 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
3930538919 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3930638920 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3930738921 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39308 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3930938922 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3931038923 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3931138924 ; NoVLX-NEXT: movl (%rsp), %eax
3934538958 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3934638959 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3934738960 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39348 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3934938961 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3935038962 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3935138963 ; NoVLX-NEXT: movl (%rsp), %eax
3938638998 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3938738999 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3938839000 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39389 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3939039001 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3939139002 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3939239003 ; NoVLX-NEXT: movl (%rsp), %eax
3943039041 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3943139042 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3943239043 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39433 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3943439044 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3943539045 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3943639046 ; NoVLX-NEXT: movl (%rsp), %eax
3947439084 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3947539085 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3947639086 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39477 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3947839087 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3947939088 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3948039089 ; NoVLX-NEXT: movl (%rsp), %eax
3951939128 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3952039129 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3952139130 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39522 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3952339131 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3952439132 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3952539133 ; NoVLX-NEXT: movl (%rsp), %eax
3960839216 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3960939217 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3961039218 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39611 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3961239219 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3961339220 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3961439221 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3965339260 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3965439261 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3965539262 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39656 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3965739263 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3965839264 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3965939265 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3969939305 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3970039306 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3970139307 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39702 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3970339308 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3970439309 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3970539310 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3974839353 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3974939354 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3975039355 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39751 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3975239356 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3975339357 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3975439358 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3979739401 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3979839402 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3979939403 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39800 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3980139404 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3980239405 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3980339406 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
3984739450 ; NoVLX-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
3984839451 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
3984939452 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
39850 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
3985139453 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
3985239454 ; NoVLX-NEXT: kmovw %k0, (%rsp)
3985339455 ; NoVLX-NEXT: movl {{[0-9]+}}(%rsp), %ecx
4064240244 ; 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
4064340245 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
4064440246 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
40645 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
4064640247 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
4064740248 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
4064840249 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
40649 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
4065040250 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
4065140251 ; NoVLX-NEXT: kmovw %k0, (%rsp)
4065240252 ; NoVLX-NEXT: movl (%rsp), %eax
4068340283 ; 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
4068440284 ; NoVLX-NEXT: vextracti128 $1, %ymm0, %xmm1
4068540285 ; NoVLX-NEXT: vpmovsxbd %xmm1, %zmm1
40686 ; NoVLX-NEXT: vpslld $31, %zmm1, %zmm1
4068740286 ; NoVLX-NEXT: vptestmd %zmm1, %zmm1, %k0
4068840287 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
4068940288 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
40690 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
4069140289 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
4069240290