1cd44aee3SSam Elliott; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2cd44aee3SSam Elliott; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \ 3cd44aee3SSam Elliott; RUN: | FileCheck %s -check-prefix=RV32I 4cd44aee3SSam Elliott; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \ 5cd44aee3SSam Elliott; RUN: | FileCheck %s -check-prefix=RV64I 6cd44aee3SSam Elliott 7cd44aee3SSam Elliottdeclare void @callee(i8*) 8cd44aee3SSam Elliott 98a53a737SSam Elliottdefine void @caller32() { 10cd44aee3SSam Elliott; RV32I-LABEL: caller32: 11cd44aee3SSam Elliott; RV32I: # %bb.0: 12524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, -32 138a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 32 14524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill 15524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill 168a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 178a53a737SSam Elliott; RV32I-NEXT: .cfi_offset s0, -8 18524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi s0, sp, 32 198a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa s0, 0 20cd44aee3SSam Elliott; RV32I-NEXT: andi sp, sp, -32 21524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: mv a0, sp 22e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 23524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, s0, -32 24524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload 25137d3474SHsiangkai Wang; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload 26524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, 32 27cd44aee3SSam Elliott; RV32I-NEXT: ret 28cd44aee3SSam Elliott; 29cd44aee3SSam Elliott; RV64I-LABEL: caller32: 30cd44aee3SSam Elliott; RV64I: # %bb.0: 31524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, -32 328a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 32 33524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill 34524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill 358a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 368a53a737SSam Elliott; RV64I-NEXT: .cfi_offset s0, -16 37524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi s0, sp, 32 388a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa s0, 0 39cd44aee3SSam Elliott; RV64I-NEXT: andi sp, sp, -32 40524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: mv a0, sp 41e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 42524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, s0, -32 43524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload 44137d3474SHsiangkai Wang; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload 45524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, 32 46cd44aee3SSam Elliott; RV64I-NEXT: ret 47cd44aee3SSam Elliott %1 = alloca i8, align 32 48cd44aee3SSam Elliott call void @callee(i8* %1) 49cd44aee3SSam Elliott ret void 50cd44aee3SSam Elliott} 51cd44aee3SSam Elliott 528a53a737SSam Elliottdefine void @caller_no_realign32() "no-realign-stack" { 53cd44aee3SSam Elliott; RV32I-LABEL: caller_no_realign32: 54cd44aee3SSam Elliott; RV32I: # %bb.0: 55cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, -16 568a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 16 57e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 588a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 59cd44aee3SSam Elliott; RV32I-NEXT: mv a0, sp 60e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 61e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 62cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, 16 63cd44aee3SSam Elliott; RV32I-NEXT: ret 64cd44aee3SSam Elliott; 65cd44aee3SSam Elliott; RV64I-LABEL: caller_no_realign32: 66cd44aee3SSam Elliott; RV64I: # %bb.0: 67cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, -16 688a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 16 69e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 708a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 71cd44aee3SSam Elliott; RV64I-NEXT: mv a0, sp 72e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 73e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 74cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, 16 75cd44aee3SSam Elliott; RV64I-NEXT: ret 76cd44aee3SSam Elliott %1 = alloca i8, align 32 77cd44aee3SSam Elliott call void @callee(i8* %1) 78cd44aee3SSam Elliott ret void 79cd44aee3SSam Elliott} 80cd44aee3SSam Elliott 818a53a737SSam Elliottdefine void @caller64() { 82cd44aee3SSam Elliott; RV32I-LABEL: caller64: 83cd44aee3SSam Elliott; RV32I: # %bb.0: 84524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, -64 858a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 64 86524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw ra, 60(sp) # 4-byte Folded Spill 87524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw s0, 56(sp) # 4-byte Folded Spill 888a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 898a53a737SSam Elliott; RV32I-NEXT: .cfi_offset s0, -8 90524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi s0, sp, 64 918a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa s0, 0 92cd44aee3SSam Elliott; RV32I-NEXT: andi sp, sp, -64 93524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: mv a0, sp 94e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 95524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, s0, -64 96524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lw ra, 60(sp) # 4-byte Folded Reload 97137d3474SHsiangkai Wang; RV32I-NEXT: lw s0, 56(sp) # 4-byte Folded Reload 98524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, 64 99cd44aee3SSam Elliott; RV32I-NEXT: ret 100cd44aee3SSam Elliott; 101cd44aee3SSam Elliott; RV64I-LABEL: caller64: 102cd44aee3SSam Elliott; RV64I: # %bb.0: 103524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, -64 1048a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 64 105524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd ra, 56(sp) # 8-byte Folded Spill 106524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd s0, 48(sp) # 8-byte Folded Spill 1078a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 1088a53a737SSam Elliott; RV64I-NEXT: .cfi_offset s0, -16 109524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi s0, sp, 64 1108a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa s0, 0 111cd44aee3SSam Elliott; RV64I-NEXT: andi sp, sp, -64 112524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: mv a0, sp 113e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 114524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, s0, -64 115524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: ld ra, 56(sp) # 8-byte Folded Reload 116137d3474SHsiangkai Wang; RV64I-NEXT: ld s0, 48(sp) # 8-byte Folded Reload 117524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, 64 118cd44aee3SSam Elliott; RV64I-NEXT: ret 119cd44aee3SSam Elliott %1 = alloca i8, align 64 120cd44aee3SSam Elliott call void @callee(i8* %1) 121cd44aee3SSam Elliott ret void 122cd44aee3SSam Elliott} 123cd44aee3SSam Elliott 1248a53a737SSam Elliottdefine void @caller_no_realign64() "no-realign-stack" { 125cd44aee3SSam Elliott; RV32I-LABEL: caller_no_realign64: 126cd44aee3SSam Elliott; RV32I: # %bb.0: 127cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, -16 1288a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 16 129e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 1308a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 131cd44aee3SSam Elliott; RV32I-NEXT: mv a0, sp 132e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 133e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 134cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, 16 135cd44aee3SSam Elliott; RV32I-NEXT: ret 136cd44aee3SSam Elliott; 137cd44aee3SSam Elliott; RV64I-LABEL: caller_no_realign64: 138cd44aee3SSam Elliott; RV64I: # %bb.0: 139cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, -16 1408a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 16 141e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 1428a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 143cd44aee3SSam Elliott; RV64I-NEXT: mv a0, sp 144e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 145e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 146cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, 16 147cd44aee3SSam Elliott; RV64I-NEXT: ret 148cd44aee3SSam Elliott %1 = alloca i8, align 64 149cd44aee3SSam Elliott call void @callee(i8* %1) 150cd44aee3SSam Elliott ret void 151cd44aee3SSam Elliott} 152cd44aee3SSam Elliott 1538a53a737SSam Elliottdefine void @caller128() { 154cd44aee3SSam Elliott; RV32I-LABEL: caller128: 155cd44aee3SSam Elliott; RV32I: # %bb.0: 156524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, -128 1578a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 128 158524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw ra, 124(sp) # 4-byte Folded Spill 159524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw s0, 120(sp) # 4-byte Folded Spill 1608a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 1618a53a737SSam Elliott; RV32I-NEXT: .cfi_offset s0, -8 162524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi s0, sp, 128 1638a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa s0, 0 164cd44aee3SSam Elliott; RV32I-NEXT: andi sp, sp, -128 165524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: mv a0, sp 166e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 167524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, s0, -128 168524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lw ra, 124(sp) # 4-byte Folded Reload 169137d3474SHsiangkai Wang; RV32I-NEXT: lw s0, 120(sp) # 4-byte Folded Reload 170524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, 128 171cd44aee3SSam Elliott; RV32I-NEXT: ret 172cd44aee3SSam Elliott; 173cd44aee3SSam Elliott; RV64I-LABEL: caller128: 174cd44aee3SSam Elliott; RV64I: # %bb.0: 175524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, -128 1768a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 128 177524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd ra, 120(sp) # 8-byte Folded Spill 178524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd s0, 112(sp) # 8-byte Folded Spill 1798a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 1808a53a737SSam Elliott; RV64I-NEXT: .cfi_offset s0, -16 181524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi s0, sp, 128 1828a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa s0, 0 183cd44aee3SSam Elliott; RV64I-NEXT: andi sp, sp, -128 184524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: mv a0, sp 185e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 186524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, s0, -128 187524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: ld ra, 120(sp) # 8-byte Folded Reload 188137d3474SHsiangkai Wang; RV64I-NEXT: ld s0, 112(sp) # 8-byte Folded Reload 189524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, 128 190cd44aee3SSam Elliott; RV64I-NEXT: ret 191cd44aee3SSam Elliott %1 = alloca i8, align 128 192cd44aee3SSam Elliott call void @callee(i8* %1) 193cd44aee3SSam Elliott ret void 194cd44aee3SSam Elliott} 195cd44aee3SSam Elliott 1968a53a737SSam Elliottdefine void @caller_no_realign128() "no-realign-stack" { 197cd44aee3SSam Elliott; RV32I-LABEL: caller_no_realign128: 198cd44aee3SSam Elliott; RV32I: # %bb.0: 199cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, -16 2008a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 16 201e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2028a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 203cd44aee3SSam Elliott; RV32I-NEXT: mv a0, sp 204e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 205e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 206cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, 16 207cd44aee3SSam Elliott; RV32I-NEXT: ret 208cd44aee3SSam Elliott; 209cd44aee3SSam Elliott; RV64I-LABEL: caller_no_realign128: 210cd44aee3SSam Elliott; RV64I: # %bb.0: 211cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, -16 2128a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 16 213e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 2148a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 215cd44aee3SSam Elliott; RV64I-NEXT: mv a0, sp 216e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 217e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 218cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, 16 219cd44aee3SSam Elliott; RV64I-NEXT: ret 220cd44aee3SSam Elliott %1 = alloca i8, align 128 221cd44aee3SSam Elliott call void @callee(i8* %1) 222cd44aee3SSam Elliott ret void 223cd44aee3SSam Elliott} 224cd44aee3SSam Elliott 2258a53a737SSam Elliottdefine void @caller256() { 226cd44aee3SSam Elliott; RV32I-LABEL: caller256: 227cd44aee3SSam Elliott; RV32I: # %bb.0: 228524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, -256 2298a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 256 230524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw ra, 252(sp) # 4-byte Folded Spill 231524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw s0, 248(sp) # 4-byte Folded Spill 2328a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 2338a53a737SSam Elliott; RV32I-NEXT: .cfi_offset s0, -8 234524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi s0, sp, 256 2358a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa s0, 0 236cd44aee3SSam Elliott; RV32I-NEXT: andi sp, sp, -256 237524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: mv a0, sp 238e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 239524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, s0, -256 240524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lw ra, 252(sp) # 4-byte Folded Reload 241137d3474SHsiangkai Wang; RV32I-NEXT: lw s0, 248(sp) # 4-byte Folded Reload 242524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, 256 243cd44aee3SSam Elliott; RV32I-NEXT: ret 244cd44aee3SSam Elliott; 245cd44aee3SSam Elliott; RV64I-LABEL: caller256: 246cd44aee3SSam Elliott; RV64I: # %bb.0: 247524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, -256 2488a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 256 249524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd ra, 248(sp) # 8-byte Folded Spill 250524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd s0, 240(sp) # 8-byte Folded Spill 2518a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 2528a53a737SSam Elliott; RV64I-NEXT: .cfi_offset s0, -16 253524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi s0, sp, 256 2548a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa s0, 0 255cd44aee3SSam Elliott; RV64I-NEXT: andi sp, sp, -256 256524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: mv a0, sp 257e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 258524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, s0, -256 259524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: ld ra, 248(sp) # 8-byte Folded Reload 260137d3474SHsiangkai Wang; RV64I-NEXT: ld s0, 240(sp) # 8-byte Folded Reload 261524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, 256 262cd44aee3SSam Elliott; RV64I-NEXT: ret 263cd44aee3SSam Elliott %1 = alloca i8, align 256 264cd44aee3SSam Elliott call void @callee(i8* %1) 265cd44aee3SSam Elliott ret void 266cd44aee3SSam Elliott} 267cd44aee3SSam Elliott 2688a53a737SSam Elliottdefine void @caller_no_realign256() "no-realign-stack" { 269cd44aee3SSam Elliott; RV32I-LABEL: caller_no_realign256: 270cd44aee3SSam Elliott; RV32I: # %bb.0: 271cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, -16 2728a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 16 273e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2748a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 275cd44aee3SSam Elliott; RV32I-NEXT: mv a0, sp 276e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 277e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 278cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, 16 279cd44aee3SSam Elliott; RV32I-NEXT: ret 280cd44aee3SSam Elliott; 281cd44aee3SSam Elliott; RV64I-LABEL: caller_no_realign256: 282cd44aee3SSam Elliott; RV64I: # %bb.0: 283cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, -16 2848a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 16 285e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 2868a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 287cd44aee3SSam Elliott; RV64I-NEXT: mv a0, sp 288e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 289e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 290cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, 16 291cd44aee3SSam Elliott; RV64I-NEXT: ret 292cd44aee3SSam Elliott %1 = alloca i8, align 256 293cd44aee3SSam Elliott call void @callee(i8* %1) 294cd44aee3SSam Elliott ret void 295cd44aee3SSam Elliott} 296cd44aee3SSam Elliott 2978a53a737SSam Elliottdefine void @caller512() { 298cd44aee3SSam Elliott; RV32I-LABEL: caller512: 299cd44aee3SSam Elliott; RV32I: # %bb.0: 300524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, -1024 3018a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 1024 302524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw ra, 1020(sp) # 4-byte Folded Spill 303524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: sw s0, 1016(sp) # 4-byte Folded Spill 3048a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 3058a53a737SSam Elliott; RV32I-NEXT: .cfi_offset s0, -8 306524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi s0, sp, 1024 3078a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa s0, 0 308cd44aee3SSam Elliott; RV32I-NEXT: andi sp, sp, -512 309524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi a0, sp, 512 310e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 311524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, s0, -1024 312524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lw ra, 1020(sp) # 4-byte Folded Reload 313137d3474SHsiangkai Wang; RV32I-NEXT: lw s0, 1016(sp) # 4-byte Folded Reload 314524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, 1024 315cd44aee3SSam Elliott; RV32I-NEXT: ret 316cd44aee3SSam Elliott; 317cd44aee3SSam Elliott; RV64I-LABEL: caller512: 318cd44aee3SSam Elliott; RV64I: # %bb.0: 319524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, -1024 3208a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 1024 321524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd ra, 1016(sp) # 8-byte Folded Spill 322524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: sd s0, 1008(sp) # 8-byte Folded Spill 3238a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 3248a53a737SSam Elliott; RV64I-NEXT: .cfi_offset s0, -16 325524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi s0, sp, 1024 3268a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa s0, 0 327cd44aee3SSam Elliott; RV64I-NEXT: andi sp, sp, -512 328524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi a0, sp, 512 329e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 330524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, s0, -1024 331524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: ld ra, 1016(sp) # 8-byte Folded Reload 332137d3474SHsiangkai Wang; RV64I-NEXT: ld s0, 1008(sp) # 8-byte Folded Reload 333524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, 1024 334cd44aee3SSam Elliott; RV64I-NEXT: ret 335cd44aee3SSam Elliott %1 = alloca i8, align 512 336cd44aee3SSam Elliott call void @callee(i8* %1) 337cd44aee3SSam Elliott ret void 338cd44aee3SSam Elliott} 339cd44aee3SSam Elliott 3408a53a737SSam Elliottdefine void @caller_no_realign512() "no-realign-stack" { 341cd44aee3SSam Elliott; RV32I-LABEL: caller_no_realign512: 342cd44aee3SSam Elliott; RV32I: # %bb.0: 343cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, -16 3448a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 16 345e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 3468a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 347cd44aee3SSam Elliott; RV32I-NEXT: mv a0, sp 348e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 349e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 350cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, 16 351cd44aee3SSam Elliott; RV32I-NEXT: ret 352cd44aee3SSam Elliott; 353cd44aee3SSam Elliott; RV64I-LABEL: caller_no_realign512: 354cd44aee3SSam Elliott; RV64I: # %bb.0: 355cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, -16 3568a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 16 357e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 3588a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 359cd44aee3SSam Elliott; RV64I-NEXT: mv a0, sp 360e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 361e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 362cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, 16 363cd44aee3SSam Elliott; RV64I-NEXT: ret 364cd44aee3SSam Elliott %1 = alloca i8, align 512 365cd44aee3SSam Elliott call void @callee(i8* %1) 366cd44aee3SSam Elliott ret void 367cd44aee3SSam Elliott} 368cd44aee3SSam Elliott 3698a53a737SSam Elliottdefine void @caller1024() { 370cd44aee3SSam Elliott; RV32I-LABEL: caller1024: 371cd44aee3SSam Elliott; RV32I: # %bb.0: 372ff55e2e0SShiva Chen; RV32I-NEXT: addi sp, sp, -2032 3738a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 2032 374e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 375e28b6a60SMichael Munday; RV32I-NEXT: sw s0, 2024(sp) # 4-byte Folded Spill 3768a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 3778a53a737SSam Elliott; RV32I-NEXT: .cfi_offset s0, -8 378ff55e2e0SShiva Chen; RV32I-NEXT: addi s0, sp, 2032 3798a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa s0, 0 380524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, -16 381cd44aee3SSam Elliott; RV32I-NEXT: andi sp, sp, -1024 382524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi a0, sp, 1024 383e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 384524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, s0, -2048 385524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi sp, sp, 16 386e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 387137d3474SHsiangkai Wang; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload 388ff55e2e0SShiva Chen; RV32I-NEXT: addi sp, sp, 2032 389cd44aee3SSam Elliott; RV32I-NEXT: ret 390cd44aee3SSam Elliott; 391cd44aee3SSam Elliott; RV64I-LABEL: caller1024: 392cd44aee3SSam Elliott; RV64I: # %bb.0: 393ff55e2e0SShiva Chen; RV64I-NEXT: addi sp, sp, -2032 3948a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 2032 395e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 396e28b6a60SMichael Munday; RV64I-NEXT: sd s0, 2016(sp) # 8-byte Folded Spill 3978a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 3988a53a737SSam Elliott; RV64I-NEXT: .cfi_offset s0, -16 399ff55e2e0SShiva Chen; RV64I-NEXT: addi s0, sp, 2032 4008a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa s0, 0 401524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, -16 402cd44aee3SSam Elliott; RV64I-NEXT: andi sp, sp, -1024 403524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi a0, sp, 1024 404e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 405524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, s0, -2048 406524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addi sp, sp, 16 407e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 408137d3474SHsiangkai Wang; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload 409ff55e2e0SShiva Chen; RV64I-NEXT: addi sp, sp, 2032 410cd44aee3SSam Elliott; RV64I-NEXT: ret 411cd44aee3SSam Elliott %1 = alloca i8, align 1024 412cd44aee3SSam Elliott call void @callee(i8* %1) 413cd44aee3SSam Elliott ret void 414cd44aee3SSam Elliott} 415cd44aee3SSam Elliott 4168a53a737SSam Elliottdefine void @caller_no_realign1024() "no-realign-stack" { 417cd44aee3SSam Elliott; RV32I-LABEL: caller_no_realign1024: 418cd44aee3SSam Elliott; RV32I: # %bb.0: 419cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, -16 4208a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 16 421e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 4228a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 423cd44aee3SSam Elliott; RV32I-NEXT: mv a0, sp 424e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 425e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 426cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, 16 427cd44aee3SSam Elliott; RV32I-NEXT: ret 428cd44aee3SSam Elliott; 429cd44aee3SSam Elliott; RV64I-LABEL: caller_no_realign1024: 430cd44aee3SSam Elliott; RV64I: # %bb.0: 431cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, -16 4328a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 16 433e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 4348a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 435cd44aee3SSam Elliott; RV64I-NEXT: mv a0, sp 436e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 437e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 438cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, 16 439cd44aee3SSam Elliott; RV64I-NEXT: ret 440cd44aee3SSam Elliott %1 = alloca i8, align 1024 441cd44aee3SSam Elliott call void @callee(i8* %1) 442cd44aee3SSam Elliott ret void 443cd44aee3SSam Elliott} 444cd44aee3SSam Elliott 4458a53a737SSam Elliottdefine void @caller2048() { 446cd44aee3SSam Elliott; RV32I-LABEL: caller2048: 447cd44aee3SSam Elliott; RV32I: # %bb.0: 448ff55e2e0SShiva Chen; RV32I-NEXT: addi sp, sp, -2032 4498a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 2032 450e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 451e28b6a60SMichael Munday; RV32I-NEXT: sw s0, 2024(sp) # 4-byte Folded Spill 4528a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 4538a53a737SSam Elliott; RV32I-NEXT: .cfi_offset s0, -8 454ff55e2e0SShiva Chen; RV32I-NEXT: addi s0, sp, 2032 4558a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa s0, 0 456*1b2de79fSCraig Topper; RV32I-NEXT: addi sp, sp, -2048 457*1b2de79fSCraig Topper; RV32I-NEXT: addi sp, sp, -16 458cd44aee3SSam Elliott; RV32I-NEXT: andi sp, sp, -2048 459cd44aee3SSam Elliott; RV32I-NEXT: lui a0, 1 460524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: addi a0, a0, -2048 461cd44aee3SSam Elliott; RV32I-NEXT: add a0, sp, a0 462e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 463524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lui a0, 1 464cd44aee3SSam Elliott; RV32I-NEXT: sub sp, s0, a0 465*1b2de79fSCraig Topper; RV32I-NEXT: addi sp, sp, 2032 466*1b2de79fSCraig Topper; RV32I-NEXT: addi sp, sp, 32 467e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 468137d3474SHsiangkai Wang; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload 469ff55e2e0SShiva Chen; RV32I-NEXT: addi sp, sp, 2032 470cd44aee3SSam Elliott; RV32I-NEXT: ret 471cd44aee3SSam Elliott; 472cd44aee3SSam Elliott; RV64I-LABEL: caller2048: 473cd44aee3SSam Elliott; RV64I: # %bb.0: 474ff55e2e0SShiva Chen; RV64I-NEXT: addi sp, sp, -2032 4758a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 2032 476e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 477e28b6a60SMichael Munday; RV64I-NEXT: sd s0, 2016(sp) # 8-byte Folded Spill 4788a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 4798a53a737SSam Elliott; RV64I-NEXT: .cfi_offset s0, -16 480ff55e2e0SShiva Chen; RV64I-NEXT: addi s0, sp, 2032 4818a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa s0, 0 482*1b2de79fSCraig Topper; RV64I-NEXT: addi sp, sp, -2048 483*1b2de79fSCraig Topper; RV64I-NEXT: addi sp, sp, -16 484cd44aee3SSam Elliott; RV64I-NEXT: andi sp, sp, -2048 485cd44aee3SSam Elliott; RV64I-NEXT: lui a0, 1 486524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: addiw a0, a0, -2048 487cd44aee3SSam Elliott; RV64I-NEXT: add a0, sp, a0 488e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 489524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: lui a0, 1 490cd44aee3SSam Elliott; RV64I-NEXT: sub sp, s0, a0 491*1b2de79fSCraig Topper; RV64I-NEXT: addi sp, sp, 2032 492*1b2de79fSCraig Topper; RV64I-NEXT: addi sp, sp, 32 493e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 494137d3474SHsiangkai Wang; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload 495ff55e2e0SShiva Chen; RV64I-NEXT: addi sp, sp, 2032 496cd44aee3SSam Elliott; RV64I-NEXT: ret 497cd44aee3SSam Elliott %1 = alloca i8, align 2048 498cd44aee3SSam Elliott call void @callee(i8* %1) 499cd44aee3SSam Elliott ret void 500cd44aee3SSam Elliott} 501cd44aee3SSam Elliott 5028a53a737SSam Elliottdefine void @caller_no_realign2048() "no-realign-stack" { 503cd44aee3SSam Elliott; RV32I-LABEL: caller_no_realign2048: 504cd44aee3SSam Elliott; RV32I: # %bb.0: 505cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, -16 5068a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 16 507e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 5088a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 509cd44aee3SSam Elliott; RV32I-NEXT: mv a0, sp 510e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 511e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 512cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, 16 513cd44aee3SSam Elliott; RV32I-NEXT: ret 514cd44aee3SSam Elliott; 515cd44aee3SSam Elliott; RV64I-LABEL: caller_no_realign2048: 516cd44aee3SSam Elliott; RV64I: # %bb.0: 517cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, -16 5188a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 16 519e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 5208a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 521cd44aee3SSam Elliott; RV64I-NEXT: mv a0, sp 522e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 523e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 524cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, 16 525cd44aee3SSam Elliott; RV64I-NEXT: ret 526cd44aee3SSam Elliott %1 = alloca i8, align 2048 527cd44aee3SSam Elliott call void @callee(i8* %1) 528cd44aee3SSam Elliott ret void 529cd44aee3SSam Elliott} 530cd44aee3SSam Elliott 5318a53a737SSam Elliottdefine void @caller4096() { 532cd44aee3SSam Elliott; RV32I-LABEL: caller4096: 533cd44aee3SSam Elliott; RV32I: # %bb.0: 534ff55e2e0SShiva Chen; RV32I-NEXT: addi sp, sp, -2032 5358a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 2032 536e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill 537e28b6a60SMichael Munday; RV32I-NEXT: sw s0, 2024(sp) # 4-byte Folded Spill 5388a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 5398a53a737SSam Elliott; RV32I-NEXT: .cfi_offset s0, -8 540ff55e2e0SShiva Chen; RV32I-NEXT: addi s0, sp, 2032 5418a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa s0, 0 542524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lui a0, 2 543ff55e2e0SShiva Chen; RV32I-NEXT: addi a0, a0, -2032 544cd44aee3SSam Elliott; RV32I-NEXT: sub sp, sp, a0 545cd44aee3SSam Elliott; RV32I-NEXT: srli a0, sp, 12 546cd44aee3SSam Elliott; RV32I-NEXT: slli sp, a0, 12 547524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lui a0, 1 548cd44aee3SSam Elliott; RV32I-NEXT: add a0, sp, a0 549e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 550524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lui a0, 2 551cd44aee3SSam Elliott; RV32I-NEXT: sub sp, s0, a0 552524d8fa9SRoger Ferrer Ibanez; RV32I-NEXT: lui a0, 2 553ff55e2e0SShiva Chen; RV32I-NEXT: addi a0, a0, -2032 554cd44aee3SSam Elliott; RV32I-NEXT: add sp, sp, a0 555e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload 556137d3474SHsiangkai Wang; RV32I-NEXT: lw s0, 2024(sp) # 4-byte Folded Reload 557ff55e2e0SShiva Chen; RV32I-NEXT: addi sp, sp, 2032 558cd44aee3SSam Elliott; RV32I-NEXT: ret 559cd44aee3SSam Elliott; 560cd44aee3SSam Elliott; RV64I-LABEL: caller4096: 561cd44aee3SSam Elliott; RV64I: # %bb.0: 562ff55e2e0SShiva Chen; RV64I-NEXT: addi sp, sp, -2032 5638a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 2032 564e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill 565e28b6a60SMichael Munday; RV64I-NEXT: sd s0, 2016(sp) # 8-byte Folded Spill 5668a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 5678a53a737SSam Elliott; RV64I-NEXT: .cfi_offset s0, -16 568ff55e2e0SShiva Chen; RV64I-NEXT: addi s0, sp, 2032 5698a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa s0, 0 570524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: lui a0, 2 571ff55e2e0SShiva Chen; RV64I-NEXT: addiw a0, a0, -2032 572cd44aee3SSam Elliott; RV64I-NEXT: sub sp, sp, a0 573cd44aee3SSam Elliott; RV64I-NEXT: srli a0, sp, 12 574cd44aee3SSam Elliott; RV64I-NEXT: slli sp, a0, 12 575524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: lui a0, 1 576cd44aee3SSam Elliott; RV64I-NEXT: add a0, sp, a0 577e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 578524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: lui a0, 2 579cd44aee3SSam Elliott; RV64I-NEXT: sub sp, s0, a0 580524d8fa9SRoger Ferrer Ibanez; RV64I-NEXT: lui a0, 2 581ff55e2e0SShiva Chen; RV64I-NEXT: addiw a0, a0, -2032 582cd44aee3SSam Elliott; RV64I-NEXT: add sp, sp, a0 583e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload 584137d3474SHsiangkai Wang; RV64I-NEXT: ld s0, 2016(sp) # 8-byte Folded Reload 585ff55e2e0SShiva Chen; RV64I-NEXT: addi sp, sp, 2032 586cd44aee3SSam Elliott; RV64I-NEXT: ret 587cd44aee3SSam Elliott %1 = alloca i8, align 4096 588cd44aee3SSam Elliott call void @callee(i8* %1) 589cd44aee3SSam Elliott ret void 590cd44aee3SSam Elliott} 591cd44aee3SSam Elliott 5928a53a737SSam Elliottdefine void @caller_no_realign4096() "no-realign-stack" { 593cd44aee3SSam Elliott; RV32I-LABEL: caller_no_realign4096: 594cd44aee3SSam Elliott; RV32I: # %bb.0: 595cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, -16 5968a53a737SSam Elliott; RV32I-NEXT: .cfi_def_cfa_offset 16 597e28b6a60SMichael Munday; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 5988a53a737SSam Elliott; RV32I-NEXT: .cfi_offset ra, -4 599cd44aee3SSam Elliott; RV32I-NEXT: mv a0, sp 600e28b6a60SMichael Munday; RV32I-NEXT: call callee@plt 601e28b6a60SMichael Munday; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 602cd44aee3SSam Elliott; RV32I-NEXT: addi sp, sp, 16 603cd44aee3SSam Elliott; RV32I-NEXT: ret 604cd44aee3SSam Elliott; 605cd44aee3SSam Elliott; RV64I-LABEL: caller_no_realign4096: 606cd44aee3SSam Elliott; RV64I: # %bb.0: 607cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, -16 6088a53a737SSam Elliott; RV64I-NEXT: .cfi_def_cfa_offset 16 609e28b6a60SMichael Munday; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 6108a53a737SSam Elliott; RV64I-NEXT: .cfi_offset ra, -8 611cd44aee3SSam Elliott; RV64I-NEXT: mv a0, sp 612e28b6a60SMichael Munday; RV64I-NEXT: call callee@plt 613e28b6a60SMichael Munday; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 614cd44aee3SSam Elliott; RV64I-NEXT: addi sp, sp, 16 615cd44aee3SSam Elliott; RV64I-NEXT: ret 616cd44aee3SSam Elliott %1 = alloca i8, align 4096 617cd44aee3SSam Elliott call void @callee(i8* %1) 618cd44aee3SSam Elliott ret void 619cd44aee3SSam Elliott} 620