diff options
-rw-r--r-- | llvm/test/Transforms/GlobalOpt/stored-once-forward-value.ll | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/llvm/test/Transforms/GlobalOpt/stored-once-forward-value.ll b/llvm/test/Transforms/GlobalOpt/stored-once-forward-value.ll index 88cd2a9..e12b550 100644 --- a/llvm/test/Transforms/GlobalOpt/stored-once-forward-value.ll +++ b/llvm/test/Transforms/GlobalOpt/stored-once-forward-value.ll @@ -1,10 +1,11 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -passes=globalopt -S < %s | FileCheck %s -@g1 = internal unnamed_addr global i1 false -@g2 = internal unnamed_addr global i1 false -@g3 = internal unnamed_addr global i1 false -@g4 = internal unnamed_addr global i1 false +@g1 = internal unnamed_addr global i32 0 +@g2 = internal unnamed_addr global i32 0 +@g3 = internal unnamed_addr global i32 0 +@g4 = internal unnamed_addr global i32 0 +@g5 = internal unnamed_addr global i32 0 declare void @b() @@ -67,3 +68,27 @@ end: %r = load i1, ptr @g4 ret i1 %r } + +define i1 @dom_multiple_function_loads() { +; CHECK-LABEL: @dom_multiple_function_loads( +; CHECK-NEXT: store i1 true, ptr @g5, align 1 +; CHECK-NEXT: call void @b() +; CHECK-NEXT: [[R:%.*]] = load i1, ptr @g5, align 1 +; CHECK-NEXT: ret i1 [[R]] +; + store i1 true, ptr @g5 + call void @b() + %r = load i1, ptr @g5 + ret i1 %r +} + +define i1 @other() { +; CHECK-LABEL: @other( +; CHECK-NEXT: call void @b() +; CHECK-NEXT: [[R:%.*]] = load i1, ptr @g5, align 1 +; CHECK-NEXT: ret i1 [[R]] +; + call void @b() + %r = load i1, ptr @g5 + ret i1 %r +} |