brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 53803dd Raw
68 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --include-generated-funcs2; RUN: opt -S -passes=verify,iroutliner -ir-outlining-no-cost < %s | FileCheck %s3 4; Make sure that we outline from all three of these functions, and that5; the first instruction in the module is included when it is the only6; instruction in the first basic block.7 8define void @f1() {9bb:10  br label %bb111bb1:12  br label %bb213bb2:14  ret void15}16 17define void @f2() {18bb:19  br label %bb120bb1:21  br label %bb222bb2:23  ret void24}25 26define void @f3() {27bb:28  br label %bb129bb1:30  br label %bb231bb2:32  ret void33}34; CHECK-LABEL: @f1(35; CHECK-NEXT:  bb:36; CHECK-NEXT:    call void @outlined_ir_func_0()37; CHECK-NEXT:    br label [[BB2:%.*]]38; CHECK:       bb2:39; CHECK-NEXT:    ret void40;41;42; CHECK-LABEL: @f2(43; CHECK-NEXT:  bb:44; CHECK-NEXT:    call void @outlined_ir_func_0()45; CHECK-NEXT:    br label [[BB2:%.*]]46; CHECK:       bb2:47; CHECK-NEXT:    ret void48;49;50; CHECK-LABEL: @f3(51; CHECK-NEXT:  bb:52; CHECK-NEXT:    call void @outlined_ir_func_0()53; CHECK-NEXT:    br label [[BB2:%.*]]54; CHECK:       bb2:55; CHECK-NEXT:    ret void56;57;58; CHECK-LABEL: define internal void @outlined_ir_func_0(59; CHECK-NEXT:  newFuncRoot:60; CHECK-NEXT:    br label [[BB_TO_OUTLINE:%.*]]61; CHECK:       bb_to_outline:62; CHECK-NEXT:    br label [[BB1:%.*]]63; CHECK:       bb1:64; CHECK-NEXT:    br label [[BB2_EXITSTUB:%.*]]65; CHECK:       bb2.exitStub:66; CHECK-NEXT:    ret void67;68