Revert r129518, "Change ELF systems to use CFI for producing the EH tables. This...
[oota-llvm.git] / test / Transforms / IPConstantProp / return-constant.ll
index a3e2832c5ee6ec5def6787f2806846a5f4706b4e..b25585952873dcd6e4f17c637cc254e4d0b3ec77 100644 (file)
@@ -1,16 +1,26 @@
-; 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 = cast int %X to bool
-       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:
+        ret i1 false
 }