brintos

brintos / llvm-project-archived public Read only

0
0
Text · 932 B · 35b3ee3 Raw
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