1; REQUIRES: asserts 2; RUN: opt -passes=inline -S -debug-only=inline-cost < %s 2>&1 | FileCheck %s 3 4target datalayout = "E-m:e-i64:64-n32:64" 5target triple = "powerpc64le-ibm-linux-gnu" 6 7define i16 @outer1(ptr %ptr) { 8 %C = call i16 @inner1(ptr %ptr) 9 ret i16 %C 10} 11 12; It is an ExtLoad. 13; CHECK: Analyzing call of inner1 14; CHECK: NumInstructionsSimplified: 2 15; CHECK: NumInstructions: 3 16define i16 @inner1(ptr %ptr) { 17 %L = load i8, ptr %ptr 18 %E = zext i8 %L to i16 19 ret i16 %E 20} 21 22define i32 @outer2(ptr %ptr) { 23 %C = call i32 @inner2(ptr %ptr) 24 ret i32 %C 25} 26 27; It is an ExtLoad. 28; CHECK: Analyzing call of inner2 29; CHECK: NumInstructionsSimplified: 2 30; CHECK: NumInstructions: 3 31define i32 @inner2(ptr %ptr) { 32 %L = load i8, ptr %ptr 33 %E = zext i8 %L to i32 34 ret i32 %E 35} 36 37define i32 @outer3(ptr %ptr) { 38 %C = call i32 @inner3(ptr %ptr) 39 ret i32 %C 40} 41 42; It is an ExtLoad. 43; CHECK: Analyzing call of inner3 44; CHECK: NumInstructionsSimplified: 2 45; CHECK: NumInstructions: 3 46define i32 @inner3(ptr %ptr) { 47 %L = load i16, ptr %ptr 48 %E = zext i16 %L to i32 49 ret i32 %E 50} 51 52define i32 @outer4(ptr %ptr) { 53 %C = call i32 @inner4(ptr %ptr) 54 ret i32 %C 55} 56 57; It is an ExtLoad. 58; CHECK: Analyzing call of inner4 59; CHECK: NumInstructionsSimplified: 2 60; CHECK: NumInstructions: 3 61define i32 @inner4(ptr %ptr) { 62 %L = load i16, ptr %ptr 63 %E = sext i16 %L to i32 64 ret i32 %E 65} 66 67define i64 @outer5(ptr %ptr) { 68 %C = call i64 @inner5(ptr %ptr) 69 ret i64 %C 70} 71 72; It is an ExtLoad. 73; CHECK: Analyzing call of inner5 74; CHECK: NumInstructionsSimplified: 2 75; CHECK: NumInstructions: 3 76define i64 @inner5(ptr %ptr) { 77 %L = load i8, ptr %ptr 78 %E = zext i8 %L to i64 79 ret i64 %E 80} 81 82define i64 @outer6(ptr %ptr) { 83 %C = call i64 @inner6(ptr %ptr) 84 ret i64 %C 85} 86 87; It is an ExtLoad. 88; CHECK: Analyzing call of inner6 89; CHECK: NumInstructionsSimplified: 2 90; CHECK: NumInstructions: 3 91define i64 @inner6(ptr %ptr) { 92 %L = load i16, ptr %ptr 93 %E = zext i16 %L to i64 94 ret i64 %E 95} 96 97define i64 @outer7(ptr %ptr) { 98 %C = call i64 @inner7(ptr %ptr) 99 ret i64 %C 100} 101 102; It is an ExtLoad. 103; CHECK: Analyzing call of inner7 104; CHECK: NumInstructionsSimplified: 2 105; CHECK: NumInstructions: 3 106define i64 @inner7(ptr %ptr) { 107 %L = load i16, ptr %ptr 108 %E = sext i16 %L to i64 109 ret i64 %E 110} 111 112define i64 @outer8(ptr %ptr) { 113 %C = call i64 @inner8(ptr %ptr) 114 ret i64 %C 115} 116 117; It is an ExtLoad. 118; CHECK: Analyzing call of inner8 119; CHECK: NumInstructionsSimplified: 2 120; CHECK: NumInstructions: 3 121define i64 @inner8(ptr %ptr) { 122 %L = load i32, ptr %ptr 123 %E = zext i32 %L to i64 124 ret i64 %E 125} 126 127define i64 @outer9(ptr %ptr) { 128 %C = call i64 @inner9(ptr %ptr) 129 ret i64 %C 130} 131 132; It is an ExtLoad. 133; CHECK: Analyzing call of inner9 134; CHECK: NumInstructionsSimplified: 2 135; CHECK: NumInstructions: 3 136define i64 @inner9(ptr %ptr) { 137 %L = load i32, ptr %ptr 138 %E = sext i32 %L to i64 139 ret i64 %E 140} 141