diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/sadd_sat.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/sadd_sat.ll | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/llvm/test/CodeGen/X86/sadd_sat.ll b/llvm/test/CodeGen/X86/sadd_sat.ll index e395bb4e04b..697ff90c593 100644 --- a/llvm/test/CodeGen/X86/sadd_sat.ll +++ b/llvm/test/CodeGen/X86/sadd_sat.ll @@ -183,28 +183,20 @@ define <4 x i32> @vec(<4 x i32> %x, <4 x i32> %y) nounwind { ; ; X64-LABEL: vec: ; X64: # %bb.0: +; X64-NEXT: pxor %xmm2, %xmm2 ; X64-NEXT: pxor %xmm3, %xmm3 -; X64-NEXT: pxor %xmm4, %xmm4 -; X64-NEXT: pcmpgtd %xmm1, %xmm4 -; X64-NEXT: pcmpeqd %xmm2, %xmm2 -; X64-NEXT: pxor %xmm2, %xmm4 -; X64-NEXT: pxor %xmm5, %xmm5 -; X64-NEXT: pcmpgtd %xmm0, %xmm5 -; X64-NEXT: pxor %xmm2, %xmm5 -; X64-NEXT: pcmpeqd %xmm5, %xmm4 -; X64-NEXT: paddd %xmm1, %xmm0 -; X64-NEXT: pcmpgtd %xmm0, %xmm3 -; X64-NEXT: pxor %xmm3, %xmm2 -; X64-NEXT: pcmpeqd %xmm5, %xmm2 -; X64-NEXT: pandn %xmm4, %xmm2 -; X64-NEXT: movdqa %xmm3, %xmm1 -; X64-NEXT: pandn {{.*}}(%rip), %xmm1 -; X64-NEXT: psrld $1, %xmm3 -; X64-NEXT: por %xmm1, %xmm3 -; X64-NEXT: pand %xmm2, %xmm3 -; X64-NEXT: pandn %xmm0, %xmm2 +; X64-NEXT: pcmpgtd %xmm1, %xmm3 +; X64-NEXT: paddd %xmm0, %xmm1 +; X64-NEXT: pcmpgtd %xmm1, %xmm0 +; X64-NEXT: pxor %xmm3, %xmm0 +; X64-NEXT: pcmpgtd %xmm1, %xmm2 +; X64-NEXT: movdqa %xmm2, %xmm3 +; X64-NEXT: pandn {{.*}}(%rip), %xmm3 +; X64-NEXT: psrld $1, %xmm2 ; X64-NEXT: por %xmm3, %xmm2 -; X64-NEXT: movdqa %xmm2, %xmm0 +; X64-NEXT: pand %xmm0, %xmm2 +; X64-NEXT: pandn %xmm1, %xmm0 +; X64-NEXT: por %xmm2, %xmm0 ; X64-NEXT: retq %tmp = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> %x, <4 x i32> %y); ret <4 x i32> %tmp; |