Fix typo "Makre" -> "Make".
[oota-llvm.git] / test / Transforms / IPConstantProp / return-constant.ll
index 50c55d88bfb36b0fef93f9bc02ad7091a09a0ba1..499d38329522ce95863a53c50bc56f297d57810e 100644 (file)
@@ -1,16 +1,30 @@
-; RUN: llvm-as < %s | opt -ipconstprop -instcombine | llvm-dis | grep 'ret bool true'
-implementation
+; RUN: opt < %s -ipconstprop -instcombine | \
+; RUN:    llvm-dis | grep "ret i1 true" | count 2
+define internal i32 @foo(i1 %C) {
+        br i1 %C, label %T, label %F
 
-internal int %foo(bool %C) {
-       br bool %C, label %T, label %F
-T:
-       ret int 52
-F:
-       ret int 52
+T:              ; preds = %0
+        ret i32 52
+
+F:              ; preds = %0
+        ret i32 52
+}
+
+define i1 @caller(i1 %C) {
+        %X = call i32 @foo( i1 %C )             ; <i32> [#uses=1]
+        %Y = icmp ne i32 %X, 0          ; <i1> [#uses=1]
+        ret i1 %Y
 }
 
-bool %caller(bool %C) {
-       %X = call int %foo(bool %C)
-       %Y = setne int %X, 0
-       ret bool %Y
+define i1 @invokecaller(i1 %C) {
+        %X = invoke i32 @foo( i1 %C ) to label %OK unwind label %FAIL             ; <i32> [#uses=1]
+OK:
+        %Y = icmp ne i32 %X, 0          ; <i1> [#uses=1]
+        ret i1 %Y 
+FAIL:
+        %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+                 cleanup
+        ret i1 false
 }
+
+declare i32 @__gxx_personality_v0(...)