60 lines · plain
1; RUN: llc %s -combiner-tokenfactor-inline-limit=5 -o - | FileCheck %s2 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 %rbx10; CHECK-NEXT: andq $-32, %rsp11; CHECK-NEXT: subq $66144, %rsp # imm = 0x1026012; CHECK-NEXT: .cfi_offset %rbx, -2413; CHECK-NEXT: movabsq $-868076584853899022, %rax # imm = 0xF3F3F8F201F2F8F214; CHECK-NEXT: movq %rax, (%rsp)15; CHECK-NEXT: movb $-13, 8263(%rsp)16; CHECK-NEXT: movq %rdi, %rbx17; CHECK-NEXT: callq hoge18; CHECK-NEXT: movq %rbx, %rdi19; CHECK-NEXT: callq hoge20; CHECK-NEXT: callq hoge21; CHECK-NEXT: callq hoge22; CHECK-NEXT: callq eggs23; CHECK-NEXT: callq hoge24; CHECK-NEXT: movq %rbx, %rax25; CHECK-NEXT: leaq -8(%rbp), %rsp26; CHECK-NEXT: popq %rbx27; CHECK-NEXT: popq %rbp28; CHECK-NEXT: .cfi_def_cfa %rsp, 829; CHECK-NEXT: retq30define void @spam(ptr noalias sret(%struct.snork) %arg, ptr %arg2) {31bb:32 %tmp = alloca i8, i64 66112, align 3233 %tmp7 = ptrtoint ptr %tmp to i6434 %tmp914 = inttoptr i64 undef to ptr35 %tmp915 = inttoptr i64 undef to ptr36 %tmp916 = inttoptr i64 undef to ptr37 %tmp917 = inttoptr i64 undef to ptr38 %tmp918 = inttoptr i64 undef to ptr39 %tmp921 = inttoptr i64 undef to ptr40 %tmp2055 = inttoptr i64 %tmp7 to ptr41 store i64 -868076584853899022, ptr %tmp2055, align 142 %tmp2056 = add i64 %tmp7, 826343 %tmp2057 = inttoptr i64 %tmp2056 to ptr44 store i8 -13, ptr %tmp2057, align 145 br label %bb205846 47bb2058: ; preds = %bb48 call void @hoge(ptr %arg)49 call void @hoge(ptr %arg)50 call void @hoge(ptr %tmp915)51 call void @hoge(ptr %tmp916)52 call void @eggs(ptr %tmp918, ptr %tmp914, ptr %tmp917)53 call void @hoge(ptr %tmp921)54 ret void55}56 57declare void @hoge(ptr)58 59declare void @eggs(ptr, ptr, ptr)60