38 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --scrub-attributes2; RUN: opt < %s -passes=argpromotion -S | FileCheck %s3 4; Don't promote around control flow.5define internal i32 @callee(i1 %C, ptr %P) {6; CHECK-LABEL: define {{[^@]+}}@callee7; CHECK-SAME: (i1 [[C:%.*]], ptr [[P:%.*]]) {8; CHECK-NEXT: entry:9; CHECK-NEXT: br i1 [[C]], label [[T:%.*]], label [[F:%.*]]10; CHECK: T:11; CHECK-NEXT: ret i32 1712; CHECK: F:13; CHECK-NEXT: [[X:%.*]] = load i32, ptr [[P]], align 414; CHECK-NEXT: ret i32 [[X]]15;16entry:17 br i1 %C, label %T, label %F18 19T:20 ret i32 1721 22F:23 %X = load i32, ptr %P24 ret i32 %X25}26 27define i32 @foo() {28; CHECK-LABEL: define {{[^@]+}}@foo() {29; CHECK-NEXT: entry:30; CHECK-NEXT: [[X:%.*]] = call i32 @callee(i1 true, ptr null)31; CHECK-NEXT: ret i32 [[X]]32;33entry:34 %X = call i32 @callee(i1 true, ptr null)35 ret i32 %X36}37 38