1; RUN: llc %s -combiner-tokenfactor-inline-limit=5 -o - | FileCheck %s 2 3target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 4target triple = "x86_64-unknown-linux-gnu" 5 6%struct.snork = type { i8 } 7%struct.wombat = type { [15 x i32] } 8 9; CHECK: pushq %rbx 10; CHECK-NEXT: andq $-32, %rsp 11; CHECK-NEXT: subq $66144, %rsp # imm = 0x10260 12; CHECK-NEXT: .cfi_offset %rbx, -24 13; CHECK-NEXT: movabsq $-868076584853899022, %rax # imm = 0xF3F3F8F201F2F8F2 14; CHECK-NEXT: movq %rax, (%rsp) 15; CHECK-NEXT: movb $-13, 8263(%rsp) 16; CHECK-NEXT: movq %rdi, %rbx 17; CHECK-NEXT: callq hoge 18; CHECK-NEXT: movq %rbx, %rdi 19; CHECK-NEXT: callq hoge 20; CHECK-NEXT: callq hoge 21; CHECK-NEXT: callq hoge 22; CHECK-NEXT: callq eggs 23; CHECK-NEXT: callq hoge 24; CHECK-NEXT: movq %rbx, %rax 25; CHECK-NEXT: leaq -8(%rbp), %rsp 26; CHECK-NEXT: popq %rbx 27; CHECK-NEXT: popq %rbp 28; CHECK-NEXT: .cfi_def_cfa %rsp, 8 29; CHECK-NEXT: retq 30define void @spam(%struct.snork* noalias sret(%struct.snork) %arg, %struct.snork* %arg2) { 31bb: 32 %tmp = alloca i8, i64 66112, align 32 33 %tmp7 = ptrtoint i8* %tmp to i64 34 %tmp914 = inttoptr i64 undef to %struct.wombat* 35 %tmp915 = inttoptr i64 undef to %struct.snork* 36 %tmp916 = inttoptr i64 undef to %struct.snork* 37 %tmp917 = inttoptr i64 undef to %struct.wombat* 38 %tmp918 = inttoptr i64 undef to %struct.snork* 39 %tmp921 = inttoptr i64 undef to %struct.snork* 40 %tmp2055 = inttoptr i64 %tmp7 to i64* 41 store i64 -868076584853899022, i64* %tmp2055, align 1 42 %tmp2056 = add i64 %tmp7, 8263 43 %tmp2057 = inttoptr i64 %tmp2056 to i8* 44 store i8 -13, i8* %tmp2057, align 1 45 br label %bb2058 46 47bb2058: ; preds = %bb 48 call void @hoge(%struct.snork* %arg) 49 call void @hoge(%struct.snork* %arg) 50 call void @hoge(%struct.snork* %tmp915) 51 call void @hoge(%struct.snork* %tmp916) 52 call void @eggs(%struct.snork* %tmp918, %struct.wombat* %tmp914, %struct.wombat* %tmp917) 53 call void @hoge(%struct.snork* %tmp921) 54 ret void 55} 56 57declare void @hoge(%struct.snork*) 58 59declare void @eggs(%struct.snork*, %struct.wombat*, %struct.wombat*) 60