brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · ddac972 Raw
202 lines · plain
1; REQUIRES: asserts2; RUN: opt -passes=inline -mtriple=x86_64-unknown-unknown -S -debug-only=inline-cost < %s 2>&1 | FileCheck %s3 4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"5target triple = "x86_64-unknown-unknown"6 7define i32 @outer1(ptr %ptr, i32 %i) {8  %C = call i32 @inner1(ptr %ptr, i32 %i)9  ret i32 %C10}11 12; zext from i32 to i64 is free.13; CHECK: Analyzing call of inner114; CHECK: NumInstructionsSimplified: 315; CHECK: NumInstructions: 416define i32 @inner1(ptr %ptr, i32 %i) {17  %E = zext i32 %i to i6418  %G = getelementptr inbounds i32, ptr %ptr, i64 %E19  %L = load i32, ptr %G20  ret i32 %L21}22 23define i16 @outer2(ptr %ptr) {24  %C = call i16 @inner2(ptr %ptr)25  ret i16 %C26}27 28; It is an ExtLoad.29; CHECK: Analyzing call of inner230; CHECK: NumInstructionsSimplified: 231; CHECK: NumInstructions: 332define i16 @inner2(ptr %ptr) {33  %L = load i8, ptr %ptr34  %E = zext i8 %L to i1635  ret i16 %E36}37 38define i16 @outer3(ptr %ptr) {39  %C = call i16 @inner3(ptr %ptr)40  ret i16 %C41}42 43; It is an ExtLoad.44; CHECK: Analyzing call of inner345; CHECK: NumInstructionsSimplified: 246; CHECK: NumInstructions: 347define i16 @inner3(ptr %ptr) {48  %L = load i8, ptr %ptr49  %E = sext i8 %L to i1650  ret i16 %E51}52 53define i32 @outer4(ptr %ptr) {54  %C = call i32 @inner4(ptr %ptr)55  ret i32 %C56}57 58; It is an ExtLoad.59; CHECK: Analyzing call of inner460; CHECK: NumInstructionsSimplified: 261; CHECK: NumInstructions: 362define i32 @inner4(ptr %ptr) {63  %L = load i8, ptr %ptr64  %E = zext i8 %L to i3265  ret i32 %E66}67 68define i32 @outer5(ptr %ptr) {69  %C = call i32 @inner5(ptr %ptr)70  ret i32 %C71}72 73; It is an ExtLoad.74; CHECK: Analyzing call of inner575; CHECK: NumInstructionsSimplified: 276; CHECK: NumInstructions: 377define i32 @inner5(ptr %ptr) {78  %L = load i8, ptr %ptr79  %E = sext i8 %L to i3280  ret i32 %E81}82 83define i32 @outer6(ptr %ptr) {84  %C = call i32 @inner6(ptr %ptr)85  ret i32 %C86}87 88; It is an ExtLoad.89; CHECK: Analyzing call of inner690; CHECK: NumInstructionsSimplified: 291; CHECK: NumInstructions: 392define i32 @inner6(ptr %ptr) {93  %L = load i16, ptr %ptr94  %E = zext i16 %L to i3295  ret i32 %E96}97 98define i32 @outer7(ptr %ptr) {99  %C = call i32 @inner7(ptr %ptr)100  ret i32 %C101}102 103; It is an ExtLoad.104; CHECK: Analyzing call of inner7105; CHECK: NumInstructionsSimplified: 2106; CHECK: NumInstructions: 3107define i32 @inner7(ptr %ptr) {108  %L = load i16, ptr %ptr109  %E = sext i16 %L to i32110  ret i32 %E111}112 113define i64 @outer8(ptr %ptr) {114  %C = call i64 @inner8(ptr %ptr)115  ret i64 %C116}117 118; It is an ExtLoad.119; CHECK: Analyzing call of inner8120; CHECK: NumInstructionsSimplified: 2121; CHECK: NumInstructions: 3122define i64 @inner8(ptr %ptr) {123  %L = load i8, ptr %ptr124  %E = zext i8 %L to i64125  ret i64 %E126}127 128define i64 @outer9(ptr %ptr) {129  %C = call i64 @inner9(ptr %ptr)130  ret i64 %C131}132 133; It is an ExtLoad.134; CHECK: Analyzing call of inner9135; CHECK: NumInstructionsSimplified: 2136; CHECK: NumInstructions: 3137define i64 @inner9(ptr %ptr) {138  %L = load i8, ptr %ptr139  %E = sext i8 %L to i64140  ret i64 %E141}142 143define i64 @outer10(ptr %ptr) {144  %C = call i64 @inner10(ptr %ptr)145  ret i64 %C146}147 148; It is an ExtLoad.149; CHECK: Analyzing call of inner10150; CHECK: NumInstructionsSimplified: 2151; CHECK: NumInstructions: 3152define i64 @inner10(ptr %ptr) {153  %L = load i16, ptr %ptr154  %E = zext i16 %L to i64155  ret i64 %E156}157 158define i64 @outer11(ptr %ptr) {159  %C = call i64 @inner11(ptr %ptr)160  ret i64 %C161}162 163; It is an ExtLoad.164; CHECK: Analyzing call of inner11165; CHECK: NumInstructionsSimplified: 2166; CHECK: NumInstructions: 3167define i64 @inner11(ptr %ptr) {168  %L = load i16, ptr %ptr169  %E = sext i16 %L to i64170  ret i64 %E171}172 173define i64 @outer12(ptr %ptr) {174  %C = call i64 @inner12(ptr %ptr)175  ret i64 %C176}177 178; It is an ExtLoad.179; CHECK: Analyzing call of inner12180; CHECK: NumInstructionsSimplified: 2181; CHECK: NumInstructions: 3182define i64 @inner12(ptr %ptr) {183  %L = load i32, ptr %ptr184  %E = zext i32 %L to i64185  ret i64 %E186}187 188define i64 @outer13(ptr %ptr) {189  %C = call i64 @inner13(ptr %ptr)190  ret i64 %C191}192 193; It is an ExtLoad.194; CHECK: Analyzing call of inner13195; CHECK: NumInstructionsSimplified: 2196; CHECK: NumInstructions: 3197define i64 @inner13(ptr %ptr) {198  %L = load i32, ptr %ptr199  %E = sext i32 %L to i64200  ret i64 %E201}202