| ; RUN: opt < %s -S -passes=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, ptr addrspace(1) @G |
| ; CHECK: store i1 false |
| ret void |
| } |
| |
| define void @set2() { |
| store i32 1, ptr addrspace(1) @G |
| ; CHECK: store i1 true |
| ret void |
| } |
| |
| define i1 @get() { |
| ; CHECK-LABEL: @get( |
| %A = load i32, ptr addrspace(1) @G |
| %C = icmp slt i32 %A, 2 |
| ret i1 %C |
| ; CHECK: ret i1 true |
| } |
| |