[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Transforms / Inline / switch.ll
blob83f01926982924a121e160d1b01caa21b7f56c77
1 ; RUN: opt < %s -inline -inline-threshold=20 -S | FileCheck %s
2 ; RUN: opt < %s -passes='cgscc(inline)' -inline-threshold=20 -S | FileCheck %s
4 define 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   ]
18 sw.default:
19   br label %return
21 sw.bb0:
22   br label %return
24 sw.bb1:
25   br label %return
27 sw.bb2:
28   br label %return
30 sw.bb3:
31   br label %return
33 sw.bb4:
34   br label %return
36 sw.bb5:
37   br label %return
39 sw.bb6:
40   br label %return
42 sw.bb7:
43   br label %return
45 sw.bb8:
46   br label %return
48 sw.bb9:
49   br label %return
51 return:
52   ret i32 42
55 define i32 @caller(i32 %a) {
56 ; CHECK-LABEL: @caller(
57 ; CHECK: call i32 @callee(
59   %result = call i32 @callee(i32 %a)
60   ret i32 %result