diff options
-rw-r--r-- | test/CodeGen/Generic/addc-fold2.ll | 10 | ||||
-rw-r--r-- | test/CodeGen/X86/add.ll | 20 |
2 files changed, 20 insertions, 10 deletions
diff --git a/test/CodeGen/Generic/addc-fold2.ll b/test/CodeGen/Generic/addc-fold2.ll deleted file mode 100644 index 34f5ac1b98..0000000000 --- a/test/CodeGen/Generic/addc-fold2.ll +++ /dev/null @@ -1,10 +0,0 @@ -; RUN: llc < %s -march=x86 | grep add -; RUN: llc < %s -march=x86 | not grep adc - -define i64 @test(i64 %A, i32 %B) { - %tmp12 = zext i32 %B to i64 ; <i64> [#uses=1] - %tmp3 = shl i64 %tmp12, 32 ; <i64> [#uses=1] - %tmp5 = add i64 %tmp3, %A ; <i64> [#uses=1] - ret i64 %tmp5 -} - diff --git a/test/CodeGen/X86/add.ll b/test/CodeGen/X86/add.ll index d8390776f9..3991a6849f 100644 --- a/test/CodeGen/X86/add.ll +++ b/test/CodeGen/X86/add.ll @@ -72,3 +72,23 @@ carry: declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32) declare {i32, i1} @llvm.uadd.with.overflow.i32(i32, i32) + + +define i64 @test6(i64 %A, i32 %B) nounwind { + %tmp12 = zext i32 %B to i64 ; <i64> [#uses=1] + %tmp3 = shl i64 %tmp12, 32 ; <i64> [#uses=1] + %tmp5 = add i64 %tmp3, %A ; <i64> [#uses=1] + ret i64 %tmp5 + +; X32: test6: +; X32: movl 12(%esp), %edx +; X32-NEXT: addl 8(%esp), %edx +; X32-NEXT: movl 4(%esp), %eax +; X32-NEXT: ret + +; X64: test6: +; X64: shlq $32, %rsi +; X64: leaq (%rsi,%rdi), %rax +; X64: ret +} + |