Index: lib/Target/X86/X86ISelLowering.cpp =================================================================== --- lib/Target/X86/X86ISelLowering.cpp +++ lib/Target/X86/X86ISelLowering.cpp @@ -14851,15 +14851,30 @@ return SDValue(); } -/// Emit nodes that will be selected as "test Op0,Op0", or something -/// equivalent. -SDValue X86TargetLowering::EmitTest(SDValue Op, unsigned X86CC, const SDLoc &dl, - SelectionDAG &DAG) const { - if (Op.getValueType() == MVT::i1) { +static SDValue EmitTEST_i1(SDValue Op, SelectionDAG &DAG, const SDLoc &dl) { + + // Most probably the value is in GPR, use ZEXT + CMP. + if(Op.getOpcode() == ISD::TRUNCATE || + Op.getOpcode() == ISD::LOAD || + Op.getOpcode() == ISD::CopyFromReg) { SDValue ExtOp = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i8, Op); return DAG.getNode(X86ISD::CMP, dl, MVT::i32, ExtOp, DAG.getConstant(0, dl, MVT::i8)); } + + // Create cmp i1 that should be mapped to KORTEST. + return DAG.getNode(X86ISD::CMP, dl, MVT::i1, Op, + DAG.getConstant(0, dl, MVT::i8)); + +} + +/// Emit nodes that will be selected as "test Op0,Op0", or something +/// equivalent. +SDValue X86TargetLowering::EmitTest(SDValue Op, unsigned X86CC, const SDLoc &dl, + SelectionDAG &DAG) const { + if (Op.getValueType() == MVT::i1) + return EmitTEST_i1(Op, DAG, dl); + // CF and OF aren't always set the way we want. Determine which // of these we need. bool NeedCF = false; Index: lib/Target/X86/X86InstrAVX512.td =================================================================== --- lib/Target/X86/X86InstrAVX512.td +++ lib/Target/X86/X86InstrAVX512.td @@ -2454,6 +2454,10 @@ defm KORTEST : avx512_mask_testop_w<0x98, "kortest", X86kortest>; defm KTEST : avx512_mask_testop_w<0x99, "ktest", X86ktest, HasDQI>; +def : Pat<(X86cmp VK1:$src, 0), + (KORTESTWrr (COPY_TO_REGCLASS VK1:$src, VK16), + (COPY_TO_REGCLASS VK1:$src, VK16))>, Requires<[HasAVX512]>; + // Mask shift multiclass avx512_mask_shiftop opc, string OpcodeStr, RegisterClass KRC, SDNode OpNode> { Index: test/CodeGen/X86/avx512-cmp.ll =================================================================== --- test/CodeGen/X86/avx512-cmp.ll +++ test/CodeGen/X86/avx512-cmp.ll @@ -166,8 +166,7 @@ ; ALL-NEXT: kmovw %eax, %k1 ; ALL-NEXT: korw %k1, %k0, %k1 ; ALL-NEXT: kxorw %k1, %k0, %k0 -; ALL-NEXT: kmovw %k0, %eax -; ALL-NEXT: testb %al, %al +; ALL-NEXT: kortestw %k0, %k0 ; ALL-NEXT: je LBB8_1 ; ALL-NEXT: ## BB#2: ## %if.end.i ; ALL-NEXT: movl $6, %eax Index: test/CodeGen/X86/avx512-i1test.ll =================================================================== --- test/CodeGen/X86/avx512-i1test.ll +++ test/CodeGen/X86/avx512-i1test.ll @@ -8,23 +8,19 @@ define void @func() { ; CHECK-LABEL: func: ; CHECK: ## BB#0: ## %L_10 -; CHECK-NEXT: xorl %eax, %eax -; CHECK-NEXT: testb %al, %al +; CHECK-NEXT: kortestw %k0, %k0 ; CHECK-NEXT: je LBB0_1 -; CHECK-NEXT: ## BB#4: ## %L_30 +; CHECK-NEXT: ## BB#3: ## %L_30 ; CHECK-NEXT: retq -; CHECK-NEXT: LBB0_1: ## %bb56 -; CHECK-NEXT: xorl %eax, %eax -; CHECK-NEXT: jmp LBB0_2 ; CHECK-NEXT: .p2align 4, 0x90 -; CHECK-NEXT: LBB0_3: ## %bb35 -; CHECK-NEXT: ## in Loop: Header=BB0_2 Depth=1 -; CHECK-NEXT: testb %al, %al -; CHECK-NEXT: LBB0_2: ## %bb33 +; CHECK-NEXT: LBB0_2: ## %bb35 +; CHECK-NEXT: ## in Loop: Header=BB0_1 Depth=1 +; CHECK-NEXT: kortestw %k0, %k0 +; CHECK-NEXT: LBB0_1: ## %bb33 ; CHECK-NEXT: ## =>This Inner Loop Header: Depth=1 -; CHECK-NEXT: testb %al, %al -; CHECK-NEXT: jne LBB0_2 -; CHECK-NEXT: jmp LBB0_3 +; CHECK-NEXT: kortestw %k0, %k0 +; CHECK-NEXT: jne LBB0_1 +; CHECK-NEXT: jmp LBB0_2 bb1: br i1 undef, label %L_10, label %L_10 Index: test/CodeGen/X86/avx512-insert-extract.ll =================================================================== --- test/CodeGen/X86/avx512-insert-extract.ll +++ test/CodeGen/X86/avx512-insert-extract.ll @@ -200,8 +200,7 @@ ; KNL-NEXT: vpcmpltud %zmm1, %zmm0, %k0 ; KNL-NEXT: kshiftlw $11, %k0, %k0 ; KNL-NEXT: kshiftrw $15, %k0, %k0 -; KNL-NEXT: kmovw %k0, %eax -; KNL-NEXT: testb %al, %al +; KNL-NEXT: kortestw %k0, %k0 ; KNL-NEXT: je LBB10_2 ; KNL-NEXT: ## BB#1: ## %A ; KNL-NEXT: vmovdqa64 %zmm1, %zmm0 @@ -215,8 +214,7 @@ ; SKX-NEXT: vpcmpltud %zmm1, %zmm0, %k0 ; SKX-NEXT: kshiftlw $11, %k0, %k0 ; SKX-NEXT: kshiftrw $15, %k0, %k0 -; SKX-NEXT: kmovw %k0, %eax -; SKX-NEXT: testb %al, %al +; SKX-NEXT: kortestw %k0, %k0 ; SKX-NEXT: je LBB10_2 ; SKX-NEXT: ## BB#1: ## %A ; SKX-NEXT: vmovdqa64 %zmm1, %zmm0 @@ -242,8 +240,7 @@ ; KNL-NEXT: kunpckbw %k0, %k1, %k0 ; KNL-NEXT: kshiftlw $15, %k0, %k0 ; KNL-NEXT: kshiftrw $15, %k0, %k0 -; KNL-NEXT: kmovw %k0, %eax -; KNL-NEXT: testb %al, %al +; KNL-NEXT: kortestw %k0, %k0 ; KNL-NEXT: cmoveq %rsi, %rdi ; KNL-NEXT: movq %rdi, %rax ; KNL-NEXT: retq @@ -255,8 +252,7 @@ ; SKX-NEXT: kunpckbw %k0, %k1, %k0 ; SKX-NEXT: kshiftlw $15, %k0, %k0 ; SKX-NEXT: kshiftrw $15, %k0, %k0 -; SKX-NEXT: kmovw %k0, %eax -; SKX-NEXT: testb %al, %al +; SKX-NEXT: kortestw %k0, %k0 ; SKX-NEXT: cmoveq %rsi, %rdi ; SKX-NEXT: movq %rdi, %rax ; SKX-NEXT: retq @@ -304,8 +300,7 @@ ; KNL-NEXT: vpcmpgtq %zmm0, %zmm1, %k0 ; KNL-NEXT: kshiftlw $11, %k0, %k0 ; KNL-NEXT: kshiftrw $15, %k0, %k0 -; KNL-NEXT: kmovw %k0, %eax -; KNL-NEXT: testb %al, %al +; KNL-NEXT: kortestw %k0, %k0 ; KNL-NEXT: cmoveq %rsi, %rdi ; KNL-NEXT: movq %rdi, %rax ; KNL-NEXT: retq @@ -315,8 +310,7 @@ ; SKX-NEXT: vpcmpgtq %zmm0, %zmm1, %k0 ; SKX-NEXT: kshiftlb $3, %k0, %k0 ; SKX-NEXT: kshiftrb $7, %k0, %k0 -; SKX-NEXT: kmovw %k0, %eax -; SKX-NEXT: testb %al, %al +; SKX-NEXT: kortestw %k0, %k0 ; SKX-NEXT: cmoveq %rsi, %rdi ; SKX-NEXT: movq %rdi, %rax ; SKX-NEXT: retq @@ -1117,8 +1111,7 @@ ; SKX-NEXT: vpcmpnleuq %xmm1, %xmm0, %k0 ; SKX-NEXT: kshiftlw $15, %k0, %k0 ; SKX-NEXT: kshiftrw $15, %k0, %k0 -; SKX-NEXT: kmovw %k0, %eax -; SKX-NEXT: testb %al, %al +; SKX-NEXT: kortestw %k0, %k0 ; SKX-NEXT: sete %al ; SKX-NEXT: addb $3, %al ; SKX-NEXT: movzbl %al, %eax @@ -1196,8 +1189,7 @@ ; SKX: ## BB#0: ; SKX-NEXT: vpcmpnleub %zmm1, %zmm0, %k0 ; SKX-NEXT: kshiftrq $63, %k0, %k0 -; SKX-NEXT: kmovw %k0, %eax -; SKX-NEXT: testb %al, %al +; SKX-NEXT: kortestw %k0, %k0 ; SKX-NEXT: sete %al ; SKX-NEXT: addb $3, %al ; SKX-NEXT: movzbl %al, %eax Index: test/CodeGen/X86/masked_gather_scatter.ll =================================================================== --- test/CodeGen/X86/masked_gather_scatter.ll +++ test/CodeGen/X86/masked_gather_scatter.ll @@ -1461,9 +1461,8 @@ ; SKX-NEXT: vpmovsxdq %xmm1, %ymm1 ; SKX-NEXT: vpsllq $2, %ymm1, %ymm1 ; SKX-NEXT: vpaddq %ymm1, %ymm0, %ymm1 -; SKX-NEXT: kmovw %k0, %eax +; SKX-NEXT: kortestw %k0, %k0 ; SKX-NEXT: # implicit-def: %XMM0 -; SKX-NEXT: testb %al, %al ; SKX-NEXT: je .LBB29_2 ; SKX-NEXT: # BB#1: # %cond.load ; SKX-NEXT: vmovq %xmm1, %rax @@ -1471,8 +1470,7 @@ ; SKX-NEXT: .LBB29_2: # %else ; SKX-NEXT: kshiftlw $14, %k1, %k0 ; SKX-NEXT: kshiftrw $15, %k0, %k0 -; SKX-NEXT: kmovw %k0, %eax -; SKX-NEXT: testb %al, %al +; SKX-NEXT: kortestw %k0, %k0 ; SKX-NEXT: je .LBB29_4 ; SKX-NEXT: # BB#3: # %cond.load1 ; SKX-NEXT: vpextrq $1, %xmm1, %rax @@ -1480,8 +1478,7 @@ ; SKX-NEXT: .LBB29_4: # %else2 ; SKX-NEXT: kshiftlw $13, %k1, %k0 ; SKX-NEXT: kshiftrw $15, %k0, %k0 -; SKX-NEXT: kmovw %k0, %eax -; SKX-NEXT: testb %al, %al +; SKX-NEXT: kortestw %k0, %k0 ; SKX-NEXT: je .LBB29_6 ; SKX-NEXT: # BB#5: # %cond.load4 ; SKX-NEXT: vextracti64x2 $1, %ymm1, %xmm1 @@ -1502,9 +1499,8 @@ ; SKX_32-NEXT: kshiftrw $15, %k0, %k0 ; SKX_32-NEXT: vpslld $2, %xmm1, %xmm1 ; SKX_32-NEXT: vpaddd %xmm1, %xmm0, %xmm1 -; SKX_32-NEXT: kmovw %k0, %eax +; SKX_32-NEXT: kortestw %k0, %k0 ; SKX_32-NEXT: # implicit-def: %XMM0 -; SKX_32-NEXT: testb %al, %al ; SKX_32-NEXT: je .LBB29_2 ; SKX_32-NEXT: # BB#1: # %cond.load ; SKX_32-NEXT: vmovd %xmm1, %eax @@ -1512,8 +1508,7 @@ ; SKX_32-NEXT: .LBB29_2: # %else ; SKX_32-NEXT: kshiftlw $14, %k1, %k0 ; SKX_32-NEXT: kshiftrw $15, %k0, %k0 -; SKX_32-NEXT: kmovw %k0, %eax -; SKX_32-NEXT: testb %al, %al +; SKX_32-NEXT: kortestw %k0, %k0 ; SKX_32-NEXT: je .LBB29_4 ; SKX_32-NEXT: # BB#3: # %cond.load1 ; SKX_32-NEXT: vpextrd $1, %xmm1, %eax @@ -1522,8 +1517,7 @@ ; SKX_32-NEXT: vmovdqa32 {{[0-9]+}}(%esp), %xmm2 ; SKX_32-NEXT: kshiftlw $13, %k1, %k0 ; SKX_32-NEXT: kshiftrw $15, %k0, %k0 -; SKX_32-NEXT: kmovw %k0, %eax -; SKX_32-NEXT: testb %al, %al +; SKX_32-NEXT: kortestw %k0, %k0 ; SKX_32-NEXT: je .LBB29_6 ; SKX_32-NEXT: # BB#5: # %cond.load4 ; SKX_32-NEXT: vpextrd $2, %xmm1, %eax Index: test/CodeGen/X86/masked_memop.ll =================================================================== --- test/CodeGen/X86/masked_memop.ll +++ test/CodeGen/X86/masked_memop.ll @@ -2345,9 +2345,8 @@ ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: ## implicit-def: %XMM0 -; AVX512F-NEXT: testb %al, %al ; AVX512F-NEXT: je LBB50_2 ; AVX512F-NEXT: ## BB#1: ## %cond.load ; AVX512F-NEXT: movzbl (%rdi), %eax @@ -2355,119 +2354,104 @@ ; AVX512F-NEXT: LBB50_2: ## %else ; AVX512F-NEXT: kshiftlw $14, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_4 ; AVX512F-NEXT: ## BB#3: ## %cond.load1 ; AVX512F-NEXT: vpinsrb $1, 1(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_4: ## %else2 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_6 ; AVX512F-NEXT: ## BB#5: ## %cond.load4 ; AVX512F-NEXT: vpinsrb $2, 2(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_6: ## %else5 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_8 ; AVX512F-NEXT: ## BB#7: ## %cond.load7 ; AVX512F-NEXT: vpinsrb $3, 3(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_8: ## %else8 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_10 ; AVX512F-NEXT: ## BB#9: ## %cond.load10 ; AVX512F-NEXT: vpinsrb $4, 4(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_10: ## %else11 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_12 ; AVX512F-NEXT: ## BB#11: ## %cond.load13 ; AVX512F-NEXT: vpinsrb $5, 5(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_12: ## %else14 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_14 ; AVX512F-NEXT: ## BB#13: ## %cond.load16 ; AVX512F-NEXT: vpinsrb $6, 6(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_14: ## %else17 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_16 ; AVX512F-NEXT: ## BB#15: ## %cond.load19 ; AVX512F-NEXT: vpinsrb $7, 7(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_16: ## %else20 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_18 ; AVX512F-NEXT: ## BB#17: ## %cond.load22 ; AVX512F-NEXT: vpinsrb $8, 8(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_18: ## %else23 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_20 ; AVX512F-NEXT: ## BB#19: ## %cond.load25 ; AVX512F-NEXT: vpinsrb $9, 9(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_20: ## %else26 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_22 ; AVX512F-NEXT: ## BB#21: ## %cond.load28 ; AVX512F-NEXT: vpinsrb $10, 10(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_22: ## %else29 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_24 ; AVX512F-NEXT: ## BB#23: ## %cond.load31 ; AVX512F-NEXT: vpinsrb $11, 11(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_24: ## %else32 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_26 ; AVX512F-NEXT: ## BB#25: ## %cond.load34 ; AVX512F-NEXT: vpinsrb $12, 12(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_26: ## %else35 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_28 ; AVX512F-NEXT: ## BB#27: ## %cond.load37 ; AVX512F-NEXT: vpinsrb $13, 13(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_28: ## %else38 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_30 ; AVX512F-NEXT: ## BB#29: ## %cond.load40 ; AVX512F-NEXT: vpinsrb $14, 14(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB50_30: ## %else41 ; AVX512F-NEXT: kshiftrw $15, %k1, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB50_32 ; AVX512F-NEXT: ## BB#31: ## %cond.load43 ; AVX512F-NEXT: vpinsrb $15, 15(%rdi), %xmm0, %xmm0 @@ -4612,8 +4596,7 @@ ; AVX512F-NEXT: kshiftlw $15, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_2 ; AVX512F-NEXT: ## BB#1: ## %cond.load ; AVX512F-NEXT: movzbl (%rdi), %eax @@ -4622,8 +4605,7 @@ ; AVX512F-NEXT: kshiftlw $14, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_4 ; AVX512F-NEXT: ## BB#3: ## %cond.load1 ; AVX512F-NEXT: vpinsrb $1, 1(%rdi), %xmm0, %xmm6 @@ -4632,8 +4614,7 @@ ; AVX512F-NEXT: kshiftlw $13, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_6 ; AVX512F-NEXT: ## BB#5: ## %cond.load4 ; AVX512F-NEXT: vpinsrb $2, 2(%rdi), %xmm0, %xmm6 @@ -4642,8 +4623,7 @@ ; AVX512F-NEXT: kshiftlw $12, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_8 ; AVX512F-NEXT: ## BB#7: ## %cond.load7 ; AVX512F-NEXT: vpinsrb $3, 3(%rdi), %xmm0, %xmm6 @@ -4652,8 +4632,7 @@ ; AVX512F-NEXT: kshiftlw $11, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_10 ; AVX512F-NEXT: ## BB#9: ## %cond.load10 ; AVX512F-NEXT: vpinsrb $4, 4(%rdi), %xmm0, %xmm6 @@ -4662,8 +4641,7 @@ ; AVX512F-NEXT: kshiftlw $10, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_12 ; AVX512F-NEXT: ## BB#11: ## %cond.load13 ; AVX512F-NEXT: vpinsrb $5, 5(%rdi), %xmm0, %xmm6 @@ -4672,8 +4650,7 @@ ; AVX512F-NEXT: kshiftlw $9, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_14 ; AVX512F-NEXT: ## BB#13: ## %cond.load16 ; AVX512F-NEXT: vpinsrb $6, 6(%rdi), %xmm0, %xmm6 @@ -4682,8 +4659,7 @@ ; AVX512F-NEXT: kshiftlw $8, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_16 ; AVX512F-NEXT: ## BB#15: ## %cond.load19 ; AVX512F-NEXT: vpinsrb $7, 7(%rdi), %xmm0, %xmm6 @@ -4692,8 +4668,7 @@ ; AVX512F-NEXT: kshiftlw $7, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_18 ; AVX512F-NEXT: ## BB#17: ## %cond.load22 ; AVX512F-NEXT: vpinsrb $8, 8(%rdi), %xmm0, %xmm6 @@ -4702,8 +4677,7 @@ ; AVX512F-NEXT: kshiftlw $6, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, (%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_20 ; AVX512F-NEXT: ## BB#19: ## %cond.load25 ; AVX512F-NEXT: vpinsrb $9, 9(%rdi), %xmm0, %xmm6 @@ -4712,8 +4686,7 @@ ; AVX512F-NEXT: kshiftlw $5, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_22 ; AVX512F-NEXT: ## BB#21: ## %cond.load28 ; AVX512F-NEXT: vpinsrb $10, 10(%rdi), %xmm0, %xmm6 @@ -4722,8 +4695,7 @@ ; AVX512F-NEXT: kshiftlw $4, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_24 ; AVX512F-NEXT: ## BB#23: ## %cond.load31 ; AVX512F-NEXT: vpinsrb $11, 11(%rdi), %xmm0, %xmm6 @@ -4732,8 +4704,7 @@ ; AVX512F-NEXT: kshiftlw $3, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_26 ; AVX512F-NEXT: ## BB#25: ## %cond.load34 ; AVX512F-NEXT: vpinsrb $12, 12(%rdi), %xmm0, %xmm6 @@ -4743,8 +4714,7 @@ ; AVX512F-NEXT: kshiftlw $2, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_28 ; AVX512F-NEXT: ## BB#27: ## %cond.load37 ; AVX512F-NEXT: vpinsrb $13, 13(%rdi), %xmm0, %xmm6 @@ -4754,8 +4724,7 @@ ; AVX512F-NEXT: kshiftlw $1, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_30 ; AVX512F-NEXT: ## BB#29: ## %cond.load40 ; AVX512F-NEXT: vpinsrb $14, 14(%rdi), %xmm0, %xmm6 @@ -4764,8 +4733,7 @@ ; AVX512F-NEXT: vptestmd %zmm1, %zmm1, %k1 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_32 ; AVX512F-NEXT: ## BB#31: ## %cond.load43 ; AVX512F-NEXT: vpinsrb $15, 15(%rdi), %xmm0, %xmm1 @@ -4774,8 +4742,7 @@ ; AVX512F-NEXT: kshiftlw $15, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_34 ; AVX512F-NEXT: ## BB#33: ## %cond.load46 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4785,8 +4752,7 @@ ; AVX512F-NEXT: kshiftlw $14, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_36 ; AVX512F-NEXT: ## BB#35: ## %cond.load49 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4796,8 +4762,7 @@ ; AVX512F-NEXT: kshiftlw $13, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_38 ; AVX512F-NEXT: ## BB#37: ## %cond.load52 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4807,8 +4772,7 @@ ; AVX512F-NEXT: kshiftlw $12, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_40 ; AVX512F-NEXT: ## BB#39: ## %cond.load55 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4818,8 +4782,7 @@ ; AVX512F-NEXT: kshiftlw $11, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_42 ; AVX512F-NEXT: ## BB#41: ## %cond.load58 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4829,8 +4792,7 @@ ; AVX512F-NEXT: kshiftlw $10, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_44 ; AVX512F-NEXT: ## BB#43: ## %cond.load61 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4840,8 +4802,7 @@ ; AVX512F-NEXT: kshiftlw $9, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_46 ; AVX512F-NEXT: ## BB#45: ## %cond.load64 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4851,8 +4812,7 @@ ; AVX512F-NEXT: kshiftlw $8, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_48 ; AVX512F-NEXT: ## BB#47: ## %cond.load67 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4862,8 +4822,7 @@ ; AVX512F-NEXT: kshiftlw $7, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_50 ; AVX512F-NEXT: ## BB#49: ## %cond.load70 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4873,8 +4832,7 @@ ; AVX512F-NEXT: kshiftlw $6, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_52 ; AVX512F-NEXT: ## BB#51: ## %cond.load73 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4884,8 +4842,7 @@ ; AVX512F-NEXT: kshiftlw $5, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_54 ; AVX512F-NEXT: ## BB#53: ## %cond.load76 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4895,8 +4852,7 @@ ; AVX512F-NEXT: kshiftlw $4, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_56 ; AVX512F-NEXT: ## BB#55: ## %cond.load79 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4906,8 +4862,7 @@ ; AVX512F-NEXT: kshiftlw $3, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_58 ; AVX512F-NEXT: ## BB#57: ## %cond.load82 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4918,8 +4873,7 @@ ; AVX512F-NEXT: kshiftlw $2, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_60 ; AVX512F-NEXT: ## BB#59: ## %cond.load85 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm2 @@ -4930,8 +4884,7 @@ ; AVX512F-NEXT: kshiftlw $1, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_62 ; AVX512F-NEXT: ## BB#61: ## %cond.load88 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm2 @@ -4941,8 +4894,7 @@ ; AVX512F-NEXT: vptestmd %zmm1, %zmm1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_64 ; AVX512F-NEXT: ## BB#63: ## %cond.load91 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -4952,8 +4904,7 @@ ; AVX512F-NEXT: kshiftlw $15, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_66 ; AVX512F-NEXT: ## BB#65: ## %cond.load94 ; AVX512F-NEXT: vpinsrb $0, 32(%rdi), %xmm0, %xmm1 @@ -4962,8 +4913,7 @@ ; AVX512F-NEXT: kshiftlw $14, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_68 ; AVX512F-NEXT: ## BB#67: ## %cond.load97 ; AVX512F-NEXT: vpinsrb $1, 33(%rdi), %xmm1, %xmm2 @@ -4972,8 +4922,7 @@ ; AVX512F-NEXT: kshiftlw $13, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_70 ; AVX512F-NEXT: ## BB#69: ## %cond.load100 ; AVX512F-NEXT: vpinsrb $2, 34(%rdi), %xmm1, %xmm2 @@ -4982,8 +4931,7 @@ ; AVX512F-NEXT: kshiftlw $12, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_72 ; AVX512F-NEXT: ## BB#71: ## %cond.load103 ; AVX512F-NEXT: vpinsrb $3, 35(%rdi), %xmm1, %xmm2 @@ -4992,8 +4940,7 @@ ; AVX512F-NEXT: kshiftlw $11, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_74 ; AVX512F-NEXT: ## BB#73: ## %cond.load106 ; AVX512F-NEXT: vpinsrb $4, 36(%rdi), %xmm1, %xmm2 @@ -5002,8 +4949,7 @@ ; AVX512F-NEXT: kshiftlw $10, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_76 ; AVX512F-NEXT: ## BB#75: ## %cond.load109 ; AVX512F-NEXT: vpinsrb $5, 37(%rdi), %xmm1, %xmm2 @@ -5012,8 +4958,7 @@ ; AVX512F-NEXT: kshiftlw $9, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_78 ; AVX512F-NEXT: ## BB#77: ## %cond.load112 ; AVX512F-NEXT: vpinsrb $6, 38(%rdi), %xmm1, %xmm2 @@ -5022,8 +4967,7 @@ ; AVX512F-NEXT: kshiftlw $8, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_80 ; AVX512F-NEXT: ## BB#79: ## %cond.load115 ; AVX512F-NEXT: vpinsrb $7, 39(%rdi), %xmm1, %xmm2 @@ -5032,8 +4976,7 @@ ; AVX512F-NEXT: kshiftlw $7, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_82 ; AVX512F-NEXT: ## BB#81: ## %cond.load118 ; AVX512F-NEXT: vpinsrb $8, 40(%rdi), %xmm1, %xmm2 @@ -5042,8 +4985,7 @@ ; AVX512F-NEXT: kshiftlw $6, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_84 ; AVX512F-NEXT: ## BB#83: ## %cond.load121 ; AVX512F-NEXT: vpinsrb $9, 41(%rdi), %xmm1, %xmm2 @@ -5052,8 +4994,7 @@ ; AVX512F-NEXT: kshiftlw $5, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_86 ; AVX512F-NEXT: ## BB#85: ## %cond.load124 ; AVX512F-NEXT: vpinsrb $10, 42(%rdi), %xmm1, %xmm2 @@ -5062,8 +5003,7 @@ ; AVX512F-NEXT: kshiftlw $4, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_88 ; AVX512F-NEXT: ## BB#87: ## %cond.load127 ; AVX512F-NEXT: vpinsrb $11, 43(%rdi), %xmm1, %xmm2 @@ -5072,8 +5012,7 @@ ; AVX512F-NEXT: kshiftlw $3, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_90 ; AVX512F-NEXT: ## BB#89: ## %cond.load130 ; AVX512F-NEXT: vpinsrb $12, 44(%rdi), %xmm1, %xmm2 @@ -5083,8 +5022,7 @@ ; AVX512F-NEXT: kshiftlw $2, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_92 ; AVX512F-NEXT: ## BB#91: ## %cond.load133 ; AVX512F-NEXT: vpinsrb $13, 45(%rdi), %xmm1, %xmm3 @@ -5094,8 +5032,7 @@ ; AVX512F-NEXT: kshiftlw $1, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 ; AVX512F-NEXT: kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_94 ; AVX512F-NEXT: ## BB#93: ## %cond.load136 ; AVX512F-NEXT: vpinsrb $14, 46(%rdi), %xmm1, %xmm3 @@ -5104,8 +5041,7 @@ ; AVX512F-NEXT: vptestmd %zmm2, %zmm2, %k1 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, {{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_96 ; AVX512F-NEXT: ## BB#95: ## %cond.load139 ; AVX512F-NEXT: vpinsrb $15, 47(%rdi), %xmm1, %xmm2 @@ -5114,8 +5050,7 @@ ; AVX512F-NEXT: kshiftlw $15, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_98 ; AVX512F-NEXT: ## BB#97: ## %cond.load142 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5125,8 +5060,7 @@ ; AVX512F-NEXT: kshiftlw $14, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_100 ; AVX512F-NEXT: ## BB#99: ## %cond.load145 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5136,8 +5070,7 @@ ; AVX512F-NEXT: kshiftlw $13, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_102 ; AVX512F-NEXT: ## BB#101: ## %cond.load148 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5147,8 +5080,7 @@ ; AVX512F-NEXT: kshiftlw $12, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_104 ; AVX512F-NEXT: ## BB#103: ## %cond.load151 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5158,8 +5090,7 @@ ; AVX512F-NEXT: kshiftlw $11, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_106 ; AVX512F-NEXT: ## BB#105: ## %cond.load154 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5169,8 +5100,7 @@ ; AVX512F-NEXT: kshiftlw $10, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_108 ; AVX512F-NEXT: ## BB#107: ## %cond.load157 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5180,8 +5110,7 @@ ; AVX512F-NEXT: kshiftlw $9, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_110 ; AVX512F-NEXT: ## BB#109: ## %cond.load160 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5191,8 +5120,7 @@ ; AVX512F-NEXT: kshiftlw $8, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_112 ; AVX512F-NEXT: ## BB#111: ## %cond.load163 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5202,8 +5130,7 @@ ; AVX512F-NEXT: kshiftlw $7, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 ; AVX512F-NEXT: kmovw %k0, -{{[0-9]+}}(%rsp) ## 2-byte Spill -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB52_114 ; AVX512F-NEXT: ## BB#113: ## %cond.load166 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5212,8 +5139,7 @@ ; AVX512F-NEXT: LBB52_114: ## %else167 ; AVX512F-NEXT: kshiftlw $6, %k1, %k2 ; AVX512F-NEXT: kshiftrw $15, %k2, %k2 -; AVX512F-NEXT: kmovw %k2, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k2, %k2 ; AVX512F-NEXT: je LBB52_116 ; AVX512F-NEXT: ## BB#115: ## %cond.load169 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5222,8 +5148,7 @@ ; AVX512F-NEXT: LBB52_116: ## %else170 ; AVX512F-NEXT: kshiftlw $5, %k1, %k3 ; AVX512F-NEXT: kshiftrw $15, %k3, %k3 -; AVX512F-NEXT: kmovw %k3, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k3, %k3 ; AVX512F-NEXT: je LBB52_118 ; AVX512F-NEXT: ## BB#117: ## %cond.load172 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5232,8 +5157,7 @@ ; AVX512F-NEXT: LBB52_118: ## %else173 ; AVX512F-NEXT: kshiftlw $4, %k1, %k4 ; AVX512F-NEXT: kshiftrw $15, %k4, %k4 -; AVX512F-NEXT: kmovw %k4, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k4, %k4 ; AVX512F-NEXT: je LBB52_120 ; AVX512F-NEXT: ## BB#119: ## %cond.load175 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5242,8 +5166,7 @@ ; AVX512F-NEXT: LBB52_120: ## %else176 ; AVX512F-NEXT: kshiftlw $3, %k1, %k5 ; AVX512F-NEXT: kshiftrw $15, %k5, %k5 -; AVX512F-NEXT: kmovw %k5, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k5, %k5 ; AVX512F-NEXT: je LBB52_122 ; AVX512F-NEXT: ## BB#121: ## %cond.load178 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5252,8 +5175,7 @@ ; AVX512F-NEXT: LBB52_122: ## %else179 ; AVX512F-NEXT: kshiftlw $2, %k1, %k6 ; AVX512F-NEXT: kshiftrw $15, %k6, %k6 -; AVX512F-NEXT: kmovw %k6, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k6, %k6 ; AVX512F-NEXT: je LBB52_124 ; AVX512F-NEXT: ## BB#123: ## %cond.load181 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5262,8 +5184,7 @@ ; AVX512F-NEXT: LBB52_124: ## %else182 ; AVX512F-NEXT: kshiftlw $1, %k1, %k7 ; AVX512F-NEXT: kshiftrw $15, %k7, %k7 -; AVX512F-NEXT: kmovw %k7, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k7, %k7 ; AVX512F-NEXT: je LBB52_126 ; AVX512F-NEXT: ## BB#125: ## %cond.load184 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5271,8 +5192,7 @@ ; AVX512F-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1 ; AVX512F-NEXT: LBB52_126: ## %else185 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB52_128 ; AVX512F-NEXT: ## BB#127: ## %cond.load187 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm2 @@ -5608,9 +5528,8 @@ ; AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k1 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: ## implicit-def: %XMM0 -; AVX512F-NEXT: testb %al, %al ; AVX512F-NEXT: je LBB53_2 ; AVX512F-NEXT: ## BB#1: ## %cond.load ; AVX512F-NEXT: movzwl (%rdi), %eax @@ -5618,56 +5537,49 @@ ; AVX512F-NEXT: LBB53_2: ## %else ; AVX512F-NEXT: kshiftlw $14, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB53_4 ; AVX512F-NEXT: ## BB#3: ## %cond.load1 ; AVX512F-NEXT: vpinsrw $1, 2(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB53_4: ## %else2 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB53_6 ; AVX512F-NEXT: ## BB#5: ## %cond.load4 ; AVX512F-NEXT: vpinsrw $2, 4(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB53_6: ## %else5 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB53_8 ; AVX512F-NEXT: ## BB#7: ## %cond.load7 ; AVX512F-NEXT: vpinsrw $3, 6(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB53_8: ## %else8 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB53_10 ; AVX512F-NEXT: ## BB#9: ## %cond.load10 ; AVX512F-NEXT: vpinsrw $4, 8(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB53_10: ## %else11 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB53_12 ; AVX512F-NEXT: ## BB#11: ## %cond.load13 ; AVX512F-NEXT: vpinsrw $5, 10(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB53_12: ## %else14 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB53_14 ; AVX512F-NEXT: ## BB#13: ## %cond.load16 ; AVX512F-NEXT: vpinsrw $6, 12(%rdi), %xmm0, %xmm0 ; AVX512F-NEXT: LBB53_14: ## %else17 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB53_16 ; AVX512F-NEXT: ## BB#15: ## %cond.load19 ; AVX512F-NEXT: vpinsrw $7, 14(%rdi), %xmm0, %xmm0 @@ -5962,9 +5874,8 @@ ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: ## implicit-def: %YMM0 -; AVX512F-NEXT: testb %al, %al ; AVX512F-NEXT: je LBB54_2 ; AVX512F-NEXT: ## BB#1: ## %cond.load ; AVX512F-NEXT: movzwl (%rdi), %eax @@ -5972,8 +5883,7 @@ ; AVX512F-NEXT: LBB54_2: ## %else ; AVX512F-NEXT: kshiftlw $14, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_4 ; AVX512F-NEXT: ## BB#3: ## %cond.load1 ; AVX512F-NEXT: vpinsrw $1, 2(%rdi), %xmm0, %xmm1 @@ -5981,8 +5891,7 @@ ; AVX512F-NEXT: LBB54_4: ## %else2 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_6 ; AVX512F-NEXT: ## BB#5: ## %cond.load4 ; AVX512F-NEXT: vpinsrw $2, 4(%rdi), %xmm0, %xmm1 @@ -5990,8 +5899,7 @@ ; AVX512F-NEXT: LBB54_6: ## %else5 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_8 ; AVX512F-NEXT: ## BB#7: ## %cond.load7 ; AVX512F-NEXT: vpinsrw $3, 6(%rdi), %xmm0, %xmm1 @@ -5999,8 +5907,7 @@ ; AVX512F-NEXT: LBB54_8: ## %else8 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_10 ; AVX512F-NEXT: ## BB#9: ## %cond.load10 ; AVX512F-NEXT: vpinsrw $4, 8(%rdi), %xmm0, %xmm1 @@ -6008,8 +5915,7 @@ ; AVX512F-NEXT: LBB54_10: ## %else11 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_12 ; AVX512F-NEXT: ## BB#11: ## %cond.load13 ; AVX512F-NEXT: vpinsrw $5, 10(%rdi), %xmm0, %xmm1 @@ -6017,8 +5923,7 @@ ; AVX512F-NEXT: LBB54_12: ## %else14 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_14 ; AVX512F-NEXT: ## BB#13: ## %cond.load16 ; AVX512F-NEXT: vpinsrw $6, 12(%rdi), %xmm0, %xmm1 @@ -6026,8 +5931,7 @@ ; AVX512F-NEXT: LBB54_14: ## %else17 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_16 ; AVX512F-NEXT: ## BB#15: ## %cond.load19 ; AVX512F-NEXT: vpinsrw $7, 14(%rdi), %xmm0, %xmm1 @@ -6035,8 +5939,7 @@ ; AVX512F-NEXT: LBB54_16: ## %else20 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_18 ; AVX512F-NEXT: ## BB#17: ## %cond.load22 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -6045,8 +5948,7 @@ ; AVX512F-NEXT: LBB54_18: ## %else23 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_20 ; AVX512F-NEXT: ## BB#19: ## %cond.load25 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -6055,8 +5957,7 @@ ; AVX512F-NEXT: LBB54_20: ## %else26 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_22 ; AVX512F-NEXT: ## BB#21: ## %cond.load28 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -6065,8 +5966,7 @@ ; AVX512F-NEXT: LBB54_22: ## %else29 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_24 ; AVX512F-NEXT: ## BB#23: ## %cond.load31 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -6075,8 +5975,7 @@ ; AVX512F-NEXT: LBB54_24: ## %else32 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_26 ; AVX512F-NEXT: ## BB#25: ## %cond.load34 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -6085,8 +5984,7 @@ ; AVX512F-NEXT: LBB54_26: ## %else35 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_28 ; AVX512F-NEXT: ## BB#27: ## %cond.load37 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -6095,8 +5993,7 @@ ; AVX512F-NEXT: LBB54_28: ## %else38 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_30 ; AVX512F-NEXT: ## BB#29: ## %cond.load40 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -6104,8 +6001,7 @@ ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0 ; AVX512F-NEXT: LBB54_30: ## %else41 ; AVX512F-NEXT: kshiftrw $15, %k1, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB54_32 ; AVX512F-NEXT: ## BB#31: ## %cond.load43 ; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm1 @@ -7021,127 +6917,111 @@ ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_2 ; AVX512F-NEXT: ## BB#1: ## %cond.store ; AVX512F-NEXT: vpextrb $0, %xmm1, (%rdi) ; AVX512F-NEXT: LBB56_2: ## %else ; AVX512F-NEXT: kshiftlw $14, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_4 ; AVX512F-NEXT: ## BB#3: ## %cond.store1 ; AVX512F-NEXT: vpextrb $1, %xmm1, 1(%rdi) ; AVX512F-NEXT: LBB56_4: ## %else2 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_6 ; AVX512F-NEXT: ## BB#5: ## %cond.store3 ; AVX512F-NEXT: vpextrb $2, %xmm1, 2(%rdi) ; AVX512F-NEXT: LBB56_6: ## %else4 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_8 ; AVX512F-NEXT: ## BB#7: ## %cond.store5 ; AVX512F-NEXT: vpextrb $3, %xmm1, 3(%rdi) ; AVX512F-NEXT: LBB56_8: ## %else6 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_10 ; AVX512F-NEXT: ## BB#9: ## %cond.store7 ; AVX512F-NEXT: vpextrb $4, %xmm1, 4(%rdi) ; AVX512F-NEXT: LBB56_10: ## %else8 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_12 ; AVX512F-NEXT: ## BB#11: ## %cond.store9 ; AVX512F-NEXT: vpextrb $5, %xmm1, 5(%rdi) ; AVX512F-NEXT: LBB56_12: ## %else10 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_14 ; AVX512F-NEXT: ## BB#13: ## %cond.store11 ; AVX512F-NEXT: vpextrb $6, %xmm1, 6(%rdi) ; AVX512F-NEXT: LBB56_14: ## %else12 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_16 ; AVX512F-NEXT: ## BB#15: ## %cond.store13 ; AVX512F-NEXT: vpextrb $7, %xmm1, 7(%rdi) ; AVX512F-NEXT: LBB56_16: ## %else14 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_18 ; AVX512F-NEXT: ## BB#17: ## %cond.store15 ; AVX512F-NEXT: vpextrb $8, %xmm1, 8(%rdi) ; AVX512F-NEXT: LBB56_18: ## %else16 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_20 ; AVX512F-NEXT: ## BB#19: ## %cond.store17 ; AVX512F-NEXT: vpextrb $9, %xmm1, 9(%rdi) ; AVX512F-NEXT: LBB56_20: ## %else18 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_22 ; AVX512F-NEXT: ## BB#21: ## %cond.store19 ; AVX512F-NEXT: vpextrb $10, %xmm1, 10(%rdi) ; AVX512F-NEXT: LBB56_22: ## %else20 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_24 ; AVX512F-NEXT: ## BB#23: ## %cond.store21 ; AVX512F-NEXT: vpextrb $11, %xmm1, 11(%rdi) ; AVX512F-NEXT: LBB56_24: ## %else22 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_26 ; AVX512F-NEXT: ## BB#25: ## %cond.store23 ; AVX512F-NEXT: vpextrb $12, %xmm1, 12(%rdi) ; AVX512F-NEXT: LBB56_26: ## %else24 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_28 ; AVX512F-NEXT: ## BB#27: ## %cond.store25 ; AVX512F-NEXT: vpextrb $13, %xmm1, 13(%rdi) ; AVX512F-NEXT: LBB56_28: ## %else26 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB56_30 ; AVX512F-NEXT: ## BB#29: ## %cond.store27 ; AVX512F-NEXT: vpextrb $14, %xmm1, 14(%rdi) ; AVX512F-NEXT: LBB56_30: ## %else28 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB56_32 ; AVX512F-NEXT: ## BB#31: ## %cond.store29 ; AVX512F-NEXT: vpextrb $15, %xmm1, 15(%rdi) @@ -8652,104 +8532,91 @@ ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_2 ; AVX512F-NEXT: ## BB#1: ## %cond.store ; AVX512F-NEXT: vpextrb $0, %xmm4, (%rdi) ; AVX512F-NEXT: LBB58_2: ## %else ; AVX512F-NEXT: kshiftlw $14, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_4 ; AVX512F-NEXT: ## BB#3: ## %cond.store1 ; AVX512F-NEXT: vpextrb $1, %xmm4, 1(%rdi) ; AVX512F-NEXT: LBB58_4: ## %else2 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_6 ; AVX512F-NEXT: ## BB#5: ## %cond.store3 ; AVX512F-NEXT: vpextrb $2, %xmm4, 2(%rdi) ; AVX512F-NEXT: LBB58_6: ## %else4 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_8 ; AVX512F-NEXT: ## BB#7: ## %cond.store5 ; AVX512F-NEXT: vpextrb $3, %xmm4, 3(%rdi) ; AVX512F-NEXT: LBB58_8: ## %else6 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_10 ; AVX512F-NEXT: ## BB#9: ## %cond.store7 ; AVX512F-NEXT: vpextrb $4, %xmm4, 4(%rdi) ; AVX512F-NEXT: LBB58_10: ## %else8 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_12 ; AVX512F-NEXT: ## BB#11: ## %cond.store9 ; AVX512F-NEXT: vpextrb $5, %xmm4, 5(%rdi) ; AVX512F-NEXT: LBB58_12: ## %else10 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_14 ; AVX512F-NEXT: ## BB#13: ## %cond.store11 ; AVX512F-NEXT: vpextrb $6, %xmm4, 6(%rdi) ; AVX512F-NEXT: LBB58_14: ## %else12 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_16 ; AVX512F-NEXT: ## BB#15: ## %cond.store13 ; AVX512F-NEXT: vpextrb $7, %xmm4, 7(%rdi) ; AVX512F-NEXT: LBB58_16: ## %else14 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_18 ; AVX512F-NEXT: ## BB#17: ## %cond.store15 ; AVX512F-NEXT: vpextrb $8, %xmm4, 8(%rdi) ; AVX512F-NEXT: LBB58_18: ## %else16 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_20 ; AVX512F-NEXT: ## BB#19: ## %cond.store17 ; AVX512F-NEXT: vpextrb $9, %xmm4, 9(%rdi) ; AVX512F-NEXT: LBB58_20: ## %else18 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_22 ; AVX512F-NEXT: ## BB#21: ## %cond.store19 ; AVX512F-NEXT: vpextrb $10, %xmm4, 10(%rdi) ; AVX512F-NEXT: LBB58_22: ## %else20 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_24 ; AVX512F-NEXT: ## BB#23: ## %cond.store21 ; AVX512F-NEXT: vpextrb $11, %xmm4, 11(%rdi) ; AVX512F-NEXT: LBB58_24: ## %else22 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_26 ; AVX512F-NEXT: ## BB#25: ## %cond.store23 ; AVX512F-NEXT: vpextrb $12, %xmm4, 12(%rdi) @@ -8757,8 +8624,7 @@ ; AVX512F-NEXT: vpmovsxbd %xmm1, %zmm0 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_28 ; AVX512F-NEXT: ## BB#27: ## %cond.store25 ; AVX512F-NEXT: vpextrb $13, %xmm4, 13(%rdi) @@ -8766,24 +8632,21 @@ ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_30 ; AVX512F-NEXT: ## BB#29: ## %cond.store27 ; AVX512F-NEXT: vpextrb $14, %xmm4, 14(%rdi) ; AVX512F-NEXT: LBB58_30: ## %else28 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_32 ; AVX512F-NEXT: ## BB#31: ## %cond.store29 ; AVX512F-NEXT: vpextrb $15, %xmm4, 15(%rdi) ; AVX512F-NEXT: LBB58_32: ## %else30 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_34 ; AVX512F-NEXT: ## BB#33: ## %cond.store31 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8791,8 +8654,7 @@ ; AVX512F-NEXT: LBB58_34: ## %else32 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_36 ; AVX512F-NEXT: ## BB#35: ## %cond.store33 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8800,8 +8662,7 @@ ; AVX512F-NEXT: LBB58_36: ## %else34 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_38 ; AVX512F-NEXT: ## BB#37: ## %cond.store35 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8809,8 +8670,7 @@ ; AVX512F-NEXT: LBB58_38: ## %else36 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_40 ; AVX512F-NEXT: ## BB#39: ## %cond.store37 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8818,8 +8678,7 @@ ; AVX512F-NEXT: LBB58_40: ## %else38 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_42 ; AVX512F-NEXT: ## BB#41: ## %cond.store39 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8827,8 +8686,7 @@ ; AVX512F-NEXT: LBB58_42: ## %else40 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_44 ; AVX512F-NEXT: ## BB#43: ## %cond.store41 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8836,8 +8694,7 @@ ; AVX512F-NEXT: LBB58_44: ## %else42 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_46 ; AVX512F-NEXT: ## BB#45: ## %cond.store43 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8845,8 +8702,7 @@ ; AVX512F-NEXT: LBB58_46: ## %else44 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_48 ; AVX512F-NEXT: ## BB#47: ## %cond.store45 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8854,8 +8710,7 @@ ; AVX512F-NEXT: LBB58_48: ## %else46 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_50 ; AVX512F-NEXT: ## BB#49: ## %cond.store47 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8863,8 +8718,7 @@ ; AVX512F-NEXT: LBB58_50: ## %else48 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_52 ; AVX512F-NEXT: ## BB#51: ## %cond.store49 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8872,8 +8726,7 @@ ; AVX512F-NEXT: LBB58_52: ## %else50 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_54 ; AVX512F-NEXT: ## BB#53: ## %cond.store51 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8881,8 +8734,7 @@ ; AVX512F-NEXT: LBB58_54: ## %else52 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_56 ; AVX512F-NEXT: ## BB#55: ## %cond.store53 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8890,8 +8742,7 @@ ; AVX512F-NEXT: LBB58_56: ## %else54 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_58 ; AVX512F-NEXT: ## BB#57: ## %cond.store55 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8900,8 +8751,7 @@ ; AVX512F-NEXT: vpmovsxbd %xmm2, %zmm0 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_60 ; AVX512F-NEXT: ## BB#59: ## %cond.store57 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm1 @@ -8910,8 +8760,7 @@ ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_62 ; AVX512F-NEXT: ## BB#61: ## %cond.store59 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm1 @@ -8919,8 +8768,7 @@ ; AVX512F-NEXT: LBB58_62: ## %else60 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_64 ; AVX512F-NEXT: ## BB#63: ## %cond.store61 ; AVX512F-NEXT: vextracti128 $1, %ymm4, %xmm0 @@ -8928,104 +8776,91 @@ ; AVX512F-NEXT: LBB58_64: ## %else62 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_66 ; AVX512F-NEXT: ## BB#65: ## %cond.store63 ; AVX512F-NEXT: vpextrb $0, %xmm5, 32(%rdi) ; AVX512F-NEXT: LBB58_66: ## %else64 ; AVX512F-NEXT: kshiftlw $14, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_68 ; AVX512F-NEXT: ## BB#67: ## %cond.store65 ; AVX512F-NEXT: vpextrb $1, %xmm5, 33(%rdi) ; AVX512F-NEXT: LBB58_68: ## %else66 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_70 ; AVX512F-NEXT: ## BB#69: ## %cond.store67 ; AVX512F-NEXT: vpextrb $2, %xmm5, 34(%rdi) ; AVX512F-NEXT: LBB58_70: ## %else68 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_72 ; AVX512F-NEXT: ## BB#71: ## %cond.store69 ; AVX512F-NEXT: vpextrb $3, %xmm5, 35(%rdi) ; AVX512F-NEXT: LBB58_72: ## %else70 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_74 ; AVX512F-NEXT: ## BB#73: ## %cond.store71 ; AVX512F-NEXT: vpextrb $4, %xmm5, 36(%rdi) ; AVX512F-NEXT: LBB58_74: ## %else72 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_76 ; AVX512F-NEXT: ## BB#75: ## %cond.store73 ; AVX512F-NEXT: vpextrb $5, %xmm5, 37(%rdi) ; AVX512F-NEXT: LBB58_76: ## %else74 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_78 ; AVX512F-NEXT: ## BB#77: ## %cond.store75 ; AVX512F-NEXT: vpextrb $6, %xmm5, 38(%rdi) ; AVX512F-NEXT: LBB58_78: ## %else76 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_80 ; AVX512F-NEXT: ## BB#79: ## %cond.store77 ; AVX512F-NEXT: vpextrb $7, %xmm5, 39(%rdi) ; AVX512F-NEXT: LBB58_80: ## %else78 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_82 ; AVX512F-NEXT: ## BB#81: ## %cond.store79 ; AVX512F-NEXT: vpextrb $8, %xmm5, 40(%rdi) ; AVX512F-NEXT: LBB58_82: ## %else80 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_84 ; AVX512F-NEXT: ## BB#83: ## %cond.store81 ; AVX512F-NEXT: vpextrb $9, %xmm5, 41(%rdi) ; AVX512F-NEXT: LBB58_84: ## %else82 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_86 ; AVX512F-NEXT: ## BB#85: ## %cond.store83 ; AVX512F-NEXT: vpextrb $10, %xmm5, 42(%rdi) ; AVX512F-NEXT: LBB58_86: ## %else84 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_88 ; AVX512F-NEXT: ## BB#87: ## %cond.store85 ; AVX512F-NEXT: vpextrb $11, %xmm5, 43(%rdi) ; AVX512F-NEXT: LBB58_88: ## %else86 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_90 ; AVX512F-NEXT: ## BB#89: ## %cond.store87 ; AVX512F-NEXT: vpextrb $12, %xmm5, 44(%rdi) @@ -9033,8 +8868,7 @@ ; AVX512F-NEXT: vpmovsxbd %xmm3, %zmm0 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_92 ; AVX512F-NEXT: ## BB#91: ## %cond.store89 ; AVX512F-NEXT: vpextrb $13, %xmm5, 45(%rdi) @@ -9042,24 +8876,21 @@ ; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB58_94 ; AVX512F-NEXT: ## BB#93: ## %cond.store91 ; AVX512F-NEXT: vpextrb $14, %xmm5, 46(%rdi) ; AVX512F-NEXT: LBB58_94: ## %else92 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_96 ; AVX512F-NEXT: ## BB#95: ## %cond.store93 ; AVX512F-NEXT: vpextrb $15, %xmm5, 47(%rdi) ; AVX512F-NEXT: LBB58_96: ## %else94 ; AVX512F-NEXT: kshiftlw $15, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_98 ; AVX512F-NEXT: ## BB#97: ## %cond.store95 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9067,8 +8898,7 @@ ; AVX512F-NEXT: LBB58_98: ## %else96 ; AVX512F-NEXT: kshiftlw $14, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_100 ; AVX512F-NEXT: ## BB#99: ## %cond.store97 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9076,8 +8906,7 @@ ; AVX512F-NEXT: LBB58_100: ## %else98 ; AVX512F-NEXT: kshiftlw $13, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_102 ; AVX512F-NEXT: ## BB#101: ## %cond.store99 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9085,8 +8914,7 @@ ; AVX512F-NEXT: LBB58_102: ## %else100 ; AVX512F-NEXT: kshiftlw $12, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_104 ; AVX512F-NEXT: ## BB#103: ## %cond.store101 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9094,8 +8922,7 @@ ; AVX512F-NEXT: LBB58_104: ## %else102 ; AVX512F-NEXT: kshiftlw $11, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_106 ; AVX512F-NEXT: ## BB#105: ## %cond.store103 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9103,8 +8930,7 @@ ; AVX512F-NEXT: LBB58_106: ## %else104 ; AVX512F-NEXT: kshiftlw $10, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_108 ; AVX512F-NEXT: ## BB#107: ## %cond.store105 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9112,8 +8938,7 @@ ; AVX512F-NEXT: LBB58_108: ## %else106 ; AVX512F-NEXT: kshiftlw $9, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_110 ; AVX512F-NEXT: ## BB#109: ## %cond.store107 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9121,8 +8946,7 @@ ; AVX512F-NEXT: LBB58_110: ## %else108 ; AVX512F-NEXT: kshiftlw $8, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_112 ; AVX512F-NEXT: ## BB#111: ## %cond.store109 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9130,8 +8954,7 @@ ; AVX512F-NEXT: LBB58_112: ## %else110 ; AVX512F-NEXT: kshiftlw $7, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_114 ; AVX512F-NEXT: ## BB#113: ## %cond.store111 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9139,8 +8962,7 @@ ; AVX512F-NEXT: LBB58_114: ## %else112 ; AVX512F-NEXT: kshiftlw $6, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_116 ; AVX512F-NEXT: ## BB#115: ## %cond.store113 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9148,8 +8970,7 @@ ; AVX512F-NEXT: LBB58_116: ## %else114 ; AVX512F-NEXT: kshiftlw $5, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_118 ; AVX512F-NEXT: ## BB#117: ## %cond.store115 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9157,8 +8978,7 @@ ; AVX512F-NEXT: LBB58_118: ## %else116 ; AVX512F-NEXT: kshiftlw $4, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_120 ; AVX512F-NEXT: ## BB#119: ## %cond.store117 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9166,8 +8986,7 @@ ; AVX512F-NEXT: LBB58_120: ## %else118 ; AVX512F-NEXT: kshiftlw $3, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_122 ; AVX512F-NEXT: ## BB#121: ## %cond.store119 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9175,8 +8994,7 @@ ; AVX512F-NEXT: LBB58_122: ## %else120 ; AVX512F-NEXT: kshiftlw $2, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_124 ; AVX512F-NEXT: ## BB#123: ## %cond.store121 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9184,16 +9002,14 @@ ; AVX512F-NEXT: LBB58_124: ## %else122 ; AVX512F-NEXT: kshiftlw $1, %k1, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_126 ; AVX512F-NEXT: ## BB#125: ## %cond.store123 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 ; AVX512F-NEXT: vpextrb $14, %xmm0, 62(%rdi) ; AVX512F-NEXT: LBB58_126: ## %else124 ; AVX512F-NEXT: kshiftrw $15, %k1, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB58_128 ; AVX512F-NEXT: ## BB#127: ## %cond.store125 ; AVX512F-NEXT: vextracti128 $1, %ymm5, %xmm0 @@ -9272,64 +9088,56 @@ ; AVX512F-NEXT: vptestmq %zmm0, %zmm0, %k0 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB59_2 ; AVX512F-NEXT: ## BB#1: ## %cond.store ; AVX512F-NEXT: vpextrw $0, %xmm1, (%rdi) ; AVX512F-NEXT: LBB59_2: ## %else ; AVX512F-NEXT: kshiftlw $14, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB59_4 ; AVX512F-NEXT: ## BB#3: ## %cond.store1 ; AVX512F-NEXT: vpextrw $1, %xmm1, 2(%rdi) ; AVX512F-NEXT: LBB59_4: ## %else2 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB59_6 ; AVX512F-NEXT: ## BB#5: ## %cond.store3 ; AVX512F-NEXT: vpextrw $2, %xmm1, 4(%rdi) ; AVX512F-NEXT: LBB59_6: ## %else4 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB59_8 ; AVX512F-NEXT: ## BB#7: ## %cond.store5 ; AVX512F-NEXT: vpextrw $3, %xmm1, 6(%rdi) ; AVX512F-NEXT: LBB59_8: ## %else6 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB59_10 ; AVX512F-NEXT: ## BB#9: ## %cond.store7 ; AVX512F-NEXT: vpextrw $4, %xmm1, 8(%rdi) ; AVX512F-NEXT: LBB59_10: ## %else8 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB59_12 ; AVX512F-NEXT: ## BB#11: ## %cond.store9 ; AVX512F-NEXT: vpextrw $5, %xmm1, 10(%rdi) ; AVX512F-NEXT: LBB59_12: ## %else10 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB59_14 ; AVX512F-NEXT: ## BB#13: ## %cond.store11 ; AVX512F-NEXT: vpextrw $6, %xmm1, 12(%rdi) ; AVX512F-NEXT: LBB59_14: ## %else12 ; AVX512F-NEXT: kshiftlw $8, %k0, %k0 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB59_16 ; AVX512F-NEXT: ## BB#15: ## %cond.store13 ; AVX512F-NEXT: vpextrw $7, %xmm1, 14(%rdi) @@ -9573,72 +9381,63 @@ ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0 ; AVX512F-NEXT: kshiftlw $15, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_2 ; AVX512F-NEXT: ## BB#1: ## %cond.store ; AVX512F-NEXT: vpextrw $0, %xmm1, (%rdi) ; AVX512F-NEXT: LBB60_2: ## %else ; AVX512F-NEXT: kshiftlw $14, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_4 ; AVX512F-NEXT: ## BB#3: ## %cond.store1 ; AVX512F-NEXT: vpextrw $1, %xmm1, 2(%rdi) ; AVX512F-NEXT: LBB60_4: ## %else2 ; AVX512F-NEXT: kshiftlw $13, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_6 ; AVX512F-NEXT: ## BB#5: ## %cond.store3 ; AVX512F-NEXT: vpextrw $2, %xmm1, 4(%rdi) ; AVX512F-NEXT: LBB60_6: ## %else4 ; AVX512F-NEXT: kshiftlw $12, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_8 ; AVX512F-NEXT: ## BB#7: ## %cond.store5 ; AVX512F-NEXT: vpextrw $3, %xmm1, 6(%rdi) ; AVX512F-NEXT: LBB60_8: ## %else6 ; AVX512F-NEXT: kshiftlw $11, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_10 ; AVX512F-NEXT: ## BB#9: ## %cond.store7 ; AVX512F-NEXT: vpextrw $4, %xmm1, 8(%rdi) ; AVX512F-NEXT: LBB60_10: ## %else8 ; AVX512F-NEXT: kshiftlw $10, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_12 ; AVX512F-NEXT: ## BB#11: ## %cond.store9 ; AVX512F-NEXT: vpextrw $5, %xmm1, 10(%rdi) ; AVX512F-NEXT: LBB60_12: ## %else10 ; AVX512F-NEXT: kshiftlw $9, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_14 ; AVX512F-NEXT: ## BB#13: ## %cond.store11 ; AVX512F-NEXT: vpextrw $6, %xmm1, 12(%rdi) ; AVX512F-NEXT: LBB60_14: ## %else12 ; AVX512F-NEXT: kshiftlw $8, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_16 ; AVX512F-NEXT: ## BB#15: ## %cond.store13 ; AVX512F-NEXT: vpextrw $7, %xmm1, 14(%rdi) ; AVX512F-NEXT: LBB60_16: ## %else14 ; AVX512F-NEXT: kshiftlw $7, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_18 ; AVX512F-NEXT: ## BB#17: ## %cond.store15 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0 @@ -9646,8 +9445,7 @@ ; AVX512F-NEXT: LBB60_18: ## %else16 ; AVX512F-NEXT: kshiftlw $6, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_20 ; AVX512F-NEXT: ## BB#19: ## %cond.store17 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0 @@ -9655,8 +9453,7 @@ ; AVX512F-NEXT: LBB60_20: ## %else18 ; AVX512F-NEXT: kshiftlw $5, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_22 ; AVX512F-NEXT: ## BB#21: ## %cond.store19 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0 @@ -9664,8 +9461,7 @@ ; AVX512F-NEXT: LBB60_22: ## %else20 ; AVX512F-NEXT: kshiftlw $4, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_24 ; AVX512F-NEXT: ## BB#23: ## %cond.store21 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0 @@ -9673,8 +9469,7 @@ ; AVX512F-NEXT: LBB60_24: ## %else22 ; AVX512F-NEXT: kshiftlw $3, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_26 ; AVX512F-NEXT: ## BB#25: ## %cond.store23 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0 @@ -9682,8 +9477,7 @@ ; AVX512F-NEXT: LBB60_26: ## %else24 ; AVX512F-NEXT: kshiftlw $2, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_28 ; AVX512F-NEXT: ## BB#27: ## %cond.store25 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0 @@ -9691,16 +9485,14 @@ ; AVX512F-NEXT: LBB60_28: ## %else26 ; AVX512F-NEXT: kshiftlw $1, %k0, %k1 ; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k1, %k1 ; AVX512F-NEXT: je LBB60_30 ; AVX512F-NEXT: ## BB#29: ## %cond.store27 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0 ; AVX512F-NEXT: vpextrw $6, %xmm0, 28(%rdi) ; AVX512F-NEXT: LBB60_30: ## %else28 ; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: testb %al, %al +; AVX512F-NEXT: kortestw %k0, %k0 ; AVX512F-NEXT: je LBB60_32 ; AVX512F-NEXT: ## BB#31: ## %cond.store29 ; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm0