diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/vector-compare-results.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/vector-compare-results.ll | 544 |
1 files changed, 16 insertions, 528 deletions
diff --git a/llvm/test/CodeGen/X86/vector-compare-results.ll b/llvm/test/CodeGen/X86/vector-compare-results.ll index 029217cc32d..47ed70ce0ed 100644 --- a/llvm/test/CodeGen/X86/vector-compare-results.ll +++ b/llvm/test/CodeGen/X86/vector-compare-results.ll @@ -4259,280 +4259,24 @@ define <64 x i1> @test_cmp_v64i16(<64 x i16> %a0, <64 x i16> %a1) nounwind { ; ; AVX512F-LABEL: test_cmp_v64i16: ; AVX512F: # %bb.0: -; AVX512F-NEXT: vpcmpgtw %ymm7, %ymm3, %ymm3 -; AVX512F-NEXT: vpmovsxwd %ymm3, %zmm3 -; AVX512F-NEXT: vpslld $31, %zmm3, %zmm3 -; AVX512F-NEXT: vptestmd %zmm3, %zmm3, %k0 -; AVX512F-NEXT: kshiftlw $14, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: kshiftlw $15, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %ecx -; AVX512F-NEXT: vmovd %ecx, %xmm3 -; AVX512F-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $13, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $12, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $11, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $10, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $9, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $8, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $7, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $6, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $5, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $4, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $3, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $2, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftlw $1, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3 -; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3 ; AVX512F-NEXT: vpcmpgtw %ymm6, %ymm2, %ymm2 ; AVX512F-NEXT: vpmovsxwd %ymm2, %zmm2 -; AVX512F-NEXT: vpslld $31, %zmm2, %zmm2 -; AVX512F-NEXT: vptestmd %zmm2, %zmm2, %k0 -; AVX512F-NEXT: kshiftlw $14, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: kshiftlw $15, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %ecx -; AVX512F-NEXT: vmovd %ecx, %xmm2 -; AVX512F-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $13, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $12, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $11, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $10, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $9, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $8, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $7, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $6, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $5, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $4, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $3, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $2, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftlw $1, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2 -; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2 +; AVX512F-NEXT: vpmovdb %zmm2, %xmm2 +; AVX512F-NEXT: vpcmpgtw %ymm7, %ymm3, %ymm3 +; AVX512F-NEXT: vpmovsxwd %ymm3, %zmm3 +; AVX512F-NEXT: vpmovdb %zmm3, %xmm3 ; AVX512F-NEXT: vinserti128 $1, %xmm3, %ymm2, %ymm2 ; AVX512F-NEXT: vpsllw $7, %ymm2, %ymm2 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128] ; AVX512F-NEXT: vpand %ymm3, %ymm2, %ymm2 ; AVX512F-NEXT: vpxor %xmm6, %xmm6, %xmm6 ; AVX512F-NEXT: vpcmpgtb %ymm2, %ymm6, %ymm2 -; AVX512F-NEXT: vpcmpgtw %ymm5, %ymm1, %ymm1 -; AVX512F-NEXT: vpmovsxwd %ymm1, %zmm1 -; AVX512F-NEXT: vpslld $31, %zmm1, %zmm1 -; AVX512F-NEXT: vptestmd %zmm1, %zmm1, %k0 -; AVX512F-NEXT: kshiftlw $14, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: kshiftlw $15, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %ecx -; AVX512F-NEXT: vmovd %ecx, %xmm1 -; AVX512F-NEXT: vpinsrb $1, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $13, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $2, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $12, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $3, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $11, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $4, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $10, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $5, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $9, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $6, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $8, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $7, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $7, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $6, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $9, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $5, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $10, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $4, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $11, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $3, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $2, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $13, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftlw $1, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $14, %eax, %xmm1, %xmm1 -; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: vpinsrb $15, %eax, %xmm1, %xmm1 ; AVX512F-NEXT: vpcmpgtw %ymm4, %ymm0, %ymm0 ; AVX512F-NEXT: vpmovsxwd %ymm0, %zmm0 -; AVX512F-NEXT: vpslld $31, %zmm0, %zmm0 -; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k0 -; AVX512F-NEXT: kshiftlw $14, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: kshiftlw $15, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %ecx -; AVX512F-NEXT: vmovd %ecx, %xmm0 -; AVX512F-NEXT: vpinsrb $1, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $13, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $12, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $3, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $11, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $10, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $5, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $9, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $8, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $7, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $7, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $6, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $9, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $5, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $4, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $3, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $2, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $13, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftlw $1, %k0, %k1 -; AVX512F-NEXT: kshiftrw $15, %k1, %k1 -; AVX512F-NEXT: kmovw %k1, %eax -; AVX512F-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 -; AVX512F-NEXT: kshiftrw $15, %k0, %k0 -; AVX512F-NEXT: kmovw %k0, %eax -; AVX512F-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0 +; AVX512F-NEXT: vpmovdb %zmm0, %xmm0 +; AVX512F-NEXT: vpcmpgtw %ymm5, %ymm1, %ymm1 +; AVX512F-NEXT: vpmovsxwd %ymm1, %zmm1 +; AVX512F-NEXT: vpmovdb %zmm1, %xmm1 ; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0 ; AVX512F-NEXT: vpsllw $7, %ymm0, %ymm0 ; AVX512F-NEXT: vpand %ymm3, %ymm0, %ymm0 @@ -4546,280 +4290,24 @@ define <64 x i1> @test_cmp_v64i16(<64 x i16> %a0, <64 x i16> %a1) nounwind { ; ; AVX512DQ-LABEL: test_cmp_v64i16: ; AVX512DQ: # %bb.0: -; AVX512DQ-NEXT: vpcmpgtw %ymm7, %ymm3, %ymm3 -; AVX512DQ-NEXT: vpmovsxwd %ymm3, %zmm3 -; AVX512DQ-NEXT: vpslld $31, %zmm3, %zmm3 -; AVX512DQ-NEXT: vptestmd %zmm3, %zmm3, %k0 -; AVX512DQ-NEXT: kshiftlw $14, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: kshiftlw $15, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %ecx -; AVX512DQ-NEXT: vmovd %ecx, %xmm3 -; AVX512DQ-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $13, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $12, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $11, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $10, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $9, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $8, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $7, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $6, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $5, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $4, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $3, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $2, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftlw $1, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3 -; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0 -; AVX512DQ-NEXT: kmovw %k0, %eax -; AVX512DQ-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3 ; AVX512DQ-NEXT: vpcmpgtw %ymm6, %ymm2, %ymm2 ; AVX512DQ-NEXT: vpmovsxwd %ymm2, %zmm2 -; AVX512DQ-NEXT: vpslld $31, %zmm2, %zmm2 -; AVX512DQ-NEXT: vptestmd %zmm2, %zmm2, %k0 -; AVX512DQ-NEXT: kshiftlw $14, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: kshiftlw $15, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %ecx -; AVX512DQ-NEXT: vmovd %ecx, %xmm2 -; AVX512DQ-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $13, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $12, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $11, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $10, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $9, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $8, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $7, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $6, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $5, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $4, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $3, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $2, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftlw $1, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2 -; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0 -; AVX512DQ-NEXT: kmovw %k0, %eax -; AVX512DQ-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2 +; AVX512DQ-NEXT: vpmovdb %zmm2, %xmm2 +; AVX512DQ-NEXT: vpcmpgtw %ymm7, %ymm3, %ymm3 +; AVX512DQ-NEXT: vpmovsxwd %ymm3, %zmm3 +; AVX512DQ-NEXT: vpmovdb %zmm3, %xmm3 ; AVX512DQ-NEXT: vinserti128 $1, %xmm3, %ymm2, %ymm2 ; AVX512DQ-NEXT: vpsllw $7, %ymm2, %ymm2 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128] ; AVX512DQ-NEXT: vpand %ymm3, %ymm2, %ymm2 ; AVX512DQ-NEXT: vpxor %xmm6, %xmm6, %xmm6 ; AVX512DQ-NEXT: vpcmpgtb %ymm2, %ymm6, %ymm2 -; AVX512DQ-NEXT: vpcmpgtw %ymm5, %ymm1, %ymm1 -; AVX512DQ-NEXT: vpmovsxwd %ymm1, %zmm1 -; AVX512DQ-NEXT: vpslld $31, %zmm1, %zmm1 -; AVX512DQ-NEXT: vptestmd %zmm1, %zmm1, %k0 -; AVX512DQ-NEXT: kshiftlw $14, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: kshiftlw $15, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %ecx -; AVX512DQ-NEXT: vmovd %ecx, %xmm1 -; AVX512DQ-NEXT: vpinsrb $1, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $13, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $2, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $12, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $3, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $11, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $4, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $10, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $5, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $9, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $6, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $8, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $7, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $7, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $6, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $9, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $5, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $10, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $4, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $11, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $3, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $2, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $13, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftlw $1, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $14, %eax, %xmm1, %xmm1 -; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0 -; AVX512DQ-NEXT: kmovw %k0, %eax -; AVX512DQ-NEXT: vpinsrb $15, %eax, %xmm1, %xmm1 ; AVX512DQ-NEXT: vpcmpgtw %ymm4, %ymm0, %ymm0 ; AVX512DQ-NEXT: vpmovsxwd %ymm0, %zmm0 -; AVX512DQ-NEXT: vpslld $31, %zmm0, %zmm0 -; AVX512DQ-NEXT: vptestmd %zmm0, %zmm0, %k0 -; AVX512DQ-NEXT: kshiftlw $14, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: kshiftlw $15, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %ecx -; AVX512DQ-NEXT: vmovd %ecx, %xmm0 -; AVX512DQ-NEXT: vpinsrb $1, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $13, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $12, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $3, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $11, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $10, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $5, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $9, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $8, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $7, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $7, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $6, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $9, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $5, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $4, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $3, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $2, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $13, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftlw $1, %k0, %k1 -; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1 -; AVX512DQ-NEXT: kmovw %k1, %eax -; AVX512DQ-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 -; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0 -; AVX512DQ-NEXT: kmovw %k0, %eax -; AVX512DQ-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0 +; AVX512DQ-NEXT: vpmovdb %zmm0, %xmm0 +; AVX512DQ-NEXT: vpcmpgtw %ymm5, %ymm1, %ymm1 +; AVX512DQ-NEXT: vpmovsxwd %ymm1, %zmm1 +; AVX512DQ-NEXT: vpmovdb %zmm1, %xmm1 ; AVX512DQ-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0 ; AVX512DQ-NEXT: vpsllw $7, %ymm0, %ymm0 ; AVX512DQ-NEXT: vpand %ymm3, %ymm0, %ymm0 |