1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 2; RUN: llc -mtriple=arm--none-eabi < %s | FileCheck %s 3 4%type_80 = type [20 x i32] 5 6declare void @func_80(ptr, ptr byval(%type_80)) 7 8define void @test_80() { 9; CHECK-LABEL: test_80: 10; CHECK: @ %bb.0: 11; CHECK-NEXT: .save {r11, lr} 12; CHECK-NEXT: push {r11, lr} 13; CHECK-NEXT: .pad #152 14; CHECK-NEXT: sub sp, sp, #152 15; CHECK-NEXT: add r0, sp, #72 16; CHECK-NEXT: ldr r1, .LCPI0_0 17; CHECK-NEXT: add r0, r0, #12 18; CHECK-NEXT: mov r2, sp 19; CHECK-NEXT: .LBB0_1: @ =>This Inner Loop Header: Depth=1 20; CHECK-NEXT: ldr r3, [r0], #4 21; CHECK-NEXT: subs r1, r1, #4 22; CHECK-NEXT: str r3, [r2], #4 23; CHECK-NEXT: bne .LBB0_1 24; CHECK-NEXT: @ %bb.2: 25; CHECK-NEXT: add r3, sp, #72 26; CHECK-NEXT: mov r0, #0 27; CHECK-NEXT: ldm r3, {r1, r2, r3} 28; CHECK-NEXT: bl func_80 29; CHECK-NEXT: add sp, sp, #152 30; CHECK-NEXT: pop {r11, lr} 31; CHECK-NEXT: mov pc, lr 32; CHECK-NEXT: .p2align 2 33; CHECK-NEXT: @ %bb.3: 34; CHECK-NEXT: .LCPI0_0: 35; CHECK-NEXT: .long 68 @ 0x44 36 %a = alloca %type_80 37 call void @func_80(ptr null, ptr %a) 38 ret void 39} 40 41%type_4000 = type [1000 x i32] 42 43declare void @func_4000(ptr, ptr byval(%type_4000)) 44 45define void @test_4000() { 46; CHECK-LABEL: test_4000: 47; CHECK: @ %bb.0: 48; CHECK-NEXT: .save {r11, lr} 49; CHECK-NEXT: push {r11, lr} 50; CHECK-NEXT: .pad #4000 51; CHECK-NEXT: sub sp, sp, #4000 52; CHECK-NEXT: sub sp, sp, #920 53; CHECK-NEXT: sub sp, sp, #3072 54; CHECK-NEXT: add lr, sp, #3072 55; CHECK-NEXT: ldr r1, .LCPI1_0 56; CHECK-NEXT: add r0, lr, #920 57; CHECK-NEXT: mov r2, sp 58; CHECK-NEXT: add r0, r0, #12 59; CHECK-NEXT: .LBB1_1: @ =>This Inner Loop Header: Depth=1 60; CHECK-NEXT: ldr r3, [r0], #4 61; CHECK-NEXT: subs r1, r1, #4 62; CHECK-NEXT: str r3, [r2], #4 63; CHECK-NEXT: bne .LBB1_1 64; CHECK-NEXT: @ %bb.2: 65; CHECK-NEXT: ldr r1, [sp, #3992] 66; CHECK-NEXT: mov r0, #0 67; CHECK-NEXT: ldr r2, [sp, #3996] 68; CHECK-NEXT: ldr r3, [sp, #4000] 69; CHECK-NEXT: bl func_4000 70; CHECK-NEXT: add sp, sp, #920 71; CHECK-NEXT: add sp, sp, #3072 72; CHECK-NEXT: add sp, sp, #4000 73; CHECK-NEXT: pop {r11, lr} 74; CHECK-NEXT: mov pc, lr 75; CHECK-NEXT: .p2align 2 76; CHECK-NEXT: @ %bb.3: 77; CHECK-NEXT: .LCPI1_0: 78; CHECK-NEXT: .long 3988 @ 0xf94 79 %a = alloca %type_4000 80 call void @func_4000(ptr null, ptr %a) 81 ret void 82} 83