Modify some ipconstprop tests to also test with invokes.
authorMatthijs Kooijman <matthijs@stdin.nl>
Thu, 19 Jun 2008 09:27:44 +0000 (09:27 +0000)
committerMatthijs Kooijman <matthijs@stdin.nl>
Thu, 19 Jun 2008 09:27:44 +0000 (09:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52491 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/IPConstantProp/return-argument.ll
test/Transforms/IPConstantProp/return-constant.ll

index 53288ee1086d1c21e64f051994a152c3e5ff60bd..f8605107bdcec5c2ebccc7328e2cfdf1e8e01b45 100644 (file)
@@ -36,11 +36,14 @@ define void @caller(i1 %C) {
         ;; propagated per-caller).
         %S1 = call { i32, i32 } @foo(i32 1, i32 2);
         %X1 = extractvalue { i32, i32 } %S1, 0
-        %S2 = call { i32, i32 } @foo(i32 3, i32 4);
+        %S2 = invoke { i32, i32 } @foo(i32 3, i32 4) to label %OK unwind label %RET;
+OK:
         %X2 = extractvalue { i32, i32 } %S2, 0
         ;; Do some stuff with the returned values which we can grep for
         %Z  = add i32 %X1, %X2
         store i32 %Z, i32* %W
+        br label %RET
+RET:
         ret void
 }
 
index 82ad902f42173978be5cd82160f330e36830c285..381ef63cc88e9a54833f262c829b1114c84dd935 100644 (file)
@@ -1,5 +1,5 @@
 ; RUN: llvm-as < %s | opt -ipconstprop -instcombine | \
-; RUN:    llvm-dis | grep {ret i1 true}
+; RUN:    llvm-dis | grep {ret i1 true} | count 2
 define internal i32 @foo(i1 %C) {
         br i1 %C, label %T, label %F
 
@@ -16,3 +16,11 @@ define i1 @caller(i1 %C) {
         ret i1 %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
+}