summaryrefslogtreecommitdiff
path: root/test/Transforms/ArgumentPromotion/control-flow.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/ArgumentPromotion/control-flow.ll')
-rw-r--r--test/Transforms/ArgumentPromotion/control-flow.ll28
1 files changed, 18 insertions, 10 deletions
diff --git a/test/Transforms/ArgumentPromotion/control-flow.ll b/test/Transforms/ArgumentPromotion/control-flow.ll
index cdff36eb83c0..c3fe0c00e877 100644
--- a/test/Transforms/ArgumentPromotion/control-flow.ll
+++ b/test/Transforms/ArgumentPromotion/control-flow.ll
@@ -1,19 +1,27 @@
-; RUN: opt < %s -argpromotion -S | \
-; RUN: not grep "load i32* null"
+; RUN: opt < %s -argpromotion -S | FileCheck %s
+; RUN: opt < %s -passes=argpromotion -S | FileCheck %s
+; Don't promote around control flow.
define internal i32 @callee(i1 %C, i32* %P) {
- br i1 %C, label %T, label %F
+; CHECK-LABEL: define internal i32 @callee(
+; CHECK: i1 %C, i32* %P)
+entry:
+ br i1 %C, label %T, label %F
-T: ; preds = %0
- ret i32 17
+T:
+ ret i32 17
-F: ; preds = %0
- %X = load i32, i32* %P ; <i32> [#uses=1]
- ret i32 %X
+F:
+ %X = load i32, i32* %P
+ ret i32 %X
}
define i32 @foo() {
- %X = call i32 @callee( i1 true, i32* null ) ; <i32> [#uses=1]
- ret i32 %X
+; CHECK-LABEL: define i32 @foo(
+entry:
+; CHECK-NOT: load i32, i32* null
+ %X = call i32 @callee(i1 true, i32* null)
+; CHECK: call i32 @callee(i1 true, i32* null)
+ ret i32 %X
}