1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple riscv32-unknown-elf -o - %s \ 3; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV32 4; RUN: llc -mtriple riscv32-unknown-elf -mattr=+f -o - %s \ 5; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV32-F 6; RUN: llc -mtriple riscv32-unknown-elf -mattr=+f,+d -o - %s \ 7; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV32-FD 8; 9; RUN: llc -mtriple riscv64-unknown-elf -o - %s \ 10; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV64 11; RUN: llc -mtriple riscv64-unknown-elf -mattr=+f -o - %s \ 12; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV64-F 13; RUN: llc -mtriple riscv64-unknown-elf -mattr=+f,+d -o - %s \ 14; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV64-FD 15 16; 17; Checking for special return instructions (sret, mret). 18; 19define void @foo_supervisor() #0 { 20; CHECK-LABEL: foo_supervisor: 21; CHECK: # %bb.0: 22; CHECK-NEXT: sret 23 ret void 24} 25 26define void @foo_machine() #1 { 27; CHECK-LABEL: foo_machine: 28; CHECK: # %bb.0: 29; CHECK-NEXT: mret 30 ret void 31} 32 33; 34; Checking all Caller saved registers (arguments and temps) 35; and FP registers are all saved when the handler calls another function. 36; 37; extern int otherfoo(); 38; 39; __attribute__((interrupt)) void foo_with_call() { 40; otherfoo(); 41; } 42; 43 44declare i32 @otherfoo(...) 45define void @foo_with_call() #1 { 46; 47; CHECK-RV32-LABEL: foo_with_call: 48; CHECK-RV32: # %bb.0: 49; CHECK-RV32-NEXT: addi sp, sp, -64 50; CHECK-RV32-NEXT: sw ra, 60(sp) # 4-byte Folded Spill 51; CHECK-RV32-NEXT: sw t0, 56(sp) # 4-byte Folded Spill 52; CHECK-RV32-NEXT: sw t1, 52(sp) # 4-byte Folded Spill 53; CHECK-RV32-NEXT: sw t2, 48(sp) # 4-byte Folded Spill 54; CHECK-RV32-NEXT: sw a0, 44(sp) # 4-byte Folded Spill 55; CHECK-RV32-NEXT: sw a1, 40(sp) # 4-byte Folded Spill 56; CHECK-RV32-NEXT: sw a2, 36(sp) # 4-byte Folded Spill 57; CHECK-RV32-NEXT: sw a3, 32(sp) # 4-byte Folded Spill 58; CHECK-RV32-NEXT: sw a4, 28(sp) # 4-byte Folded Spill 59; CHECK-RV32-NEXT: sw a5, 24(sp) # 4-byte Folded Spill 60; CHECK-RV32-NEXT: sw a6, 20(sp) # 4-byte Folded Spill 61; CHECK-RV32-NEXT: sw a7, 16(sp) # 4-byte Folded Spill 62; CHECK-RV32-NEXT: sw t3, 12(sp) # 4-byte Folded Spill 63; CHECK-RV32-NEXT: sw t4, 8(sp) # 4-byte Folded Spill 64; CHECK-RV32-NEXT: sw t5, 4(sp) # 4-byte Folded Spill 65; CHECK-RV32-NEXT: sw t6, 0(sp) # 4-byte Folded Spill 66; CHECK-RV32-NEXT: call otherfoo 67; CHECK-RV32-NEXT: lw ra, 60(sp) # 4-byte Folded Reload 68; CHECK-RV32-NEXT: lw t0, 56(sp) # 4-byte Folded Reload 69; CHECK-RV32-NEXT: lw t1, 52(sp) # 4-byte Folded Reload 70; CHECK-RV32-NEXT: lw t2, 48(sp) # 4-byte Folded Reload 71; CHECK-RV32-NEXT: lw a0, 44(sp) # 4-byte Folded Reload 72; CHECK-RV32-NEXT: lw a1, 40(sp) # 4-byte Folded Reload 73; CHECK-RV32-NEXT: lw a2, 36(sp) # 4-byte Folded Reload 74; CHECK-RV32-NEXT: lw a3, 32(sp) # 4-byte Folded Reload 75; CHECK-RV32-NEXT: lw a4, 28(sp) # 4-byte Folded Reload 76; CHECK-RV32-NEXT: lw a5, 24(sp) # 4-byte Folded Reload 77; CHECK-RV32-NEXT: lw a6, 20(sp) # 4-byte Folded Reload 78; CHECK-RV32-NEXT: lw a7, 16(sp) # 4-byte Folded Reload 79; CHECK-RV32-NEXT: lw t3, 12(sp) # 4-byte Folded Reload 80; CHECK-RV32-NEXT: lw t4, 8(sp) # 4-byte Folded Reload 81; CHECK-RV32-NEXT: lw t5, 4(sp) # 4-byte Folded Reload 82; CHECK-RV32-NEXT: lw t6, 0(sp) # 4-byte Folded Reload 83; CHECK-RV32-NEXT: addi sp, sp, 64 84; CHECK-RV32-NEXT: mret 85; 86; CHECK-RV32-F-LABEL: foo_with_call: 87; CHECK-RV32-F: # %bb.0: 88; CHECK-RV32-F-NEXT: addi sp, sp, -192 89; CHECK-RV32-F-NEXT: sw ra, 188(sp) # 4-byte Folded Spill 90; CHECK-RV32-F-NEXT: sw t0, 184(sp) # 4-byte Folded Spill 91; CHECK-RV32-F-NEXT: sw t1, 180(sp) # 4-byte Folded Spill 92; CHECK-RV32-F-NEXT: sw t2, 176(sp) # 4-byte Folded Spill 93; CHECK-RV32-F-NEXT: sw a0, 172(sp) # 4-byte Folded Spill 94; CHECK-RV32-F-NEXT: sw a1, 168(sp) # 4-byte Folded Spill 95; CHECK-RV32-F-NEXT: sw a2, 164(sp) # 4-byte Folded Spill 96; CHECK-RV32-F-NEXT: sw a3, 160(sp) # 4-byte Folded Spill 97; CHECK-RV32-F-NEXT: sw a4, 156(sp) # 4-byte Folded Spill 98; CHECK-RV32-F-NEXT: sw a5, 152(sp) # 4-byte Folded Spill 99; CHECK-RV32-F-NEXT: sw a6, 148(sp) # 4-byte Folded Spill 100; CHECK-RV32-F-NEXT: sw a7, 144(sp) # 4-byte Folded Spill 101; CHECK-RV32-F-NEXT: sw t3, 140(sp) # 4-byte Folded Spill 102; CHECK-RV32-F-NEXT: sw t4, 136(sp) # 4-byte Folded Spill 103; CHECK-RV32-F-NEXT: sw t5, 132(sp) # 4-byte Folded Spill 104; CHECK-RV32-F-NEXT: sw t6, 128(sp) # 4-byte Folded Spill 105; CHECK-RV32-F-NEXT: fsw ft0, 124(sp) # 4-byte Folded Spill 106; CHECK-RV32-F-NEXT: fsw ft1, 120(sp) # 4-byte Folded Spill 107; CHECK-RV32-F-NEXT: fsw ft2, 116(sp) # 4-byte Folded Spill 108; CHECK-RV32-F-NEXT: fsw ft3, 112(sp) # 4-byte Folded Spill 109; CHECK-RV32-F-NEXT: fsw ft4, 108(sp) # 4-byte Folded Spill 110; CHECK-RV32-F-NEXT: fsw ft5, 104(sp) # 4-byte Folded Spill 111; CHECK-RV32-F-NEXT: fsw ft6, 100(sp) # 4-byte Folded Spill 112; CHECK-RV32-F-NEXT: fsw ft7, 96(sp) # 4-byte Folded Spill 113; CHECK-RV32-F-NEXT: fsw fs0, 92(sp) # 4-byte Folded Spill 114; CHECK-RV32-F-NEXT: fsw fs1, 88(sp) # 4-byte Folded Spill 115; CHECK-RV32-F-NEXT: fsw fa0, 84(sp) # 4-byte Folded Spill 116; CHECK-RV32-F-NEXT: fsw fa1, 80(sp) # 4-byte Folded Spill 117; CHECK-RV32-F-NEXT: fsw fa2, 76(sp) # 4-byte Folded Spill 118; CHECK-RV32-F-NEXT: fsw fa3, 72(sp) # 4-byte Folded Spill 119; CHECK-RV32-F-NEXT: fsw fa4, 68(sp) # 4-byte Folded Spill 120; CHECK-RV32-F-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill 121; CHECK-RV32-F-NEXT: fsw fa6, 60(sp) # 4-byte Folded Spill 122; CHECK-RV32-F-NEXT: fsw fa7, 56(sp) # 4-byte Folded Spill 123; CHECK-RV32-F-NEXT: fsw fs2, 52(sp) # 4-byte Folded Spill 124; CHECK-RV32-F-NEXT: fsw fs3, 48(sp) # 4-byte Folded Spill 125; CHECK-RV32-F-NEXT: fsw fs4, 44(sp) # 4-byte Folded Spill 126; CHECK-RV32-F-NEXT: fsw fs5, 40(sp) # 4-byte Folded Spill 127; CHECK-RV32-F-NEXT: fsw fs6, 36(sp) # 4-byte Folded Spill 128; CHECK-RV32-F-NEXT: fsw fs7, 32(sp) # 4-byte Folded Spill 129; CHECK-RV32-F-NEXT: fsw fs8, 28(sp) # 4-byte Folded Spill 130; CHECK-RV32-F-NEXT: fsw fs9, 24(sp) # 4-byte Folded Spill 131; CHECK-RV32-F-NEXT: fsw fs10, 20(sp) # 4-byte Folded Spill 132; CHECK-RV32-F-NEXT: fsw fs11, 16(sp) # 4-byte Folded Spill 133; CHECK-RV32-F-NEXT: fsw ft8, 12(sp) # 4-byte Folded Spill 134; CHECK-RV32-F-NEXT: fsw ft9, 8(sp) # 4-byte Folded Spill 135; CHECK-RV32-F-NEXT: fsw ft10, 4(sp) # 4-byte Folded Spill 136; CHECK-RV32-F-NEXT: fsw ft11, 0(sp) # 4-byte Folded Spill 137; CHECK-RV32-F-NEXT: call otherfoo 138; CHECK-RV32-F-NEXT: lw ra, 188(sp) # 4-byte Folded Reload 139; CHECK-RV32-F-NEXT: lw t0, 184(sp) # 4-byte Folded Reload 140; CHECK-RV32-F-NEXT: lw t1, 180(sp) # 4-byte Folded Reload 141; CHECK-RV32-F-NEXT: lw t2, 176(sp) # 4-byte Folded Reload 142; CHECK-RV32-F-NEXT: lw a0, 172(sp) # 4-byte Folded Reload 143; CHECK-RV32-F-NEXT: lw a1, 168(sp) # 4-byte Folded Reload 144; CHECK-RV32-F-NEXT: lw a2, 164(sp) # 4-byte Folded Reload 145; CHECK-RV32-F-NEXT: lw a3, 160(sp) # 4-byte Folded Reload 146; CHECK-RV32-F-NEXT: lw a4, 156(sp) # 4-byte Folded Reload 147; CHECK-RV32-F-NEXT: lw a5, 152(sp) # 4-byte Folded Reload 148; CHECK-RV32-F-NEXT: lw a6, 148(sp) # 4-byte Folded Reload 149; CHECK-RV32-F-NEXT: lw a7, 144(sp) # 4-byte Folded Reload 150; CHECK-RV32-F-NEXT: lw t3, 140(sp) # 4-byte Folded Reload 151; CHECK-RV32-F-NEXT: lw t4, 136(sp) # 4-byte Folded Reload 152; CHECK-RV32-F-NEXT: lw t5, 132(sp) # 4-byte Folded Reload 153; CHECK-RV32-F-NEXT: lw t6, 128(sp) # 4-byte Folded Reload 154; CHECK-RV32-F-NEXT: flw ft0, 124(sp) # 4-byte Folded Reload 155; CHECK-RV32-F-NEXT: flw ft1, 120(sp) # 4-byte Folded Reload 156; CHECK-RV32-F-NEXT: flw ft2, 116(sp) # 4-byte Folded Reload 157; CHECK-RV32-F-NEXT: flw ft3, 112(sp) # 4-byte Folded Reload 158; CHECK-RV32-F-NEXT: flw ft4, 108(sp) # 4-byte Folded Reload 159; CHECK-RV32-F-NEXT: flw ft5, 104(sp) # 4-byte Folded Reload 160; CHECK-RV32-F-NEXT: flw ft6, 100(sp) # 4-byte Folded Reload 161; CHECK-RV32-F-NEXT: flw ft7, 96(sp) # 4-byte Folded Reload 162; CHECK-RV32-F-NEXT: flw fs0, 92(sp) # 4-byte Folded Reload 163; CHECK-RV32-F-NEXT: flw fs1, 88(sp) # 4-byte Folded Reload 164; CHECK-RV32-F-NEXT: flw fa0, 84(sp) # 4-byte Folded Reload 165; CHECK-RV32-F-NEXT: flw fa1, 80(sp) # 4-byte Folded Reload 166; CHECK-RV32-F-NEXT: flw fa2, 76(sp) # 4-byte Folded Reload 167; CHECK-RV32-F-NEXT: flw fa3, 72(sp) # 4-byte Folded Reload 168; CHECK-RV32-F-NEXT: flw fa4, 68(sp) # 4-byte Folded Reload 169; CHECK-RV32-F-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload 170; CHECK-RV32-F-NEXT: flw fa6, 60(sp) # 4-byte Folded Reload 171; CHECK-RV32-F-NEXT: flw fa7, 56(sp) # 4-byte Folded Reload 172; CHECK-RV32-F-NEXT: flw fs2, 52(sp) # 4-byte Folded Reload 173; CHECK-RV32-F-NEXT: flw fs3, 48(sp) # 4-byte Folded Reload 174; CHECK-RV32-F-NEXT: flw fs4, 44(sp) # 4-byte Folded Reload 175; CHECK-RV32-F-NEXT: flw fs5, 40(sp) # 4-byte Folded Reload 176; CHECK-RV32-F-NEXT: flw fs6, 36(sp) # 4-byte Folded Reload 177; CHECK-RV32-F-NEXT: flw fs7, 32(sp) # 4-byte Folded Reload 178; CHECK-RV32-F-NEXT: flw fs8, 28(sp) # 4-byte Folded Reload 179; CHECK-RV32-F-NEXT: flw fs9, 24(sp) # 4-byte Folded Reload 180; CHECK-RV32-F-NEXT: flw fs10, 20(sp) # 4-byte Folded Reload 181; CHECK-RV32-F-NEXT: flw fs11, 16(sp) # 4-byte Folded Reload 182; CHECK-RV32-F-NEXT: flw ft8, 12(sp) # 4-byte Folded Reload 183; CHECK-RV32-F-NEXT: flw ft9, 8(sp) # 4-byte Folded Reload 184; CHECK-RV32-F-NEXT: flw ft10, 4(sp) # 4-byte Folded Reload 185; CHECK-RV32-F-NEXT: flw ft11, 0(sp) # 4-byte Folded Reload 186; CHECK-RV32-F-NEXT: addi sp, sp, 192 187; CHECK-RV32-F-NEXT: mret 188; 189; CHECK-RV32-FD-LABEL: foo_with_call: 190; CHECK-RV32-FD: # %bb.0: 191; CHECK-RV32-FD-NEXT: addi sp, sp, -320 192; CHECK-RV32-FD-NEXT: sw ra, 316(sp) # 4-byte Folded Spill 193; CHECK-RV32-FD-NEXT: sw t0, 312(sp) # 4-byte Folded Spill 194; CHECK-RV32-FD-NEXT: sw t1, 308(sp) # 4-byte Folded Spill 195; CHECK-RV32-FD-NEXT: sw t2, 304(sp) # 4-byte Folded Spill 196; CHECK-RV32-FD-NEXT: sw a0, 300(sp) # 4-byte Folded Spill 197; CHECK-RV32-FD-NEXT: sw a1, 296(sp) # 4-byte Folded Spill 198; CHECK-RV32-FD-NEXT: sw a2, 292(sp) # 4-byte Folded Spill 199; CHECK-RV32-FD-NEXT: sw a3, 288(sp) # 4-byte Folded Spill 200; CHECK-RV32-FD-NEXT: sw a4, 284(sp) # 4-byte Folded Spill 201; CHECK-RV32-FD-NEXT: sw a5, 280(sp) # 4-byte Folded Spill 202; CHECK-RV32-FD-NEXT: sw a6, 276(sp) # 4-byte Folded Spill 203; CHECK-RV32-FD-NEXT: sw a7, 272(sp) # 4-byte Folded Spill 204; CHECK-RV32-FD-NEXT: sw t3, 268(sp) # 4-byte Folded Spill 205; CHECK-RV32-FD-NEXT: sw t4, 264(sp) # 4-byte Folded Spill 206; CHECK-RV32-FD-NEXT: sw t5, 260(sp) # 4-byte Folded Spill 207; CHECK-RV32-FD-NEXT: sw t6, 256(sp) # 4-byte Folded Spill 208; CHECK-RV32-FD-NEXT: fsd ft0, 248(sp) # 8-byte Folded Spill 209; CHECK-RV32-FD-NEXT: fsd ft1, 240(sp) # 8-byte Folded Spill 210; CHECK-RV32-FD-NEXT: fsd ft2, 232(sp) # 8-byte Folded Spill 211; CHECK-RV32-FD-NEXT: fsd ft3, 224(sp) # 8-byte Folded Spill 212; CHECK-RV32-FD-NEXT: fsd ft4, 216(sp) # 8-byte Folded Spill 213; CHECK-RV32-FD-NEXT: fsd ft5, 208(sp) # 8-byte Folded Spill 214; CHECK-RV32-FD-NEXT: fsd ft6, 200(sp) # 8-byte Folded Spill 215; CHECK-RV32-FD-NEXT: fsd ft7, 192(sp) # 8-byte Folded Spill 216; CHECK-RV32-FD-NEXT: fsd fs0, 184(sp) # 8-byte Folded Spill 217; CHECK-RV32-FD-NEXT: fsd fs1, 176(sp) # 8-byte Folded Spill 218; CHECK-RV32-FD-NEXT: fsd fa0, 168(sp) # 8-byte Folded Spill 219; CHECK-RV32-FD-NEXT: fsd fa1, 160(sp) # 8-byte Folded Spill 220; CHECK-RV32-FD-NEXT: fsd fa2, 152(sp) # 8-byte Folded Spill 221; CHECK-RV32-FD-NEXT: fsd fa3, 144(sp) # 8-byte Folded Spill 222; CHECK-RV32-FD-NEXT: fsd fa4, 136(sp) # 8-byte Folded Spill 223; CHECK-RV32-FD-NEXT: fsd fa5, 128(sp) # 8-byte Folded Spill 224; CHECK-RV32-FD-NEXT: fsd fa6, 120(sp) # 8-byte Folded Spill 225; CHECK-RV32-FD-NEXT: fsd fa7, 112(sp) # 8-byte Folded Spill 226; CHECK-RV32-FD-NEXT: fsd fs2, 104(sp) # 8-byte Folded Spill 227; CHECK-RV32-FD-NEXT: fsd fs3, 96(sp) # 8-byte Folded Spill 228; CHECK-RV32-FD-NEXT: fsd fs4, 88(sp) # 8-byte Folded Spill 229; CHECK-RV32-FD-NEXT: fsd fs5, 80(sp) # 8-byte Folded Spill 230; CHECK-RV32-FD-NEXT: fsd fs6, 72(sp) # 8-byte Folded Spill 231; CHECK-RV32-FD-NEXT: fsd fs7, 64(sp) # 8-byte Folded Spill 232; CHECK-RV32-FD-NEXT: fsd fs8, 56(sp) # 8-byte Folded Spill 233; CHECK-RV32-FD-NEXT: fsd fs9, 48(sp) # 8-byte Folded Spill 234; CHECK-RV32-FD-NEXT: fsd fs10, 40(sp) # 8-byte Folded Spill 235; CHECK-RV32-FD-NEXT: fsd fs11, 32(sp) # 8-byte Folded Spill 236; CHECK-RV32-FD-NEXT: fsd ft8, 24(sp) # 8-byte Folded Spill 237; CHECK-RV32-FD-NEXT: fsd ft9, 16(sp) # 8-byte Folded Spill 238; CHECK-RV32-FD-NEXT: fsd ft10, 8(sp) # 8-byte Folded Spill 239; CHECK-RV32-FD-NEXT: fsd ft11, 0(sp) # 8-byte Folded Spill 240; CHECK-RV32-FD-NEXT: call otherfoo 241; CHECK-RV32-FD-NEXT: lw ra, 316(sp) # 4-byte Folded Reload 242; CHECK-RV32-FD-NEXT: lw t0, 312(sp) # 4-byte Folded Reload 243; CHECK-RV32-FD-NEXT: lw t1, 308(sp) # 4-byte Folded Reload 244; CHECK-RV32-FD-NEXT: lw t2, 304(sp) # 4-byte Folded Reload 245; CHECK-RV32-FD-NEXT: lw a0, 300(sp) # 4-byte Folded Reload 246; CHECK-RV32-FD-NEXT: lw a1, 296(sp) # 4-byte Folded Reload 247; CHECK-RV32-FD-NEXT: lw a2, 292(sp) # 4-byte Folded Reload 248; CHECK-RV32-FD-NEXT: lw a3, 288(sp) # 4-byte Folded Reload 249; CHECK-RV32-FD-NEXT: lw a4, 284(sp) # 4-byte Folded Reload 250; CHECK-RV32-FD-NEXT: lw a5, 280(sp) # 4-byte Folded Reload 251; CHECK-RV32-FD-NEXT: lw a6, 276(sp) # 4-byte Folded Reload 252; CHECK-RV32-FD-NEXT: lw a7, 272(sp) # 4-byte Folded Reload 253; CHECK-RV32-FD-NEXT: lw t3, 268(sp) # 4-byte Folded Reload 254; CHECK-RV32-FD-NEXT: lw t4, 264(sp) # 4-byte Folded Reload 255; CHECK-RV32-FD-NEXT: lw t5, 260(sp) # 4-byte Folded Reload 256; CHECK-RV32-FD-NEXT: lw t6, 256(sp) # 4-byte Folded Reload 257; CHECK-RV32-FD-NEXT: fld ft0, 248(sp) # 8-byte Folded Reload 258; CHECK-RV32-FD-NEXT: fld ft1, 240(sp) # 8-byte Folded Reload 259; CHECK-RV32-FD-NEXT: fld ft2, 232(sp) # 8-byte Folded Reload 260; CHECK-RV32-FD-NEXT: fld ft3, 224(sp) # 8-byte Folded Reload 261; CHECK-RV32-FD-NEXT: fld ft4, 216(sp) # 8-byte Folded Reload 262; CHECK-RV32-FD-NEXT: fld ft5, 208(sp) # 8-byte Folded Reload 263; CHECK-RV32-FD-NEXT: fld ft6, 200(sp) # 8-byte Folded Reload 264; CHECK-RV32-FD-NEXT: fld ft7, 192(sp) # 8-byte Folded Reload 265; CHECK-RV32-FD-NEXT: fld fs0, 184(sp) # 8-byte Folded Reload 266; CHECK-RV32-FD-NEXT: fld fs1, 176(sp) # 8-byte Folded Reload 267; CHECK-RV32-FD-NEXT: fld fa0, 168(sp) # 8-byte Folded Reload 268; CHECK-RV32-FD-NEXT: fld fa1, 160(sp) # 8-byte Folded Reload 269; CHECK-RV32-FD-NEXT: fld fa2, 152(sp) # 8-byte Folded Reload 270; CHECK-RV32-FD-NEXT: fld fa3, 144(sp) # 8-byte Folded Reload 271; CHECK-RV32-FD-NEXT: fld fa4, 136(sp) # 8-byte Folded Reload 272; CHECK-RV32-FD-NEXT: fld fa5, 128(sp) # 8-byte Folded Reload 273; CHECK-RV32-FD-NEXT: fld fa6, 120(sp) # 8-byte Folded Reload 274; CHECK-RV32-FD-NEXT: fld fa7, 112(sp) # 8-byte Folded Reload 275; CHECK-RV32-FD-NEXT: fld fs2, 104(sp) # 8-byte Folded Reload 276; CHECK-RV32-FD-NEXT: fld fs3, 96(sp) # 8-byte Folded Reload 277; CHECK-RV32-FD-NEXT: fld fs4, 88(sp) # 8-byte Folded Reload 278; CHECK-RV32-FD-NEXT: fld fs5, 80(sp) # 8-byte Folded Reload 279; CHECK-RV32-FD-NEXT: fld fs6, 72(sp) # 8-byte Folded Reload 280; CHECK-RV32-FD-NEXT: fld fs7, 64(sp) # 8-byte Folded Reload 281; CHECK-RV32-FD-NEXT: fld fs8, 56(sp) # 8-byte Folded Reload 282; CHECK-RV32-FD-NEXT: fld fs9, 48(sp) # 8-byte Folded Reload 283; CHECK-RV32-FD-NEXT: fld fs10, 40(sp) # 8-byte Folded Reload 284; CHECK-RV32-FD-NEXT: fld fs11, 32(sp) # 8-byte Folded Reload 285; CHECK-RV32-FD-NEXT: fld ft8, 24(sp) # 8-byte Folded Reload 286; CHECK-RV32-FD-NEXT: fld ft9, 16(sp) # 8-byte Folded Reload 287; CHECK-RV32-FD-NEXT: fld ft10, 8(sp) # 8-byte Folded Reload 288; CHECK-RV32-FD-NEXT: fld ft11, 0(sp) # 8-byte Folded Reload 289; CHECK-RV32-FD-NEXT: addi sp, sp, 320 290; CHECK-RV32-FD-NEXT: mret 291; 292; CHECK-RV64-LABEL: foo_with_call: 293; CHECK-RV64: # %bb.0: 294; CHECK-RV64-NEXT: addi sp, sp, -128 295; CHECK-RV64-NEXT: sd ra, 120(sp) # 8-byte Folded Spill 296; CHECK-RV64-NEXT: sd t0, 112(sp) # 8-byte Folded Spill 297; CHECK-RV64-NEXT: sd t1, 104(sp) # 8-byte Folded Spill 298; CHECK-RV64-NEXT: sd t2, 96(sp) # 8-byte Folded Spill 299; CHECK-RV64-NEXT: sd a0, 88(sp) # 8-byte Folded Spill 300; CHECK-RV64-NEXT: sd a1, 80(sp) # 8-byte Folded Spill 301; CHECK-RV64-NEXT: sd a2, 72(sp) # 8-byte Folded Spill 302; CHECK-RV64-NEXT: sd a3, 64(sp) # 8-byte Folded Spill 303; CHECK-RV64-NEXT: sd a4, 56(sp) # 8-byte Folded Spill 304; CHECK-RV64-NEXT: sd a5, 48(sp) # 8-byte Folded Spill 305; CHECK-RV64-NEXT: sd a6, 40(sp) # 8-byte Folded Spill 306; CHECK-RV64-NEXT: sd a7, 32(sp) # 8-byte Folded Spill 307; CHECK-RV64-NEXT: sd t3, 24(sp) # 8-byte Folded Spill 308; CHECK-RV64-NEXT: sd t4, 16(sp) # 8-byte Folded Spill 309; CHECK-RV64-NEXT: sd t5, 8(sp) # 8-byte Folded Spill 310; CHECK-RV64-NEXT: sd t6, 0(sp) # 8-byte Folded Spill 311; CHECK-RV64-NEXT: call otherfoo 312; CHECK-RV64-NEXT: ld ra, 120(sp) # 8-byte Folded Reload 313; CHECK-RV64-NEXT: ld t0, 112(sp) # 8-byte Folded Reload 314; CHECK-RV64-NEXT: ld t1, 104(sp) # 8-byte Folded Reload 315; CHECK-RV64-NEXT: ld t2, 96(sp) # 8-byte Folded Reload 316; CHECK-RV64-NEXT: ld a0, 88(sp) # 8-byte Folded Reload 317; CHECK-RV64-NEXT: ld a1, 80(sp) # 8-byte Folded Reload 318; CHECK-RV64-NEXT: ld a2, 72(sp) # 8-byte Folded Reload 319; CHECK-RV64-NEXT: ld a3, 64(sp) # 8-byte Folded Reload 320; CHECK-RV64-NEXT: ld a4, 56(sp) # 8-byte Folded Reload 321; CHECK-RV64-NEXT: ld a5, 48(sp) # 8-byte Folded Reload 322; CHECK-RV64-NEXT: ld a6, 40(sp) # 8-byte Folded Reload 323; CHECK-RV64-NEXT: ld a7, 32(sp) # 8-byte Folded Reload 324; CHECK-RV64-NEXT: ld t3, 24(sp) # 8-byte Folded Reload 325; CHECK-RV64-NEXT: ld t4, 16(sp) # 8-byte Folded Reload 326; CHECK-RV64-NEXT: ld t5, 8(sp) # 8-byte Folded Reload 327; CHECK-RV64-NEXT: ld t6, 0(sp) # 8-byte Folded Reload 328; CHECK-RV64-NEXT: addi sp, sp, 128 329; CHECK-RV64-NEXT: mret 330; 331; CHECK-RV64-F-LABEL: foo_with_call: 332; CHECK-RV64-F: # %bb.0: 333; CHECK-RV64-F-NEXT: addi sp, sp, -256 334; CHECK-RV64-F-NEXT: sd ra, 248(sp) # 8-byte Folded Spill 335; CHECK-RV64-F-NEXT: sd t0, 240(sp) # 8-byte Folded Spill 336; CHECK-RV64-F-NEXT: sd t1, 232(sp) # 8-byte Folded Spill 337; CHECK-RV64-F-NEXT: sd t2, 224(sp) # 8-byte Folded Spill 338; CHECK-RV64-F-NEXT: sd a0, 216(sp) # 8-byte Folded Spill 339; CHECK-RV64-F-NEXT: sd a1, 208(sp) # 8-byte Folded Spill 340; CHECK-RV64-F-NEXT: sd a2, 200(sp) # 8-byte Folded Spill 341; CHECK-RV64-F-NEXT: sd a3, 192(sp) # 8-byte Folded Spill 342; CHECK-RV64-F-NEXT: sd a4, 184(sp) # 8-byte Folded Spill 343; CHECK-RV64-F-NEXT: sd a5, 176(sp) # 8-byte Folded Spill 344; CHECK-RV64-F-NEXT: sd a6, 168(sp) # 8-byte Folded Spill 345; CHECK-RV64-F-NEXT: sd a7, 160(sp) # 8-byte Folded Spill 346; CHECK-RV64-F-NEXT: sd t3, 152(sp) # 8-byte Folded Spill 347; CHECK-RV64-F-NEXT: sd t4, 144(sp) # 8-byte Folded Spill 348; CHECK-RV64-F-NEXT: sd t5, 136(sp) # 8-byte Folded Spill 349; CHECK-RV64-F-NEXT: sd t6, 128(sp) # 8-byte Folded Spill 350; CHECK-RV64-F-NEXT: fsw ft0, 124(sp) # 4-byte Folded Spill 351; CHECK-RV64-F-NEXT: fsw ft1, 120(sp) # 4-byte Folded Spill 352; CHECK-RV64-F-NEXT: fsw ft2, 116(sp) # 4-byte Folded Spill 353; CHECK-RV64-F-NEXT: fsw ft3, 112(sp) # 4-byte Folded Spill 354; CHECK-RV64-F-NEXT: fsw ft4, 108(sp) # 4-byte Folded Spill 355; CHECK-RV64-F-NEXT: fsw ft5, 104(sp) # 4-byte Folded Spill 356; CHECK-RV64-F-NEXT: fsw ft6, 100(sp) # 4-byte Folded Spill 357; CHECK-RV64-F-NEXT: fsw ft7, 96(sp) # 4-byte Folded Spill 358; CHECK-RV64-F-NEXT: fsw fs0, 92(sp) # 4-byte Folded Spill 359; CHECK-RV64-F-NEXT: fsw fs1, 88(sp) # 4-byte Folded Spill 360; CHECK-RV64-F-NEXT: fsw fa0, 84(sp) # 4-byte Folded Spill 361; CHECK-RV64-F-NEXT: fsw fa1, 80(sp) # 4-byte Folded Spill 362; CHECK-RV64-F-NEXT: fsw fa2, 76(sp) # 4-byte Folded Spill 363; CHECK-RV64-F-NEXT: fsw fa3, 72(sp) # 4-byte Folded Spill 364; CHECK-RV64-F-NEXT: fsw fa4, 68(sp) # 4-byte Folded Spill 365; CHECK-RV64-F-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill 366; CHECK-RV64-F-NEXT: fsw fa6, 60(sp) # 4-byte Folded Spill 367; CHECK-RV64-F-NEXT: fsw fa7, 56(sp) # 4-byte Folded Spill 368; CHECK-RV64-F-NEXT: fsw fs2, 52(sp) # 4-byte Folded Spill 369; CHECK-RV64-F-NEXT: fsw fs3, 48(sp) # 4-byte Folded Spill 370; CHECK-RV64-F-NEXT: fsw fs4, 44(sp) # 4-byte Folded Spill 371; CHECK-RV64-F-NEXT: fsw fs5, 40(sp) # 4-byte Folded Spill 372; CHECK-RV64-F-NEXT: fsw fs6, 36(sp) # 4-byte Folded Spill 373; CHECK-RV64-F-NEXT: fsw fs7, 32(sp) # 4-byte Folded Spill 374; CHECK-RV64-F-NEXT: fsw fs8, 28(sp) # 4-byte Folded Spill 375; CHECK-RV64-F-NEXT: fsw fs9, 24(sp) # 4-byte Folded Spill 376; CHECK-RV64-F-NEXT: fsw fs10, 20(sp) # 4-byte Folded Spill 377; CHECK-RV64-F-NEXT: fsw fs11, 16(sp) # 4-byte Folded Spill 378; CHECK-RV64-F-NEXT: fsw ft8, 12(sp) # 4-byte Folded Spill 379; CHECK-RV64-F-NEXT: fsw ft9, 8(sp) # 4-byte Folded Spill 380; CHECK-RV64-F-NEXT: fsw ft10, 4(sp) # 4-byte Folded Spill 381; CHECK-RV64-F-NEXT: fsw ft11, 0(sp) # 4-byte Folded Spill 382; CHECK-RV64-F-NEXT: call otherfoo 383; CHECK-RV64-F-NEXT: ld ra, 248(sp) # 8-byte Folded Reload 384; CHECK-RV64-F-NEXT: ld t0, 240(sp) # 8-byte Folded Reload 385; CHECK-RV64-F-NEXT: ld t1, 232(sp) # 8-byte Folded Reload 386; CHECK-RV64-F-NEXT: ld t2, 224(sp) # 8-byte Folded Reload 387; CHECK-RV64-F-NEXT: ld a0, 216(sp) # 8-byte Folded Reload 388; CHECK-RV64-F-NEXT: ld a1, 208(sp) # 8-byte Folded Reload 389; CHECK-RV64-F-NEXT: ld a2, 200(sp) # 8-byte Folded Reload 390; CHECK-RV64-F-NEXT: ld a3, 192(sp) # 8-byte Folded Reload 391; CHECK-RV64-F-NEXT: ld a4, 184(sp) # 8-byte Folded Reload 392; CHECK-RV64-F-NEXT: ld a5, 176(sp) # 8-byte Folded Reload 393; CHECK-RV64-F-NEXT: ld a6, 168(sp) # 8-byte Folded Reload 394; CHECK-RV64-F-NEXT: ld a7, 160(sp) # 8-byte Folded Reload 395; CHECK-RV64-F-NEXT: ld t3, 152(sp) # 8-byte Folded Reload 396; CHECK-RV64-F-NEXT: ld t4, 144(sp) # 8-byte Folded Reload 397; CHECK-RV64-F-NEXT: ld t5, 136(sp) # 8-byte Folded Reload 398; CHECK-RV64-F-NEXT: ld t6, 128(sp) # 8-byte Folded Reload 399; CHECK-RV64-F-NEXT: flw ft0, 124(sp) # 4-byte Folded Reload 400; CHECK-RV64-F-NEXT: flw ft1, 120(sp) # 4-byte Folded Reload 401; CHECK-RV64-F-NEXT: flw ft2, 116(sp) # 4-byte Folded Reload 402; CHECK-RV64-F-NEXT: flw ft3, 112(sp) # 4-byte Folded Reload 403; CHECK-RV64-F-NEXT: flw ft4, 108(sp) # 4-byte Folded Reload 404; CHECK-RV64-F-NEXT: flw ft5, 104(sp) # 4-byte Folded Reload 405; CHECK-RV64-F-NEXT: flw ft6, 100(sp) # 4-byte Folded Reload 406; CHECK-RV64-F-NEXT: flw ft7, 96(sp) # 4-byte Folded Reload 407; CHECK-RV64-F-NEXT: flw fs0, 92(sp) # 4-byte Folded Reload 408; CHECK-RV64-F-NEXT: flw fs1, 88(sp) # 4-byte Folded Reload 409; CHECK-RV64-F-NEXT: flw fa0, 84(sp) # 4-byte Folded Reload 410; CHECK-RV64-F-NEXT: flw fa1, 80(sp) # 4-byte Folded Reload 411; CHECK-RV64-F-NEXT: flw fa2, 76(sp) # 4-byte Folded Reload 412; CHECK-RV64-F-NEXT: flw fa3, 72(sp) # 4-byte Folded Reload 413; CHECK-RV64-F-NEXT: flw fa4, 68(sp) # 4-byte Folded Reload 414; CHECK-RV64-F-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload 415; CHECK-RV64-F-NEXT: flw fa6, 60(sp) # 4-byte Folded Reload 416; CHECK-RV64-F-NEXT: flw fa7, 56(sp) # 4-byte Folded Reload 417; CHECK-RV64-F-NEXT: flw fs2, 52(sp) # 4-byte Folded Reload 418; CHECK-RV64-F-NEXT: flw fs3, 48(sp) # 4-byte Folded Reload 419; CHECK-RV64-F-NEXT: flw fs4, 44(sp) # 4-byte Folded Reload 420; CHECK-RV64-F-NEXT: flw fs5, 40(sp) # 4-byte Folded Reload 421; CHECK-RV64-F-NEXT: flw fs6, 36(sp) # 4-byte Folded Reload 422; CHECK-RV64-F-NEXT: flw fs7, 32(sp) # 4-byte Folded Reload 423; CHECK-RV64-F-NEXT: flw fs8, 28(sp) # 4-byte Folded Reload 424; CHECK-RV64-F-NEXT: flw fs9, 24(sp) # 4-byte Folded Reload 425; CHECK-RV64-F-NEXT: flw fs10, 20(sp) # 4-byte Folded Reload 426; CHECK-RV64-F-NEXT: flw fs11, 16(sp) # 4-byte Folded Reload 427; CHECK-RV64-F-NEXT: flw ft8, 12(sp) # 4-byte Folded Reload 428; CHECK-RV64-F-NEXT: flw ft9, 8(sp) # 4-byte Folded Reload 429; CHECK-RV64-F-NEXT: flw ft10, 4(sp) # 4-byte Folded Reload 430; CHECK-RV64-F-NEXT: flw ft11, 0(sp) # 4-byte Folded Reload 431; CHECK-RV64-F-NEXT: addi sp, sp, 256 432; CHECK-RV64-F-NEXT: mret 433; 434; CHECK-RV64-FD-LABEL: foo_with_call: 435; CHECK-RV64-FD: # %bb.0: 436; CHECK-RV64-FD-NEXT: addi sp, sp, -384 437; CHECK-RV64-FD-NEXT: sd ra, 376(sp) # 8-byte Folded Spill 438; CHECK-RV64-FD-NEXT: sd t0, 368(sp) # 8-byte Folded Spill 439; CHECK-RV64-FD-NEXT: sd t1, 360(sp) # 8-byte Folded Spill 440; CHECK-RV64-FD-NEXT: sd t2, 352(sp) # 8-byte Folded Spill 441; CHECK-RV64-FD-NEXT: sd a0, 344(sp) # 8-byte Folded Spill 442; CHECK-RV64-FD-NEXT: sd a1, 336(sp) # 8-byte Folded Spill 443; CHECK-RV64-FD-NEXT: sd a2, 328(sp) # 8-byte Folded Spill 444; CHECK-RV64-FD-NEXT: sd a3, 320(sp) # 8-byte Folded Spill 445; CHECK-RV64-FD-NEXT: sd a4, 312(sp) # 8-byte Folded Spill 446; CHECK-RV64-FD-NEXT: sd a5, 304(sp) # 8-byte Folded Spill 447; CHECK-RV64-FD-NEXT: sd a6, 296(sp) # 8-byte Folded Spill 448; CHECK-RV64-FD-NEXT: sd a7, 288(sp) # 8-byte Folded Spill 449; CHECK-RV64-FD-NEXT: sd t3, 280(sp) # 8-byte Folded Spill 450; CHECK-RV64-FD-NEXT: sd t4, 272(sp) # 8-byte Folded Spill 451; CHECK-RV64-FD-NEXT: sd t5, 264(sp) # 8-byte Folded Spill 452; CHECK-RV64-FD-NEXT: sd t6, 256(sp) # 8-byte Folded Spill 453; CHECK-RV64-FD-NEXT: fsd ft0, 248(sp) # 8-byte Folded Spill 454; CHECK-RV64-FD-NEXT: fsd ft1, 240(sp) # 8-byte Folded Spill 455; CHECK-RV64-FD-NEXT: fsd ft2, 232(sp) # 8-byte Folded Spill 456; CHECK-RV64-FD-NEXT: fsd ft3, 224(sp) # 8-byte Folded Spill 457; CHECK-RV64-FD-NEXT: fsd ft4, 216(sp) # 8-byte Folded Spill 458; CHECK-RV64-FD-NEXT: fsd ft5, 208(sp) # 8-byte Folded Spill 459; CHECK-RV64-FD-NEXT: fsd ft6, 200(sp) # 8-byte Folded Spill 460; CHECK-RV64-FD-NEXT: fsd ft7, 192(sp) # 8-byte Folded Spill 461; CHECK-RV64-FD-NEXT: fsd fs0, 184(sp) # 8-byte Folded Spill 462; CHECK-RV64-FD-NEXT: fsd fs1, 176(sp) # 8-byte Folded Spill 463; CHECK-RV64-FD-NEXT: fsd fa0, 168(sp) # 8-byte Folded Spill 464; CHECK-RV64-FD-NEXT: fsd fa1, 160(sp) # 8-byte Folded Spill 465; CHECK-RV64-FD-NEXT: fsd fa2, 152(sp) # 8-byte Folded Spill 466; CHECK-RV64-FD-NEXT: fsd fa3, 144(sp) # 8-byte Folded Spill 467; CHECK-RV64-FD-NEXT: fsd fa4, 136(sp) # 8-byte Folded Spill 468; CHECK-RV64-FD-NEXT: fsd fa5, 128(sp) # 8-byte Folded Spill 469; CHECK-RV64-FD-NEXT: fsd fa6, 120(sp) # 8-byte Folded Spill 470; CHECK-RV64-FD-NEXT: fsd fa7, 112(sp) # 8-byte Folded Spill 471; CHECK-RV64-FD-NEXT: fsd fs2, 104(sp) # 8-byte Folded Spill 472; CHECK-RV64-FD-NEXT: fsd fs3, 96(sp) # 8-byte Folded Spill 473; CHECK-RV64-FD-NEXT: fsd fs4, 88(sp) # 8-byte Folded Spill 474; CHECK-RV64-FD-NEXT: fsd fs5, 80(sp) # 8-byte Folded Spill 475; CHECK-RV64-FD-NEXT: fsd fs6, 72(sp) # 8-byte Folded Spill 476; CHECK-RV64-FD-NEXT: fsd fs7, 64(sp) # 8-byte Folded Spill 477; CHECK-RV64-FD-NEXT: fsd fs8, 56(sp) # 8-byte Folded Spill 478; CHECK-RV64-FD-NEXT: fsd fs9, 48(sp) # 8-byte Folded Spill 479; CHECK-RV64-FD-NEXT: fsd fs10, 40(sp) # 8-byte Folded Spill 480; CHECK-RV64-FD-NEXT: fsd fs11, 32(sp) # 8-byte Folded Spill 481; CHECK-RV64-FD-NEXT: fsd ft8, 24(sp) # 8-byte Folded Spill 482; CHECK-RV64-FD-NEXT: fsd ft9, 16(sp) # 8-byte Folded Spill 483; CHECK-RV64-FD-NEXT: fsd ft10, 8(sp) # 8-byte Folded Spill 484; CHECK-RV64-FD-NEXT: fsd ft11, 0(sp) # 8-byte Folded Spill 485; CHECK-RV64-FD-NEXT: call otherfoo 486; CHECK-RV64-FD-NEXT: ld ra, 376(sp) # 8-byte Folded Reload 487; CHECK-RV64-FD-NEXT: ld t0, 368(sp) # 8-byte Folded Reload 488; CHECK-RV64-FD-NEXT: ld t1, 360(sp) # 8-byte Folded Reload 489; CHECK-RV64-FD-NEXT: ld t2, 352(sp) # 8-byte Folded Reload 490; CHECK-RV64-FD-NEXT: ld a0, 344(sp) # 8-byte Folded Reload 491; CHECK-RV64-FD-NEXT: ld a1, 336(sp) # 8-byte Folded Reload 492; CHECK-RV64-FD-NEXT: ld a2, 328(sp) # 8-byte Folded Reload 493; CHECK-RV64-FD-NEXT: ld a3, 320(sp) # 8-byte Folded Reload 494; CHECK-RV64-FD-NEXT: ld a4, 312(sp) # 8-byte Folded Reload 495; CHECK-RV64-FD-NEXT: ld a5, 304(sp) # 8-byte Folded Reload 496; CHECK-RV64-FD-NEXT: ld a6, 296(sp) # 8-byte Folded Reload 497; CHECK-RV64-FD-NEXT: ld a7, 288(sp) # 8-byte Folded Reload 498; CHECK-RV64-FD-NEXT: ld t3, 280(sp) # 8-byte Folded Reload 499; CHECK-RV64-FD-NEXT: ld t4, 272(sp) # 8-byte Folded Reload 500; CHECK-RV64-FD-NEXT: ld t5, 264(sp) # 8-byte Folded Reload 501; CHECK-RV64-FD-NEXT: ld t6, 256(sp) # 8-byte Folded Reload 502; CHECK-RV64-FD-NEXT: fld ft0, 248(sp) # 8-byte Folded Reload 503; CHECK-RV64-FD-NEXT: fld ft1, 240(sp) # 8-byte Folded Reload 504; CHECK-RV64-FD-NEXT: fld ft2, 232(sp) # 8-byte Folded Reload 505; CHECK-RV64-FD-NEXT: fld ft3, 224(sp) # 8-byte Folded Reload 506; CHECK-RV64-FD-NEXT: fld ft4, 216(sp) # 8-byte Folded Reload 507; CHECK-RV64-FD-NEXT: fld ft5, 208(sp) # 8-byte Folded Reload 508; CHECK-RV64-FD-NEXT: fld ft6, 200(sp) # 8-byte Folded Reload 509; CHECK-RV64-FD-NEXT: fld ft7, 192(sp) # 8-byte Folded Reload 510; CHECK-RV64-FD-NEXT: fld fs0, 184(sp) # 8-byte Folded Reload 511; CHECK-RV64-FD-NEXT: fld fs1, 176(sp) # 8-byte Folded Reload 512; CHECK-RV64-FD-NEXT: fld fa0, 168(sp) # 8-byte Folded Reload 513; CHECK-RV64-FD-NEXT: fld fa1, 160(sp) # 8-byte Folded Reload 514; CHECK-RV64-FD-NEXT: fld fa2, 152(sp) # 8-byte Folded Reload 515; CHECK-RV64-FD-NEXT: fld fa3, 144(sp) # 8-byte Folded Reload 516; CHECK-RV64-FD-NEXT: fld fa4, 136(sp) # 8-byte Folded Reload 517; CHECK-RV64-FD-NEXT: fld fa5, 128(sp) # 8-byte Folded Reload 518; CHECK-RV64-FD-NEXT: fld fa6, 120(sp) # 8-byte Folded Reload 519; CHECK-RV64-FD-NEXT: fld fa7, 112(sp) # 8-byte Folded Reload 520; CHECK-RV64-FD-NEXT: fld fs2, 104(sp) # 8-byte Folded Reload 521; CHECK-RV64-FD-NEXT: fld fs3, 96(sp) # 8-byte Folded Reload 522; CHECK-RV64-FD-NEXT: fld fs4, 88(sp) # 8-byte Folded Reload 523; CHECK-RV64-FD-NEXT: fld fs5, 80(sp) # 8-byte Folded Reload 524; CHECK-RV64-FD-NEXT: fld fs6, 72(sp) # 8-byte Folded Reload 525; CHECK-RV64-FD-NEXT: fld fs7, 64(sp) # 8-byte Folded Reload 526; CHECK-RV64-FD-NEXT: fld fs8, 56(sp) # 8-byte Folded Reload 527; CHECK-RV64-FD-NEXT: fld fs9, 48(sp) # 8-byte Folded Reload 528; CHECK-RV64-FD-NEXT: fld fs10, 40(sp) # 8-byte Folded Reload 529; CHECK-RV64-FD-NEXT: fld fs11, 32(sp) # 8-byte Folded Reload 530; CHECK-RV64-FD-NEXT: fld ft8, 24(sp) # 8-byte Folded Reload 531; CHECK-RV64-FD-NEXT: fld ft9, 16(sp) # 8-byte Folded Reload 532; CHECK-RV64-FD-NEXT: fld ft10, 8(sp) # 8-byte Folded Reload 533; CHECK-RV64-FD-NEXT: fld ft11, 0(sp) # 8-byte Folded Reload 534; CHECK-RV64-FD-NEXT: addi sp, sp, 384 535; CHECK-RV64-FD-NEXT: mret 536 %call = call i32 @otherfoo() 537 ret void 538} 539 540; 541; Additionally check frame pointer and return address are properly saved. 542; 543define void @foo_fp_with_call() #2 { 544; 545; CHECK-RV32-LABEL: foo_fp_with_call: 546; CHECK-RV32: # %bb.0: 547; CHECK-RV32-NEXT: addi sp, sp, -80 548; CHECK-RV32-NEXT: sw ra, 76(sp) # 4-byte Folded Spill 549; CHECK-RV32-NEXT: sw t0, 72(sp) # 4-byte Folded Spill 550; CHECK-RV32-NEXT: sw t1, 68(sp) # 4-byte Folded Spill 551; CHECK-RV32-NEXT: sw t2, 64(sp) # 4-byte Folded Spill 552; CHECK-RV32-NEXT: sw s0, 60(sp) # 4-byte Folded Spill 553; CHECK-RV32-NEXT: sw a0, 56(sp) # 4-byte Folded Spill 554; CHECK-RV32-NEXT: sw a1, 52(sp) # 4-byte Folded Spill 555; CHECK-RV32-NEXT: sw a2, 48(sp) # 4-byte Folded Spill 556; CHECK-RV32-NEXT: sw a3, 44(sp) # 4-byte Folded Spill 557; CHECK-RV32-NEXT: sw a4, 40(sp) # 4-byte Folded Spill 558; CHECK-RV32-NEXT: sw a5, 36(sp) # 4-byte Folded Spill 559; CHECK-RV32-NEXT: sw a6, 32(sp) # 4-byte Folded Spill 560; CHECK-RV32-NEXT: sw a7, 28(sp) # 4-byte Folded Spill 561; CHECK-RV32-NEXT: sw t3, 24(sp) # 4-byte Folded Spill 562; CHECK-RV32-NEXT: sw t4, 20(sp) # 4-byte Folded Spill 563; CHECK-RV32-NEXT: sw t5, 16(sp) # 4-byte Folded Spill 564; CHECK-RV32-NEXT: sw t6, 12(sp) # 4-byte Folded Spill 565; CHECK-RV32-NEXT: addi s0, sp, 80 566; CHECK-RV32-NEXT: call otherfoo 567; CHECK-RV32-NEXT: lw ra, 76(sp) # 4-byte Folded Reload 568; CHECK-RV32-NEXT: lw t0, 72(sp) # 4-byte Folded Reload 569; CHECK-RV32-NEXT: lw t1, 68(sp) # 4-byte Folded Reload 570; CHECK-RV32-NEXT: lw t2, 64(sp) # 4-byte Folded Reload 571; CHECK-RV32-NEXT: lw s0, 60(sp) # 4-byte Folded Reload 572; CHECK-RV32-NEXT: lw a0, 56(sp) # 4-byte Folded Reload 573; CHECK-RV32-NEXT: lw a1, 52(sp) # 4-byte Folded Reload 574; CHECK-RV32-NEXT: lw a2, 48(sp) # 4-byte Folded Reload 575; CHECK-RV32-NEXT: lw a3, 44(sp) # 4-byte Folded Reload 576; CHECK-RV32-NEXT: lw a4, 40(sp) # 4-byte Folded Reload 577; CHECK-RV32-NEXT: lw a5, 36(sp) # 4-byte Folded Reload 578; CHECK-RV32-NEXT: lw a6, 32(sp) # 4-byte Folded Reload 579; CHECK-RV32-NEXT: lw a7, 28(sp) # 4-byte Folded Reload 580; CHECK-RV32-NEXT: lw t3, 24(sp) # 4-byte Folded Reload 581; CHECK-RV32-NEXT: lw t4, 20(sp) # 4-byte Folded Reload 582; CHECK-RV32-NEXT: lw t5, 16(sp) # 4-byte Folded Reload 583; CHECK-RV32-NEXT: lw t6, 12(sp) # 4-byte Folded Reload 584; CHECK-RV32-NEXT: addi sp, sp, 80 585; CHECK-RV32-NEXT: mret 586; 587; CHECK-RV32-F-LABEL: foo_fp_with_call: 588; CHECK-RV32-F: # %bb.0: 589; CHECK-RV32-F-NEXT: addi sp, sp, -208 590; CHECK-RV32-F-NEXT: sw ra, 204(sp) # 4-byte Folded Spill 591; CHECK-RV32-F-NEXT: sw t0, 200(sp) # 4-byte Folded Spill 592; CHECK-RV32-F-NEXT: sw t1, 196(sp) # 4-byte Folded Spill 593; CHECK-RV32-F-NEXT: sw t2, 192(sp) # 4-byte Folded Spill 594; CHECK-RV32-F-NEXT: sw s0, 188(sp) # 4-byte Folded Spill 595; CHECK-RV32-F-NEXT: sw a0, 184(sp) # 4-byte Folded Spill 596; CHECK-RV32-F-NEXT: sw a1, 180(sp) # 4-byte Folded Spill 597; CHECK-RV32-F-NEXT: sw a2, 176(sp) # 4-byte Folded Spill 598; CHECK-RV32-F-NEXT: sw a3, 172(sp) # 4-byte Folded Spill 599; CHECK-RV32-F-NEXT: sw a4, 168(sp) # 4-byte Folded Spill 600; CHECK-RV32-F-NEXT: sw a5, 164(sp) # 4-byte Folded Spill 601; CHECK-RV32-F-NEXT: sw a6, 160(sp) # 4-byte Folded Spill 602; CHECK-RV32-F-NEXT: sw a7, 156(sp) # 4-byte Folded Spill 603; CHECK-RV32-F-NEXT: sw t3, 152(sp) # 4-byte Folded Spill 604; CHECK-RV32-F-NEXT: sw t4, 148(sp) # 4-byte Folded Spill 605; CHECK-RV32-F-NEXT: sw t5, 144(sp) # 4-byte Folded Spill 606; CHECK-RV32-F-NEXT: sw t6, 140(sp) # 4-byte Folded Spill 607; CHECK-RV32-F-NEXT: fsw ft0, 136(sp) # 4-byte Folded Spill 608; CHECK-RV32-F-NEXT: fsw ft1, 132(sp) # 4-byte Folded Spill 609; CHECK-RV32-F-NEXT: fsw ft2, 128(sp) # 4-byte Folded Spill 610; CHECK-RV32-F-NEXT: fsw ft3, 124(sp) # 4-byte Folded Spill 611; CHECK-RV32-F-NEXT: fsw ft4, 120(sp) # 4-byte Folded Spill 612; CHECK-RV32-F-NEXT: fsw ft5, 116(sp) # 4-byte Folded Spill 613; CHECK-RV32-F-NEXT: fsw ft6, 112(sp) # 4-byte Folded Spill 614; CHECK-RV32-F-NEXT: fsw ft7, 108(sp) # 4-byte Folded Spill 615; CHECK-RV32-F-NEXT: fsw fs0, 104(sp) # 4-byte Folded Spill 616; CHECK-RV32-F-NEXT: fsw fs1, 100(sp) # 4-byte Folded Spill 617; CHECK-RV32-F-NEXT: fsw fa0, 96(sp) # 4-byte Folded Spill 618; CHECK-RV32-F-NEXT: fsw fa1, 92(sp) # 4-byte Folded Spill 619; CHECK-RV32-F-NEXT: fsw fa2, 88(sp) # 4-byte Folded Spill 620; CHECK-RV32-F-NEXT: fsw fa3, 84(sp) # 4-byte Folded Spill 621; CHECK-RV32-F-NEXT: fsw fa4, 80(sp) # 4-byte Folded Spill 622; CHECK-RV32-F-NEXT: fsw fa5, 76(sp) # 4-byte Folded Spill 623; CHECK-RV32-F-NEXT: fsw fa6, 72(sp) # 4-byte Folded Spill 624; CHECK-RV32-F-NEXT: fsw fa7, 68(sp) # 4-byte Folded Spill 625; CHECK-RV32-F-NEXT: fsw fs2, 64(sp) # 4-byte Folded Spill 626; CHECK-RV32-F-NEXT: fsw fs3, 60(sp) # 4-byte Folded Spill 627; CHECK-RV32-F-NEXT: fsw fs4, 56(sp) # 4-byte Folded Spill 628; CHECK-RV32-F-NEXT: fsw fs5, 52(sp) # 4-byte Folded Spill 629; CHECK-RV32-F-NEXT: fsw fs6, 48(sp) # 4-byte Folded Spill 630; CHECK-RV32-F-NEXT: fsw fs7, 44(sp) # 4-byte Folded Spill 631; CHECK-RV32-F-NEXT: fsw fs8, 40(sp) # 4-byte Folded Spill 632; CHECK-RV32-F-NEXT: fsw fs9, 36(sp) # 4-byte Folded Spill 633; CHECK-RV32-F-NEXT: fsw fs10, 32(sp) # 4-byte Folded Spill 634; CHECK-RV32-F-NEXT: fsw fs11, 28(sp) # 4-byte Folded Spill 635; CHECK-RV32-F-NEXT: fsw ft8, 24(sp) # 4-byte Folded Spill 636; CHECK-RV32-F-NEXT: fsw ft9, 20(sp) # 4-byte Folded Spill 637; CHECK-RV32-F-NEXT: fsw ft10, 16(sp) # 4-byte Folded Spill 638; CHECK-RV32-F-NEXT: fsw ft11, 12(sp) # 4-byte Folded Spill 639; CHECK-RV32-F-NEXT: addi s0, sp, 208 640; CHECK-RV32-F-NEXT: call otherfoo 641; CHECK-RV32-F-NEXT: lw ra, 204(sp) # 4-byte Folded Reload 642; CHECK-RV32-F-NEXT: lw t0, 200(sp) # 4-byte Folded Reload 643; CHECK-RV32-F-NEXT: lw t1, 196(sp) # 4-byte Folded Reload 644; CHECK-RV32-F-NEXT: lw t2, 192(sp) # 4-byte Folded Reload 645; CHECK-RV32-F-NEXT: lw s0, 188(sp) # 4-byte Folded Reload 646; CHECK-RV32-F-NEXT: lw a0, 184(sp) # 4-byte Folded Reload 647; CHECK-RV32-F-NEXT: lw a1, 180(sp) # 4-byte Folded Reload 648; CHECK-RV32-F-NEXT: lw a2, 176(sp) # 4-byte Folded Reload 649; CHECK-RV32-F-NEXT: lw a3, 172(sp) # 4-byte Folded Reload 650; CHECK-RV32-F-NEXT: lw a4, 168(sp) # 4-byte Folded Reload 651; CHECK-RV32-F-NEXT: lw a5, 164(sp) # 4-byte Folded Reload 652; CHECK-RV32-F-NEXT: lw a6, 160(sp) # 4-byte Folded Reload 653; CHECK-RV32-F-NEXT: lw a7, 156(sp) # 4-byte Folded Reload 654; CHECK-RV32-F-NEXT: lw t3, 152(sp) # 4-byte Folded Reload 655; CHECK-RV32-F-NEXT: lw t4, 148(sp) # 4-byte Folded Reload 656; CHECK-RV32-F-NEXT: lw t5, 144(sp) # 4-byte Folded Reload 657; CHECK-RV32-F-NEXT: lw t6, 140(sp) # 4-byte Folded Reload 658; CHECK-RV32-F-NEXT: flw ft0, 136(sp) # 4-byte Folded Reload 659; CHECK-RV32-F-NEXT: flw ft1, 132(sp) # 4-byte Folded Reload 660; CHECK-RV32-F-NEXT: flw ft2, 128(sp) # 4-byte Folded Reload 661; CHECK-RV32-F-NEXT: flw ft3, 124(sp) # 4-byte Folded Reload 662; CHECK-RV32-F-NEXT: flw ft4, 120(sp) # 4-byte Folded Reload 663; CHECK-RV32-F-NEXT: flw ft5, 116(sp) # 4-byte Folded Reload 664; CHECK-RV32-F-NEXT: flw ft6, 112(sp) # 4-byte Folded Reload 665; CHECK-RV32-F-NEXT: flw ft7, 108(sp) # 4-byte Folded Reload 666; CHECK-RV32-F-NEXT: flw fs0, 104(sp) # 4-byte Folded Reload 667; CHECK-RV32-F-NEXT: flw fs1, 100(sp) # 4-byte Folded Reload 668; CHECK-RV32-F-NEXT: flw fa0, 96(sp) # 4-byte Folded Reload 669; CHECK-RV32-F-NEXT: flw fa1, 92(sp) # 4-byte Folded Reload 670; CHECK-RV32-F-NEXT: flw fa2, 88(sp) # 4-byte Folded Reload 671; CHECK-RV32-F-NEXT: flw fa3, 84(sp) # 4-byte Folded Reload 672; CHECK-RV32-F-NEXT: flw fa4, 80(sp) # 4-byte Folded Reload 673; CHECK-RV32-F-NEXT: flw fa5, 76(sp) # 4-byte Folded Reload 674; CHECK-RV32-F-NEXT: flw fa6, 72(sp) # 4-byte Folded Reload 675; CHECK-RV32-F-NEXT: flw fa7, 68(sp) # 4-byte Folded Reload 676; CHECK-RV32-F-NEXT: flw fs2, 64(sp) # 4-byte Folded Reload 677; CHECK-RV32-F-NEXT: flw fs3, 60(sp) # 4-byte Folded Reload 678; CHECK-RV32-F-NEXT: flw fs4, 56(sp) # 4-byte Folded Reload 679; CHECK-RV32-F-NEXT: flw fs5, 52(sp) # 4-byte Folded Reload 680; CHECK-RV32-F-NEXT: flw fs6, 48(sp) # 4-byte Folded Reload 681; CHECK-RV32-F-NEXT: flw fs7, 44(sp) # 4-byte Folded Reload 682; CHECK-RV32-F-NEXT: flw fs8, 40(sp) # 4-byte Folded Reload 683; CHECK-RV32-F-NEXT: flw fs9, 36(sp) # 4-byte Folded Reload 684; CHECK-RV32-F-NEXT: flw fs10, 32(sp) # 4-byte Folded Reload 685; CHECK-RV32-F-NEXT: flw fs11, 28(sp) # 4-byte Folded Reload 686; CHECK-RV32-F-NEXT: flw ft8, 24(sp) # 4-byte Folded Reload 687; CHECK-RV32-F-NEXT: flw ft9, 20(sp) # 4-byte Folded Reload 688; CHECK-RV32-F-NEXT: flw ft10, 16(sp) # 4-byte Folded Reload 689; CHECK-RV32-F-NEXT: flw ft11, 12(sp) # 4-byte Folded Reload 690; CHECK-RV32-F-NEXT: addi sp, sp, 208 691; CHECK-RV32-F-NEXT: mret 692; 693; CHECK-RV32-FD-LABEL: foo_fp_with_call: 694; CHECK-RV32-FD: # %bb.0: 695; CHECK-RV32-FD-NEXT: addi sp, sp, -336 696; CHECK-RV32-FD-NEXT: sw ra, 332(sp) # 4-byte Folded Spill 697; CHECK-RV32-FD-NEXT: sw t0, 328(sp) # 4-byte Folded Spill 698; CHECK-RV32-FD-NEXT: sw t1, 324(sp) # 4-byte Folded Spill 699; CHECK-RV32-FD-NEXT: sw t2, 320(sp) # 4-byte Folded Spill 700; CHECK-RV32-FD-NEXT: sw s0, 316(sp) # 4-byte Folded Spill 701; CHECK-RV32-FD-NEXT: sw a0, 312(sp) # 4-byte Folded Spill 702; CHECK-RV32-FD-NEXT: sw a1, 308(sp) # 4-byte Folded Spill 703; CHECK-RV32-FD-NEXT: sw a2, 304(sp) # 4-byte Folded Spill 704; CHECK-RV32-FD-NEXT: sw a3, 300(sp) # 4-byte Folded Spill 705; CHECK-RV32-FD-NEXT: sw a4, 296(sp) # 4-byte Folded Spill 706; CHECK-RV32-FD-NEXT: sw a5, 292(sp) # 4-byte Folded Spill 707; CHECK-RV32-FD-NEXT: sw a6, 288(sp) # 4-byte Folded Spill 708; CHECK-RV32-FD-NEXT: sw a7, 284(sp) # 4-byte Folded Spill 709; CHECK-RV32-FD-NEXT: sw t3, 280(sp) # 4-byte Folded Spill 710; CHECK-RV32-FD-NEXT: sw t4, 276(sp) # 4-byte Folded Spill 711; CHECK-RV32-FD-NEXT: sw t5, 272(sp) # 4-byte Folded Spill 712; CHECK-RV32-FD-NEXT: sw t6, 268(sp) # 4-byte Folded Spill 713; CHECK-RV32-FD-NEXT: fsd ft0, 256(sp) # 8-byte Folded Spill 714; CHECK-RV32-FD-NEXT: fsd ft1, 248(sp) # 8-byte Folded Spill 715; CHECK-RV32-FD-NEXT: fsd ft2, 240(sp) # 8-byte Folded Spill 716; CHECK-RV32-FD-NEXT: fsd ft3, 232(sp) # 8-byte Folded Spill 717; CHECK-RV32-FD-NEXT: fsd ft4, 224(sp) # 8-byte Folded Spill 718; CHECK-RV32-FD-NEXT: fsd ft5, 216(sp) # 8-byte Folded Spill 719; CHECK-RV32-FD-NEXT: fsd ft6, 208(sp) # 8-byte Folded Spill 720; CHECK-RV32-FD-NEXT: fsd ft7, 200(sp) # 8-byte Folded Spill 721; CHECK-RV32-FD-NEXT: fsd fs0, 192(sp) # 8-byte Folded Spill 722; CHECK-RV32-FD-NEXT: fsd fs1, 184(sp) # 8-byte Folded Spill 723; CHECK-RV32-FD-NEXT: fsd fa0, 176(sp) # 8-byte Folded Spill 724; CHECK-RV32-FD-NEXT: fsd fa1, 168(sp) # 8-byte Folded Spill 725; CHECK-RV32-FD-NEXT: fsd fa2, 160(sp) # 8-byte Folded Spill 726; CHECK-RV32-FD-NEXT: fsd fa3, 152(sp) # 8-byte Folded Spill 727; CHECK-RV32-FD-NEXT: fsd fa4, 144(sp) # 8-byte Folded Spill 728; CHECK-RV32-FD-NEXT: fsd fa5, 136(sp) # 8-byte Folded Spill 729; CHECK-RV32-FD-NEXT: fsd fa6, 128(sp) # 8-byte Folded Spill 730; CHECK-RV32-FD-NEXT: fsd fa7, 120(sp) # 8-byte Folded Spill 731; CHECK-RV32-FD-NEXT: fsd fs2, 112(sp) # 8-byte Folded Spill 732; CHECK-RV32-FD-NEXT: fsd fs3, 104(sp) # 8-byte Folded Spill 733; CHECK-RV32-FD-NEXT: fsd fs4, 96(sp) # 8-byte Folded Spill 734; CHECK-RV32-FD-NEXT: fsd fs5, 88(sp) # 8-byte Folded Spill 735; CHECK-RV32-FD-NEXT: fsd fs6, 80(sp) # 8-byte Folded Spill 736; CHECK-RV32-FD-NEXT: fsd fs7, 72(sp) # 8-byte Folded Spill 737; CHECK-RV32-FD-NEXT: fsd fs8, 64(sp) # 8-byte Folded Spill 738; CHECK-RV32-FD-NEXT: fsd fs9, 56(sp) # 8-byte Folded Spill 739; CHECK-RV32-FD-NEXT: fsd fs10, 48(sp) # 8-byte Folded Spill 740; CHECK-RV32-FD-NEXT: fsd fs11, 40(sp) # 8-byte Folded Spill 741; CHECK-RV32-FD-NEXT: fsd ft8, 32(sp) # 8-byte Folded Spill 742; CHECK-RV32-FD-NEXT: fsd ft9, 24(sp) # 8-byte Folded Spill 743; CHECK-RV32-FD-NEXT: fsd ft10, 16(sp) # 8-byte Folded Spill 744; CHECK-RV32-FD-NEXT: fsd ft11, 8(sp) # 8-byte Folded Spill 745; CHECK-RV32-FD-NEXT: addi s0, sp, 336 746; CHECK-RV32-FD-NEXT: call otherfoo 747; CHECK-RV32-FD-NEXT: lw ra, 332(sp) # 4-byte Folded Reload 748; CHECK-RV32-FD-NEXT: lw t0, 328(sp) # 4-byte Folded Reload 749; CHECK-RV32-FD-NEXT: lw t1, 324(sp) # 4-byte Folded Reload 750; CHECK-RV32-FD-NEXT: lw t2, 320(sp) # 4-byte Folded Reload 751; CHECK-RV32-FD-NEXT: lw s0, 316(sp) # 4-byte Folded Reload 752; CHECK-RV32-FD-NEXT: lw a0, 312(sp) # 4-byte Folded Reload 753; CHECK-RV32-FD-NEXT: lw a1, 308(sp) # 4-byte Folded Reload 754; CHECK-RV32-FD-NEXT: lw a2, 304(sp) # 4-byte Folded Reload 755; CHECK-RV32-FD-NEXT: lw a3, 300(sp) # 4-byte Folded Reload 756; CHECK-RV32-FD-NEXT: lw a4, 296(sp) # 4-byte Folded Reload 757; CHECK-RV32-FD-NEXT: lw a5, 292(sp) # 4-byte Folded Reload 758; CHECK-RV32-FD-NEXT: lw a6, 288(sp) # 4-byte Folded Reload 759; CHECK-RV32-FD-NEXT: lw a7, 284(sp) # 4-byte Folded Reload 760; CHECK-RV32-FD-NEXT: lw t3, 280(sp) # 4-byte Folded Reload 761; CHECK-RV32-FD-NEXT: lw t4, 276(sp) # 4-byte Folded Reload 762; CHECK-RV32-FD-NEXT: lw t5, 272(sp) # 4-byte Folded Reload 763; CHECK-RV32-FD-NEXT: lw t6, 268(sp) # 4-byte Folded Reload 764; CHECK-RV32-FD-NEXT: fld ft0, 256(sp) # 8-byte Folded Reload 765; CHECK-RV32-FD-NEXT: fld ft1, 248(sp) # 8-byte Folded Reload 766; CHECK-RV32-FD-NEXT: fld ft2, 240(sp) # 8-byte Folded Reload 767; CHECK-RV32-FD-NEXT: fld ft3, 232(sp) # 8-byte Folded Reload 768; CHECK-RV32-FD-NEXT: fld ft4, 224(sp) # 8-byte Folded Reload 769; CHECK-RV32-FD-NEXT: fld ft5, 216(sp) # 8-byte Folded Reload 770; CHECK-RV32-FD-NEXT: fld ft6, 208(sp) # 8-byte Folded Reload 771; CHECK-RV32-FD-NEXT: fld ft7, 200(sp) # 8-byte Folded Reload 772; CHECK-RV32-FD-NEXT: fld fs0, 192(sp) # 8-byte Folded Reload 773; CHECK-RV32-FD-NEXT: fld fs1, 184(sp) # 8-byte Folded Reload 774; CHECK-RV32-FD-NEXT: fld fa0, 176(sp) # 8-byte Folded Reload 775; CHECK-RV32-FD-NEXT: fld fa1, 168(sp) # 8-byte Folded Reload 776; CHECK-RV32-FD-NEXT: fld fa2, 160(sp) # 8-byte Folded Reload 777; CHECK-RV32-FD-NEXT: fld fa3, 152(sp) # 8-byte Folded Reload 778; CHECK-RV32-FD-NEXT: fld fa4, 144(sp) # 8-byte Folded Reload 779; CHECK-RV32-FD-NEXT: fld fa5, 136(sp) # 8-byte Folded Reload 780; CHECK-RV32-FD-NEXT: fld fa6, 128(sp) # 8-byte Folded Reload 781; CHECK-RV32-FD-NEXT: fld fa7, 120(sp) # 8-byte Folded Reload 782; CHECK-RV32-FD-NEXT: fld fs2, 112(sp) # 8-byte Folded Reload 783; CHECK-RV32-FD-NEXT: fld fs3, 104(sp) # 8-byte Folded Reload 784; CHECK-RV32-FD-NEXT: fld fs4, 96(sp) # 8-byte Folded Reload 785; CHECK-RV32-FD-NEXT: fld fs5, 88(sp) # 8-byte Folded Reload 786; CHECK-RV32-FD-NEXT: fld fs6, 80(sp) # 8-byte Folded Reload 787; CHECK-RV32-FD-NEXT: fld fs7, 72(sp) # 8-byte Folded Reload 788; CHECK-RV32-FD-NEXT: fld fs8, 64(sp) # 8-byte Folded Reload 789; CHECK-RV32-FD-NEXT: fld fs9, 56(sp) # 8-byte Folded Reload 790; CHECK-RV32-FD-NEXT: fld fs10, 48(sp) # 8-byte Folded Reload 791; CHECK-RV32-FD-NEXT: fld fs11, 40(sp) # 8-byte Folded Reload 792; CHECK-RV32-FD-NEXT: fld ft8, 32(sp) # 8-byte Folded Reload 793; CHECK-RV32-FD-NEXT: fld ft9, 24(sp) # 8-byte Folded Reload 794; CHECK-RV32-FD-NEXT: fld ft10, 16(sp) # 8-byte Folded Reload 795; CHECK-RV32-FD-NEXT: fld ft11, 8(sp) # 8-byte Folded Reload 796; CHECK-RV32-FD-NEXT: addi sp, sp, 336 797; CHECK-RV32-FD-NEXT: mret 798; 799; CHECK-RV64-LABEL: foo_fp_with_call: 800; CHECK-RV64: # %bb.0: 801; CHECK-RV64-NEXT: addi sp, sp, -144 802; CHECK-RV64-NEXT: sd ra, 136(sp) # 8-byte Folded Spill 803; CHECK-RV64-NEXT: sd t0, 128(sp) # 8-byte Folded Spill 804; CHECK-RV64-NEXT: sd t1, 120(sp) # 8-byte Folded Spill 805; CHECK-RV64-NEXT: sd t2, 112(sp) # 8-byte Folded Spill 806; CHECK-RV64-NEXT: sd s0, 104(sp) # 8-byte Folded Spill 807; CHECK-RV64-NEXT: sd a0, 96(sp) # 8-byte Folded Spill 808; CHECK-RV64-NEXT: sd a1, 88(sp) # 8-byte Folded Spill 809; CHECK-RV64-NEXT: sd a2, 80(sp) # 8-byte Folded Spill 810; CHECK-RV64-NEXT: sd a3, 72(sp) # 8-byte Folded Spill 811; CHECK-RV64-NEXT: sd a4, 64(sp) # 8-byte Folded Spill 812; CHECK-RV64-NEXT: sd a5, 56(sp) # 8-byte Folded Spill 813; CHECK-RV64-NEXT: sd a6, 48(sp) # 8-byte Folded Spill 814; CHECK-RV64-NEXT: sd a7, 40(sp) # 8-byte Folded Spill 815; CHECK-RV64-NEXT: sd t3, 32(sp) # 8-byte Folded Spill 816; CHECK-RV64-NEXT: sd t4, 24(sp) # 8-byte Folded Spill 817; CHECK-RV64-NEXT: sd t5, 16(sp) # 8-byte Folded Spill 818; CHECK-RV64-NEXT: sd t6, 8(sp) # 8-byte Folded Spill 819; CHECK-RV64-NEXT: addi s0, sp, 144 820; CHECK-RV64-NEXT: call otherfoo 821; CHECK-RV64-NEXT: ld ra, 136(sp) # 8-byte Folded Reload 822; CHECK-RV64-NEXT: ld t0, 128(sp) # 8-byte Folded Reload 823; CHECK-RV64-NEXT: ld t1, 120(sp) # 8-byte Folded Reload 824; CHECK-RV64-NEXT: ld t2, 112(sp) # 8-byte Folded Reload 825; CHECK-RV64-NEXT: ld s0, 104(sp) # 8-byte Folded Reload 826; CHECK-RV64-NEXT: ld a0, 96(sp) # 8-byte Folded Reload 827; CHECK-RV64-NEXT: ld a1, 88(sp) # 8-byte Folded Reload 828; CHECK-RV64-NEXT: ld a2, 80(sp) # 8-byte Folded Reload 829; CHECK-RV64-NEXT: ld a3, 72(sp) # 8-byte Folded Reload 830; CHECK-RV64-NEXT: ld a4, 64(sp) # 8-byte Folded Reload 831; CHECK-RV64-NEXT: ld a5, 56(sp) # 8-byte Folded Reload 832; CHECK-RV64-NEXT: ld a6, 48(sp) # 8-byte Folded Reload 833; CHECK-RV64-NEXT: ld a7, 40(sp) # 8-byte Folded Reload 834; CHECK-RV64-NEXT: ld t3, 32(sp) # 8-byte Folded Reload 835; CHECK-RV64-NEXT: ld t4, 24(sp) # 8-byte Folded Reload 836; CHECK-RV64-NEXT: ld t5, 16(sp) # 8-byte Folded Reload 837; CHECK-RV64-NEXT: ld t6, 8(sp) # 8-byte Folded Reload 838; CHECK-RV64-NEXT: addi sp, sp, 144 839; CHECK-RV64-NEXT: mret 840; 841; CHECK-RV64-F-LABEL: foo_fp_with_call: 842; CHECK-RV64-F: # %bb.0: 843; CHECK-RV64-F-NEXT: addi sp, sp, -272 844; CHECK-RV64-F-NEXT: sd ra, 264(sp) # 8-byte Folded Spill 845; CHECK-RV64-F-NEXT: sd t0, 256(sp) # 8-byte Folded Spill 846; CHECK-RV64-F-NEXT: sd t1, 248(sp) # 8-byte Folded Spill 847; CHECK-RV64-F-NEXT: sd t2, 240(sp) # 8-byte Folded Spill 848; CHECK-RV64-F-NEXT: sd s0, 232(sp) # 8-byte Folded Spill 849; CHECK-RV64-F-NEXT: sd a0, 224(sp) # 8-byte Folded Spill 850; CHECK-RV64-F-NEXT: sd a1, 216(sp) # 8-byte Folded Spill 851; CHECK-RV64-F-NEXT: sd a2, 208(sp) # 8-byte Folded Spill 852; CHECK-RV64-F-NEXT: sd a3, 200(sp) # 8-byte Folded Spill 853; CHECK-RV64-F-NEXT: sd a4, 192(sp) # 8-byte Folded Spill 854; CHECK-RV64-F-NEXT: sd a5, 184(sp) # 8-byte Folded Spill 855; CHECK-RV64-F-NEXT: sd a6, 176(sp) # 8-byte Folded Spill 856; CHECK-RV64-F-NEXT: sd a7, 168(sp) # 8-byte Folded Spill 857; CHECK-RV64-F-NEXT: sd t3, 160(sp) # 8-byte Folded Spill 858; CHECK-RV64-F-NEXT: sd t4, 152(sp) # 8-byte Folded Spill 859; CHECK-RV64-F-NEXT: sd t5, 144(sp) # 8-byte Folded Spill 860; CHECK-RV64-F-NEXT: sd t6, 136(sp) # 8-byte Folded Spill 861; CHECK-RV64-F-NEXT: fsw ft0, 132(sp) # 4-byte Folded Spill 862; CHECK-RV64-F-NEXT: fsw ft1, 128(sp) # 4-byte Folded Spill 863; CHECK-RV64-F-NEXT: fsw ft2, 124(sp) # 4-byte Folded Spill 864; CHECK-RV64-F-NEXT: fsw ft3, 120(sp) # 4-byte Folded Spill 865; CHECK-RV64-F-NEXT: fsw ft4, 116(sp) # 4-byte Folded Spill 866; CHECK-RV64-F-NEXT: fsw ft5, 112(sp) # 4-byte Folded Spill 867; CHECK-RV64-F-NEXT: fsw ft6, 108(sp) # 4-byte Folded Spill 868; CHECK-RV64-F-NEXT: fsw ft7, 104(sp) # 4-byte Folded Spill 869; CHECK-RV64-F-NEXT: fsw fs0, 100(sp) # 4-byte Folded Spill 870; CHECK-RV64-F-NEXT: fsw fs1, 96(sp) # 4-byte Folded Spill 871; CHECK-RV64-F-NEXT: fsw fa0, 92(sp) # 4-byte Folded Spill 872; CHECK-RV64-F-NEXT: fsw fa1, 88(sp) # 4-byte Folded Spill 873; CHECK-RV64-F-NEXT: fsw fa2, 84(sp) # 4-byte Folded Spill 874; CHECK-RV64-F-NEXT: fsw fa3, 80(sp) # 4-byte Folded Spill 875; CHECK-RV64-F-NEXT: fsw fa4, 76(sp) # 4-byte Folded Spill 876; CHECK-RV64-F-NEXT: fsw fa5, 72(sp) # 4-byte Folded Spill 877; CHECK-RV64-F-NEXT: fsw fa6, 68(sp) # 4-byte Folded Spill 878; CHECK-RV64-F-NEXT: fsw fa7, 64(sp) # 4-byte Folded Spill 879; CHECK-RV64-F-NEXT: fsw fs2, 60(sp) # 4-byte Folded Spill 880; CHECK-RV64-F-NEXT: fsw fs3, 56(sp) # 4-byte Folded Spill 881; CHECK-RV64-F-NEXT: fsw fs4, 52(sp) # 4-byte Folded Spill 882; CHECK-RV64-F-NEXT: fsw fs5, 48(sp) # 4-byte Folded Spill 883; CHECK-RV64-F-NEXT: fsw fs6, 44(sp) # 4-byte Folded Spill 884; CHECK-RV64-F-NEXT: fsw fs7, 40(sp) # 4-byte Folded Spill 885; CHECK-RV64-F-NEXT: fsw fs8, 36(sp) # 4-byte Folded Spill 886; CHECK-RV64-F-NEXT: fsw fs9, 32(sp) # 4-byte Folded Spill 887; CHECK-RV64-F-NEXT: fsw fs10, 28(sp) # 4-byte Folded Spill 888; CHECK-RV64-F-NEXT: fsw fs11, 24(sp) # 4-byte Folded Spill 889; CHECK-RV64-F-NEXT: fsw ft8, 20(sp) # 4-byte Folded Spill 890; CHECK-RV64-F-NEXT: fsw ft9, 16(sp) # 4-byte Folded Spill 891; CHECK-RV64-F-NEXT: fsw ft10, 12(sp) # 4-byte Folded Spill 892; CHECK-RV64-F-NEXT: fsw ft11, 8(sp) # 4-byte Folded Spill 893; CHECK-RV64-F-NEXT: addi s0, sp, 272 894; CHECK-RV64-F-NEXT: call otherfoo 895; CHECK-RV64-F-NEXT: ld ra, 264(sp) # 8-byte Folded Reload 896; CHECK-RV64-F-NEXT: ld t0, 256(sp) # 8-byte Folded Reload 897; CHECK-RV64-F-NEXT: ld t1, 248(sp) # 8-byte Folded Reload 898; CHECK-RV64-F-NEXT: ld t2, 240(sp) # 8-byte Folded Reload 899; CHECK-RV64-F-NEXT: ld s0, 232(sp) # 8-byte Folded Reload 900; CHECK-RV64-F-NEXT: ld a0, 224(sp) # 8-byte Folded Reload 901; CHECK-RV64-F-NEXT: ld a1, 216(sp) # 8-byte Folded Reload 902; CHECK-RV64-F-NEXT: ld a2, 208(sp) # 8-byte Folded Reload 903; CHECK-RV64-F-NEXT: ld a3, 200(sp) # 8-byte Folded Reload 904; CHECK-RV64-F-NEXT: ld a4, 192(sp) # 8-byte Folded Reload 905; CHECK-RV64-F-NEXT: ld a5, 184(sp) # 8-byte Folded Reload 906; CHECK-RV64-F-NEXT: ld a6, 176(sp) # 8-byte Folded Reload 907; CHECK-RV64-F-NEXT: ld a7, 168(sp) # 8-byte Folded Reload 908; CHECK-RV64-F-NEXT: ld t3, 160(sp) # 8-byte Folded Reload 909; CHECK-RV64-F-NEXT: ld t4, 152(sp) # 8-byte Folded Reload 910; CHECK-RV64-F-NEXT: ld t5, 144(sp) # 8-byte Folded Reload 911; CHECK-RV64-F-NEXT: ld t6, 136(sp) # 8-byte Folded Reload 912; CHECK-RV64-F-NEXT: flw ft0, 132(sp) # 4-byte Folded Reload 913; CHECK-RV64-F-NEXT: flw ft1, 128(sp) # 4-byte Folded Reload 914; CHECK-RV64-F-NEXT: flw ft2, 124(sp) # 4-byte Folded Reload 915; CHECK-RV64-F-NEXT: flw ft3, 120(sp) # 4-byte Folded Reload 916; CHECK-RV64-F-NEXT: flw ft4, 116(sp) # 4-byte Folded Reload 917; CHECK-RV64-F-NEXT: flw ft5, 112(sp) # 4-byte Folded Reload 918; CHECK-RV64-F-NEXT: flw ft6, 108(sp) # 4-byte Folded Reload 919; CHECK-RV64-F-NEXT: flw ft7, 104(sp) # 4-byte Folded Reload 920; CHECK-RV64-F-NEXT: flw fs0, 100(sp) # 4-byte Folded Reload 921; CHECK-RV64-F-NEXT: flw fs1, 96(sp) # 4-byte Folded Reload 922; CHECK-RV64-F-NEXT: flw fa0, 92(sp) # 4-byte Folded Reload 923; CHECK-RV64-F-NEXT: flw fa1, 88(sp) # 4-byte Folded Reload 924; CHECK-RV64-F-NEXT: flw fa2, 84(sp) # 4-byte Folded Reload 925; CHECK-RV64-F-NEXT: flw fa3, 80(sp) # 4-byte Folded Reload 926; CHECK-RV64-F-NEXT: flw fa4, 76(sp) # 4-byte Folded Reload 927; CHECK-RV64-F-NEXT: flw fa5, 72(sp) # 4-byte Folded Reload 928; CHECK-RV64-F-NEXT: flw fa6, 68(sp) # 4-byte Folded Reload 929; CHECK-RV64-F-NEXT: flw fa7, 64(sp) # 4-byte Folded Reload 930; CHECK-RV64-F-NEXT: flw fs2, 60(sp) # 4-byte Folded Reload 931; CHECK-RV64-F-NEXT: flw fs3, 56(sp) # 4-byte Folded Reload 932; CHECK-RV64-F-NEXT: flw fs4, 52(sp) # 4-byte Folded Reload 933; CHECK-RV64-F-NEXT: flw fs5, 48(sp) # 4-byte Folded Reload 934; CHECK-RV64-F-NEXT: flw fs6, 44(sp) # 4-byte Folded Reload 935; CHECK-RV64-F-NEXT: flw fs7, 40(sp) # 4-byte Folded Reload 936; CHECK-RV64-F-NEXT: flw fs8, 36(sp) # 4-byte Folded Reload 937; CHECK-RV64-F-NEXT: flw fs9, 32(sp) # 4-byte Folded Reload 938; CHECK-RV64-F-NEXT: flw fs10, 28(sp) # 4-byte Folded Reload 939; CHECK-RV64-F-NEXT: flw fs11, 24(sp) # 4-byte Folded Reload 940; CHECK-RV64-F-NEXT: flw ft8, 20(sp) # 4-byte Folded Reload 941; CHECK-RV64-F-NEXT: flw ft9, 16(sp) # 4-byte Folded Reload 942; CHECK-RV64-F-NEXT: flw ft10, 12(sp) # 4-byte Folded Reload 943; CHECK-RV64-F-NEXT: flw ft11, 8(sp) # 4-byte Folded Reload 944; CHECK-RV64-F-NEXT: addi sp, sp, 272 945; CHECK-RV64-F-NEXT: mret 946; 947; CHECK-RV64-FD-LABEL: foo_fp_with_call: 948; CHECK-RV64-FD: # %bb.0: 949; CHECK-RV64-FD-NEXT: addi sp, sp, -400 950; CHECK-RV64-FD-NEXT: sd ra, 392(sp) # 8-byte Folded Spill 951; CHECK-RV64-FD-NEXT: sd t0, 384(sp) # 8-byte Folded Spill 952; CHECK-RV64-FD-NEXT: sd t1, 376(sp) # 8-byte Folded Spill 953; CHECK-RV64-FD-NEXT: sd t2, 368(sp) # 8-byte Folded Spill 954; CHECK-RV64-FD-NEXT: sd s0, 360(sp) # 8-byte Folded Spill 955; CHECK-RV64-FD-NEXT: sd a0, 352(sp) # 8-byte Folded Spill 956; CHECK-RV64-FD-NEXT: sd a1, 344(sp) # 8-byte Folded Spill 957; CHECK-RV64-FD-NEXT: sd a2, 336(sp) # 8-byte Folded Spill 958; CHECK-RV64-FD-NEXT: sd a3, 328(sp) # 8-byte Folded Spill 959; CHECK-RV64-FD-NEXT: sd a4, 320(sp) # 8-byte Folded Spill 960; CHECK-RV64-FD-NEXT: sd a5, 312(sp) # 8-byte Folded Spill 961; CHECK-RV64-FD-NEXT: sd a6, 304(sp) # 8-byte Folded Spill 962; CHECK-RV64-FD-NEXT: sd a7, 296(sp) # 8-byte Folded Spill 963; CHECK-RV64-FD-NEXT: sd t3, 288(sp) # 8-byte Folded Spill 964; CHECK-RV64-FD-NEXT: sd t4, 280(sp) # 8-byte Folded Spill 965; CHECK-RV64-FD-NEXT: sd t5, 272(sp) # 8-byte Folded Spill 966; CHECK-RV64-FD-NEXT: sd t6, 264(sp) # 8-byte Folded Spill 967; CHECK-RV64-FD-NEXT: fsd ft0, 256(sp) # 8-byte Folded Spill 968; CHECK-RV64-FD-NEXT: fsd ft1, 248(sp) # 8-byte Folded Spill 969; CHECK-RV64-FD-NEXT: fsd ft2, 240(sp) # 8-byte Folded Spill 970; CHECK-RV64-FD-NEXT: fsd ft3, 232(sp) # 8-byte Folded Spill 971; CHECK-RV64-FD-NEXT: fsd ft4, 224(sp) # 8-byte Folded Spill 972; CHECK-RV64-FD-NEXT: fsd ft5, 216(sp) # 8-byte Folded Spill 973; CHECK-RV64-FD-NEXT: fsd ft6, 208(sp) # 8-byte Folded Spill 974; CHECK-RV64-FD-NEXT: fsd ft7, 200(sp) # 8-byte Folded Spill 975; CHECK-RV64-FD-NEXT: fsd fs0, 192(sp) # 8-byte Folded Spill 976; CHECK-RV64-FD-NEXT: fsd fs1, 184(sp) # 8-byte Folded Spill 977; CHECK-RV64-FD-NEXT: fsd fa0, 176(sp) # 8-byte Folded Spill 978; CHECK-RV64-FD-NEXT: fsd fa1, 168(sp) # 8-byte Folded Spill 979; CHECK-RV64-FD-NEXT: fsd fa2, 160(sp) # 8-byte Folded Spill 980; CHECK-RV64-FD-NEXT: fsd fa3, 152(sp) # 8-byte Folded Spill 981; CHECK-RV64-FD-NEXT: fsd fa4, 144(sp) # 8-byte Folded Spill 982; CHECK-RV64-FD-NEXT: fsd fa5, 136(sp) # 8-byte Folded Spill 983; CHECK-RV64-FD-NEXT: fsd fa6, 128(sp) # 8-byte Folded Spill 984; CHECK-RV64-FD-NEXT: fsd fa7, 120(sp) # 8-byte Folded Spill 985; CHECK-RV64-FD-NEXT: fsd fs2, 112(sp) # 8-byte Folded Spill 986; CHECK-RV64-FD-NEXT: fsd fs3, 104(sp) # 8-byte Folded Spill 987; CHECK-RV64-FD-NEXT: fsd fs4, 96(sp) # 8-byte Folded Spill 988; CHECK-RV64-FD-NEXT: fsd fs5, 88(sp) # 8-byte Folded Spill 989; CHECK-RV64-FD-NEXT: fsd fs6, 80(sp) # 8-byte Folded Spill 990; CHECK-RV64-FD-NEXT: fsd fs7, 72(sp) # 8-byte Folded Spill 991; CHECK-RV64-FD-NEXT: fsd fs8, 64(sp) # 8-byte Folded Spill 992; CHECK-RV64-FD-NEXT: fsd fs9, 56(sp) # 8-byte Folded Spill 993; CHECK-RV64-FD-NEXT: fsd fs10, 48(sp) # 8-byte Folded Spill 994; CHECK-RV64-FD-NEXT: fsd fs11, 40(sp) # 8-byte Folded Spill 995; CHECK-RV64-FD-NEXT: fsd ft8, 32(sp) # 8-byte Folded Spill 996; CHECK-RV64-FD-NEXT: fsd ft9, 24(sp) # 8-byte Folded Spill 997; CHECK-RV64-FD-NEXT: fsd ft10, 16(sp) # 8-byte Folded Spill 998; CHECK-RV64-FD-NEXT: fsd ft11, 8(sp) # 8-byte Folded Spill 999; CHECK-RV64-FD-NEXT: addi s0, sp, 400 1000; CHECK-RV64-FD-NEXT: call otherfoo 1001; CHECK-RV64-FD-NEXT: ld ra, 392(sp) # 8-byte Folded Reload 1002; CHECK-RV64-FD-NEXT: ld t0, 384(sp) # 8-byte Folded Reload 1003; CHECK-RV64-FD-NEXT: ld t1, 376(sp) # 8-byte Folded Reload 1004; CHECK-RV64-FD-NEXT: ld t2, 368(sp) # 8-byte Folded Reload 1005; CHECK-RV64-FD-NEXT: ld s0, 360(sp) # 8-byte Folded Reload 1006; CHECK-RV64-FD-NEXT: ld a0, 352(sp) # 8-byte Folded Reload 1007; CHECK-RV64-FD-NEXT: ld a1, 344(sp) # 8-byte Folded Reload 1008; CHECK-RV64-FD-NEXT: ld a2, 336(sp) # 8-byte Folded Reload 1009; CHECK-RV64-FD-NEXT: ld a3, 328(sp) # 8-byte Folded Reload 1010; CHECK-RV64-FD-NEXT: ld a4, 320(sp) # 8-byte Folded Reload 1011; CHECK-RV64-FD-NEXT: ld a5, 312(sp) # 8-byte Folded Reload 1012; CHECK-RV64-FD-NEXT: ld a6, 304(sp) # 8-byte Folded Reload 1013; CHECK-RV64-FD-NEXT: ld a7, 296(sp) # 8-byte Folded Reload 1014; CHECK-RV64-FD-NEXT: ld t3, 288(sp) # 8-byte Folded Reload 1015; CHECK-RV64-FD-NEXT: ld t4, 280(sp) # 8-byte Folded Reload 1016; CHECK-RV64-FD-NEXT: ld t5, 272(sp) # 8-byte Folded Reload 1017; CHECK-RV64-FD-NEXT: ld t6, 264(sp) # 8-byte Folded Reload 1018; CHECK-RV64-FD-NEXT: fld ft0, 256(sp) # 8-byte Folded Reload 1019; CHECK-RV64-FD-NEXT: fld ft1, 248(sp) # 8-byte Folded Reload 1020; CHECK-RV64-FD-NEXT: fld ft2, 240(sp) # 8-byte Folded Reload 1021; CHECK-RV64-FD-NEXT: fld ft3, 232(sp) # 8-byte Folded Reload 1022; CHECK-RV64-FD-NEXT: fld ft4, 224(sp) # 8-byte Folded Reload 1023; CHECK-RV64-FD-NEXT: fld ft5, 216(sp) # 8-byte Folded Reload 1024; CHECK-RV64-FD-NEXT: fld ft6, 208(sp) # 8-byte Folded Reload 1025; CHECK-RV64-FD-NEXT: fld ft7, 200(sp) # 8-byte Folded Reload 1026; CHECK-RV64-FD-NEXT: fld fs0, 192(sp) # 8-byte Folded Reload 1027; CHECK-RV64-FD-NEXT: fld fs1, 184(sp) # 8-byte Folded Reload 1028; CHECK-RV64-FD-NEXT: fld fa0, 176(sp) # 8-byte Folded Reload 1029; CHECK-RV64-FD-NEXT: fld fa1, 168(sp) # 8-byte Folded Reload 1030; CHECK-RV64-FD-NEXT: fld fa2, 160(sp) # 8-byte Folded Reload 1031; CHECK-RV64-FD-NEXT: fld fa3, 152(sp) # 8-byte Folded Reload 1032; CHECK-RV64-FD-NEXT: fld fa4, 144(sp) # 8-byte Folded Reload 1033; CHECK-RV64-FD-NEXT: fld fa5, 136(sp) # 8-byte Folded Reload 1034; CHECK-RV64-FD-NEXT: fld fa6, 128(sp) # 8-byte Folded Reload 1035; CHECK-RV64-FD-NEXT: fld fa7, 120(sp) # 8-byte Folded Reload 1036; CHECK-RV64-FD-NEXT: fld fs2, 112(sp) # 8-byte Folded Reload 1037; CHECK-RV64-FD-NEXT: fld fs3, 104(sp) # 8-byte Folded Reload 1038; CHECK-RV64-FD-NEXT: fld fs4, 96(sp) # 8-byte Folded Reload 1039; CHECK-RV64-FD-NEXT: fld fs5, 88(sp) # 8-byte Folded Reload 1040; CHECK-RV64-FD-NEXT: fld fs6, 80(sp) # 8-byte Folded Reload 1041; CHECK-RV64-FD-NEXT: fld fs7, 72(sp) # 8-byte Folded Reload 1042; CHECK-RV64-FD-NEXT: fld fs8, 64(sp) # 8-byte Folded Reload 1043; CHECK-RV64-FD-NEXT: fld fs9, 56(sp) # 8-byte Folded Reload 1044; CHECK-RV64-FD-NEXT: fld fs10, 48(sp) # 8-byte Folded Reload 1045; CHECK-RV64-FD-NEXT: fld fs11, 40(sp) # 8-byte Folded Reload 1046; CHECK-RV64-FD-NEXT: fld ft8, 32(sp) # 8-byte Folded Reload 1047; CHECK-RV64-FD-NEXT: fld ft9, 24(sp) # 8-byte Folded Reload 1048; CHECK-RV64-FD-NEXT: fld ft10, 16(sp) # 8-byte Folded Reload 1049; CHECK-RV64-FD-NEXT: fld ft11, 8(sp) # 8-byte Folded Reload 1050; CHECK-RV64-FD-NEXT: addi sp, sp, 400 1051; CHECK-RV64-FD-NEXT: mret 1052 %call = call i32 @otherfoo() 1053 ret void 1054} 1055 1056attributes #0 = { nounwind "interrupt"="supervisor" } 1057attributes #1 = { nounwind "interrupt"="machine" } 1058attributes #2 = { nounwind "interrupt"="machine" "frame-pointer"="all" } 1059