summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/sadd_sat.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/sadd_sat.ll')
-rw-r--r--llvm/test/CodeGen/X86/sadd_sat.ll41
1 files changed, 17 insertions, 24 deletions
diff --git a/llvm/test/CodeGen/X86/sadd_sat.ll b/llvm/test/CodeGen/X86/sadd_sat.ll
index 485e547f594..ffb4e731f9e 100644
--- a/llvm/test/CodeGen/X86/sadd_sat.ll
+++ b/llvm/test/CodeGen/X86/sadd_sat.ll
@@ -158,36 +158,29 @@ define signext i8 @func8(i8 signext %x, i8 signext %y) nounwind {
define signext i4 @func3(i4 signext %x, i4 signext %y) nounwind {
; X86-LABEL: func3:
; X86: # %bb.0:
-; X86-NEXT: movb {{[0-9]+}}(%esp), %cl
-; X86-NEXT: movb {{[0-9]+}}(%esp), %dl
-; X86-NEXT: shlb $4, %dl
-; X86-NEXT: shlb $4, %cl
-; X86-NEXT: xorl %eax, %eax
-; X86-NEXT: movb %cl, %ch
-; X86-NEXT: addb %dl, %ch
-; X86-NEXT: setns %al
-; X86-NEXT: addl $127, %eax
-; X86-NEXT: addb %dl, %cl
-; X86-NEXT: movzbl %cl, %ecx
-; X86-NEXT: cmovol %eax, %ecx
-; X86-NEXT: sarb $4, %cl
+; X86-NEXT: movb {{[0-9]+}}(%esp), %al
+; X86-NEXT: addb {{[0-9]+}}(%esp), %al
+; X86-NEXT: movzbl %al, %ecx
+; X86-NEXT: cmpb $7, %al
+; X86-NEXT: movl $7, %eax
+; X86-NEXT: cmovll %ecx, %eax
+; X86-NEXT: cmpb $-8, %al
+; X86-NEXT: movl $248, %ecx
+; X86-NEXT: cmovgl %eax, %ecx
; X86-NEXT: movsbl %cl, %eax
; X86-NEXT: retl
;
; X64-LABEL: func3:
; X64: # %bb.0:
-; X64-NEXT: shlb $4, %sil
-; X64-NEXT: shlb $4, %dil
-; X64-NEXT: xorl %eax, %eax
-; X64-NEXT: movl %edi, %ecx
-; X64-NEXT: addb %sil, %cl
-; X64-NEXT: setns %al
-; X64-NEXT: addl $127, %eax
; X64-NEXT: addb %sil, %dil
-; X64-NEXT: movzbl %dil, %ecx
-; X64-NEXT: cmovol %eax, %ecx
-; X64-NEXT: sarb $4, %cl
-; X64-NEXT: movsbl %cl, %eax
+; X64-NEXT: movzbl %dil, %eax
+; X64-NEXT: cmpb $7, %al
+; X64-NEXT: movl $7, %ecx
+; X64-NEXT: cmovll %eax, %ecx
+; X64-NEXT: cmpb $-8, %cl
+; X64-NEXT: movl $248, %eax
+; X64-NEXT: cmovgl %ecx, %eax
+; X64-NEXT: movsbl %al, %eax
; X64-NEXT: retq
%tmp = call i4 @llvm.sadd.sat.i4(i4 %x, i4 %y);
ret i4 %tmp;
OpenPOWER on IntegriCloud