aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/Inline/inline_constprop.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/Inline/inline_constprop.ll')
-rw-r--r--test/Transforms/Inline/inline_constprop.ll43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/Transforms/Inline/inline_constprop.ll b/test/Transforms/Inline/inline_constprop.ll
index de23b6157a71..ab9e90ca27c6 100644
--- a/test/Transforms/Inline/inline_constprop.ll
+++ b/test/Transforms/Inline/inline_constprop.ll
@@ -279,3 +279,46 @@ return:
%retval.0 = phi i32* [ %b, %if.end3 ], [ %a, %if.then ]
ret i32* %retval.0
}
+
+declare i32 @PR28802.external(i32 returned %p1)
+
+define internal i32 @PR28802.callee() {
+entry:
+ br label %cont
+
+cont:
+ %0 = phi i32 [ 0, %entry ]
+ %call = call i32 @PR28802.external(i32 %0)
+ ret i32 %call
+}
+
+define i32 @PR28802() {
+entry:
+ %call = call i32 @PR28802.callee()
+ ret i32 %call
+}
+
+; CHECK-LABEL: define i32 @PR28802(
+; CHECK: call i32 @PR28802.external(i32 0)
+; CHECK: ret i32 0
+
+define internal i32 @PR28848.callee(i32 %p2, i1 %c) {
+entry:
+ br i1 %c, label %cond.end, label %cond.true
+
+cond.true:
+ br label %cond.end
+
+cond.end:
+ %cond = phi i32 [ 0, %cond.true ], [ %p2, %entry ]
+ %or = or i32 %cond, %p2
+ ret i32 %or
+}
+
+define i32 @PR28848() {
+entry:
+ %call = call i32 @PR28848.callee(i32 0, i1 false)
+ ret i32 %call
+}
+; CHECK-LABEL: define i32 @PR28848(
+; CHECK: ret i32 0