summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/add.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-12-20 01:16:03 +0000
committerChris Lattner <sabre@nondot.org>2010-12-20 01:16:03 +0000
commit39ffcb7b62a75d186a7f14b38aacb1615593fdbd (patch)
treee0c8ecf39907ca5a0ffe62d2284762805c7459fa /test/CodeGen/X86/add.ll
parentb085181258bf2566e7b58389591acc213b0b2927 (diff)
downloadllvm-39ffcb7b62a75d186a7f14b38aacb1615593fdbd.tar.gz
llvm-39ffcb7b62a75d186a7f14b38aacb1615593fdbd.tar.bz2
llvm-39ffcb7b62a75d186a7f14b38aacb1615593fdbd.tar.xz
We lower setb to sbb with the hope that the and will go away, when it
doesn't, match it back to setb. On a 64-bit version of the testcase before we'd get: movq %rdi, %rax addq %rsi, %rax sbbb %dl, %dl andb $1, %dl ret now we get: movq %rdi, %rax addq %rsi, %rax setb %dl ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122217 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/add.ll')
-rw-r--r--test/CodeGen/X86/add.ll9
1 files changed, 9 insertions, 0 deletions
diff --git a/test/CodeGen/X86/add.ll b/test/CodeGen/X86/add.ll
index 3991a6849f..1201c06fcc 100644
--- a/test/CodeGen/X86/add.ll
+++ b/test/CodeGen/X86/add.ll
@@ -92,3 +92,12 @@ define i64 @test6(i64 %A, i32 %B) nounwind {
; X64: ret
}
+define {i32, i1} @test7(i32 %v1, i32 %v2) nounwind {
+ %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2)
+ ret {i32, i1} %t
+}
+
+; X64: test7:
+; X64: addl %esi, %eax
+; X64-NEXT: setb %dl
+; X64-NEXT: ret