diff options
author | Owen Anderson <resistor@mac.com> | 2010-09-03 19:08:37 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2010-09-03 19:08:37 +0000 |
commit | 1593dd6779d7ab1db13c44f32f987c32aff2b54b (patch) | |
tree | cd9e61db505f08b161f4fe3d43666844560b681c /test | |
parent | ac530614641a3702a90702b78acb6b9d8588881b (diff) | |
download | llvm-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.ll | 18 |
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 |