1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --include-generated-funcs
2; RUN: opt -S -verify -iroutliner -ir-outlining-no-cost < %s | FileCheck %s
3
4; This checks that we are able to outline exactly the same structure without
5; any other items to outline.
6
7define void @outline_outputs1() #0 {
8entry:
9  br label %next
10next:
11  br label %next2
12next2:
13  br label %next
14next3:
15  %a = alloca i32, align 4
16  br label %next4
17next4:
18  br label %next3
19next5:
20  br label %next6
21next6:
22  %b = alloca i32, align 4
23  ret void
24}
25
26; CHECK-LABEL: @outline_outputs1(
27; CHECK-NEXT:  entry:
28; CHECK-NEXT:    br label [[NEXT:%.*]]
29; CHECK:       next:
30; CHECK-NEXT:    call void @outlined_ir_func_0()
31; CHECK-NEXT:    br label [[NEXT]]
32; CHECK:       next3:
33; CHECK-NEXT:    [[A:%.*]] = alloca i32, align 4
34; CHECK-NEXT:    call void @outlined_ir_func_0()
35; CHECK-NEXT:    br label [[NEXT3:%.*]]
36; CHECK:       next5:
37; CHECK-NEXT:    br label [[NEXT6:%.*]]
38; CHECK:       next6:
39; CHECK-NEXT:    [[B:%.*]] = alloca i32, align 4
40; CHECK-NEXT:    ret void
41;
42;
43; CHECK: define internal void @outlined_ir_func_0(
44; CHECK:  newFuncRoot:
45; CHECK-NEXT:    br label [[NEXT_TO_OUTLINE:%.*]]
46; CHECK:       next_to_outline:
47; CHECK-NEXT:    br label [[NEXT2:%.*]]
48; CHECK:       next2:
49; CHECK-NEXT:    br label [[NEXT_EXITSTUB:%.*]]
50; CHECK:       next.exitStub:
51; CHECK-NEXT:    ret void
52;
53