1da675b92SPhilip Reames; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2da675b92SPhilip Reames; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \ 3da675b92SPhilip Reames; RUN: | FileCheck %s -check-prefixes=RV32,RV32I 4da675b92SPhilip Reames; RUN: llc -mtriple=riscv32 -verify-machineinstrs -mattr=+zba < %s \ 5da675b92SPhilip Reames; RUN: | FileCheck %s -check-prefixes=RV32,RV32ZBA 6da675b92SPhilip Reames; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \ 7da675b92SPhilip Reames; RUN: | FileCheck %s -check-prefixes=RV64,RV64I 8da675b92SPhilip Reames; RUN: llc -mtriple=riscv64 -verify-machineinstrs -mattr=+zba < %s \ 9da675b92SPhilip Reames; RUN: | FileCheck %s -check-prefixes=RV64,RV64ZBA 10da675b92SPhilip Reames 11da675b92SPhilip Reamesdeclare void @callee(ptr) 12da675b92SPhilip Reames 13da675b92SPhilip Reamesdefine void @frame_16b() { 14da675b92SPhilip Reames; RV32-LABEL: frame_16b: 15da675b92SPhilip Reames; RV32: # %bb.0: 16da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -16 17da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 16 18da675b92SPhilip Reames; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 19da675b92SPhilip Reames; RV32-NEXT: .cfi_offset ra, -4 20da675b92SPhilip Reames; RV32-NEXT: li a0, 0 21da675b92SPhilip Reames; RV32-NEXT: call callee 22da675b92SPhilip Reames; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 23*97982a8cSdlav-sc; RV32-NEXT: .cfi_restore ra 24da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 16 25*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 0 26da675b92SPhilip Reames; RV32-NEXT: ret 27da675b92SPhilip Reames; 28da675b92SPhilip Reames; RV64-LABEL: frame_16b: 29da675b92SPhilip Reames; RV64: # %bb.0: 30da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -16 31da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 16 32da675b92SPhilip Reames; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 33da675b92SPhilip Reames; RV64-NEXT: .cfi_offset ra, -8 34da675b92SPhilip Reames; RV64-NEXT: li a0, 0 35da675b92SPhilip Reames; RV64-NEXT: call callee 36da675b92SPhilip Reames; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 37*97982a8cSdlav-sc; RV64-NEXT: .cfi_restore ra 38da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 16 39*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 0 40da675b92SPhilip Reames; RV64-NEXT: ret 41da675b92SPhilip Reames call void @callee(ptr null) 42da675b92SPhilip Reames ret void 43da675b92SPhilip Reames} 44da675b92SPhilip Reames 45da675b92SPhilip Reamesdefine void @frame_1024b() { 46da675b92SPhilip Reames; RV32-LABEL: frame_1024b: 47da675b92SPhilip Reames; RV32: # %bb.0: 48da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -1024 49da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 1024 50da675b92SPhilip Reames; RV32-NEXT: sw ra, 1020(sp) # 4-byte Folded Spill 51da675b92SPhilip Reames; RV32-NEXT: .cfi_offset ra, -4 52da675b92SPhilip Reames; RV32-NEXT: addi a0, sp, 12 53da675b92SPhilip Reames; RV32-NEXT: call callee 54da675b92SPhilip Reames; RV32-NEXT: lw ra, 1020(sp) # 4-byte Folded Reload 55*97982a8cSdlav-sc; RV32-NEXT: .cfi_restore ra 56da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 1024 57*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 0 58da675b92SPhilip Reames; RV32-NEXT: ret 59da675b92SPhilip Reames; 60da675b92SPhilip Reames; RV64-LABEL: frame_1024b: 61da675b92SPhilip Reames; RV64: # %bb.0: 62da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -1024 63da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 1024 64da675b92SPhilip Reames; RV64-NEXT: sd ra, 1016(sp) # 8-byte Folded Spill 65da675b92SPhilip Reames; RV64-NEXT: .cfi_offset ra, -8 66da675b92SPhilip Reames; RV64-NEXT: addi a0, sp, 8 67da675b92SPhilip Reames; RV64-NEXT: call callee 68da675b92SPhilip Reames; RV64-NEXT: ld ra, 1016(sp) # 8-byte Folded Reload 69*97982a8cSdlav-sc; RV64-NEXT: .cfi_restore ra 70da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 1024 71*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 0 72da675b92SPhilip Reames; RV64-NEXT: ret 73da675b92SPhilip Reames %a = alloca [1008 x i8] 74da675b92SPhilip Reames call void @callee(ptr %a) 75da675b92SPhilip Reames ret void 76da675b92SPhilip Reames} 77da675b92SPhilip Reames 78da675b92SPhilip Reamesdefine void @frame_2048b() { 79da675b92SPhilip Reames; RV32-LABEL: frame_2048b: 80da675b92SPhilip Reames; RV32: # %bb.0: 81da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -2032 82da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 2032 83da675b92SPhilip Reames; RV32-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 84da675b92SPhilip Reames; RV32-NEXT: .cfi_offset ra, -4 85da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -16 86da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 2048 87da675b92SPhilip Reames; RV32-NEXT: addi a0, sp, 12 88da675b92SPhilip Reames; RV32-NEXT: call callee 89da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 16 90*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 2032 91da675b92SPhilip Reames; RV32-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 92*97982a8cSdlav-sc; RV32-NEXT: .cfi_restore ra 93da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 2032 94*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 0 95da675b92SPhilip Reames; RV32-NEXT: ret 96da675b92SPhilip Reames; 97da675b92SPhilip Reames; RV64-LABEL: frame_2048b: 98da675b92SPhilip Reames; RV64: # %bb.0: 99da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -2032 100da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 2032 101da675b92SPhilip Reames; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 102da675b92SPhilip Reames; RV64-NEXT: .cfi_offset ra, -8 103da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -16 104da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 2048 105da675b92SPhilip Reames; RV64-NEXT: addi a0, sp, 8 106da675b92SPhilip Reames; RV64-NEXT: call callee 107da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 16 108*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 2032 109da675b92SPhilip Reames; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 110*97982a8cSdlav-sc; RV64-NEXT: .cfi_restore ra 111da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 2032 112*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 0 113da675b92SPhilip Reames; RV64-NEXT: ret 114da675b92SPhilip Reames %a = alloca [2032 x i8] 115da675b92SPhilip Reames call void @callee(ptr %a) 116da675b92SPhilip Reames ret void 117da675b92SPhilip Reames} 118da675b92SPhilip Reames 119da675b92SPhilip Reamesdefine void @frame_4096b() { 120da675b92SPhilip Reames; RV32-LABEL: frame_4096b: 121da675b92SPhilip Reames; RV32: # %bb.0: 122da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -2032 123da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 2032 124da675b92SPhilip Reames; RV32-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 125da675b92SPhilip Reames; RV32-NEXT: .cfi_offset ra, -4 126da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -2048 127da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -16 128da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 4096 129da675b92SPhilip Reames; RV32-NEXT: addi a0, sp, 12 130da675b92SPhilip Reames; RV32-NEXT: call callee 131da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 2032 132da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 32 133*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 2032 134da675b92SPhilip Reames; RV32-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 135*97982a8cSdlav-sc; RV32-NEXT: .cfi_restore ra 136da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 2032 137*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 0 138da675b92SPhilip Reames; RV32-NEXT: ret 139da675b92SPhilip Reames; 140da675b92SPhilip Reames; RV64-LABEL: frame_4096b: 141da675b92SPhilip Reames; RV64: # %bb.0: 142da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -2032 143da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 2032 144da675b92SPhilip Reames; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 145da675b92SPhilip Reames; RV64-NEXT: .cfi_offset ra, -8 146da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -2048 147da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -16 148da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 4096 149da675b92SPhilip Reames; RV64-NEXT: addi a0, sp, 8 150da675b92SPhilip Reames; RV64-NEXT: call callee 151da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 2032 152da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 32 153*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 2032 154da675b92SPhilip Reames; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 155*97982a8cSdlav-sc; RV64-NEXT: .cfi_restore ra 156da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 2032 157*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 0 158da675b92SPhilip Reames; RV64-NEXT: ret 159da675b92SPhilip Reames %a = alloca [4080 x i8] 160da675b92SPhilip Reames call void @callee(ptr %a) 161da675b92SPhilip Reames ret void 162da675b92SPhilip Reames} 163da675b92SPhilip Reames 164da675b92SPhilip Reames;; 2^12-16+2032 165da675b92SPhilip Reamesdefine void @frame_4kb() { 166da675b92SPhilip Reames; RV32-LABEL: frame_4kb: 167da675b92SPhilip Reames; RV32: # %bb.0: 168da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -2032 169da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 2032 170da675b92SPhilip Reames; RV32-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 171da675b92SPhilip Reames; RV32-NEXT: .cfi_offset ra, -4 172da675b92SPhilip Reames; RV32-NEXT: lui a0, 1 173da675b92SPhilip Reames; RV32-NEXT: sub sp, sp, a0 174da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 6128 175da675b92SPhilip Reames; RV32-NEXT: addi a0, sp, 12 176da675b92SPhilip Reames; RV32-NEXT: call callee 177da675b92SPhilip Reames; RV32-NEXT: lui a0, 1 178da675b92SPhilip Reames; RV32-NEXT: add sp, sp, a0 179*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 2032 180da675b92SPhilip Reames; RV32-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 181*97982a8cSdlav-sc; RV32-NEXT: .cfi_restore ra 182da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 2032 183*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 0 184da675b92SPhilip Reames; RV32-NEXT: ret 185da675b92SPhilip Reames; 186da675b92SPhilip Reames; RV64-LABEL: frame_4kb: 187da675b92SPhilip Reames; RV64: # %bb.0: 188da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -2032 189da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 2032 190da675b92SPhilip Reames; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 191da675b92SPhilip Reames; RV64-NEXT: .cfi_offset ra, -8 192da675b92SPhilip Reames; RV64-NEXT: lui a0, 1 193da675b92SPhilip Reames; RV64-NEXT: sub sp, sp, a0 194da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 6128 195da675b92SPhilip Reames; RV64-NEXT: addi a0, sp, 8 196da675b92SPhilip Reames; RV64-NEXT: call callee 197da675b92SPhilip Reames; RV64-NEXT: lui a0, 1 198da675b92SPhilip Reames; RV64-NEXT: add sp, sp, a0 199*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 2032 200da675b92SPhilip Reames; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 201*97982a8cSdlav-sc; RV64-NEXT: .cfi_restore ra 202da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 2032 203*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 0 204da675b92SPhilip Reames; RV64-NEXT: ret 205da675b92SPhilip Reames %a = alloca [6112 x i8] 206da675b92SPhilip Reames call void @callee(ptr %a) 207da675b92SPhilip Reames ret void 208da675b92SPhilip Reames} 209da675b92SPhilip Reames 210f5cf98c0SPhilip Reamesdefine void @frame_4kb_offset_128() { 211eb26edbbSPhilip Reames; RV32I-LABEL: frame_4kb_offset_128: 212eb26edbbSPhilip Reames; RV32I: # %bb.0: 213eb26edbbSPhilip Reames; RV32I-NEXT: addi sp, sp, -2032 214eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_def_cfa_offset 2032 215eb26edbbSPhilip Reames; RV32I-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 216eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_offset ra, -4 217eb26edbbSPhilip Reames; RV32I-NEXT: lui a0, 1 218eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, a0, 128 219eb26edbbSPhilip Reames; RV32I-NEXT: sub sp, sp, a0 220eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_def_cfa_offset 6256 221eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, sp, 12 222eb26edbbSPhilip Reames; RV32I-NEXT: call callee 223eb26edbbSPhilip Reames; RV32I-NEXT: lui a0, 1 224eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, a0, 128 225eb26edbbSPhilip Reames; RV32I-NEXT: add sp, sp, a0 226*97982a8cSdlav-sc; RV32I-NEXT: .cfi_def_cfa_offset 2032 227eb26edbbSPhilip Reames; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 228*97982a8cSdlav-sc; RV32I-NEXT: .cfi_restore ra 229eb26edbbSPhilip Reames; RV32I-NEXT: addi sp, sp, 2032 230*97982a8cSdlav-sc; RV32I-NEXT: .cfi_def_cfa_offset 0 231eb26edbbSPhilip Reames; RV32I-NEXT: ret 232f5cf98c0SPhilip Reames; 233eb26edbbSPhilip Reames; RV32ZBA-LABEL: frame_4kb_offset_128: 234eb26edbbSPhilip Reames; RV32ZBA: # %bb.0: 235eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi sp, sp, -2032 236eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032 237eb26edbbSPhilip Reames; RV32ZBA-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 238eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_offset ra, -4 239eb26edbbSPhilip Reames; RV32ZBA-NEXT: li a0, -528 240eb26edbbSPhilip Reames; RV32ZBA-NEXT: sh3add sp, a0, sp 241eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_def_cfa_offset 6256 242eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi a0, sp, 12 243eb26edbbSPhilip Reames; RV32ZBA-NEXT: call callee 244eb26edbbSPhilip Reames; RV32ZBA-NEXT: li a0, 528 245eb26edbbSPhilip Reames; RV32ZBA-NEXT: sh3add sp, a0, sp 246*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032 247eb26edbbSPhilip Reames; RV32ZBA-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 248*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_restore ra 249eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi sp, sp, 2032 250*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_def_cfa_offset 0 251eb26edbbSPhilip Reames; RV32ZBA-NEXT: ret 252eb26edbbSPhilip Reames; 253eb26edbbSPhilip Reames; RV64I-LABEL: frame_4kb_offset_128: 254eb26edbbSPhilip Reames; RV64I: # %bb.0: 255eb26edbbSPhilip Reames; RV64I-NEXT: addi sp, sp, -2032 256eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_def_cfa_offset 2032 257eb26edbbSPhilip Reames; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 258eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_offset ra, -8 259eb26edbbSPhilip Reames; RV64I-NEXT: lui a0, 1 260eb26edbbSPhilip Reames; RV64I-NEXT: addiw a0, a0, 128 261eb26edbbSPhilip Reames; RV64I-NEXT: sub sp, sp, a0 262eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_def_cfa_offset 6256 263eb26edbbSPhilip Reames; RV64I-NEXT: addi a0, sp, 8 264eb26edbbSPhilip Reames; RV64I-NEXT: call callee 265eb26edbbSPhilip Reames; RV64I-NEXT: lui a0, 1 266eb26edbbSPhilip Reames; RV64I-NEXT: addiw a0, a0, 128 267eb26edbbSPhilip Reames; RV64I-NEXT: add sp, sp, a0 268*97982a8cSdlav-sc; RV64I-NEXT: .cfi_def_cfa_offset 2032 269eb26edbbSPhilip Reames; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 270*97982a8cSdlav-sc; RV64I-NEXT: .cfi_restore ra 271eb26edbbSPhilip Reames; RV64I-NEXT: addi sp, sp, 2032 272*97982a8cSdlav-sc; RV64I-NEXT: .cfi_def_cfa_offset 0 273eb26edbbSPhilip Reames; RV64I-NEXT: ret 274eb26edbbSPhilip Reames; 275eb26edbbSPhilip Reames; RV64ZBA-LABEL: frame_4kb_offset_128: 276eb26edbbSPhilip Reames; RV64ZBA: # %bb.0: 277eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi sp, sp, -2032 278eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032 279eb26edbbSPhilip Reames; RV64ZBA-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 280eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_offset ra, -8 281eb26edbbSPhilip Reames; RV64ZBA-NEXT: li a0, -528 282eb26edbbSPhilip Reames; RV64ZBA-NEXT: sh3add sp, a0, sp 283eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_def_cfa_offset 6256 284eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi a0, sp, 8 285eb26edbbSPhilip Reames; RV64ZBA-NEXT: call callee 286eb26edbbSPhilip Reames; RV64ZBA-NEXT: li a0, 528 287eb26edbbSPhilip Reames; RV64ZBA-NEXT: sh3add sp, a0, sp 288*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032 289eb26edbbSPhilip Reames; RV64ZBA-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 290*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_restore ra 291eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi sp, sp, 2032 292*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_def_cfa_offset 0 293eb26edbbSPhilip Reames; RV64ZBA-NEXT: ret 294f5cf98c0SPhilip Reames %a = alloca [6240 x i8] 295f5cf98c0SPhilip Reames call void @callee(ptr %a) 296f5cf98c0SPhilip Reames ret void 297f5cf98c0SPhilip Reames} 298f5cf98c0SPhilip Reames 299f5cf98c0SPhilip Reames 300da675b92SPhilip Reames;; 2^13-16+2032 301da675b92SPhilip Reamesdefine void @frame_8kb() { 302da675b92SPhilip Reames; RV32-LABEL: frame_8kb: 303da675b92SPhilip Reames; RV32: # %bb.0: 304da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -2032 305da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 2032 306da675b92SPhilip Reames; RV32-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 307da675b92SPhilip Reames; RV32-NEXT: .cfi_offset ra, -4 308da675b92SPhilip Reames; RV32-NEXT: lui a0, 2 309da675b92SPhilip Reames; RV32-NEXT: sub sp, sp, a0 310da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 10224 311da675b92SPhilip Reames; RV32-NEXT: addi a0, sp, 12 312da675b92SPhilip Reames; RV32-NEXT: call callee 313da675b92SPhilip Reames; RV32-NEXT: lui a0, 2 314da675b92SPhilip Reames; RV32-NEXT: add sp, sp, a0 315*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 2032 316da675b92SPhilip Reames; RV32-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 317*97982a8cSdlav-sc; RV32-NEXT: .cfi_restore ra 318da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 2032 319*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 0 320da675b92SPhilip Reames; RV32-NEXT: ret 321da675b92SPhilip Reames; 322da675b92SPhilip Reames; RV64-LABEL: frame_8kb: 323da675b92SPhilip Reames; RV64: # %bb.0: 324da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -2032 325da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 2032 326da675b92SPhilip Reames; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 327da675b92SPhilip Reames; RV64-NEXT: .cfi_offset ra, -8 328da675b92SPhilip Reames; RV64-NEXT: lui a0, 2 329da675b92SPhilip Reames; RV64-NEXT: sub sp, sp, a0 330da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 10224 331da675b92SPhilip Reames; RV64-NEXT: addi a0, sp, 8 332da675b92SPhilip Reames; RV64-NEXT: call callee 333da675b92SPhilip Reames; RV64-NEXT: lui a0, 2 334da675b92SPhilip Reames; RV64-NEXT: add sp, sp, a0 335*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 2032 336da675b92SPhilip Reames; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 337*97982a8cSdlav-sc; RV64-NEXT: .cfi_restore ra 338da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 2032 339*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 0 340da675b92SPhilip Reames; RV64-NEXT: ret 341da675b92SPhilip Reames %a = alloca [10208 x i8] 342da675b92SPhilip Reames call void @callee(ptr %a) 343da675b92SPhilip Reames ret void 344da675b92SPhilip Reames} 345da675b92SPhilip Reames 346f5cf98c0SPhilip Reamesdefine void @frame_8kb_offset_128() { 347eb26edbbSPhilip Reames; RV32I-LABEL: frame_8kb_offset_128: 348eb26edbbSPhilip Reames; RV32I: # %bb.0: 349eb26edbbSPhilip Reames; RV32I-NEXT: addi sp, sp, -2032 350eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_def_cfa_offset 2032 351eb26edbbSPhilip Reames; RV32I-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 352eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_offset ra, -4 353eb26edbbSPhilip Reames; RV32I-NEXT: lui a0, 2 354eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, a0, 128 355eb26edbbSPhilip Reames; RV32I-NEXT: sub sp, sp, a0 356eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_def_cfa_offset 10352 357eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, sp, 12 358eb26edbbSPhilip Reames; RV32I-NEXT: call callee 359eb26edbbSPhilip Reames; RV32I-NEXT: lui a0, 2 360eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, a0, 128 361eb26edbbSPhilip Reames; RV32I-NEXT: add sp, sp, a0 362*97982a8cSdlav-sc; RV32I-NEXT: .cfi_def_cfa_offset 2032 363eb26edbbSPhilip Reames; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 364*97982a8cSdlav-sc; RV32I-NEXT: .cfi_restore ra 365eb26edbbSPhilip Reames; RV32I-NEXT: addi sp, sp, 2032 366*97982a8cSdlav-sc; RV32I-NEXT: .cfi_def_cfa_offset 0 367eb26edbbSPhilip Reames; RV32I-NEXT: ret 368f5cf98c0SPhilip Reames; 369eb26edbbSPhilip Reames; RV32ZBA-LABEL: frame_8kb_offset_128: 370eb26edbbSPhilip Reames; RV32ZBA: # %bb.0: 371eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi sp, sp, -2032 372eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032 373eb26edbbSPhilip Reames; RV32ZBA-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 374eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_offset ra, -4 375eb26edbbSPhilip Reames; RV32ZBA-NEXT: li a0, -1040 376eb26edbbSPhilip Reames; RV32ZBA-NEXT: sh3add sp, a0, sp 377eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_def_cfa_offset 10352 378eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi a0, sp, 12 379eb26edbbSPhilip Reames; RV32ZBA-NEXT: call callee 380eb26edbbSPhilip Reames; RV32ZBA-NEXT: li a0, 1040 381eb26edbbSPhilip Reames; RV32ZBA-NEXT: sh3add sp, a0, sp 382*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032 383eb26edbbSPhilip Reames; RV32ZBA-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 384*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_restore ra 385eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi sp, sp, 2032 386*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_def_cfa_offset 0 387eb26edbbSPhilip Reames; RV32ZBA-NEXT: ret 388eb26edbbSPhilip Reames; 389eb26edbbSPhilip Reames; RV64I-LABEL: frame_8kb_offset_128: 390eb26edbbSPhilip Reames; RV64I: # %bb.0: 391eb26edbbSPhilip Reames; RV64I-NEXT: addi sp, sp, -2032 392eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_def_cfa_offset 2032 393eb26edbbSPhilip Reames; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 394eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_offset ra, -8 395eb26edbbSPhilip Reames; RV64I-NEXT: lui a0, 2 396eb26edbbSPhilip Reames; RV64I-NEXT: addiw a0, a0, 128 397eb26edbbSPhilip Reames; RV64I-NEXT: sub sp, sp, a0 398eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_def_cfa_offset 10352 399eb26edbbSPhilip Reames; RV64I-NEXT: addi a0, sp, 8 400eb26edbbSPhilip Reames; RV64I-NEXT: call callee 401eb26edbbSPhilip Reames; RV64I-NEXT: lui a0, 2 402eb26edbbSPhilip Reames; RV64I-NEXT: addiw a0, a0, 128 403eb26edbbSPhilip Reames; RV64I-NEXT: add sp, sp, a0 404*97982a8cSdlav-sc; RV64I-NEXT: .cfi_def_cfa_offset 2032 405eb26edbbSPhilip Reames; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 406*97982a8cSdlav-sc; RV64I-NEXT: .cfi_restore ra 407eb26edbbSPhilip Reames; RV64I-NEXT: addi sp, sp, 2032 408*97982a8cSdlav-sc; RV64I-NEXT: .cfi_def_cfa_offset 0 409eb26edbbSPhilip Reames; RV64I-NEXT: ret 410eb26edbbSPhilip Reames; 411eb26edbbSPhilip Reames; RV64ZBA-LABEL: frame_8kb_offset_128: 412eb26edbbSPhilip Reames; RV64ZBA: # %bb.0: 413eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi sp, sp, -2032 414eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032 415eb26edbbSPhilip Reames; RV64ZBA-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 416eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_offset ra, -8 417eb26edbbSPhilip Reames; RV64ZBA-NEXT: li a0, -1040 418eb26edbbSPhilip Reames; RV64ZBA-NEXT: sh3add sp, a0, sp 419eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_def_cfa_offset 10352 420eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi a0, sp, 8 421eb26edbbSPhilip Reames; RV64ZBA-NEXT: call callee 422eb26edbbSPhilip Reames; RV64ZBA-NEXT: li a0, 1040 423eb26edbbSPhilip Reames; RV64ZBA-NEXT: sh3add sp, a0, sp 424*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032 425eb26edbbSPhilip Reames; RV64ZBA-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 426*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_restore ra 427eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi sp, sp, 2032 428*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_def_cfa_offset 0 429eb26edbbSPhilip Reames; RV64ZBA-NEXT: ret 430f5cf98c0SPhilip Reames %a = alloca [10336 x i8] 431f5cf98c0SPhilip Reames call void @callee(ptr %a) 432f5cf98c0SPhilip Reames ret void 433f5cf98c0SPhilip Reames} 434f5cf98c0SPhilip Reames 435f5cf98c0SPhilip Reamesdefine void @frame_16kb_minus_80() { 436eb26edbbSPhilip Reames; RV32I-LABEL: frame_16kb_minus_80: 437eb26edbbSPhilip Reames; RV32I: # %bb.0: 438eb26edbbSPhilip Reames; RV32I-NEXT: addi sp, sp, -2032 439eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_def_cfa_offset 2032 440eb26edbbSPhilip Reames; RV32I-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 441eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_offset ra, -4 442eb26edbbSPhilip Reames; RV32I-NEXT: lui a0, 4 443eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, a0, -80 444eb26edbbSPhilip Reames; RV32I-NEXT: sub sp, sp, a0 445eb26edbbSPhilip Reames; RV32I-NEXT: .cfi_def_cfa_offset 18336 446eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, sp, 12 447eb26edbbSPhilip Reames; RV32I-NEXT: call callee 448eb26edbbSPhilip Reames; RV32I-NEXT: lui a0, 4 449eb26edbbSPhilip Reames; RV32I-NEXT: addi a0, a0, -80 450eb26edbbSPhilip Reames; RV32I-NEXT: add sp, sp, a0 451*97982a8cSdlav-sc; RV32I-NEXT: .cfi_def_cfa_offset 2032 452eb26edbbSPhilip Reames; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 453*97982a8cSdlav-sc; RV32I-NEXT: .cfi_restore ra 454eb26edbbSPhilip Reames; RV32I-NEXT: addi sp, sp, 2032 455*97982a8cSdlav-sc; RV32I-NEXT: .cfi_def_cfa_offset 0 456eb26edbbSPhilip Reames; RV32I-NEXT: ret 457f5cf98c0SPhilip Reames; 458eb26edbbSPhilip Reames; RV32ZBA-LABEL: frame_16kb_minus_80: 459eb26edbbSPhilip Reames; RV32ZBA: # %bb.0: 460eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi sp, sp, -2032 461eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032 462eb26edbbSPhilip Reames; RV32ZBA-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 463eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_offset ra, -4 464eb26edbbSPhilip Reames; RV32ZBA-NEXT: li a0, -2038 465eb26edbbSPhilip Reames; RV32ZBA-NEXT: sh3add sp, a0, sp 466eb26edbbSPhilip Reames; RV32ZBA-NEXT: .cfi_def_cfa_offset 18336 467eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi a0, sp, 12 468eb26edbbSPhilip Reames; RV32ZBA-NEXT: call callee 469eb26edbbSPhilip Reames; RV32ZBA-NEXT: li a0, 2038 470eb26edbbSPhilip Reames; RV32ZBA-NEXT: sh3add sp, a0, sp 471*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032 472eb26edbbSPhilip Reames; RV32ZBA-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 473*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_restore ra 474eb26edbbSPhilip Reames; RV32ZBA-NEXT: addi sp, sp, 2032 475*97982a8cSdlav-sc; RV32ZBA-NEXT: .cfi_def_cfa_offset 0 476eb26edbbSPhilip Reames; RV32ZBA-NEXT: ret 477eb26edbbSPhilip Reames; 478eb26edbbSPhilip Reames; RV64I-LABEL: frame_16kb_minus_80: 479eb26edbbSPhilip Reames; RV64I: # %bb.0: 480eb26edbbSPhilip Reames; RV64I-NEXT: addi sp, sp, -2032 481eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_def_cfa_offset 2032 482eb26edbbSPhilip Reames; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 483eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_offset ra, -8 484eb26edbbSPhilip Reames; RV64I-NEXT: lui a0, 4 485eb26edbbSPhilip Reames; RV64I-NEXT: addiw a0, a0, -80 486eb26edbbSPhilip Reames; RV64I-NEXT: sub sp, sp, a0 487eb26edbbSPhilip Reames; RV64I-NEXT: .cfi_def_cfa_offset 18336 488eb26edbbSPhilip Reames; RV64I-NEXT: addi a0, sp, 8 489eb26edbbSPhilip Reames; RV64I-NEXT: call callee 490eb26edbbSPhilip Reames; RV64I-NEXT: lui a0, 4 491eb26edbbSPhilip Reames; RV64I-NEXT: addiw a0, a0, -80 492eb26edbbSPhilip Reames; RV64I-NEXT: add sp, sp, a0 493*97982a8cSdlav-sc; RV64I-NEXT: .cfi_def_cfa_offset 2032 494eb26edbbSPhilip Reames; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 495*97982a8cSdlav-sc; RV64I-NEXT: .cfi_restore ra 496eb26edbbSPhilip Reames; RV64I-NEXT: addi sp, sp, 2032 497*97982a8cSdlav-sc; RV64I-NEXT: .cfi_def_cfa_offset 0 498eb26edbbSPhilip Reames; RV64I-NEXT: ret 499eb26edbbSPhilip Reames; 500eb26edbbSPhilip Reames; RV64ZBA-LABEL: frame_16kb_minus_80: 501eb26edbbSPhilip Reames; RV64ZBA: # %bb.0: 502eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi sp, sp, -2032 503eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032 504eb26edbbSPhilip Reames; RV64ZBA-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 505eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_offset ra, -8 506eb26edbbSPhilip Reames; RV64ZBA-NEXT: li a0, -2038 507eb26edbbSPhilip Reames; RV64ZBA-NEXT: sh3add sp, a0, sp 508eb26edbbSPhilip Reames; RV64ZBA-NEXT: .cfi_def_cfa_offset 18336 509eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi a0, sp, 8 510eb26edbbSPhilip Reames; RV64ZBA-NEXT: call callee 511eb26edbbSPhilip Reames; RV64ZBA-NEXT: li a0, 2038 512eb26edbbSPhilip Reames; RV64ZBA-NEXT: sh3add sp, a0, sp 513*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032 514eb26edbbSPhilip Reames; RV64ZBA-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 515*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_restore ra 516eb26edbbSPhilip Reames; RV64ZBA-NEXT: addi sp, sp, 2032 517*97982a8cSdlav-sc; RV64ZBA-NEXT: .cfi_def_cfa_offset 0 518eb26edbbSPhilip Reames; RV64ZBA-NEXT: ret 519f5cf98c0SPhilip Reames %a = alloca [18320 x i8] 520f5cf98c0SPhilip Reames call void @callee(ptr %a) 521f5cf98c0SPhilip Reames ret void 522f5cf98c0SPhilip Reames} 523f5cf98c0SPhilip Reames 524da675b92SPhilip Reames;; 2^14-16+2032 525da675b92SPhilip Reamesdefine void @frame_16kb() { 526da675b92SPhilip Reames; RV32-LABEL: frame_16kb: 527da675b92SPhilip Reames; RV32: # %bb.0: 528da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -2032 529da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 2032 530da675b92SPhilip Reames; RV32-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 531da675b92SPhilip Reames; RV32-NEXT: .cfi_offset ra, -4 532da675b92SPhilip Reames; RV32-NEXT: lui a0, 4 533da675b92SPhilip Reames; RV32-NEXT: sub sp, sp, a0 534da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 18416 535da675b92SPhilip Reames; RV32-NEXT: addi a0, sp, 12 536da675b92SPhilip Reames; RV32-NEXT: call callee 537da675b92SPhilip Reames; RV32-NEXT: lui a0, 4 538da675b92SPhilip Reames; RV32-NEXT: add sp, sp, a0 539*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 2032 540da675b92SPhilip Reames; RV32-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 541*97982a8cSdlav-sc; RV32-NEXT: .cfi_restore ra 542da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 2032 543*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 0 544da675b92SPhilip Reames; RV32-NEXT: ret 545da675b92SPhilip Reames; 546da675b92SPhilip Reames; RV64-LABEL: frame_16kb: 547da675b92SPhilip Reames; RV64: # %bb.0: 548da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -2032 549da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 2032 550da675b92SPhilip Reames; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 551da675b92SPhilip Reames; RV64-NEXT: .cfi_offset ra, -8 552da675b92SPhilip Reames; RV64-NEXT: lui a0, 4 553da675b92SPhilip Reames; RV64-NEXT: sub sp, sp, a0 554da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 18416 555da675b92SPhilip Reames; RV64-NEXT: addi a0, sp, 8 556da675b92SPhilip Reames; RV64-NEXT: call callee 557da675b92SPhilip Reames; RV64-NEXT: lui a0, 4 558da675b92SPhilip Reames; RV64-NEXT: add sp, sp, a0 559*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 2032 560da675b92SPhilip Reames; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 561*97982a8cSdlav-sc; RV64-NEXT: .cfi_restore ra 562da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 2032 563*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 0 564da675b92SPhilip Reames; RV64-NEXT: ret 565da675b92SPhilip Reames %a = alloca [18400 x i8] 566da675b92SPhilip Reames call void @callee(ptr %a) 567da675b92SPhilip Reames ret void 568da675b92SPhilip Reames} 569da675b92SPhilip Reames 570da675b92SPhilip Reames;; 2^15-16+2032 571da675b92SPhilip Reamesdefine void @frame_32kb() { 572da675b92SPhilip Reames; RV32-LABEL: frame_32kb: 573da675b92SPhilip Reames; RV32: # %bb.0: 574da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, -2032 575da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 2032 576da675b92SPhilip Reames; RV32-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 577da675b92SPhilip Reames; RV32-NEXT: .cfi_offset ra, -4 578da675b92SPhilip Reames; RV32-NEXT: lui a0, 8 579da675b92SPhilip Reames; RV32-NEXT: sub sp, sp, a0 580da675b92SPhilip Reames; RV32-NEXT: .cfi_def_cfa_offset 34800 581da675b92SPhilip Reames; RV32-NEXT: addi a0, sp, 12 582da675b92SPhilip Reames; RV32-NEXT: call callee 583da675b92SPhilip Reames; RV32-NEXT: lui a0, 8 584da675b92SPhilip Reames; RV32-NEXT: add sp, sp, a0 585*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 2032 586da675b92SPhilip Reames; RV32-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 587*97982a8cSdlav-sc; RV32-NEXT: .cfi_restore ra 588da675b92SPhilip Reames; RV32-NEXT: addi sp, sp, 2032 589*97982a8cSdlav-sc; RV32-NEXT: .cfi_def_cfa_offset 0 590da675b92SPhilip Reames; RV32-NEXT: ret 591da675b92SPhilip Reames; 592da675b92SPhilip Reames; RV64-LABEL: frame_32kb: 593da675b92SPhilip Reames; RV64: # %bb.0: 594da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, -2032 595da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 2032 596da675b92SPhilip Reames; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 597da675b92SPhilip Reames; RV64-NEXT: .cfi_offset ra, -8 598da675b92SPhilip Reames; RV64-NEXT: lui a0, 8 599da675b92SPhilip Reames; RV64-NEXT: sub sp, sp, a0 600da675b92SPhilip Reames; RV64-NEXT: .cfi_def_cfa_offset 34800 601da675b92SPhilip Reames; RV64-NEXT: addi a0, sp, 8 602da675b92SPhilip Reames; RV64-NEXT: call callee 603da675b92SPhilip Reames; RV64-NEXT: lui a0, 8 604da675b92SPhilip Reames; RV64-NEXT: add sp, sp, a0 605*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 2032 606da675b92SPhilip Reames; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 607*97982a8cSdlav-sc; RV64-NEXT: .cfi_restore ra 608da675b92SPhilip Reames; RV64-NEXT: addi sp, sp, 2032 609*97982a8cSdlav-sc; RV64-NEXT: .cfi_def_cfa_offset 0 610da675b92SPhilip Reames; RV64-NEXT: ret 611da675b92SPhilip Reames %a = alloca [34784 x i8] 612da675b92SPhilip Reames call void @callee(ptr %a) 613da675b92SPhilip Reames ret void 614da675b92SPhilip Reames} 615