diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/kshift.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/kshift.ll | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/llvm/test/CodeGen/X86/kshift.ll b/llvm/test/CodeGen/X86/kshift.ll index 01db68382ca..eced654dba5 100644 --- a/llvm/test/CodeGen/X86/kshift.ll +++ b/llvm/test/CodeGen/X86/kshift.ll @@ -295,13 +295,10 @@ define i64 @kshiftl_v64i1_63(<64 x i8> %x, <64 x i8> %y) { define i8 @kshiftr_v8i1_1(<8 x i64> %x, <8 x i64> %y) { ; KNL-LABEL: kshiftr_v8i1_1: ; KNL: # %bb.0: -; KNL-NEXT: vptestnmq %zmm0, %zmm0, %k1 -; KNL-NEXT: vpxor %xmm0, %xmm0, %xmm0 -; KNL-NEXT: vpternlogq $255, %zmm2, %zmm2, %zmm2 {%k1} {z} -; KNL-NEXT: vmovdqa64 {{.*#+}} zmm3 = [1,2,3,4,5,6,7,15] -; KNL-NEXT: vpermi2q %zmm0, %zmm2, %zmm3 -; KNL-NEXT: vptestnmq %zmm1, %zmm1, %k1 -; KNL-NEXT: vptestmq %zmm3, %zmm3, %k0 {%k1} +; KNL-NEXT: vptestnmq %zmm0, %zmm0, %k0 +; KNL-NEXT: kshiftlw $8, %k0, %k0 +; KNL-NEXT: kshiftrw $9, %k0, %k1 +; KNL-NEXT: vptestnmq %zmm1, %zmm1, %k0 {%k1} ; KNL-NEXT: kmovw %k0, %eax ; KNL-NEXT: # kill: def $al killed $al killed $eax ; KNL-NEXT: vzeroupper @@ -643,14 +640,10 @@ define i8 @kshiftl_v8i1_u0123456(<8 x i64> %x, <8 x i64> %y) { define i8 @kshiftr_v8i1_1u3u567z(<8 x i64> %x, <8 x i64> %y) { ; KNL-LABEL: kshiftr_v8i1_1u3u567z: ; KNL: # %bb.0: -; KNL-NEXT: vptestnmq %zmm0, %zmm0, %k1 -; KNL-NEXT: vpxor %xmm0, %xmm0, %xmm0 -; KNL-NEXT: vpternlogq $255, %zmm2, %zmm2, %zmm2 {%k1} {z} -; KNL-NEXT: vmovdqa64 {{.*#+}} zmm3 = <1,u,3,u,5,6,7,15> -; KNL-NEXT: vpermi2q %zmm0, %zmm2, %zmm3 -; KNL-NEXT: vpsllq $63, %zmm3, %zmm0 -; KNL-NEXT: vptestnmq %zmm1, %zmm1, %k1 -; KNL-NEXT: vptestmq %zmm0, %zmm0, %k0 {%k1} +; KNL-NEXT: vptestnmq %zmm0, %zmm0, %k0 +; KNL-NEXT: kshiftlw $8, %k0, %k0 +; KNL-NEXT: kshiftrw $9, %k0, %k1 +; KNL-NEXT: vptestnmq %zmm1, %zmm1, %k0 {%k1} ; KNL-NEXT: kmovw %k0, %eax ; KNL-NEXT: # kill: def $al killed $al killed $eax ; KNL-NEXT: vzeroupper |