diff options
Diffstat (limited to 'llvm/test/Transforms/GlobalOpt/integer-bool.ll')
-rw-r--r-- | llvm/test/Transforms/GlobalOpt/integer-bool.ll | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/test/Transforms/GlobalOpt/integer-bool.ll b/llvm/test/Transforms/GlobalOpt/integer-bool.ll new file mode 100644 index 00000000000..617febdc016 --- /dev/null +++ b/llvm/test/Transforms/GlobalOpt/integer-bool.ll @@ -0,0 +1,28 @@ +; RUN: opt < %s -S -globalopt -instcombine | FileCheck %s +;; check that global opt turns integers that only hold 0 or 1 into bools. + +@G = internal addrspace(1) global i32 0 +; CHECK: @G +; CHECK: addrspace(1) +; CHECK: global i1 false + +define void @set1() { + store i32 0, i32 addrspace(1)* @G +; CHECK: store i1 false + ret void +} + +define void @set2() { + store i32 1, i32 addrspace(1)* @G +; CHECK: store i1 true + ret void +} + +define i1 @get() { +; CHECK-LABEL: @get( + %A = load i32, i32 addrspace(1) * @G + %C = icmp slt i32 %A, 2 + ret i1 %C +; CHECK: ret i1 true +} + |