xref: /llvm-project/llvm/test/Transforms/IROutliner/outlining-basic-branches.ll (revision 9dd9575c55c74810675d5de40f56b37dd38fe3c3)
181d3ac0cSAndrew Litteken; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --include-generated-funcs
2*9dd9575cSRoman Lebedev; RUN: opt -S -passes=verify,iroutliner -ir-outlining-no-cost < %s | FileCheck %s
381d3ac0cSAndrew Litteken
481d3ac0cSAndrew Litteken; This checks that we are able to outline exactly the same structure without
581d3ac0cSAndrew Litteken; any other items to outline.
681d3ac0cSAndrew Litteken
781d3ac0cSAndrew Littekendefine void @outline_outputs1() #0 {
881d3ac0cSAndrew Littekenentry:
981d3ac0cSAndrew Litteken  br label %next
1081d3ac0cSAndrew Littekennext:
1181d3ac0cSAndrew Litteken  br label %next2
1281d3ac0cSAndrew Littekennext2:
130c4bbd29SAndrew Litteken  br label %next3
1481d3ac0cSAndrew Littekennext3:
1581d3ac0cSAndrew Litteken  %a = alloca i32, align 4
1681d3ac0cSAndrew Litteken  br label %next4
1781d3ac0cSAndrew Littekennext4:
180c4bbd29SAndrew Litteken  br label %next5
1981d3ac0cSAndrew Littekennext5:
2081d3ac0cSAndrew Litteken  br label %next6
2181d3ac0cSAndrew Littekennext6:
2281d3ac0cSAndrew Litteken  %b = alloca i32, align 4
2381d3ac0cSAndrew Litteken  ret void
2481d3ac0cSAndrew Litteken}
2581d3ac0cSAndrew Litteken
2681d3ac0cSAndrew Litteken; CHECK-LABEL: @outline_outputs1(
2781d3ac0cSAndrew Litteken; CHECK-NEXT:  entry:
2881d3ac0cSAndrew Litteken; CHECK-NEXT:    call void @outlined_ir_func_0()
290c4bbd29SAndrew Litteken; CHECK-NEXT:    br label [[NEXT3:%.*]]
3081d3ac0cSAndrew Litteken; CHECK:       next3:
3181d3ac0cSAndrew Litteken; CHECK-NEXT:    [[A:%.*]] = alloca i32, align 4
3281d3ac0cSAndrew Litteken; CHECK-NEXT:    call void @outlined_ir_func_0()
3381d3ac0cSAndrew Litteken; CHECK-NEXT:    br label [[NEXT6:%.*]]
3481d3ac0cSAndrew Litteken; CHECK:       next6:
3581d3ac0cSAndrew Litteken; CHECK-NEXT:    [[B:%.*]] = alloca i32, align 4
3681d3ac0cSAndrew Litteken; CHECK-NEXT:    ret void
3781d3ac0cSAndrew Litteken;
3881d3ac0cSAndrew Litteken;
3981d3ac0cSAndrew Litteken; CHECK: define internal void @outlined_ir_func_0(
400c4bbd29SAndrew Litteken; CHECK-NEXT:  newFuncRoot:
410c4bbd29SAndrew Litteken; CHECK-NEXT:    br label [[ENTRY_TO_OUTLINE:%.*]]
420c4bbd29SAndrew Litteken; CHECK:       entry_to_outline:
430c4bbd29SAndrew Litteken; CHECK-NEXT:    br label [[NEXT:%.*]]
440c4bbd29SAndrew Litteken; CHECK:       next:
4581d3ac0cSAndrew Litteken; CHECK-NEXT:    br label [[NEXT2:%.*]]
4681d3ac0cSAndrew Litteken; CHECK:       next2:
470c4bbd29SAndrew Litteken; CHECK-NEXT:    br label [[NEXT3_EXITSTUB:%.*]]
480c4bbd29SAndrew Litteken; CHECK:       next3.exitStub:
4981d3ac0cSAndrew Litteken; CHECK-NEXT:    ret void
5081d3ac0cSAndrew Litteken;
51