1 ; RUN: opt < %s -O2 -inlinedefault-threshold=100 -S | FileCheck %s
3 ; Check that the inlinedefault-threshold does not alter the inline threshold
4 ; for optsize or minsize functions
10 %a1 = load volatile i32, i32* @a
11 %x1 = add i32 %a1, %a1
15 define i32 @inner2() {
17 %a1 = load volatile i32, i32* @a
18 %x1 = add i32 %a1, %a1
19 %a2 = load volatile i32, i32* @a
20 %x2 = add i32 %x1, %a2
21 %a3 = load volatile i32, i32* @a
22 %x3 = add i32 %x2, %a3
23 %a4 = load volatile i32, i32* @a
24 %x4 = add i32 %x3, %a4
25 %a5 = load volatile i32, i32* @a
26 %x5 = add i32 %x3, %a5
27 %a6 = load volatile i32, i32* @a
28 %x6 = add i32 %x5, %a6
29 %a7 = load volatile i32, i32* @a
30 %x7 = add i32 %x6, %a7
31 %a8 = load volatile i32, i32* @a
32 %x8 = add i32 %x7, %a8
36 define i32 @inner3() {
38 %a1 = load volatile i32, i32* @a
39 %x1 = add i32 %a1, %a1
40 %a2 = load volatile i32, i32* @a
41 %x2 = add i32 %x1, %a2
42 %a3 = load volatile i32, i32* @a
43 %x3 = add i32 %x2, %a3
44 %a4 = load volatile i32, i32* @a
45 %x4 = add i32 %x3, %a4
46 %a5 = load volatile i32, i32* @a
47 %x5 = add i32 %x4, %a5
48 %a6 = load volatile i32, i32* @a
49 %x6 = add i32 %x5, %a6
50 %a7 = load volatile i32, i32* @a
51 %x7 = add i32 %x6, %a7
52 %a8 = load volatile i32, i32* @a
53 %x8 = add i32 %x7, %a8
54 %a9 = load volatile i32, i32* @a
55 %x9 = add i32 %x8, %a9
56 %a10 = load volatile i32, i32* @a
57 %x10 = add i32 %x9, %a10
58 %a11 = load volatile i32, i32* @a
59 %x11 = add i32 %x10, %a11
60 %a12 = load volatile i32, i32* @a
61 %x12 = add i32 %x11, %a12
62 %a13 = load volatile i32, i32* @a
63 %x13 = add i32 %x12, %a13
64 %a14 = load volatile i32, i32* @a
65 %x14 = add i32 %x13, %a14
66 %a15 = load volatile i32, i32* @a
67 %x15 = add i32 %x14, %a15
71 define i32 @outer() optsize {
73 ; CHECK-NOT: call i32 @inner()
74 %r = call i32 @inner()
78 define i32 @outer2() optsize {
79 ; CHECK-LABEL: @outer2
80 ; CHECK: call i32 @inner2()
81 %r = call i32 @inner2()
85 define i32 @outer3() minsize {
86 ; CHECK-LABEL: @outer3
87 ; CHECK: call i32 @inner()
88 %r = call i32 @inner()
92 define i32 @outer4() {
93 ; CHECK-LABEL: @outer4
94 ; CHECK-NOT: call i32 @inner()
95 %r = call i32 @inner()
99 define i32 @outer5() {
100 ; CHECK-LABEL: @outer5
101 ; CHECK-NOT: call i32 @inner2()
102 %r = call i32 @inner2()
106 define i32 @outer6() {
107 ; CHECK-LABEL: @outer6
108 ; CHECK: call i32 @inner3()
109 %r = call i32 @inner3()
113 declare void @extern()