diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/vector-compare-results.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/vector-compare-results.ll | 417 |
1 files changed, 33 insertions, 384 deletions
diff --git a/llvm/test/CodeGen/X86/vector-compare-results.ll b/llvm/test/CodeGen/X86/vector-compare-results.ll index 1ac7f5155ff..bfe1a65eb54 100644 --- a/llvm/test/CodeGen/X86/vector-compare-results.ll +++ b/llvm/test/CodeGen/X86/vector-compare-results.ll @@ -1,3 +1,4 @@ +; NOTE: Assertions have been autogenerated by update_llc_test_checks.py ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefix=SSE --check-prefix=SSE2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse4.2 | FileCheck %s --check-prefix=SSE --check-prefix=SSE42 @@ -6569,393 +6570,41 @@ define <128 x i1> @test_cmp_v128i8(<128 x i8> %a0, <128 x i8> %a1) nounwind { ; AVX512-NEXT: vpcmpgtb %ymm6, %ymm2, %ymm2 ; AVX512-NEXT: vpcmpgtb %ymm7, %ymm3, %ymm3 ; AVX512-NEXT: vextracti128 $1, %ymm3, %xmm4 -; AVX512-NEXT: vpextrb $15, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $14, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $13, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $12, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $11, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $10, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $9, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $8, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $7, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $6, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $5, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $4, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $3, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $2, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $1, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $0, %xmm4, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $15, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $14, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $13, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $12, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $11, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $10, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $9, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $8, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $7, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $6, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $5, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $4, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $3, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $2, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $1, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) -; AVX512-NEXT: vpextrb $0, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 12(%rdi) +; AVX512-NEXT: vpmovsxbd %xmm4, %zmm4 +; AVX512-NEXT: vpslld $31, %zmm4, %zmm4 +; AVX512-NEXT: vptestmd %zmm4, %zmm4, %k0 +; AVX512-NEXT: kmovw %k0, 14(%rdi) +; AVX512-NEXT: vpmovsxbd %xmm3, %zmm3 +; AVX512-NEXT: vpslld $31, %zmm3, %zmm3 +; AVX512-NEXT: vptestmd %zmm3, %zmm3, %k0 +; AVX512-NEXT: kmovw %k0, 12(%rdi) ; AVX512-NEXT: vextracti128 $1, %ymm2, %xmm3 -; AVX512-NEXT: vpextrb $15, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $14, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $13, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $12, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $11, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $10, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $9, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $8, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $7, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $6, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $5, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $4, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $3, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $2, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $1, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $0, %xmm3, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $15, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $14, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $13, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $12, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $11, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $10, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $9, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $8, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $7, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $6, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $5, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $4, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $3, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $2, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $1, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) -; AVX512-NEXT: vpextrb $0, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 8(%rdi) +; AVX512-NEXT: vpmovsxbd %xmm3, %zmm3 +; AVX512-NEXT: vpslld $31, %zmm3, %zmm3 +; AVX512-NEXT: vptestmd %zmm3, %zmm3, %k0 +; AVX512-NEXT: kmovw %k0, 10(%rdi) +; AVX512-NEXT: vpmovsxbd %xmm2, %zmm2 +; AVX512-NEXT: vpslld $31, %zmm2, %zmm2 +; AVX512-NEXT: vptestmd %zmm2, %zmm2, %k0 +; AVX512-NEXT: kmovw %k0, 8(%rdi) ; AVX512-NEXT: vextracti128 $1, %ymm1, %xmm2 -; AVX512-NEXT: vpextrb $15, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $14, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $13, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $12, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $11, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $10, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $9, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $8, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $7, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $6, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $5, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $4, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $3, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $2, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $1, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $0, %xmm2, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $15, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $14, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $13, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $12, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $11, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $10, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $9, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $8, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $7, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $6, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $5, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $4, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $3, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $2, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $1, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) -; AVX512-NEXT: vpextrb $0, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, 4(%rdi) +; AVX512-NEXT: vpmovsxbd %xmm2, %zmm2 +; AVX512-NEXT: vpslld $31, %zmm2, %zmm2 +; AVX512-NEXT: vptestmd %zmm2, %zmm2, %k0 +; AVX512-NEXT: kmovw %k0, 6(%rdi) +; AVX512-NEXT: vpmovsxbd %xmm1, %zmm1 +; AVX512-NEXT: vpslld $31, %zmm1, %zmm1 +; AVX512-NEXT: vptestmd %zmm1, %zmm1, %k0 +; AVX512-NEXT: kmovw %k0, 4(%rdi) ; AVX512-NEXT: vextracti128 $1, %ymm0, %xmm1 -; AVX512-NEXT: vpextrb $15, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $14, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $13, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $12, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $11, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $10, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $9, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $8, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $7, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $6, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $5, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $4, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $3, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $2, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $1, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $0, %xmm1, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $15, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $14, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $13, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $12, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $11, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $10, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $9, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $8, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $7, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $6, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $5, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $4, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $3, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $2, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $1, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) -; AVX512-NEXT: vpextrb $0, %xmm0, %eax -; AVX512-NEXT: andb $1, %al -; AVX512-NEXT: movb %al, (%rdi) +; AVX512-NEXT: vpmovsxbd %xmm1, %zmm1 +; AVX512-NEXT: vpslld $31, %zmm1, %zmm1 +; AVX512-NEXT: vptestmd %zmm1, %zmm1, %k0 +; AVX512-NEXT: kmovw %k0, 2(%rdi) +; AVX512-NEXT: vpmovsxbd %xmm0, %zmm0 +; AVX512-NEXT: vpslld $31, %zmm0, %zmm0 +; AVX512-NEXT: vptestmd %zmm0, %zmm0, %k0 +; AVX512-NEXT: kmovw %k0, (%rdi) ; AVX512-NEXT: movq %rdi, %rax ; AVX512-NEXT: retq %1 = icmp sgt <128 x i8> %a0, %a1 |

