1; Test that -inline-threshold overrides thresholds derived from opt levels. 2; RUN: opt < %s -O2 -inline-threshold=500 -S | FileCheck %s 3; RUN: opt < %s -O3 -inline-threshold=500 -S | FileCheck %s 4; RUN: opt < %s -Os -inline-threshold=500 -S | FileCheck %s 5; RUN: opt < %s -Oz -inline-threshold=500 -S | FileCheck %s 6 7@a = global i32 4 8 9define i32 @simpleFunction(i32 %a) #0 { 10entry: 11 %a1 = load volatile i32, i32* @a 12 %x1 = add i32 %a1, %a1 13 %cmp = icmp eq i32 %a1, 0 14 br i1 %cmp, label %if.then, label %if.else 15if.then: 16 %a2 = load volatile i32, i32* @a 17 %x2_0 = add i32 %x1, %a2 18 br label %if.else 19if.else: 20 %x2 = phi i32 [ %x1, %entry ], [ %x2_0, %if.then ] 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 %x4, %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 33 %a9 = load volatile i32, i32* @a 34 %x9 = add i32 %x8, %a9 35 %a10 = load volatile i32, i32* @a 36 %x10 = add i32 %x9, %a10 37 %a11 = load volatile i32, i32* @a 38 %x11 = add i32 %x10, %a11 39 %a12 = load volatile i32, i32* @a 40 %x12 = add i32 %x11, %a12 41 %a13 = load volatile i32, i32* @a 42 %x13 = add i32 %x12, %a13 43 %a14 = load volatile i32, i32* @a 44 %x14 = add i32 %x13, %a14 45 %a15 = load volatile i32, i32* @a 46 %x15 = add i32 %x14, %a15 47 %a16 = load volatile i32, i32* @a 48 %x16 = add i32 %x15, %a16 49 %a17 = load volatile i32, i32* @a 50 %x17 = add i32 %x16, %a17 51 %a18 = load volatile i32, i32* @a 52 %x18 = add i32 %x17, %a18 53 %a19 = load volatile i32, i32* @a 54 %x19 = add i32 %x18, %a19 55 %a20 = load volatile i32, i32* @a 56 %x20 = add i32 %x19, %a20 57 %a21 = load volatile i32, i32* @a 58 %x21 = add i32 %x20, %a21 59 %a22 = load volatile i32, i32* @a 60 %x22 = add i32 %x21, %a22 61 %a23 = load volatile i32, i32* @a 62 %x23 = add i32 %x22, %a23 63 %a24 = load volatile i32, i32* @a 64 %x24 = add i32 %x23, %a24 65 %a25 = load volatile i32, i32* @a 66 %x25 = add i32 %x24, %a25 67 %a26 = load volatile i32, i32* @a 68 %x26 = add i32 %x25, %a26 69 %a27 = load volatile i32, i32* @a 70 %x27 = add i32 %x26, %a27 71 %a28 = load volatile i32, i32* @a 72 %x28 = add i32 %x27, %a28 73 %a29 = load volatile i32, i32* @a 74 %x29 = add i32 %x28, %a29 75 %add = add i32 %x29, %a 76 ret i32 %add 77} 78 79; Function Attrs: nounwind readnone uwtable 80define i32 @bar(i32 %a) #0 { 81; CHECK-LABEL: @bar 82; CHECK-NOT: call i32 @simpleFunction(i32 6) 83; CHECK: ret 84entry: 85 %i = tail call i32 @simpleFunction(i32 6) 86 ret i32 %i 87} 88 89attributes #0 = { nounwind readnone uwtable } 90