74 lines · plain
1;PR15293: ARM codegen ice - expected larger existing stack allocation2;RUN: llc -mtriple=arm-linux-gnueabihf < %s | FileCheck %s3 4;CHECK-LABEL: foo:5;CHECK: sub sp, sp, #166;CHECK: push {r11, lr}7;CHECK: str r0, [sp, #8]8;CHECK: add r0, sp, #89;CHECK: bl fooUseParam10;CHECK: pop {r11, lr}11;CHECK: add sp, sp, #1612;CHECK: mov pc, lr13 14;CHECK-LABEL: foo2:15;CHECK: sub sp, sp, #1616;CHECK: push {r11, lr}17;CHECK: str r0, [sp, #8]18;CHECK: add r0, sp, #819;CHECK: str r2, [sp, #16]20;CHECK: bl fooUseParam21;CHECK: add r0, sp, #1622;CHECK: bl fooUseParam23;CHECK: pop {r11, lr}24;CHECK: add sp, sp, #1625;CHECK: mov pc, lr26 27;CHECK-LABEL: doFoo:28;CHECK: push {r11, lr}29;CHECK: ldr r0,30;CHECK: ldr r0, [r0]31;CHECK: bl foo32;CHECK: pop {r11, lr}33;CHECK: mov pc, lr34 35 36;CHECK-LABEL: doFoo2:37;CHECK: push {r11, lr}38;CHECK: ldr r0,39;CHECK: mov r1, #040;CHECK: ldr r0, [r0]41;CHECK: mov r2, r042;CHECK: bl foo243;CHECK: pop {r11, lr}44;CHECK: mov pc, lr45 46 47%artz = type { i32 }48@static_val = constant %artz { i32 777 }49 50declare void @fooUseParam(ptr )51 52define void @foo(ptr byval(%artz) %s) {53 call void @fooUseParam(ptr %s)54 ret void55}56 57define void @foo2(ptr byval(%artz) %s, i32 %p, ptr byval(%artz) %s2) {58 call void @fooUseParam(ptr %s)59 call void @fooUseParam(ptr %s2)60 ret void61}62 63 64define void @doFoo() {65 call void @foo(ptr byval(%artz) @static_val)66 ret void67}68 69define void @doFoo2() {70 call void @foo2(ptr byval(%artz) @static_val, i32 0, ptr byval(%artz) @static_val)71 ret void72}73 74