1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --scrub-attributes 2; RUN: opt < %s -passes=argpromotion -S | FileCheck %s 3 4; Don't promote around control flow. 5define internal i32 @callee(i1 %C, ptr %P) { 6; CHECK-LABEL: define {{[^@]+}}@callee 7; 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 17 12; CHECK: F: 13; CHECK-NEXT: [[X:%.*]] = load i32, ptr [[P]], align 4 14; CHECK-NEXT: ret i32 [[X]] 15; 16entry: 17 br i1 %C, label %T, label %F 18 19T: 20 ret i32 17 21 22F: 23 %X = load i32, ptr %P 24 ret i32 %X 25} 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 %X 36} 37 38