diff options
author | dim <dim@FreeBSD.org> | 2012-05-03 16:50:55 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-05-03 16:50:55 +0000 |
commit | 2c5e9d71aba3b1a85f07c08d2c09d40b8547264b (patch) | |
tree | 8575c732129e272992ac5d7b4c2519238fff4735 /test/CodeGen/ARM/ldr_post.ll | |
parent | 1fc08f5e9ef733ef1ce6f363fecedc2260e78974 (diff) | |
download | FreeBSD-src-2c5e9d71aba3b1a85f07c08d2c09d40b8547264b.zip FreeBSD-src-2c5e9d71aba3b1a85f07c08d2c09d40b8547264b.tar.gz |
Vendor import of llvm release_31 branch r155985:
http://llvm.org/svn/llvm-project/llvm/branches/release_31@155985
Diffstat (limited to 'test/CodeGen/ARM/ldr_post.ll')
-rw-r--r-- | test/CodeGen/ARM/ldr_post.ll | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/test/CodeGen/ARM/ldr_post.ll b/test/CodeGen/ARM/ldr_post.ll index 97a48e1..8ddf025 100644 --- a/test/CodeGen/ARM/ldr_post.ll +++ b/test/CodeGen/ARM/ldr_post.ll @@ -1,7 +1,9 @@ -; RUN: llc < %s -march=arm | \ -; RUN: grep {ldr.*\\\[.*\],} | count 1 +; RUN: llc < %s -march=arm | FileCheck %s -define i32 @test(i32 %a, i32 %b, i32 %c) { +; CHECK: test1: +; CHECK: ldr {{.*, \[.*]}}, -r2 +; CHECK-NOT: ldr +define i32 @test1(i32 %a, i32 %b, i32 %c) { %tmp1 = mul i32 %a, %b ; <i32> [#uses=2] %tmp2 = inttoptr i32 %tmp1 to i32* ; <i32*> [#uses=1] %tmp3 = load i32* %tmp2 ; <i32> [#uses=1] @@ -10,3 +12,14 @@ define i32 @test(i32 %a, i32 %b, i32 %c) { ret i32 %tmp5 } +; CHECK: test2: +; CHECK: ldr {{.*, \[.*\]}}, #-16 +; CHECK-NOT: ldr +define i32 @test2(i32 %a, i32 %b) { + %tmp1 = mul i32 %a, %b ; <i32> [#uses=2] + %tmp2 = inttoptr i32 %tmp1 to i32* ; <i32*> [#uses=1] + %tmp3 = load i32* %tmp2 ; <i32> [#uses=1] + %tmp4 = sub i32 %tmp1, 16 ; <i32> [#uses=1] + %tmp5 = mul i32 %tmp4, %tmp3 ; <i32> [#uses=1] + ret i32 %tmp5 +} |