Use a worklist to avoid a sneaky iterator invalidation.
[oota-llvm.git] / test / Transforms / GlobalOpt / integer-bool.ll
index 4c1fcb6ecef728b97a18dd0dda3e2f893b7d4e25..51858069ac5b73b9543473d97007f1e1091e7830 100644 (file)
@@ -1,22 +1,28 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -globalopt -instcombine | llvm-dis | grep 'ret bool true'
-
+; RUN: opt < %s -S -globalopt -instcombine | FileCheck %s
 ;; check that global opt turns integers that only hold 0 or 1 into bools.
 
-%G = internal global int 0    ;; This only holds 0 or 1.
-
-implementation
+@G = internal addrspace(1) global i32 0
+; CHECK: @G
+; CHECK: addrspace(1)
+; CHECK: global i1 false
 
-void %set1() {
-       store int 0, int* %G
-       ret void
+define void @set1() {
+  store i32 0, i32 addrspace(1)* @G
+; CHECK: store i1 false
+  ret void
 }
-void %set2() {
-       store int 1, int* %G
-       ret void
+
+define void @set2() {
+  store i32 1, i32 addrspace(1)* @G
+; CHECK: store i1 true
+  ret void
 }
 
-bool %get() {
-       %A = load int* %G
-       %C = setlt int %A, 2  ;; always true
-       ret bool %C
+define i1 @get() {
+; CHECK: @get
+  %A = load i32 addrspace(1) * @G
+  %C = icmp slt i32 %A, 2
+  ret i1 %C
+; CHECK: ret i1 true
 }
+