66 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=inline -S < %s | FileCheck %s3; RUN: opt -passes='cgscc(inline)' -S < %s | FileCheck %s4; RUN: opt -passes='module-inline' -S < %s | FileCheck %s5 6define dso_local i32 @main() {7; CHECK-LABEL: @main(8; CHECK-NEXT: bb:9; CHECK-NEXT: [[I_I:%.*]] = alloca i32, align 410; CHECK-NEXT: [[I1_I:%.*]] = alloca i32, align 411; CHECK-NEXT: [[I:%.*]] = alloca i32, align 412; CHECK-NEXT: store i32 0, ptr [[I]], align 413; CHECK-NEXT: call void @llvm.lifetime.start.p0(ptr [[I_I]])14; CHECK-NEXT: call void @llvm.lifetime.start.p0(ptr [[I1_I]])15; CHECK-NEXT: store i32 0, ptr [[I1_I]], align 416; CHECK-NEXT: [[I2_I:%.*]] = load i32, ptr [[I1_I]], align 417; CHECK-NEXT: callbr void asm sideeffect "", "r,!i,!i,~{dirflag},~{fpsr},~{flags}"(i32 [[I2_I]])18; CHECK-NEXT: to label [[BB3_I:%.*]] [label [[BB5_I:%.*]], label %bb4.i]19; CHECK: bb3.i:20; CHECK-NEXT: store i32 0, ptr [[I_I]], align 421; CHECK-NEXT: br label [[T32_EXIT:%.*]]22; CHECK: bb4.i:23; CHECK-NEXT: store i32 1, ptr [[I_I]], align 424; CHECK-NEXT: br label [[T32_EXIT]]25; CHECK: bb5.i:26; CHECK-NEXT: store i32 2, ptr [[I_I]], align 427; CHECK-NEXT: br label [[T32_EXIT]]28; CHECK: t32.exit:29; CHECK-NEXT: [[I7_I:%.*]] = load i32, ptr [[I_I]], align 430; CHECK-NEXT: call void @llvm.lifetime.end.p0(ptr [[I_I]])31; CHECK-NEXT: call void @llvm.lifetime.end.p0(ptr [[I1_I]])32; CHECK-NEXT: ret i32 [[I7_I]]33;34bb:35 %i = alloca i32, align 436 store i32 0, ptr %i, align 437 %i1 = call i32 @t32(i32 0)38 ret i32 %i139}40 41define internal i32 @t32(i32 %arg) {42bb:43 %i = alloca i32, align 444 %i1 = alloca i32, align 445 store i32 %arg, ptr %i1, align 446 %i2 = load i32, ptr %i1, align 447 callbr void asm sideeffect "", "r,!i,!i,~{dirflag},~{fpsr},~{flags}"(i32 %i2)48 to label %bb3 [label %bb5, label %bb4]49 50bb3: ; preds = %bb51 store i32 0, ptr %i, align 452 br label %bb653 54bb4: ; preds = %bb55 store i32 1, ptr %i, align 456 br label %bb657 58bb5: ; preds = %bb59 store i32 2, ptr %i, align 460 br label %bb661 62bb6: ; preds = %bb5, %bb4, %bb363 %i7 = load i32, ptr %i, align 464 ret i32 %i765}66