summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2010-09-03 19:08:37 +0000
committerOwen Anderson <resistor@mac.com>2010-09-03 19:08:37 +0000
commit1593dd6779d7ab1db13c44f32f987c32aff2b54b (patch)
treecd9e61db505f08b161f4fe3d43666844560b681c /test
parentac530614641a3702a90702b78acb6b9d8588881b (diff)
downloadllvm-1593dd6779d7ab1db13c44f32f987c32aff2b54b.tar.gz
llvm-1593dd6779d7ab1db13c44f32f987c32aff2b54b.tar.bz2
llvm-1593dd6779d7ab1db13c44f32f987c32aff2b54b.tar.xz
Add support for simplifying a load from a computed value to a load from a global when it
is provable that they're equivalent. This fixes PR4855. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112994 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/CorrelatedValuePropagation/basic.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/Transforms/CorrelatedValuePropagation/basic.ll b/test/Transforms/CorrelatedValuePropagation/basic.ll
index 9a9fc0f639..7752ebd7ee 100644
--- a/test/Transforms/CorrelatedValuePropagation/basic.ll
+++ b/test/Transforms/CorrelatedValuePropagation/basic.ll
@@ -39,3 +39,21 @@ bb3: ; preds = %bb1
; CHECK: ret i1 %res
ret i1 %res
}
+
+; PR4855
+@gv = internal constant i8 7
+; CHECK: @test3
+define i8 @test3(i8* %a) nounwind {
+entry:
+ %cond = icmp eq i8* %a, @gv
+ br i1 %cond, label %bb2, label %bb
+
+bb: ; preds = %entry
+ ret i8 0
+
+bb2: ; preds = %entry
+; CHECK-NOT: load i8* %a
+ %should_be_const = load i8* %a
+; CHECK: ret i8 7
+ ret i8 %should_be_const
+} \ No newline at end of file