xref: /llvm-project/llvm/test/Transforms/Inline/switch.ll (revision e5369823bc0655806469724335d0ca5a4c17d8c7)
1; RUN: opt < %s -passes=inline -inline-threshold=20 -S | FileCheck %s
2; RUN: opt < %s -passes='cgscc(inline)' -inline-threshold=20 -S | FileCheck %s
3
4define i32 @callee(i32 %a) {
5  switch i32 %a, label %sw.default [
6    i32 0, label %sw.bb0
7    i32 1, label %sw.bb1
8    i32 2, label %sw.bb2
9    i32 3, label %sw.bb3
10    i32 4, label %sw.bb4
11    i32 5, label %sw.bb5
12    i32 6, label %sw.bb6
13    i32 7, label %sw.bb7
14    i32 8, label %sw.bb8
15    i32 9, label %sw.bb9
16  ]
17
18sw.default:
19  br label %return
20
21sw.bb0:
22  br label %return
23
24sw.bb1:
25  br label %return
26
27sw.bb2:
28  br label %return
29
30sw.bb3:
31  br label %return
32
33sw.bb4:
34  br label %return
35
36sw.bb5:
37  br label %return
38
39sw.bb6:
40  br label %return
41
42sw.bb7:
43  br label %return
44
45sw.bb8:
46  br label %return
47
48sw.bb9:
49  br label %return
50
51return:
52  ret i32 42
53}
54
55define i32 @caller(i32 %a) {
56; CHECK-LABEL: @caller(
57; CHECK: call i32 @callee(
58
59  %result = call i32 @callee(i32 %a)
60  ret i32 %result
61}
62