1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \ 3; RUN: | FileCheck %s -check-prefix=RV32I 4; RUN: llc -mtriple=riscv32 -target-abi ilp32e -verify-machineinstrs < %s \ 5; RUN: | FileCheck %s -check-prefix=RV32I-ILP32E 6; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32f -verify-machineinstrs < %s \ 7; RUN: | FileCheck %s -check-prefix=RV32I 8; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32f -verify-machineinstrs < %s \ 9; RUN: | FileCheck %s -check-prefix=RV32I 10; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32d -verify-machineinstrs < %s \ 11; RUN: | FileCheck %s -check-prefix=RV32I 12; RUN: llc -mtriple=riscv32 -verify-machineinstrs -frame-pointer=all < %s \ 13; RUN: | FileCheck %s -check-prefix=RV32I-WITH-FP 14; RUN: llc -mtriple=riscv32 -mattr=+zcmp -verify-machineinstrs < %s \ 15; RUN: | FileCheck %s -check-prefixes=RV32IZCMP 16; RUN: llc -mtriple=riscv32 -mattr=+zcmp -verify-machineinstrs \ 17; RUN: -frame-pointer=all < %s | FileCheck %s -check-prefixes=RV32IZCMP-WITH-FP 18; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \ 19; RUN: | FileCheck %s -check-prefix=RV64I 20; RUN: llc -mtriple=riscv64 -target-abi lp64e -verify-machineinstrs < %s \ 21; RUN: | FileCheck %s -check-prefix=RV64I-LP64E 22; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64f -verify-machineinstrs < %s \ 23; RUN: | FileCheck %s -check-prefix=RV64I 24; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64f -verify-machineinstrs < %s \ 25; RUN: | FileCheck %s -check-prefix=RV64I 26; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64d -verify-machineinstrs < %s \ 27; RUN: | FileCheck %s -check-prefix=RV64I 28; RUN: llc -mtriple=riscv64 -verify-machineinstrs -frame-pointer=all < %s \ 29; RUN: | FileCheck %s -check-prefix=RV64I-WITH-FP 30; RUN: llc -mtriple=riscv64 -mattr=+zcmp -verify-machineinstrs < %s \ 31; RUN: | FileCheck %s -check-prefixes=RV64IZCMP 32; RUN: llc -mtriple=riscv64 -mattr=+zcmp -verify-machineinstrs \ 33; RUN: -frame-pointer=all < %s | FileCheck %s -check-prefixes=RV64IZCMP-WITH-FP 34 35@var = global [32 x i32] zeroinitializer 36 37; This function tests that RISCVRegisterInfo::getCalleeSavedRegs returns 38; something appropriate. 39 40define void @callee() nounwind { 41; RV32I-LABEL: callee: 42; RV32I: # %bb.0: 43; RV32I-NEXT: addi sp, sp, -80 44; RV32I-NEXT: sw ra, 76(sp) # 4-byte Folded Spill 45; RV32I-NEXT: sw s0, 72(sp) # 4-byte Folded Spill 46; RV32I-NEXT: sw s1, 68(sp) # 4-byte Folded Spill 47; RV32I-NEXT: sw s2, 64(sp) # 4-byte Folded Spill 48; RV32I-NEXT: sw s3, 60(sp) # 4-byte Folded Spill 49; RV32I-NEXT: sw s4, 56(sp) # 4-byte Folded Spill 50; RV32I-NEXT: sw s5, 52(sp) # 4-byte Folded Spill 51; RV32I-NEXT: sw s6, 48(sp) # 4-byte Folded Spill 52; RV32I-NEXT: sw s7, 44(sp) # 4-byte Folded Spill 53; RV32I-NEXT: sw s8, 40(sp) # 4-byte Folded Spill 54; RV32I-NEXT: sw s9, 36(sp) # 4-byte Folded Spill 55; RV32I-NEXT: sw s10, 32(sp) # 4-byte Folded Spill 56; RV32I-NEXT: sw s11, 28(sp) # 4-byte Folded Spill 57; RV32I-NEXT: lui a7, %hi(var) 58; RV32I-NEXT: lw a0, %lo(var)(a7) 59; RV32I-NEXT: sw a0, 24(sp) # 4-byte Folded Spill 60; RV32I-NEXT: lw a0, %lo(var+4)(a7) 61; RV32I-NEXT: sw a0, 20(sp) # 4-byte Folded Spill 62; RV32I-NEXT: lw a0, %lo(var+8)(a7) 63; RV32I-NEXT: sw a0, 16(sp) # 4-byte Folded Spill 64; RV32I-NEXT: lw a0, %lo(var+12)(a7) 65; RV32I-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 66; RV32I-NEXT: addi a5, a7, %lo(var) 67; RV32I-NEXT: lw a0, 16(a5) 68; RV32I-NEXT: sw a0, 8(sp) # 4-byte Folded Spill 69; RV32I-NEXT: lw a0, 20(a5) 70; RV32I-NEXT: sw a0, 4(sp) # 4-byte Folded Spill 71; RV32I-NEXT: lw t0, 24(a5) 72; RV32I-NEXT: lw t1, 28(a5) 73; RV32I-NEXT: lw t2, 32(a5) 74; RV32I-NEXT: lw t3, 36(a5) 75; RV32I-NEXT: lw t4, 40(a5) 76; RV32I-NEXT: lw t5, 44(a5) 77; RV32I-NEXT: lw t6, 48(a5) 78; RV32I-NEXT: lw s0, 52(a5) 79; RV32I-NEXT: lw s1, 56(a5) 80; RV32I-NEXT: lw s2, 60(a5) 81; RV32I-NEXT: lw s3, 64(a5) 82; RV32I-NEXT: lw s4, 68(a5) 83; RV32I-NEXT: lw s5, 72(a5) 84; RV32I-NEXT: lw s6, 76(a5) 85; RV32I-NEXT: lw s7, 80(a5) 86; RV32I-NEXT: lw s8, 84(a5) 87; RV32I-NEXT: lw s9, 88(a5) 88; RV32I-NEXT: lw s10, 92(a5) 89; RV32I-NEXT: lw s11, 112(a5) 90; RV32I-NEXT: lw ra, 116(a5) 91; RV32I-NEXT: lw a3, 120(a5) 92; RV32I-NEXT: lw a0, 124(a5) 93; RV32I-NEXT: lw a6, 96(a5) 94; RV32I-NEXT: lw a4, 100(a5) 95; RV32I-NEXT: lw a2, 104(a5) 96; RV32I-NEXT: lw a1, 108(a5) 97; RV32I-NEXT: sw a0, 124(a5) 98; RV32I-NEXT: sw a3, 120(a5) 99; RV32I-NEXT: sw ra, 116(a5) 100; RV32I-NEXT: sw s11, 112(a5) 101; RV32I-NEXT: sw a1, 108(a5) 102; RV32I-NEXT: sw a2, 104(a5) 103; RV32I-NEXT: sw a4, 100(a5) 104; RV32I-NEXT: sw a6, 96(a5) 105; RV32I-NEXT: sw s10, 92(a5) 106; RV32I-NEXT: sw s9, 88(a5) 107; RV32I-NEXT: sw s8, 84(a5) 108; RV32I-NEXT: sw s7, 80(a5) 109; RV32I-NEXT: sw s6, 76(a5) 110; RV32I-NEXT: sw s5, 72(a5) 111; RV32I-NEXT: sw s4, 68(a5) 112; RV32I-NEXT: sw s3, 64(a5) 113; RV32I-NEXT: sw s2, 60(a5) 114; RV32I-NEXT: sw s1, 56(a5) 115; RV32I-NEXT: sw s0, 52(a5) 116; RV32I-NEXT: sw t6, 48(a5) 117; RV32I-NEXT: sw t5, 44(a5) 118; RV32I-NEXT: sw t4, 40(a5) 119; RV32I-NEXT: sw t3, 36(a5) 120; RV32I-NEXT: sw t2, 32(a5) 121; RV32I-NEXT: sw t1, 28(a5) 122; RV32I-NEXT: sw t0, 24(a5) 123; RV32I-NEXT: lw a0, 4(sp) # 4-byte Folded Reload 124; RV32I-NEXT: sw a0, 20(a5) 125; RV32I-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 126; RV32I-NEXT: sw a0, 16(a5) 127; RV32I-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 128; RV32I-NEXT: sw a0, %lo(var+12)(a7) 129; RV32I-NEXT: lw a0, 16(sp) # 4-byte Folded Reload 130; RV32I-NEXT: sw a0, %lo(var+8)(a7) 131; RV32I-NEXT: lw a0, 20(sp) # 4-byte Folded Reload 132; RV32I-NEXT: sw a0, %lo(var+4)(a7) 133; RV32I-NEXT: lw a0, 24(sp) # 4-byte Folded Reload 134; RV32I-NEXT: sw a0, %lo(var)(a7) 135; RV32I-NEXT: lw ra, 76(sp) # 4-byte Folded Reload 136; RV32I-NEXT: lw s0, 72(sp) # 4-byte Folded Reload 137; RV32I-NEXT: lw s1, 68(sp) # 4-byte Folded Reload 138; RV32I-NEXT: lw s2, 64(sp) # 4-byte Folded Reload 139; RV32I-NEXT: lw s3, 60(sp) # 4-byte Folded Reload 140; RV32I-NEXT: lw s4, 56(sp) # 4-byte Folded Reload 141; RV32I-NEXT: lw s5, 52(sp) # 4-byte Folded Reload 142; RV32I-NEXT: lw s6, 48(sp) # 4-byte Folded Reload 143; RV32I-NEXT: lw s7, 44(sp) # 4-byte Folded Reload 144; RV32I-NEXT: lw s8, 40(sp) # 4-byte Folded Reload 145; RV32I-NEXT: lw s9, 36(sp) # 4-byte Folded Reload 146; RV32I-NEXT: lw s10, 32(sp) # 4-byte Folded Reload 147; RV32I-NEXT: lw s11, 28(sp) # 4-byte Folded Reload 148; RV32I-NEXT: addi sp, sp, 80 149; RV32I-NEXT: ret 150; 151; RV32I-ILP32E-LABEL: callee: 152; RV32I-ILP32E: # %bb.0: 153; RV32I-ILP32E-NEXT: addi sp, sp, -36 154; RV32I-ILP32E-NEXT: sw ra, 32(sp) # 4-byte Folded Spill 155; RV32I-ILP32E-NEXT: sw s0, 28(sp) # 4-byte Folded Spill 156; RV32I-ILP32E-NEXT: sw s1, 24(sp) # 4-byte Folded Spill 157; RV32I-ILP32E-NEXT: lui a7, %hi(var) 158; RV32I-ILP32E-NEXT: lw a0, %lo(var)(a7) 159; RV32I-ILP32E-NEXT: sw a0, 20(sp) # 4-byte Folded Spill 160; RV32I-ILP32E-NEXT: lw a0, %lo(var+4)(a7) 161; RV32I-ILP32E-NEXT: sw a0, 16(sp) # 4-byte Folded Spill 162; RV32I-ILP32E-NEXT: lw a0, %lo(var+8)(a7) 163; RV32I-ILP32E-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 164; RV32I-ILP32E-NEXT: lw a0, %lo(var+12)(a7) 165; RV32I-ILP32E-NEXT: sw a0, 8(sp) # 4-byte Folded Spill 166; RV32I-ILP32E-NEXT: addi a5, a7, %lo(var) 167; RV32I-ILP32E-NEXT: lw a0, 16(a5) 168; RV32I-ILP32E-NEXT: sw a0, 4(sp) # 4-byte Folded Spill 169; RV32I-ILP32E-NEXT: lw a0, 20(a5) 170; RV32I-ILP32E-NEXT: sw a0, 0(sp) # 4-byte Folded Spill 171; RV32I-ILP32E-NEXT: lw t0, 24(a5) 172; RV32I-ILP32E-NEXT: lw t1, 28(a5) 173; RV32I-ILP32E-NEXT: lw t2, 32(a5) 174; RV32I-ILP32E-NEXT: lw t3, 36(a5) 175; RV32I-ILP32E-NEXT: lw t4, 40(a5) 176; RV32I-ILP32E-NEXT: lw t5, 44(a5) 177; RV32I-ILP32E-NEXT: lw t6, 48(a5) 178; RV32I-ILP32E-NEXT: lw s2, 52(a5) 179; RV32I-ILP32E-NEXT: lw s3, 56(a5) 180; RV32I-ILP32E-NEXT: lw s4, 60(a5) 181; RV32I-ILP32E-NEXT: lw s5, 64(a5) 182; RV32I-ILP32E-NEXT: lw s6, 68(a5) 183; RV32I-ILP32E-NEXT: lw s7, 72(a5) 184; RV32I-ILP32E-NEXT: lw s8, 76(a5) 185; RV32I-ILP32E-NEXT: lw s9, 80(a5) 186; RV32I-ILP32E-NEXT: lw s10, 84(a5) 187; RV32I-ILP32E-NEXT: lw s11, 88(a5) 188; RV32I-ILP32E-NEXT: lw s0, 92(a5) 189; RV32I-ILP32E-NEXT: lw s1, 112(a5) 190; RV32I-ILP32E-NEXT: lw ra, 116(a5) 191; RV32I-ILP32E-NEXT: lw a3, 120(a5) 192; RV32I-ILP32E-NEXT: lw a0, 124(a5) 193; RV32I-ILP32E-NEXT: lw a6, 96(a5) 194; RV32I-ILP32E-NEXT: lw a4, 100(a5) 195; RV32I-ILP32E-NEXT: lw a2, 104(a5) 196; RV32I-ILP32E-NEXT: lw a1, 108(a5) 197; RV32I-ILP32E-NEXT: sw a0, 124(a5) 198; RV32I-ILP32E-NEXT: sw a3, 120(a5) 199; RV32I-ILP32E-NEXT: sw ra, 116(a5) 200; RV32I-ILP32E-NEXT: sw s1, 112(a5) 201; RV32I-ILP32E-NEXT: sw a1, 108(a5) 202; RV32I-ILP32E-NEXT: sw a2, 104(a5) 203; RV32I-ILP32E-NEXT: sw a4, 100(a5) 204; RV32I-ILP32E-NEXT: sw a6, 96(a5) 205; RV32I-ILP32E-NEXT: sw s0, 92(a5) 206; RV32I-ILP32E-NEXT: sw s11, 88(a5) 207; RV32I-ILP32E-NEXT: sw s10, 84(a5) 208; RV32I-ILP32E-NEXT: sw s9, 80(a5) 209; RV32I-ILP32E-NEXT: sw s8, 76(a5) 210; RV32I-ILP32E-NEXT: sw s7, 72(a5) 211; RV32I-ILP32E-NEXT: sw s6, 68(a5) 212; RV32I-ILP32E-NEXT: sw s5, 64(a5) 213; RV32I-ILP32E-NEXT: sw s4, 60(a5) 214; RV32I-ILP32E-NEXT: sw s3, 56(a5) 215; RV32I-ILP32E-NEXT: sw s2, 52(a5) 216; RV32I-ILP32E-NEXT: sw t6, 48(a5) 217; RV32I-ILP32E-NEXT: sw t5, 44(a5) 218; RV32I-ILP32E-NEXT: sw t4, 40(a5) 219; RV32I-ILP32E-NEXT: sw t3, 36(a5) 220; RV32I-ILP32E-NEXT: sw t2, 32(a5) 221; RV32I-ILP32E-NEXT: sw t1, 28(a5) 222; RV32I-ILP32E-NEXT: sw t0, 24(a5) 223; RV32I-ILP32E-NEXT: lw a0, 0(sp) # 4-byte Folded Reload 224; RV32I-ILP32E-NEXT: sw a0, 20(a5) 225; RV32I-ILP32E-NEXT: lw a0, 4(sp) # 4-byte Folded Reload 226; RV32I-ILP32E-NEXT: sw a0, 16(a5) 227; RV32I-ILP32E-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 228; RV32I-ILP32E-NEXT: sw a0, %lo(var+12)(a7) 229; RV32I-ILP32E-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 230; RV32I-ILP32E-NEXT: sw a0, %lo(var+8)(a7) 231; RV32I-ILP32E-NEXT: lw a0, 16(sp) # 4-byte Folded Reload 232; RV32I-ILP32E-NEXT: sw a0, %lo(var+4)(a7) 233; RV32I-ILP32E-NEXT: lw a0, 20(sp) # 4-byte Folded Reload 234; RV32I-ILP32E-NEXT: sw a0, %lo(var)(a7) 235; RV32I-ILP32E-NEXT: lw ra, 32(sp) # 4-byte Folded Reload 236; RV32I-ILP32E-NEXT: lw s0, 28(sp) # 4-byte Folded Reload 237; RV32I-ILP32E-NEXT: lw s1, 24(sp) # 4-byte Folded Reload 238; RV32I-ILP32E-NEXT: addi sp, sp, 36 239; RV32I-ILP32E-NEXT: ret 240; 241; RV32I-WITH-FP-LABEL: callee: 242; RV32I-WITH-FP: # %bb.0: 243; RV32I-WITH-FP-NEXT: addi sp, sp, -80 244; RV32I-WITH-FP-NEXT: sw ra, 76(sp) # 4-byte Folded Spill 245; RV32I-WITH-FP-NEXT: sw s0, 72(sp) # 4-byte Folded Spill 246; RV32I-WITH-FP-NEXT: sw s1, 68(sp) # 4-byte Folded Spill 247; RV32I-WITH-FP-NEXT: sw s2, 64(sp) # 4-byte Folded Spill 248; RV32I-WITH-FP-NEXT: sw s3, 60(sp) # 4-byte Folded Spill 249; RV32I-WITH-FP-NEXT: sw s4, 56(sp) # 4-byte Folded Spill 250; RV32I-WITH-FP-NEXT: sw s5, 52(sp) # 4-byte Folded Spill 251; RV32I-WITH-FP-NEXT: sw s6, 48(sp) # 4-byte Folded Spill 252; RV32I-WITH-FP-NEXT: sw s7, 44(sp) # 4-byte Folded Spill 253; RV32I-WITH-FP-NEXT: sw s8, 40(sp) # 4-byte Folded Spill 254; RV32I-WITH-FP-NEXT: sw s9, 36(sp) # 4-byte Folded Spill 255; RV32I-WITH-FP-NEXT: sw s10, 32(sp) # 4-byte Folded Spill 256; RV32I-WITH-FP-NEXT: sw s11, 28(sp) # 4-byte Folded Spill 257; RV32I-WITH-FP-NEXT: addi s0, sp, 80 258; RV32I-WITH-FP-NEXT: lui t0, %hi(var) 259; RV32I-WITH-FP-NEXT: lw a0, %lo(var)(t0) 260; RV32I-WITH-FP-NEXT: sw a0, -56(s0) # 4-byte Folded Spill 261; RV32I-WITH-FP-NEXT: lw a0, %lo(var+4)(t0) 262; RV32I-WITH-FP-NEXT: sw a0, -60(s0) # 4-byte Folded Spill 263; RV32I-WITH-FP-NEXT: lw a0, %lo(var+8)(t0) 264; RV32I-WITH-FP-NEXT: sw a0, -64(s0) # 4-byte Folded Spill 265; RV32I-WITH-FP-NEXT: lw a0, %lo(var+12)(t0) 266; RV32I-WITH-FP-NEXT: sw a0, -68(s0) # 4-byte Folded Spill 267; RV32I-WITH-FP-NEXT: addi a5, t0, %lo(var) 268; RV32I-WITH-FP-NEXT: lw a0, 16(a5) 269; RV32I-WITH-FP-NEXT: sw a0, -72(s0) # 4-byte Folded Spill 270; RV32I-WITH-FP-NEXT: lw a0, 20(a5) 271; RV32I-WITH-FP-NEXT: sw a0, -76(s0) # 4-byte Folded Spill 272; RV32I-WITH-FP-NEXT: lw a0, 24(a5) 273; RV32I-WITH-FP-NEXT: sw a0, -80(s0) # 4-byte Folded Spill 274; RV32I-WITH-FP-NEXT: lw t1, 28(a5) 275; RV32I-WITH-FP-NEXT: lw t2, 32(a5) 276; RV32I-WITH-FP-NEXT: lw t3, 36(a5) 277; RV32I-WITH-FP-NEXT: lw t4, 40(a5) 278; RV32I-WITH-FP-NEXT: lw t5, 44(a5) 279; RV32I-WITH-FP-NEXT: lw t6, 48(a5) 280; RV32I-WITH-FP-NEXT: lw s1, 52(a5) 281; RV32I-WITH-FP-NEXT: lw s2, 56(a5) 282; RV32I-WITH-FP-NEXT: lw s3, 60(a5) 283; RV32I-WITH-FP-NEXT: lw s4, 64(a5) 284; RV32I-WITH-FP-NEXT: lw s5, 68(a5) 285; RV32I-WITH-FP-NEXT: lw s6, 72(a5) 286; RV32I-WITH-FP-NEXT: lw s7, 76(a5) 287; RV32I-WITH-FP-NEXT: lw s8, 80(a5) 288; RV32I-WITH-FP-NEXT: lw s9, 84(a5) 289; RV32I-WITH-FP-NEXT: lw s10, 88(a5) 290; RV32I-WITH-FP-NEXT: lw s11, 92(a5) 291; RV32I-WITH-FP-NEXT: lw ra, 112(a5) 292; RV32I-WITH-FP-NEXT: lw a4, 116(a5) 293; RV32I-WITH-FP-NEXT: lw a3, 120(a5) 294; RV32I-WITH-FP-NEXT: lw a0, 124(a5) 295; RV32I-WITH-FP-NEXT: lw a7, 96(a5) 296; RV32I-WITH-FP-NEXT: lw a6, 100(a5) 297; RV32I-WITH-FP-NEXT: lw a2, 104(a5) 298; RV32I-WITH-FP-NEXT: lw a1, 108(a5) 299; RV32I-WITH-FP-NEXT: sw a0, 124(a5) 300; RV32I-WITH-FP-NEXT: sw a3, 120(a5) 301; RV32I-WITH-FP-NEXT: sw a4, 116(a5) 302; RV32I-WITH-FP-NEXT: sw ra, 112(a5) 303; RV32I-WITH-FP-NEXT: sw a1, 108(a5) 304; RV32I-WITH-FP-NEXT: sw a2, 104(a5) 305; RV32I-WITH-FP-NEXT: sw a6, 100(a5) 306; RV32I-WITH-FP-NEXT: sw a7, 96(a5) 307; RV32I-WITH-FP-NEXT: sw s11, 92(a5) 308; RV32I-WITH-FP-NEXT: sw s10, 88(a5) 309; RV32I-WITH-FP-NEXT: sw s9, 84(a5) 310; RV32I-WITH-FP-NEXT: sw s8, 80(a5) 311; RV32I-WITH-FP-NEXT: sw s7, 76(a5) 312; RV32I-WITH-FP-NEXT: sw s6, 72(a5) 313; RV32I-WITH-FP-NEXT: sw s5, 68(a5) 314; RV32I-WITH-FP-NEXT: sw s4, 64(a5) 315; RV32I-WITH-FP-NEXT: sw s3, 60(a5) 316; RV32I-WITH-FP-NEXT: sw s2, 56(a5) 317; RV32I-WITH-FP-NEXT: sw s1, 52(a5) 318; RV32I-WITH-FP-NEXT: sw t6, 48(a5) 319; RV32I-WITH-FP-NEXT: sw t5, 44(a5) 320; RV32I-WITH-FP-NEXT: sw t4, 40(a5) 321; RV32I-WITH-FP-NEXT: sw t3, 36(a5) 322; RV32I-WITH-FP-NEXT: sw t2, 32(a5) 323; RV32I-WITH-FP-NEXT: sw t1, 28(a5) 324; RV32I-WITH-FP-NEXT: lw a0, -80(s0) # 4-byte Folded Reload 325; RV32I-WITH-FP-NEXT: sw a0, 24(a5) 326; RV32I-WITH-FP-NEXT: lw a0, -76(s0) # 4-byte Folded Reload 327; RV32I-WITH-FP-NEXT: sw a0, 20(a5) 328; RV32I-WITH-FP-NEXT: lw a0, -72(s0) # 4-byte Folded Reload 329; RV32I-WITH-FP-NEXT: sw a0, 16(a5) 330; RV32I-WITH-FP-NEXT: lw a0, -68(s0) # 4-byte Folded Reload 331; RV32I-WITH-FP-NEXT: sw a0, %lo(var+12)(t0) 332; RV32I-WITH-FP-NEXT: lw a0, -64(s0) # 4-byte Folded Reload 333; RV32I-WITH-FP-NEXT: sw a0, %lo(var+8)(t0) 334; RV32I-WITH-FP-NEXT: lw a0, -60(s0) # 4-byte Folded Reload 335; RV32I-WITH-FP-NEXT: sw a0, %lo(var+4)(t0) 336; RV32I-WITH-FP-NEXT: lw a0, -56(s0) # 4-byte Folded Reload 337; RV32I-WITH-FP-NEXT: sw a0, %lo(var)(t0) 338; RV32I-WITH-FP-NEXT: lw ra, 76(sp) # 4-byte Folded Reload 339; RV32I-WITH-FP-NEXT: lw s0, 72(sp) # 4-byte Folded Reload 340; RV32I-WITH-FP-NEXT: lw s1, 68(sp) # 4-byte Folded Reload 341; RV32I-WITH-FP-NEXT: lw s2, 64(sp) # 4-byte Folded Reload 342; RV32I-WITH-FP-NEXT: lw s3, 60(sp) # 4-byte Folded Reload 343; RV32I-WITH-FP-NEXT: lw s4, 56(sp) # 4-byte Folded Reload 344; RV32I-WITH-FP-NEXT: lw s5, 52(sp) # 4-byte Folded Reload 345; RV32I-WITH-FP-NEXT: lw s6, 48(sp) # 4-byte Folded Reload 346; RV32I-WITH-FP-NEXT: lw s7, 44(sp) # 4-byte Folded Reload 347; RV32I-WITH-FP-NEXT: lw s8, 40(sp) # 4-byte Folded Reload 348; RV32I-WITH-FP-NEXT: lw s9, 36(sp) # 4-byte Folded Reload 349; RV32I-WITH-FP-NEXT: lw s10, 32(sp) # 4-byte Folded Reload 350; RV32I-WITH-FP-NEXT: lw s11, 28(sp) # 4-byte Folded Reload 351; RV32I-WITH-FP-NEXT: addi sp, sp, 80 352; RV32I-WITH-FP-NEXT: ret 353; 354; RV32IZCMP-LABEL: callee: 355; RV32IZCMP: # %bb.0: 356; RV32IZCMP-NEXT: cm.push {ra, s0-s11}, -96 357; RV32IZCMP-NEXT: lui t0, %hi(var) 358; RV32IZCMP-NEXT: lw a0, %lo(var)(t0) 359; RV32IZCMP-NEXT: sw a0, 28(sp) # 4-byte Folded Spill 360; RV32IZCMP-NEXT: lw a0, %lo(var+4)(t0) 361; RV32IZCMP-NEXT: sw a0, 24(sp) # 4-byte Folded Spill 362; RV32IZCMP-NEXT: lw a0, %lo(var+8)(t0) 363; RV32IZCMP-NEXT: sw a0, 20(sp) # 4-byte Folded Spill 364; RV32IZCMP-NEXT: lw a0, %lo(var+12)(t0) 365; RV32IZCMP-NEXT: sw a0, 16(sp) # 4-byte Folded Spill 366; RV32IZCMP-NEXT: addi a5, t0, %lo(var) 367; RV32IZCMP-NEXT: lw a0, 16(a5) 368; RV32IZCMP-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 369; RV32IZCMP-NEXT: lw a0, 20(a5) 370; RV32IZCMP-NEXT: sw a0, 8(sp) # 4-byte Folded Spill 371; RV32IZCMP-NEXT: lw t4, 24(a5) 372; RV32IZCMP-NEXT: lw t5, 28(a5) 373; RV32IZCMP-NEXT: lw t6, 32(a5) 374; RV32IZCMP-NEXT: lw s2, 36(a5) 375; RV32IZCMP-NEXT: lw s3, 40(a5) 376; RV32IZCMP-NEXT: lw s4, 44(a5) 377; RV32IZCMP-NEXT: lw s5, 48(a5) 378; RV32IZCMP-NEXT: lw s6, 52(a5) 379; RV32IZCMP-NEXT: lw s7, 56(a5) 380; RV32IZCMP-NEXT: lw s8, 60(a5) 381; RV32IZCMP-NEXT: lw s9, 64(a5) 382; RV32IZCMP-NEXT: lw s10, 68(a5) 383; RV32IZCMP-NEXT: lw s11, 72(a5) 384; RV32IZCMP-NEXT: lw ra, 76(a5) 385; RV32IZCMP-NEXT: lw s1, 80(a5) 386; RV32IZCMP-NEXT: lw t3, 84(a5) 387; RV32IZCMP-NEXT: lw t2, 88(a5) 388; RV32IZCMP-NEXT: lw t1, 92(a5) 389; RV32IZCMP-NEXT: lw a7, 112(a5) 390; RV32IZCMP-NEXT: lw s0, 116(a5) 391; RV32IZCMP-NEXT: lw a3, 120(a5) 392; RV32IZCMP-NEXT: lw a0, 124(a5) 393; RV32IZCMP-NEXT: lw a6, 96(a5) 394; RV32IZCMP-NEXT: lw a4, 100(a5) 395; RV32IZCMP-NEXT: lw a2, 104(a5) 396; RV32IZCMP-NEXT: lw a1, 108(a5) 397; RV32IZCMP-NEXT: sw a0, 124(a5) 398; RV32IZCMP-NEXT: sw a3, 120(a5) 399; RV32IZCMP-NEXT: sw s0, 116(a5) 400; RV32IZCMP-NEXT: sw a7, 112(a5) 401; RV32IZCMP-NEXT: sw a1, 108(a5) 402; RV32IZCMP-NEXT: sw a2, 104(a5) 403; RV32IZCMP-NEXT: sw a4, 100(a5) 404; RV32IZCMP-NEXT: sw a6, 96(a5) 405; RV32IZCMP-NEXT: sw t1, 92(a5) 406; RV32IZCMP-NEXT: sw t2, 88(a5) 407; RV32IZCMP-NEXT: sw t3, 84(a5) 408; RV32IZCMP-NEXT: sw s1, 80(a5) 409; RV32IZCMP-NEXT: sw ra, 76(a5) 410; RV32IZCMP-NEXT: sw s11, 72(a5) 411; RV32IZCMP-NEXT: sw s10, 68(a5) 412; RV32IZCMP-NEXT: sw s9, 64(a5) 413; RV32IZCMP-NEXT: sw s8, 60(a5) 414; RV32IZCMP-NEXT: sw s7, 56(a5) 415; RV32IZCMP-NEXT: sw s6, 52(a5) 416; RV32IZCMP-NEXT: sw s5, 48(a5) 417; RV32IZCMP-NEXT: sw s4, 44(a5) 418; RV32IZCMP-NEXT: sw s3, 40(a5) 419; RV32IZCMP-NEXT: sw s2, 36(a5) 420; RV32IZCMP-NEXT: sw t6, 32(a5) 421; RV32IZCMP-NEXT: sw t5, 28(a5) 422; RV32IZCMP-NEXT: sw t4, 24(a5) 423; RV32IZCMP-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 424; RV32IZCMP-NEXT: sw a0, 20(a5) 425; RV32IZCMP-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 426; RV32IZCMP-NEXT: sw a0, 16(a5) 427; RV32IZCMP-NEXT: lw a0, 16(sp) # 4-byte Folded Reload 428; RV32IZCMP-NEXT: sw a0, %lo(var+12)(t0) 429; RV32IZCMP-NEXT: lw a0, 20(sp) # 4-byte Folded Reload 430; RV32IZCMP-NEXT: sw a0, %lo(var+8)(t0) 431; RV32IZCMP-NEXT: lw a0, 24(sp) # 4-byte Folded Reload 432; RV32IZCMP-NEXT: sw a0, %lo(var+4)(t0) 433; RV32IZCMP-NEXT: lw a0, 28(sp) # 4-byte Folded Reload 434; RV32IZCMP-NEXT: sw a0, %lo(var)(t0) 435; RV32IZCMP-NEXT: cm.popret {ra, s0-s11}, 96 436; 437; RV32IZCMP-WITH-FP-LABEL: callee: 438; RV32IZCMP-WITH-FP: # %bb.0: 439; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -80 440; RV32IZCMP-WITH-FP-NEXT: sw ra, 76(sp) # 4-byte Folded Spill 441; RV32IZCMP-WITH-FP-NEXT: sw s0, 72(sp) # 4-byte Folded Spill 442; RV32IZCMP-WITH-FP-NEXT: sw s1, 68(sp) # 4-byte Folded Spill 443; RV32IZCMP-WITH-FP-NEXT: sw s2, 64(sp) # 4-byte Folded Spill 444; RV32IZCMP-WITH-FP-NEXT: sw s3, 60(sp) # 4-byte Folded Spill 445; RV32IZCMP-WITH-FP-NEXT: sw s4, 56(sp) # 4-byte Folded Spill 446; RV32IZCMP-WITH-FP-NEXT: sw s5, 52(sp) # 4-byte Folded Spill 447; RV32IZCMP-WITH-FP-NEXT: sw s6, 48(sp) # 4-byte Folded Spill 448; RV32IZCMP-WITH-FP-NEXT: sw s7, 44(sp) # 4-byte Folded Spill 449; RV32IZCMP-WITH-FP-NEXT: sw s8, 40(sp) # 4-byte Folded Spill 450; RV32IZCMP-WITH-FP-NEXT: sw s9, 36(sp) # 4-byte Folded Spill 451; RV32IZCMP-WITH-FP-NEXT: sw s10, 32(sp) # 4-byte Folded Spill 452; RV32IZCMP-WITH-FP-NEXT: sw s11, 28(sp) # 4-byte Folded Spill 453; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 80 454; RV32IZCMP-WITH-FP-NEXT: lui t1, %hi(var) 455; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var)(t1) 456; RV32IZCMP-WITH-FP-NEXT: sw a0, -56(s0) # 4-byte Folded Spill 457; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+4)(t1) 458; RV32IZCMP-WITH-FP-NEXT: sw a0, -60(s0) # 4-byte Folded Spill 459; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+8)(t1) 460; RV32IZCMP-WITH-FP-NEXT: sw a0, -64(s0) # 4-byte Folded Spill 461; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+12)(t1) 462; RV32IZCMP-WITH-FP-NEXT: sw a0, -68(s0) # 4-byte Folded Spill 463; RV32IZCMP-WITH-FP-NEXT: addi a5, t1, %lo(var) 464; RV32IZCMP-WITH-FP-NEXT: lw a0, 16(a5) 465; RV32IZCMP-WITH-FP-NEXT: sw a0, -72(s0) # 4-byte Folded Spill 466; RV32IZCMP-WITH-FP-NEXT: lw a0, 20(a5) 467; RV32IZCMP-WITH-FP-NEXT: sw a0, -76(s0) # 4-byte Folded Spill 468; RV32IZCMP-WITH-FP-NEXT: lw a0, 24(a5) 469; RV32IZCMP-WITH-FP-NEXT: sw a0, -80(s0) # 4-byte Folded Spill 470; RV32IZCMP-WITH-FP-NEXT: lw t5, 28(a5) 471; RV32IZCMP-WITH-FP-NEXT: lw t6, 32(a5) 472; RV32IZCMP-WITH-FP-NEXT: lw s2, 36(a5) 473; RV32IZCMP-WITH-FP-NEXT: lw s3, 40(a5) 474; RV32IZCMP-WITH-FP-NEXT: lw s4, 44(a5) 475; RV32IZCMP-WITH-FP-NEXT: lw s5, 48(a5) 476; RV32IZCMP-WITH-FP-NEXT: lw s6, 52(a5) 477; RV32IZCMP-WITH-FP-NEXT: lw s7, 56(a5) 478; RV32IZCMP-WITH-FP-NEXT: lw s8, 60(a5) 479; RV32IZCMP-WITH-FP-NEXT: lw s9, 64(a5) 480; RV32IZCMP-WITH-FP-NEXT: lw s10, 68(a5) 481; RV32IZCMP-WITH-FP-NEXT: lw s11, 72(a5) 482; RV32IZCMP-WITH-FP-NEXT: lw ra, 76(a5) 483; RV32IZCMP-WITH-FP-NEXT: lw t4, 80(a5) 484; RV32IZCMP-WITH-FP-NEXT: lw t3, 84(a5) 485; RV32IZCMP-WITH-FP-NEXT: lw t2, 88(a5) 486; RV32IZCMP-WITH-FP-NEXT: lw s1, 92(a5) 487; RV32IZCMP-WITH-FP-NEXT: lw t0, 112(a5) 488; RV32IZCMP-WITH-FP-NEXT: lw a4, 116(a5) 489; RV32IZCMP-WITH-FP-NEXT: lw a3, 120(a5) 490; RV32IZCMP-WITH-FP-NEXT: lw a0, 124(a5) 491; RV32IZCMP-WITH-FP-NEXT: lw a7, 96(a5) 492; RV32IZCMP-WITH-FP-NEXT: lw a6, 100(a5) 493; RV32IZCMP-WITH-FP-NEXT: lw a2, 104(a5) 494; RV32IZCMP-WITH-FP-NEXT: lw a1, 108(a5) 495; RV32IZCMP-WITH-FP-NEXT: sw a0, 124(a5) 496; RV32IZCMP-WITH-FP-NEXT: sw a3, 120(a5) 497; RV32IZCMP-WITH-FP-NEXT: sw a4, 116(a5) 498; RV32IZCMP-WITH-FP-NEXT: sw t0, 112(a5) 499; RV32IZCMP-WITH-FP-NEXT: sw a1, 108(a5) 500; RV32IZCMP-WITH-FP-NEXT: sw a2, 104(a5) 501; RV32IZCMP-WITH-FP-NEXT: sw a6, 100(a5) 502; RV32IZCMP-WITH-FP-NEXT: sw a7, 96(a5) 503; RV32IZCMP-WITH-FP-NEXT: sw s1, 92(a5) 504; RV32IZCMP-WITH-FP-NEXT: sw t2, 88(a5) 505; RV32IZCMP-WITH-FP-NEXT: sw t3, 84(a5) 506; RV32IZCMP-WITH-FP-NEXT: sw t4, 80(a5) 507; RV32IZCMP-WITH-FP-NEXT: sw ra, 76(a5) 508; RV32IZCMP-WITH-FP-NEXT: sw s11, 72(a5) 509; RV32IZCMP-WITH-FP-NEXT: sw s10, 68(a5) 510; RV32IZCMP-WITH-FP-NEXT: sw s9, 64(a5) 511; RV32IZCMP-WITH-FP-NEXT: sw s8, 60(a5) 512; RV32IZCMP-WITH-FP-NEXT: sw s7, 56(a5) 513; RV32IZCMP-WITH-FP-NEXT: sw s6, 52(a5) 514; RV32IZCMP-WITH-FP-NEXT: sw s5, 48(a5) 515; RV32IZCMP-WITH-FP-NEXT: sw s4, 44(a5) 516; RV32IZCMP-WITH-FP-NEXT: sw s3, 40(a5) 517; RV32IZCMP-WITH-FP-NEXT: sw s2, 36(a5) 518; RV32IZCMP-WITH-FP-NEXT: sw t6, 32(a5) 519; RV32IZCMP-WITH-FP-NEXT: sw t5, 28(a5) 520; RV32IZCMP-WITH-FP-NEXT: lw a0, -80(s0) # 4-byte Folded Reload 521; RV32IZCMP-WITH-FP-NEXT: sw a0, 24(a5) 522; RV32IZCMP-WITH-FP-NEXT: lw a0, -76(s0) # 4-byte Folded Reload 523; RV32IZCMP-WITH-FP-NEXT: sw a0, 20(a5) 524; RV32IZCMP-WITH-FP-NEXT: lw a0, -72(s0) # 4-byte Folded Reload 525; RV32IZCMP-WITH-FP-NEXT: sw a0, 16(a5) 526; RV32IZCMP-WITH-FP-NEXT: lw a0, -68(s0) # 4-byte Folded Reload 527; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+12)(t1) 528; RV32IZCMP-WITH-FP-NEXT: lw a0, -64(s0) # 4-byte Folded Reload 529; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+8)(t1) 530; RV32IZCMP-WITH-FP-NEXT: lw a0, -60(s0) # 4-byte Folded Reload 531; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+4)(t1) 532; RV32IZCMP-WITH-FP-NEXT: lw a0, -56(s0) # 4-byte Folded Reload 533; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var)(t1) 534; RV32IZCMP-WITH-FP-NEXT: lw ra, 76(sp) # 4-byte Folded Reload 535; RV32IZCMP-WITH-FP-NEXT: lw s0, 72(sp) # 4-byte Folded Reload 536; RV32IZCMP-WITH-FP-NEXT: lw s1, 68(sp) # 4-byte Folded Reload 537; RV32IZCMP-WITH-FP-NEXT: lw s2, 64(sp) # 4-byte Folded Reload 538; RV32IZCMP-WITH-FP-NEXT: lw s3, 60(sp) # 4-byte Folded Reload 539; RV32IZCMP-WITH-FP-NEXT: lw s4, 56(sp) # 4-byte Folded Reload 540; RV32IZCMP-WITH-FP-NEXT: lw s5, 52(sp) # 4-byte Folded Reload 541; RV32IZCMP-WITH-FP-NEXT: lw s6, 48(sp) # 4-byte Folded Reload 542; RV32IZCMP-WITH-FP-NEXT: lw s7, 44(sp) # 4-byte Folded Reload 543; RV32IZCMP-WITH-FP-NEXT: lw s8, 40(sp) # 4-byte Folded Reload 544; RV32IZCMP-WITH-FP-NEXT: lw s9, 36(sp) # 4-byte Folded Reload 545; RV32IZCMP-WITH-FP-NEXT: lw s10, 32(sp) # 4-byte Folded Reload 546; RV32IZCMP-WITH-FP-NEXT: lw s11, 28(sp) # 4-byte Folded Reload 547; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 80 548; RV32IZCMP-WITH-FP-NEXT: ret 549; 550; RV64I-LABEL: callee: 551; RV64I: # %bb.0: 552; RV64I-NEXT: addi sp, sp, -160 553; RV64I-NEXT: sd ra, 152(sp) # 8-byte Folded Spill 554; RV64I-NEXT: sd s0, 144(sp) # 8-byte Folded Spill 555; RV64I-NEXT: sd s1, 136(sp) # 8-byte Folded Spill 556; RV64I-NEXT: sd s2, 128(sp) # 8-byte Folded Spill 557; RV64I-NEXT: sd s3, 120(sp) # 8-byte Folded Spill 558; RV64I-NEXT: sd s4, 112(sp) # 8-byte Folded Spill 559; RV64I-NEXT: sd s5, 104(sp) # 8-byte Folded Spill 560; RV64I-NEXT: sd s6, 96(sp) # 8-byte Folded Spill 561; RV64I-NEXT: sd s7, 88(sp) # 8-byte Folded Spill 562; RV64I-NEXT: sd s8, 80(sp) # 8-byte Folded Spill 563; RV64I-NEXT: sd s9, 72(sp) # 8-byte Folded Spill 564; RV64I-NEXT: sd s10, 64(sp) # 8-byte Folded Spill 565; RV64I-NEXT: sd s11, 56(sp) # 8-byte Folded Spill 566; RV64I-NEXT: lui a7, %hi(var) 567; RV64I-NEXT: lw a0, %lo(var)(a7) 568; RV64I-NEXT: sd a0, 48(sp) # 8-byte Folded Spill 569; RV64I-NEXT: lw a0, %lo(var+4)(a7) 570; RV64I-NEXT: sd a0, 40(sp) # 8-byte Folded Spill 571; RV64I-NEXT: lw a0, %lo(var+8)(a7) 572; RV64I-NEXT: sd a0, 32(sp) # 8-byte Folded Spill 573; RV64I-NEXT: lw a0, %lo(var+12)(a7) 574; RV64I-NEXT: sd a0, 24(sp) # 8-byte Folded Spill 575; RV64I-NEXT: addi a5, a7, %lo(var) 576; RV64I-NEXT: lw a0, 16(a5) 577; RV64I-NEXT: sd a0, 16(sp) # 8-byte Folded Spill 578; RV64I-NEXT: lw a0, 20(a5) 579; RV64I-NEXT: sd a0, 8(sp) # 8-byte Folded Spill 580; RV64I-NEXT: lw t0, 24(a5) 581; RV64I-NEXT: lw t1, 28(a5) 582; RV64I-NEXT: lw t2, 32(a5) 583; RV64I-NEXT: lw t3, 36(a5) 584; RV64I-NEXT: lw t4, 40(a5) 585; RV64I-NEXT: lw t5, 44(a5) 586; RV64I-NEXT: lw t6, 48(a5) 587; RV64I-NEXT: lw s0, 52(a5) 588; RV64I-NEXT: lw s1, 56(a5) 589; RV64I-NEXT: lw s2, 60(a5) 590; RV64I-NEXT: lw s3, 64(a5) 591; RV64I-NEXT: lw s4, 68(a5) 592; RV64I-NEXT: lw s5, 72(a5) 593; RV64I-NEXT: lw s6, 76(a5) 594; RV64I-NEXT: lw s7, 80(a5) 595; RV64I-NEXT: lw s8, 84(a5) 596; RV64I-NEXT: lw s9, 88(a5) 597; RV64I-NEXT: lw s10, 92(a5) 598; RV64I-NEXT: lw s11, 112(a5) 599; RV64I-NEXT: lw ra, 116(a5) 600; RV64I-NEXT: lw a3, 120(a5) 601; RV64I-NEXT: lw a0, 124(a5) 602; RV64I-NEXT: lw a6, 96(a5) 603; RV64I-NEXT: lw a4, 100(a5) 604; RV64I-NEXT: lw a2, 104(a5) 605; RV64I-NEXT: lw a1, 108(a5) 606; RV64I-NEXT: sw a0, 124(a5) 607; RV64I-NEXT: sw a3, 120(a5) 608; RV64I-NEXT: sw ra, 116(a5) 609; RV64I-NEXT: sw s11, 112(a5) 610; RV64I-NEXT: sw a1, 108(a5) 611; RV64I-NEXT: sw a2, 104(a5) 612; RV64I-NEXT: sw a4, 100(a5) 613; RV64I-NEXT: sw a6, 96(a5) 614; RV64I-NEXT: sw s10, 92(a5) 615; RV64I-NEXT: sw s9, 88(a5) 616; RV64I-NEXT: sw s8, 84(a5) 617; RV64I-NEXT: sw s7, 80(a5) 618; RV64I-NEXT: sw s6, 76(a5) 619; RV64I-NEXT: sw s5, 72(a5) 620; RV64I-NEXT: sw s4, 68(a5) 621; RV64I-NEXT: sw s3, 64(a5) 622; RV64I-NEXT: sw s2, 60(a5) 623; RV64I-NEXT: sw s1, 56(a5) 624; RV64I-NEXT: sw s0, 52(a5) 625; RV64I-NEXT: sw t6, 48(a5) 626; RV64I-NEXT: sw t5, 44(a5) 627; RV64I-NEXT: sw t4, 40(a5) 628; RV64I-NEXT: sw t3, 36(a5) 629; RV64I-NEXT: sw t2, 32(a5) 630; RV64I-NEXT: sw t1, 28(a5) 631; RV64I-NEXT: sw t0, 24(a5) 632; RV64I-NEXT: ld a0, 8(sp) # 8-byte Folded Reload 633; RV64I-NEXT: sw a0, 20(a5) 634; RV64I-NEXT: ld a0, 16(sp) # 8-byte Folded Reload 635; RV64I-NEXT: sw a0, 16(a5) 636; RV64I-NEXT: ld a0, 24(sp) # 8-byte Folded Reload 637; RV64I-NEXT: sw a0, %lo(var+12)(a7) 638; RV64I-NEXT: ld a0, 32(sp) # 8-byte Folded Reload 639; RV64I-NEXT: sw a0, %lo(var+8)(a7) 640; RV64I-NEXT: ld a0, 40(sp) # 8-byte Folded Reload 641; RV64I-NEXT: sw a0, %lo(var+4)(a7) 642; RV64I-NEXT: ld a0, 48(sp) # 8-byte Folded Reload 643; RV64I-NEXT: sw a0, %lo(var)(a7) 644; RV64I-NEXT: ld ra, 152(sp) # 8-byte Folded Reload 645; RV64I-NEXT: ld s0, 144(sp) # 8-byte Folded Reload 646; RV64I-NEXT: ld s1, 136(sp) # 8-byte Folded Reload 647; RV64I-NEXT: ld s2, 128(sp) # 8-byte Folded Reload 648; RV64I-NEXT: ld s3, 120(sp) # 8-byte Folded Reload 649; RV64I-NEXT: ld s4, 112(sp) # 8-byte Folded Reload 650; RV64I-NEXT: ld s5, 104(sp) # 8-byte Folded Reload 651; RV64I-NEXT: ld s6, 96(sp) # 8-byte Folded Reload 652; RV64I-NEXT: ld s7, 88(sp) # 8-byte Folded Reload 653; RV64I-NEXT: ld s8, 80(sp) # 8-byte Folded Reload 654; RV64I-NEXT: ld s9, 72(sp) # 8-byte Folded Reload 655; RV64I-NEXT: ld s10, 64(sp) # 8-byte Folded Reload 656; RV64I-NEXT: ld s11, 56(sp) # 8-byte Folded Reload 657; RV64I-NEXT: addi sp, sp, 160 658; RV64I-NEXT: ret 659; 660; RV64I-LP64E-LABEL: callee: 661; RV64I-LP64E: # %bb.0: 662; RV64I-LP64E-NEXT: addi sp, sp, -72 663; RV64I-LP64E-NEXT: sd ra, 64(sp) # 8-byte Folded Spill 664; RV64I-LP64E-NEXT: sd s0, 56(sp) # 8-byte Folded Spill 665; RV64I-LP64E-NEXT: sd s1, 48(sp) # 8-byte Folded Spill 666; RV64I-LP64E-NEXT: lui a7, %hi(var) 667; RV64I-LP64E-NEXT: lw a0, %lo(var)(a7) 668; RV64I-LP64E-NEXT: sd a0, 40(sp) # 8-byte Folded Spill 669; RV64I-LP64E-NEXT: lw a0, %lo(var+4)(a7) 670; RV64I-LP64E-NEXT: sd a0, 32(sp) # 8-byte Folded Spill 671; RV64I-LP64E-NEXT: lw a0, %lo(var+8)(a7) 672; RV64I-LP64E-NEXT: sd a0, 24(sp) # 8-byte Folded Spill 673; RV64I-LP64E-NEXT: lw a0, %lo(var+12)(a7) 674; RV64I-LP64E-NEXT: sd a0, 16(sp) # 8-byte Folded Spill 675; RV64I-LP64E-NEXT: addi a5, a7, %lo(var) 676; RV64I-LP64E-NEXT: lw a0, 16(a5) 677; RV64I-LP64E-NEXT: sd a0, 8(sp) # 8-byte Folded Spill 678; RV64I-LP64E-NEXT: lw a0, 20(a5) 679; RV64I-LP64E-NEXT: sd a0, 0(sp) # 8-byte Folded Spill 680; RV64I-LP64E-NEXT: lw t0, 24(a5) 681; RV64I-LP64E-NEXT: lw t1, 28(a5) 682; RV64I-LP64E-NEXT: lw t2, 32(a5) 683; RV64I-LP64E-NEXT: lw t3, 36(a5) 684; RV64I-LP64E-NEXT: lw t4, 40(a5) 685; RV64I-LP64E-NEXT: lw t5, 44(a5) 686; RV64I-LP64E-NEXT: lw t6, 48(a5) 687; RV64I-LP64E-NEXT: lw s2, 52(a5) 688; RV64I-LP64E-NEXT: lw s3, 56(a5) 689; RV64I-LP64E-NEXT: lw s4, 60(a5) 690; RV64I-LP64E-NEXT: lw s5, 64(a5) 691; RV64I-LP64E-NEXT: lw s6, 68(a5) 692; RV64I-LP64E-NEXT: lw s7, 72(a5) 693; RV64I-LP64E-NEXT: lw s8, 76(a5) 694; RV64I-LP64E-NEXT: lw s9, 80(a5) 695; RV64I-LP64E-NEXT: lw s10, 84(a5) 696; RV64I-LP64E-NEXT: lw s11, 88(a5) 697; RV64I-LP64E-NEXT: lw s0, 92(a5) 698; RV64I-LP64E-NEXT: lw s1, 112(a5) 699; RV64I-LP64E-NEXT: lw ra, 116(a5) 700; RV64I-LP64E-NEXT: lw a3, 120(a5) 701; RV64I-LP64E-NEXT: lw a0, 124(a5) 702; RV64I-LP64E-NEXT: lw a6, 96(a5) 703; RV64I-LP64E-NEXT: lw a4, 100(a5) 704; RV64I-LP64E-NEXT: lw a2, 104(a5) 705; RV64I-LP64E-NEXT: lw a1, 108(a5) 706; RV64I-LP64E-NEXT: sw a0, 124(a5) 707; RV64I-LP64E-NEXT: sw a3, 120(a5) 708; RV64I-LP64E-NEXT: sw ra, 116(a5) 709; RV64I-LP64E-NEXT: sw s1, 112(a5) 710; RV64I-LP64E-NEXT: sw a1, 108(a5) 711; RV64I-LP64E-NEXT: sw a2, 104(a5) 712; RV64I-LP64E-NEXT: sw a4, 100(a5) 713; RV64I-LP64E-NEXT: sw a6, 96(a5) 714; RV64I-LP64E-NEXT: sw s0, 92(a5) 715; RV64I-LP64E-NEXT: sw s11, 88(a5) 716; RV64I-LP64E-NEXT: sw s10, 84(a5) 717; RV64I-LP64E-NEXT: sw s9, 80(a5) 718; RV64I-LP64E-NEXT: sw s8, 76(a5) 719; RV64I-LP64E-NEXT: sw s7, 72(a5) 720; RV64I-LP64E-NEXT: sw s6, 68(a5) 721; RV64I-LP64E-NEXT: sw s5, 64(a5) 722; RV64I-LP64E-NEXT: sw s4, 60(a5) 723; RV64I-LP64E-NEXT: sw s3, 56(a5) 724; RV64I-LP64E-NEXT: sw s2, 52(a5) 725; RV64I-LP64E-NEXT: sw t6, 48(a5) 726; RV64I-LP64E-NEXT: sw t5, 44(a5) 727; RV64I-LP64E-NEXT: sw t4, 40(a5) 728; RV64I-LP64E-NEXT: sw t3, 36(a5) 729; RV64I-LP64E-NEXT: sw t2, 32(a5) 730; RV64I-LP64E-NEXT: sw t1, 28(a5) 731; RV64I-LP64E-NEXT: sw t0, 24(a5) 732; RV64I-LP64E-NEXT: ld a0, 0(sp) # 8-byte Folded Reload 733; RV64I-LP64E-NEXT: sw a0, 20(a5) 734; RV64I-LP64E-NEXT: ld a0, 8(sp) # 8-byte Folded Reload 735; RV64I-LP64E-NEXT: sw a0, 16(a5) 736; RV64I-LP64E-NEXT: ld a0, 16(sp) # 8-byte Folded Reload 737; RV64I-LP64E-NEXT: sw a0, %lo(var+12)(a7) 738; RV64I-LP64E-NEXT: ld a0, 24(sp) # 8-byte Folded Reload 739; RV64I-LP64E-NEXT: sw a0, %lo(var+8)(a7) 740; RV64I-LP64E-NEXT: ld a0, 32(sp) # 8-byte Folded Reload 741; RV64I-LP64E-NEXT: sw a0, %lo(var+4)(a7) 742; RV64I-LP64E-NEXT: ld a0, 40(sp) # 8-byte Folded Reload 743; RV64I-LP64E-NEXT: sw a0, %lo(var)(a7) 744; RV64I-LP64E-NEXT: ld ra, 64(sp) # 8-byte Folded Reload 745; RV64I-LP64E-NEXT: ld s0, 56(sp) # 8-byte Folded Reload 746; RV64I-LP64E-NEXT: ld s1, 48(sp) # 8-byte Folded Reload 747; RV64I-LP64E-NEXT: addi sp, sp, 72 748; RV64I-LP64E-NEXT: ret 749; 750; RV64I-WITH-FP-LABEL: callee: 751; RV64I-WITH-FP: # %bb.0: 752; RV64I-WITH-FP-NEXT: addi sp, sp, -160 753; RV64I-WITH-FP-NEXT: sd ra, 152(sp) # 8-byte Folded Spill 754; RV64I-WITH-FP-NEXT: sd s0, 144(sp) # 8-byte Folded Spill 755; RV64I-WITH-FP-NEXT: sd s1, 136(sp) # 8-byte Folded Spill 756; RV64I-WITH-FP-NEXT: sd s2, 128(sp) # 8-byte Folded Spill 757; RV64I-WITH-FP-NEXT: sd s3, 120(sp) # 8-byte Folded Spill 758; RV64I-WITH-FP-NEXT: sd s4, 112(sp) # 8-byte Folded Spill 759; RV64I-WITH-FP-NEXT: sd s5, 104(sp) # 8-byte Folded Spill 760; RV64I-WITH-FP-NEXT: sd s6, 96(sp) # 8-byte Folded Spill 761; RV64I-WITH-FP-NEXT: sd s7, 88(sp) # 8-byte Folded Spill 762; RV64I-WITH-FP-NEXT: sd s8, 80(sp) # 8-byte Folded Spill 763; RV64I-WITH-FP-NEXT: sd s9, 72(sp) # 8-byte Folded Spill 764; RV64I-WITH-FP-NEXT: sd s10, 64(sp) # 8-byte Folded Spill 765; RV64I-WITH-FP-NEXT: sd s11, 56(sp) # 8-byte Folded Spill 766; RV64I-WITH-FP-NEXT: addi s0, sp, 160 767; RV64I-WITH-FP-NEXT: lui t0, %hi(var) 768; RV64I-WITH-FP-NEXT: lw a0, %lo(var)(t0) 769; RV64I-WITH-FP-NEXT: sd a0, -112(s0) # 8-byte Folded Spill 770; RV64I-WITH-FP-NEXT: lw a0, %lo(var+4)(t0) 771; RV64I-WITH-FP-NEXT: sd a0, -120(s0) # 8-byte Folded Spill 772; RV64I-WITH-FP-NEXT: lw a0, %lo(var+8)(t0) 773; RV64I-WITH-FP-NEXT: sd a0, -128(s0) # 8-byte Folded Spill 774; RV64I-WITH-FP-NEXT: lw a0, %lo(var+12)(t0) 775; RV64I-WITH-FP-NEXT: sd a0, -136(s0) # 8-byte Folded Spill 776; RV64I-WITH-FP-NEXT: addi a5, t0, %lo(var) 777; RV64I-WITH-FP-NEXT: lw a0, 16(a5) 778; RV64I-WITH-FP-NEXT: sd a0, -144(s0) # 8-byte Folded Spill 779; RV64I-WITH-FP-NEXT: lw a0, 20(a5) 780; RV64I-WITH-FP-NEXT: sd a0, -152(s0) # 8-byte Folded Spill 781; RV64I-WITH-FP-NEXT: lw a0, 24(a5) 782; RV64I-WITH-FP-NEXT: sd a0, -160(s0) # 8-byte Folded Spill 783; RV64I-WITH-FP-NEXT: lw t1, 28(a5) 784; RV64I-WITH-FP-NEXT: lw t2, 32(a5) 785; RV64I-WITH-FP-NEXT: lw t3, 36(a5) 786; RV64I-WITH-FP-NEXT: lw t4, 40(a5) 787; RV64I-WITH-FP-NEXT: lw t5, 44(a5) 788; RV64I-WITH-FP-NEXT: lw t6, 48(a5) 789; RV64I-WITH-FP-NEXT: lw s1, 52(a5) 790; RV64I-WITH-FP-NEXT: lw s2, 56(a5) 791; RV64I-WITH-FP-NEXT: lw s3, 60(a5) 792; RV64I-WITH-FP-NEXT: lw s4, 64(a5) 793; RV64I-WITH-FP-NEXT: lw s5, 68(a5) 794; RV64I-WITH-FP-NEXT: lw s6, 72(a5) 795; RV64I-WITH-FP-NEXT: lw s7, 76(a5) 796; RV64I-WITH-FP-NEXT: lw s8, 80(a5) 797; RV64I-WITH-FP-NEXT: lw s9, 84(a5) 798; RV64I-WITH-FP-NEXT: lw s10, 88(a5) 799; RV64I-WITH-FP-NEXT: lw s11, 92(a5) 800; RV64I-WITH-FP-NEXT: lw ra, 112(a5) 801; RV64I-WITH-FP-NEXT: lw a4, 116(a5) 802; RV64I-WITH-FP-NEXT: lw a3, 120(a5) 803; RV64I-WITH-FP-NEXT: lw a0, 124(a5) 804; RV64I-WITH-FP-NEXT: lw a7, 96(a5) 805; RV64I-WITH-FP-NEXT: lw a6, 100(a5) 806; RV64I-WITH-FP-NEXT: lw a2, 104(a5) 807; RV64I-WITH-FP-NEXT: lw a1, 108(a5) 808; RV64I-WITH-FP-NEXT: sw a0, 124(a5) 809; RV64I-WITH-FP-NEXT: sw a3, 120(a5) 810; RV64I-WITH-FP-NEXT: sw a4, 116(a5) 811; RV64I-WITH-FP-NEXT: sw ra, 112(a5) 812; RV64I-WITH-FP-NEXT: sw a1, 108(a5) 813; RV64I-WITH-FP-NEXT: sw a2, 104(a5) 814; RV64I-WITH-FP-NEXT: sw a6, 100(a5) 815; RV64I-WITH-FP-NEXT: sw a7, 96(a5) 816; RV64I-WITH-FP-NEXT: sw s11, 92(a5) 817; RV64I-WITH-FP-NEXT: sw s10, 88(a5) 818; RV64I-WITH-FP-NEXT: sw s9, 84(a5) 819; RV64I-WITH-FP-NEXT: sw s8, 80(a5) 820; RV64I-WITH-FP-NEXT: sw s7, 76(a5) 821; RV64I-WITH-FP-NEXT: sw s6, 72(a5) 822; RV64I-WITH-FP-NEXT: sw s5, 68(a5) 823; RV64I-WITH-FP-NEXT: sw s4, 64(a5) 824; RV64I-WITH-FP-NEXT: sw s3, 60(a5) 825; RV64I-WITH-FP-NEXT: sw s2, 56(a5) 826; RV64I-WITH-FP-NEXT: sw s1, 52(a5) 827; RV64I-WITH-FP-NEXT: sw t6, 48(a5) 828; RV64I-WITH-FP-NEXT: sw t5, 44(a5) 829; RV64I-WITH-FP-NEXT: sw t4, 40(a5) 830; RV64I-WITH-FP-NEXT: sw t3, 36(a5) 831; RV64I-WITH-FP-NEXT: sw t2, 32(a5) 832; RV64I-WITH-FP-NEXT: sw t1, 28(a5) 833; RV64I-WITH-FP-NEXT: ld a0, -160(s0) # 8-byte Folded Reload 834; RV64I-WITH-FP-NEXT: sw a0, 24(a5) 835; RV64I-WITH-FP-NEXT: ld a0, -152(s0) # 8-byte Folded Reload 836; RV64I-WITH-FP-NEXT: sw a0, 20(a5) 837; RV64I-WITH-FP-NEXT: ld a0, -144(s0) # 8-byte Folded Reload 838; RV64I-WITH-FP-NEXT: sw a0, 16(a5) 839; RV64I-WITH-FP-NEXT: ld a0, -136(s0) # 8-byte Folded Reload 840; RV64I-WITH-FP-NEXT: sw a0, %lo(var+12)(t0) 841; RV64I-WITH-FP-NEXT: ld a0, -128(s0) # 8-byte Folded Reload 842; RV64I-WITH-FP-NEXT: sw a0, %lo(var+8)(t0) 843; RV64I-WITH-FP-NEXT: ld a0, -120(s0) # 8-byte Folded Reload 844; RV64I-WITH-FP-NEXT: sw a0, %lo(var+4)(t0) 845; RV64I-WITH-FP-NEXT: ld a0, -112(s0) # 8-byte Folded Reload 846; RV64I-WITH-FP-NEXT: sw a0, %lo(var)(t0) 847; RV64I-WITH-FP-NEXT: ld ra, 152(sp) # 8-byte Folded Reload 848; RV64I-WITH-FP-NEXT: ld s0, 144(sp) # 8-byte Folded Reload 849; RV64I-WITH-FP-NEXT: ld s1, 136(sp) # 8-byte Folded Reload 850; RV64I-WITH-FP-NEXT: ld s2, 128(sp) # 8-byte Folded Reload 851; RV64I-WITH-FP-NEXT: ld s3, 120(sp) # 8-byte Folded Reload 852; RV64I-WITH-FP-NEXT: ld s4, 112(sp) # 8-byte Folded Reload 853; RV64I-WITH-FP-NEXT: ld s5, 104(sp) # 8-byte Folded Reload 854; RV64I-WITH-FP-NEXT: ld s6, 96(sp) # 8-byte Folded Reload 855; RV64I-WITH-FP-NEXT: ld s7, 88(sp) # 8-byte Folded Reload 856; RV64I-WITH-FP-NEXT: ld s8, 80(sp) # 8-byte Folded Reload 857; RV64I-WITH-FP-NEXT: ld s9, 72(sp) # 8-byte Folded Reload 858; RV64I-WITH-FP-NEXT: ld s10, 64(sp) # 8-byte Folded Reload 859; RV64I-WITH-FP-NEXT: ld s11, 56(sp) # 8-byte Folded Reload 860; RV64I-WITH-FP-NEXT: addi sp, sp, 160 861; RV64I-WITH-FP-NEXT: ret 862; 863; RV64IZCMP-LABEL: callee: 864; RV64IZCMP: # %bb.0: 865; RV64IZCMP-NEXT: cm.push {ra, s0-s11}, -160 866; RV64IZCMP-NEXT: lui t0, %hi(var) 867; RV64IZCMP-NEXT: lw a0, %lo(var)(t0) 868; RV64IZCMP-NEXT: sd a0, 40(sp) # 8-byte Folded Spill 869; RV64IZCMP-NEXT: lw a0, %lo(var+4)(t0) 870; RV64IZCMP-NEXT: sd a0, 32(sp) # 8-byte Folded Spill 871; RV64IZCMP-NEXT: lw a0, %lo(var+8)(t0) 872; RV64IZCMP-NEXT: sd a0, 24(sp) # 8-byte Folded Spill 873; RV64IZCMP-NEXT: lw a0, %lo(var+12)(t0) 874; RV64IZCMP-NEXT: sd a0, 16(sp) # 8-byte Folded Spill 875; RV64IZCMP-NEXT: addi a5, t0, %lo(var) 876; RV64IZCMP-NEXT: lw a0, 16(a5) 877; RV64IZCMP-NEXT: sd a0, 8(sp) # 8-byte Folded Spill 878; RV64IZCMP-NEXT: lw a0, 20(a5) 879; RV64IZCMP-NEXT: sd a0, 0(sp) # 8-byte Folded Spill 880; RV64IZCMP-NEXT: lw t4, 24(a5) 881; RV64IZCMP-NEXT: lw t5, 28(a5) 882; RV64IZCMP-NEXT: lw t6, 32(a5) 883; RV64IZCMP-NEXT: lw s2, 36(a5) 884; RV64IZCMP-NEXT: lw s3, 40(a5) 885; RV64IZCMP-NEXT: lw s4, 44(a5) 886; RV64IZCMP-NEXT: lw s5, 48(a5) 887; RV64IZCMP-NEXT: lw s6, 52(a5) 888; RV64IZCMP-NEXT: lw s7, 56(a5) 889; RV64IZCMP-NEXT: lw s8, 60(a5) 890; RV64IZCMP-NEXT: lw s9, 64(a5) 891; RV64IZCMP-NEXT: lw s10, 68(a5) 892; RV64IZCMP-NEXT: lw s11, 72(a5) 893; RV64IZCMP-NEXT: lw ra, 76(a5) 894; RV64IZCMP-NEXT: lw s1, 80(a5) 895; RV64IZCMP-NEXT: lw t3, 84(a5) 896; RV64IZCMP-NEXT: lw t2, 88(a5) 897; RV64IZCMP-NEXT: lw t1, 92(a5) 898; RV64IZCMP-NEXT: lw a7, 112(a5) 899; RV64IZCMP-NEXT: lw s0, 116(a5) 900; RV64IZCMP-NEXT: lw a3, 120(a5) 901; RV64IZCMP-NEXT: lw a0, 124(a5) 902; RV64IZCMP-NEXT: lw a6, 96(a5) 903; RV64IZCMP-NEXT: lw a4, 100(a5) 904; RV64IZCMP-NEXT: lw a2, 104(a5) 905; RV64IZCMP-NEXT: lw a1, 108(a5) 906; RV64IZCMP-NEXT: sw a0, 124(a5) 907; RV64IZCMP-NEXT: sw a3, 120(a5) 908; RV64IZCMP-NEXT: sw s0, 116(a5) 909; RV64IZCMP-NEXT: sw a7, 112(a5) 910; RV64IZCMP-NEXT: sw a1, 108(a5) 911; RV64IZCMP-NEXT: sw a2, 104(a5) 912; RV64IZCMP-NEXT: sw a4, 100(a5) 913; RV64IZCMP-NEXT: sw a6, 96(a5) 914; RV64IZCMP-NEXT: sw t1, 92(a5) 915; RV64IZCMP-NEXT: sw t2, 88(a5) 916; RV64IZCMP-NEXT: sw t3, 84(a5) 917; RV64IZCMP-NEXT: sw s1, 80(a5) 918; RV64IZCMP-NEXT: sw ra, 76(a5) 919; RV64IZCMP-NEXT: sw s11, 72(a5) 920; RV64IZCMP-NEXT: sw s10, 68(a5) 921; RV64IZCMP-NEXT: sw s9, 64(a5) 922; RV64IZCMP-NEXT: sw s8, 60(a5) 923; RV64IZCMP-NEXT: sw s7, 56(a5) 924; RV64IZCMP-NEXT: sw s6, 52(a5) 925; RV64IZCMP-NEXT: sw s5, 48(a5) 926; RV64IZCMP-NEXT: sw s4, 44(a5) 927; RV64IZCMP-NEXT: sw s3, 40(a5) 928; RV64IZCMP-NEXT: sw s2, 36(a5) 929; RV64IZCMP-NEXT: sw t6, 32(a5) 930; RV64IZCMP-NEXT: sw t5, 28(a5) 931; RV64IZCMP-NEXT: sw t4, 24(a5) 932; RV64IZCMP-NEXT: ld a0, 0(sp) # 8-byte Folded Reload 933; RV64IZCMP-NEXT: sw a0, 20(a5) 934; RV64IZCMP-NEXT: ld a0, 8(sp) # 8-byte Folded Reload 935; RV64IZCMP-NEXT: sw a0, 16(a5) 936; RV64IZCMP-NEXT: ld a0, 16(sp) # 8-byte Folded Reload 937; RV64IZCMP-NEXT: sw a0, %lo(var+12)(t0) 938; RV64IZCMP-NEXT: ld a0, 24(sp) # 8-byte Folded Reload 939; RV64IZCMP-NEXT: sw a0, %lo(var+8)(t0) 940; RV64IZCMP-NEXT: ld a0, 32(sp) # 8-byte Folded Reload 941; RV64IZCMP-NEXT: sw a0, %lo(var+4)(t0) 942; RV64IZCMP-NEXT: ld a0, 40(sp) # 8-byte Folded Reload 943; RV64IZCMP-NEXT: sw a0, %lo(var)(t0) 944; RV64IZCMP-NEXT: cm.popret {ra, s0-s11}, 160 945; 946; RV64IZCMP-WITH-FP-LABEL: callee: 947; RV64IZCMP-WITH-FP: # %bb.0: 948; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -160 949; RV64IZCMP-WITH-FP-NEXT: sd ra, 152(sp) # 8-byte Folded Spill 950; RV64IZCMP-WITH-FP-NEXT: sd s0, 144(sp) # 8-byte Folded Spill 951; RV64IZCMP-WITH-FP-NEXT: sd s1, 136(sp) # 8-byte Folded Spill 952; RV64IZCMP-WITH-FP-NEXT: sd s2, 128(sp) # 8-byte Folded Spill 953; RV64IZCMP-WITH-FP-NEXT: sd s3, 120(sp) # 8-byte Folded Spill 954; RV64IZCMP-WITH-FP-NEXT: sd s4, 112(sp) # 8-byte Folded Spill 955; RV64IZCMP-WITH-FP-NEXT: sd s5, 104(sp) # 8-byte Folded Spill 956; RV64IZCMP-WITH-FP-NEXT: sd s6, 96(sp) # 8-byte Folded Spill 957; RV64IZCMP-WITH-FP-NEXT: sd s7, 88(sp) # 8-byte Folded Spill 958; RV64IZCMP-WITH-FP-NEXT: sd s8, 80(sp) # 8-byte Folded Spill 959; RV64IZCMP-WITH-FP-NEXT: sd s9, 72(sp) # 8-byte Folded Spill 960; RV64IZCMP-WITH-FP-NEXT: sd s10, 64(sp) # 8-byte Folded Spill 961; RV64IZCMP-WITH-FP-NEXT: sd s11, 56(sp) # 8-byte Folded Spill 962; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 160 963; RV64IZCMP-WITH-FP-NEXT: lui t1, %hi(var) 964; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var)(t1) 965; RV64IZCMP-WITH-FP-NEXT: sd a0, -112(s0) # 8-byte Folded Spill 966; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+4)(t1) 967; RV64IZCMP-WITH-FP-NEXT: sd a0, -120(s0) # 8-byte Folded Spill 968; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+8)(t1) 969; RV64IZCMP-WITH-FP-NEXT: sd a0, -128(s0) # 8-byte Folded Spill 970; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+12)(t1) 971; RV64IZCMP-WITH-FP-NEXT: sd a0, -136(s0) # 8-byte Folded Spill 972; RV64IZCMP-WITH-FP-NEXT: addi a5, t1, %lo(var) 973; RV64IZCMP-WITH-FP-NEXT: lw a0, 16(a5) 974; RV64IZCMP-WITH-FP-NEXT: sd a0, -144(s0) # 8-byte Folded Spill 975; RV64IZCMP-WITH-FP-NEXT: lw a0, 20(a5) 976; RV64IZCMP-WITH-FP-NEXT: sd a0, -152(s0) # 8-byte Folded Spill 977; RV64IZCMP-WITH-FP-NEXT: lw a0, 24(a5) 978; RV64IZCMP-WITH-FP-NEXT: sd a0, -160(s0) # 8-byte Folded Spill 979; RV64IZCMP-WITH-FP-NEXT: lw t5, 28(a5) 980; RV64IZCMP-WITH-FP-NEXT: lw t6, 32(a5) 981; RV64IZCMP-WITH-FP-NEXT: lw s2, 36(a5) 982; RV64IZCMP-WITH-FP-NEXT: lw s3, 40(a5) 983; RV64IZCMP-WITH-FP-NEXT: lw s4, 44(a5) 984; RV64IZCMP-WITH-FP-NEXT: lw s5, 48(a5) 985; RV64IZCMP-WITH-FP-NEXT: lw s6, 52(a5) 986; RV64IZCMP-WITH-FP-NEXT: lw s7, 56(a5) 987; RV64IZCMP-WITH-FP-NEXT: lw s8, 60(a5) 988; RV64IZCMP-WITH-FP-NEXT: lw s9, 64(a5) 989; RV64IZCMP-WITH-FP-NEXT: lw s10, 68(a5) 990; RV64IZCMP-WITH-FP-NEXT: lw s11, 72(a5) 991; RV64IZCMP-WITH-FP-NEXT: lw ra, 76(a5) 992; RV64IZCMP-WITH-FP-NEXT: lw t4, 80(a5) 993; RV64IZCMP-WITH-FP-NEXT: lw t3, 84(a5) 994; RV64IZCMP-WITH-FP-NEXT: lw t2, 88(a5) 995; RV64IZCMP-WITH-FP-NEXT: lw s1, 92(a5) 996; RV64IZCMP-WITH-FP-NEXT: lw t0, 112(a5) 997; RV64IZCMP-WITH-FP-NEXT: lw a4, 116(a5) 998; RV64IZCMP-WITH-FP-NEXT: lw a3, 120(a5) 999; RV64IZCMP-WITH-FP-NEXT: lw a0, 124(a5) 1000; RV64IZCMP-WITH-FP-NEXT: lw a7, 96(a5) 1001; RV64IZCMP-WITH-FP-NEXT: lw a6, 100(a5) 1002; RV64IZCMP-WITH-FP-NEXT: lw a2, 104(a5) 1003; RV64IZCMP-WITH-FP-NEXT: lw a1, 108(a5) 1004; RV64IZCMP-WITH-FP-NEXT: sw a0, 124(a5) 1005; RV64IZCMP-WITH-FP-NEXT: sw a3, 120(a5) 1006; RV64IZCMP-WITH-FP-NEXT: sw a4, 116(a5) 1007; RV64IZCMP-WITH-FP-NEXT: sw t0, 112(a5) 1008; RV64IZCMP-WITH-FP-NEXT: sw a1, 108(a5) 1009; RV64IZCMP-WITH-FP-NEXT: sw a2, 104(a5) 1010; RV64IZCMP-WITH-FP-NEXT: sw a6, 100(a5) 1011; RV64IZCMP-WITH-FP-NEXT: sw a7, 96(a5) 1012; RV64IZCMP-WITH-FP-NEXT: sw s1, 92(a5) 1013; RV64IZCMP-WITH-FP-NEXT: sw t2, 88(a5) 1014; RV64IZCMP-WITH-FP-NEXT: sw t3, 84(a5) 1015; RV64IZCMP-WITH-FP-NEXT: sw t4, 80(a5) 1016; RV64IZCMP-WITH-FP-NEXT: sw ra, 76(a5) 1017; RV64IZCMP-WITH-FP-NEXT: sw s11, 72(a5) 1018; RV64IZCMP-WITH-FP-NEXT: sw s10, 68(a5) 1019; RV64IZCMP-WITH-FP-NEXT: sw s9, 64(a5) 1020; RV64IZCMP-WITH-FP-NEXT: sw s8, 60(a5) 1021; RV64IZCMP-WITH-FP-NEXT: sw s7, 56(a5) 1022; RV64IZCMP-WITH-FP-NEXT: sw s6, 52(a5) 1023; RV64IZCMP-WITH-FP-NEXT: sw s5, 48(a5) 1024; RV64IZCMP-WITH-FP-NEXT: sw s4, 44(a5) 1025; RV64IZCMP-WITH-FP-NEXT: sw s3, 40(a5) 1026; RV64IZCMP-WITH-FP-NEXT: sw s2, 36(a5) 1027; RV64IZCMP-WITH-FP-NEXT: sw t6, 32(a5) 1028; RV64IZCMP-WITH-FP-NEXT: sw t5, 28(a5) 1029; RV64IZCMP-WITH-FP-NEXT: ld a0, -160(s0) # 8-byte Folded Reload 1030; RV64IZCMP-WITH-FP-NEXT: sw a0, 24(a5) 1031; RV64IZCMP-WITH-FP-NEXT: ld a0, -152(s0) # 8-byte Folded Reload 1032; RV64IZCMP-WITH-FP-NEXT: sw a0, 20(a5) 1033; RV64IZCMP-WITH-FP-NEXT: ld a0, -144(s0) # 8-byte Folded Reload 1034; RV64IZCMP-WITH-FP-NEXT: sw a0, 16(a5) 1035; RV64IZCMP-WITH-FP-NEXT: ld a0, -136(s0) # 8-byte Folded Reload 1036; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+12)(t1) 1037; RV64IZCMP-WITH-FP-NEXT: ld a0, -128(s0) # 8-byte Folded Reload 1038; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+8)(t1) 1039; RV64IZCMP-WITH-FP-NEXT: ld a0, -120(s0) # 8-byte Folded Reload 1040; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+4)(t1) 1041; RV64IZCMP-WITH-FP-NEXT: ld a0, -112(s0) # 8-byte Folded Reload 1042; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var)(t1) 1043; RV64IZCMP-WITH-FP-NEXT: ld ra, 152(sp) # 8-byte Folded Reload 1044; RV64IZCMP-WITH-FP-NEXT: ld s0, 144(sp) # 8-byte Folded Reload 1045; RV64IZCMP-WITH-FP-NEXT: ld s1, 136(sp) # 8-byte Folded Reload 1046; RV64IZCMP-WITH-FP-NEXT: ld s2, 128(sp) # 8-byte Folded Reload 1047; RV64IZCMP-WITH-FP-NEXT: ld s3, 120(sp) # 8-byte Folded Reload 1048; RV64IZCMP-WITH-FP-NEXT: ld s4, 112(sp) # 8-byte Folded Reload 1049; RV64IZCMP-WITH-FP-NEXT: ld s5, 104(sp) # 8-byte Folded Reload 1050; RV64IZCMP-WITH-FP-NEXT: ld s6, 96(sp) # 8-byte Folded Reload 1051; RV64IZCMP-WITH-FP-NEXT: ld s7, 88(sp) # 8-byte Folded Reload 1052; RV64IZCMP-WITH-FP-NEXT: ld s8, 80(sp) # 8-byte Folded Reload 1053; RV64IZCMP-WITH-FP-NEXT: ld s9, 72(sp) # 8-byte Folded Reload 1054; RV64IZCMP-WITH-FP-NEXT: ld s10, 64(sp) # 8-byte Folded Reload 1055; RV64IZCMP-WITH-FP-NEXT: ld s11, 56(sp) # 8-byte Folded Reload 1056; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 160 1057; RV64IZCMP-WITH-FP-NEXT: ret 1058 %val = load [32 x i32], ptr @var 1059 store volatile [32 x i32] %val, ptr @var 1060 ret void 1061} 1062 1063; This function tests that RISCVRegisterInfo::getCallPreservedMask returns 1064; something appropriate. 1065 1066define void @caller() nounwind { 1067; RV32I-LABEL: caller: 1068; RV32I: # %bb.0: 1069; RV32I-NEXT: addi sp, sp, -144 1070; RV32I-NEXT: sw ra, 140(sp) # 4-byte Folded Spill 1071; RV32I-NEXT: sw s0, 136(sp) # 4-byte Folded Spill 1072; RV32I-NEXT: sw s1, 132(sp) # 4-byte Folded Spill 1073; RV32I-NEXT: sw s2, 128(sp) # 4-byte Folded Spill 1074; RV32I-NEXT: sw s3, 124(sp) # 4-byte Folded Spill 1075; RV32I-NEXT: sw s4, 120(sp) # 4-byte Folded Spill 1076; RV32I-NEXT: sw s5, 116(sp) # 4-byte Folded Spill 1077; RV32I-NEXT: sw s6, 112(sp) # 4-byte Folded Spill 1078; RV32I-NEXT: sw s7, 108(sp) # 4-byte Folded Spill 1079; RV32I-NEXT: sw s8, 104(sp) # 4-byte Folded Spill 1080; RV32I-NEXT: sw s9, 100(sp) # 4-byte Folded Spill 1081; RV32I-NEXT: sw s10, 96(sp) # 4-byte Folded Spill 1082; RV32I-NEXT: sw s11, 92(sp) # 4-byte Folded Spill 1083; RV32I-NEXT: lui s0, %hi(var) 1084; RV32I-NEXT: lw a0, %lo(var)(s0) 1085; RV32I-NEXT: sw a0, 88(sp) # 4-byte Folded Spill 1086; RV32I-NEXT: lw a0, %lo(var+4)(s0) 1087; RV32I-NEXT: sw a0, 84(sp) # 4-byte Folded Spill 1088; RV32I-NEXT: lw a0, %lo(var+8)(s0) 1089; RV32I-NEXT: sw a0, 80(sp) # 4-byte Folded Spill 1090; RV32I-NEXT: lw a0, %lo(var+12)(s0) 1091; RV32I-NEXT: sw a0, 76(sp) # 4-byte Folded Spill 1092; RV32I-NEXT: addi s5, s0, %lo(var) 1093; RV32I-NEXT: lw a0, 16(s5) 1094; RV32I-NEXT: sw a0, 72(sp) # 4-byte Folded Spill 1095; RV32I-NEXT: lw a0, 20(s5) 1096; RV32I-NEXT: sw a0, 68(sp) # 4-byte Folded Spill 1097; RV32I-NEXT: lw a0, 24(s5) 1098; RV32I-NEXT: sw a0, 64(sp) # 4-byte Folded Spill 1099; RV32I-NEXT: lw a0, 28(s5) 1100; RV32I-NEXT: sw a0, 60(sp) # 4-byte Folded Spill 1101; RV32I-NEXT: lw a0, 32(s5) 1102; RV32I-NEXT: sw a0, 56(sp) # 4-byte Folded Spill 1103; RV32I-NEXT: lw a0, 36(s5) 1104; RV32I-NEXT: sw a0, 52(sp) # 4-byte Folded Spill 1105; RV32I-NEXT: lw a0, 40(s5) 1106; RV32I-NEXT: sw a0, 48(sp) # 4-byte Folded Spill 1107; RV32I-NEXT: lw a0, 44(s5) 1108; RV32I-NEXT: sw a0, 44(sp) # 4-byte Folded Spill 1109; RV32I-NEXT: lw a0, 48(s5) 1110; RV32I-NEXT: sw a0, 40(sp) # 4-byte Folded Spill 1111; RV32I-NEXT: lw a0, 52(s5) 1112; RV32I-NEXT: sw a0, 36(sp) # 4-byte Folded Spill 1113; RV32I-NEXT: lw a0, 56(s5) 1114; RV32I-NEXT: sw a0, 32(sp) # 4-byte Folded Spill 1115; RV32I-NEXT: lw a0, 60(s5) 1116; RV32I-NEXT: sw a0, 28(sp) # 4-byte Folded Spill 1117; RV32I-NEXT: lw a0, 64(s5) 1118; RV32I-NEXT: sw a0, 24(sp) # 4-byte Folded Spill 1119; RV32I-NEXT: lw a0, 68(s5) 1120; RV32I-NEXT: sw a0, 20(sp) # 4-byte Folded Spill 1121; RV32I-NEXT: lw a0, 72(s5) 1122; RV32I-NEXT: sw a0, 16(sp) # 4-byte Folded Spill 1123; RV32I-NEXT: lw a0, 76(s5) 1124; RV32I-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 1125; RV32I-NEXT: lw a0, 80(s5) 1126; RV32I-NEXT: sw a0, 8(sp) # 4-byte Folded Spill 1127; RV32I-NEXT: lw a0, 84(s5) 1128; RV32I-NEXT: sw a0, 4(sp) # 4-byte Folded Spill 1129; RV32I-NEXT: lw s3, 88(s5) 1130; RV32I-NEXT: lw s4, 92(s5) 1131; RV32I-NEXT: lw s6, 96(s5) 1132; RV32I-NEXT: lw s7, 100(s5) 1133; RV32I-NEXT: lw s8, 104(s5) 1134; RV32I-NEXT: lw s9, 108(s5) 1135; RV32I-NEXT: lw s10, 112(s5) 1136; RV32I-NEXT: lw s11, 116(s5) 1137; RV32I-NEXT: lw s1, 120(s5) 1138; RV32I-NEXT: lw s2, 124(s5) 1139; RV32I-NEXT: call callee 1140; RV32I-NEXT: sw s2, 124(s5) 1141; RV32I-NEXT: sw s1, 120(s5) 1142; RV32I-NEXT: sw s11, 116(s5) 1143; RV32I-NEXT: sw s10, 112(s5) 1144; RV32I-NEXT: sw s9, 108(s5) 1145; RV32I-NEXT: sw s8, 104(s5) 1146; RV32I-NEXT: sw s7, 100(s5) 1147; RV32I-NEXT: sw s6, 96(s5) 1148; RV32I-NEXT: sw s4, 92(s5) 1149; RV32I-NEXT: sw s3, 88(s5) 1150; RV32I-NEXT: lw a0, 4(sp) # 4-byte Folded Reload 1151; RV32I-NEXT: sw a0, 84(s5) 1152; RV32I-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 1153; RV32I-NEXT: sw a0, 80(s5) 1154; RV32I-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 1155; RV32I-NEXT: sw a0, 76(s5) 1156; RV32I-NEXT: lw a0, 16(sp) # 4-byte Folded Reload 1157; RV32I-NEXT: sw a0, 72(s5) 1158; RV32I-NEXT: lw a0, 20(sp) # 4-byte Folded Reload 1159; RV32I-NEXT: sw a0, 68(s5) 1160; RV32I-NEXT: lw a0, 24(sp) # 4-byte Folded Reload 1161; RV32I-NEXT: sw a0, 64(s5) 1162; RV32I-NEXT: lw a0, 28(sp) # 4-byte Folded Reload 1163; RV32I-NEXT: sw a0, 60(s5) 1164; RV32I-NEXT: lw a0, 32(sp) # 4-byte Folded Reload 1165; RV32I-NEXT: sw a0, 56(s5) 1166; RV32I-NEXT: lw a0, 36(sp) # 4-byte Folded Reload 1167; RV32I-NEXT: sw a0, 52(s5) 1168; RV32I-NEXT: lw a0, 40(sp) # 4-byte Folded Reload 1169; RV32I-NEXT: sw a0, 48(s5) 1170; RV32I-NEXT: lw a0, 44(sp) # 4-byte Folded Reload 1171; RV32I-NEXT: sw a0, 44(s5) 1172; RV32I-NEXT: lw a0, 48(sp) # 4-byte Folded Reload 1173; RV32I-NEXT: sw a0, 40(s5) 1174; RV32I-NEXT: lw a0, 52(sp) # 4-byte Folded Reload 1175; RV32I-NEXT: sw a0, 36(s5) 1176; RV32I-NEXT: lw a0, 56(sp) # 4-byte Folded Reload 1177; RV32I-NEXT: sw a0, 32(s5) 1178; RV32I-NEXT: lw a0, 60(sp) # 4-byte Folded Reload 1179; RV32I-NEXT: sw a0, 28(s5) 1180; RV32I-NEXT: lw a0, 64(sp) # 4-byte Folded Reload 1181; RV32I-NEXT: sw a0, 24(s5) 1182; RV32I-NEXT: lw a0, 68(sp) # 4-byte Folded Reload 1183; RV32I-NEXT: sw a0, 20(s5) 1184; RV32I-NEXT: lw a0, 72(sp) # 4-byte Folded Reload 1185; RV32I-NEXT: sw a0, 16(s5) 1186; RV32I-NEXT: lw a0, 76(sp) # 4-byte Folded Reload 1187; RV32I-NEXT: sw a0, %lo(var+12)(s0) 1188; RV32I-NEXT: lw a0, 80(sp) # 4-byte Folded Reload 1189; RV32I-NEXT: sw a0, %lo(var+8)(s0) 1190; RV32I-NEXT: lw a0, 84(sp) # 4-byte Folded Reload 1191; RV32I-NEXT: sw a0, %lo(var+4)(s0) 1192; RV32I-NEXT: lw a0, 88(sp) # 4-byte Folded Reload 1193; RV32I-NEXT: sw a0, %lo(var)(s0) 1194; RV32I-NEXT: lw ra, 140(sp) # 4-byte Folded Reload 1195; RV32I-NEXT: lw s0, 136(sp) # 4-byte Folded Reload 1196; RV32I-NEXT: lw s1, 132(sp) # 4-byte Folded Reload 1197; RV32I-NEXT: lw s2, 128(sp) # 4-byte Folded Reload 1198; RV32I-NEXT: lw s3, 124(sp) # 4-byte Folded Reload 1199; RV32I-NEXT: lw s4, 120(sp) # 4-byte Folded Reload 1200; RV32I-NEXT: lw s5, 116(sp) # 4-byte Folded Reload 1201; RV32I-NEXT: lw s6, 112(sp) # 4-byte Folded Reload 1202; RV32I-NEXT: lw s7, 108(sp) # 4-byte Folded Reload 1203; RV32I-NEXT: lw s8, 104(sp) # 4-byte Folded Reload 1204; RV32I-NEXT: lw s9, 100(sp) # 4-byte Folded Reload 1205; RV32I-NEXT: lw s10, 96(sp) # 4-byte Folded Reload 1206; RV32I-NEXT: lw s11, 92(sp) # 4-byte Folded Reload 1207; RV32I-NEXT: addi sp, sp, 144 1208; RV32I-NEXT: ret 1209; 1210; RV32I-ILP32E-LABEL: caller: 1211; RV32I-ILP32E: # %bb.0: 1212; RV32I-ILP32E-NEXT: addi sp, sp, -136 1213; RV32I-ILP32E-NEXT: sw ra, 132(sp) # 4-byte Folded Spill 1214; RV32I-ILP32E-NEXT: sw s0, 128(sp) # 4-byte Folded Spill 1215; RV32I-ILP32E-NEXT: sw s1, 124(sp) # 4-byte Folded Spill 1216; RV32I-ILP32E-NEXT: lui a0, %hi(var) 1217; RV32I-ILP32E-NEXT: lw a1, %lo(var)(a0) 1218; RV32I-ILP32E-NEXT: sw a1, 120(sp) # 4-byte Folded Spill 1219; RV32I-ILP32E-NEXT: lw a1, %lo(var+4)(a0) 1220; RV32I-ILP32E-NEXT: sw a1, 116(sp) # 4-byte Folded Spill 1221; RV32I-ILP32E-NEXT: lw a1, %lo(var+8)(a0) 1222; RV32I-ILP32E-NEXT: sw a1, 112(sp) # 4-byte Folded Spill 1223; RV32I-ILP32E-NEXT: lw a1, %lo(var+12)(a0) 1224; RV32I-ILP32E-NEXT: sw a1, 108(sp) # 4-byte Folded Spill 1225; RV32I-ILP32E-NEXT: addi s1, a0, %lo(var) 1226; RV32I-ILP32E-NEXT: lw a0, 16(s1) 1227; RV32I-ILP32E-NEXT: sw a0, 104(sp) # 4-byte Folded Spill 1228; RV32I-ILP32E-NEXT: lw a0, 20(s1) 1229; RV32I-ILP32E-NEXT: sw a0, 100(sp) # 4-byte Folded Spill 1230; RV32I-ILP32E-NEXT: lw a0, 24(s1) 1231; RV32I-ILP32E-NEXT: sw a0, 96(sp) # 4-byte Folded Spill 1232; RV32I-ILP32E-NEXT: lw a0, 28(s1) 1233; RV32I-ILP32E-NEXT: sw a0, 92(sp) # 4-byte Folded Spill 1234; RV32I-ILP32E-NEXT: lw a0, 32(s1) 1235; RV32I-ILP32E-NEXT: sw a0, 88(sp) # 4-byte Folded Spill 1236; RV32I-ILP32E-NEXT: lw a0, 36(s1) 1237; RV32I-ILP32E-NEXT: sw a0, 84(sp) # 4-byte Folded Spill 1238; RV32I-ILP32E-NEXT: lw a0, 40(s1) 1239; RV32I-ILP32E-NEXT: sw a0, 80(sp) # 4-byte Folded Spill 1240; RV32I-ILP32E-NEXT: lw a0, 44(s1) 1241; RV32I-ILP32E-NEXT: sw a0, 76(sp) # 4-byte Folded Spill 1242; RV32I-ILP32E-NEXT: lw a0, 48(s1) 1243; RV32I-ILP32E-NEXT: sw a0, 72(sp) # 4-byte Folded Spill 1244; RV32I-ILP32E-NEXT: lw a0, 52(s1) 1245; RV32I-ILP32E-NEXT: sw a0, 68(sp) # 4-byte Folded Spill 1246; RV32I-ILP32E-NEXT: lw a0, 56(s1) 1247; RV32I-ILP32E-NEXT: sw a0, 64(sp) # 4-byte Folded Spill 1248; RV32I-ILP32E-NEXT: lw a0, 60(s1) 1249; RV32I-ILP32E-NEXT: sw a0, 60(sp) # 4-byte Folded Spill 1250; RV32I-ILP32E-NEXT: lw a0, 64(s1) 1251; RV32I-ILP32E-NEXT: sw a0, 56(sp) # 4-byte Folded Spill 1252; RV32I-ILP32E-NEXT: lw a0, 68(s1) 1253; RV32I-ILP32E-NEXT: sw a0, 52(sp) # 4-byte Folded Spill 1254; RV32I-ILP32E-NEXT: lw a0, 72(s1) 1255; RV32I-ILP32E-NEXT: sw a0, 48(sp) # 4-byte Folded Spill 1256; RV32I-ILP32E-NEXT: lw a0, 76(s1) 1257; RV32I-ILP32E-NEXT: sw a0, 44(sp) # 4-byte Folded Spill 1258; RV32I-ILP32E-NEXT: lw a0, 80(s1) 1259; RV32I-ILP32E-NEXT: sw a0, 40(sp) # 4-byte Folded Spill 1260; RV32I-ILP32E-NEXT: lw a0, 84(s1) 1261; RV32I-ILP32E-NEXT: sw a0, 36(sp) # 4-byte Folded Spill 1262; RV32I-ILP32E-NEXT: lw a0, 88(s1) 1263; RV32I-ILP32E-NEXT: sw a0, 32(sp) # 4-byte Folded Spill 1264; RV32I-ILP32E-NEXT: lw a0, 92(s1) 1265; RV32I-ILP32E-NEXT: sw a0, 28(sp) # 4-byte Folded Spill 1266; RV32I-ILP32E-NEXT: lw a0, 96(s1) 1267; RV32I-ILP32E-NEXT: sw a0, 24(sp) # 4-byte Folded Spill 1268; RV32I-ILP32E-NEXT: lw a0, 100(s1) 1269; RV32I-ILP32E-NEXT: sw a0, 20(sp) # 4-byte Folded Spill 1270; RV32I-ILP32E-NEXT: lw a0, 104(s1) 1271; RV32I-ILP32E-NEXT: sw a0, 16(sp) # 4-byte Folded Spill 1272; RV32I-ILP32E-NEXT: lw a0, 108(s1) 1273; RV32I-ILP32E-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 1274; RV32I-ILP32E-NEXT: lw a0, 112(s1) 1275; RV32I-ILP32E-NEXT: sw a0, 8(sp) # 4-byte Folded Spill 1276; RV32I-ILP32E-NEXT: lw a0, 116(s1) 1277; RV32I-ILP32E-NEXT: sw a0, 4(sp) # 4-byte Folded Spill 1278; RV32I-ILP32E-NEXT: lw a0, 120(s1) 1279; RV32I-ILP32E-NEXT: sw a0, 0(sp) # 4-byte Folded Spill 1280; RV32I-ILP32E-NEXT: lw s0, 124(s1) 1281; RV32I-ILP32E-NEXT: call callee 1282; RV32I-ILP32E-NEXT: sw s0, 124(s1) 1283; RV32I-ILP32E-NEXT: lw a0, 0(sp) # 4-byte Folded Reload 1284; RV32I-ILP32E-NEXT: sw a0, 120(s1) 1285; RV32I-ILP32E-NEXT: lw a0, 4(sp) # 4-byte Folded Reload 1286; RV32I-ILP32E-NEXT: sw a0, 116(s1) 1287; RV32I-ILP32E-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 1288; RV32I-ILP32E-NEXT: sw a0, 112(s1) 1289; RV32I-ILP32E-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 1290; RV32I-ILP32E-NEXT: sw a0, 108(s1) 1291; RV32I-ILP32E-NEXT: lw a0, 16(sp) # 4-byte Folded Reload 1292; RV32I-ILP32E-NEXT: sw a0, 104(s1) 1293; RV32I-ILP32E-NEXT: lw a0, 20(sp) # 4-byte Folded Reload 1294; RV32I-ILP32E-NEXT: sw a0, 100(s1) 1295; RV32I-ILP32E-NEXT: lw a0, 24(sp) # 4-byte Folded Reload 1296; RV32I-ILP32E-NEXT: sw a0, 96(s1) 1297; RV32I-ILP32E-NEXT: lw a0, 28(sp) # 4-byte Folded Reload 1298; RV32I-ILP32E-NEXT: sw a0, 92(s1) 1299; RV32I-ILP32E-NEXT: lw a0, 32(sp) # 4-byte Folded Reload 1300; RV32I-ILP32E-NEXT: sw a0, 88(s1) 1301; RV32I-ILP32E-NEXT: lw a0, 36(sp) # 4-byte Folded Reload 1302; RV32I-ILP32E-NEXT: sw a0, 84(s1) 1303; RV32I-ILP32E-NEXT: lw a0, 40(sp) # 4-byte Folded Reload 1304; RV32I-ILP32E-NEXT: sw a0, 80(s1) 1305; RV32I-ILP32E-NEXT: lw a0, 44(sp) # 4-byte Folded Reload 1306; RV32I-ILP32E-NEXT: sw a0, 76(s1) 1307; RV32I-ILP32E-NEXT: lw a0, 48(sp) # 4-byte Folded Reload 1308; RV32I-ILP32E-NEXT: sw a0, 72(s1) 1309; RV32I-ILP32E-NEXT: lw a0, 52(sp) # 4-byte Folded Reload 1310; RV32I-ILP32E-NEXT: sw a0, 68(s1) 1311; RV32I-ILP32E-NEXT: lw a0, 56(sp) # 4-byte Folded Reload 1312; RV32I-ILP32E-NEXT: sw a0, 64(s1) 1313; RV32I-ILP32E-NEXT: lw a0, 60(sp) # 4-byte Folded Reload 1314; RV32I-ILP32E-NEXT: sw a0, 60(s1) 1315; RV32I-ILP32E-NEXT: lw a0, 64(sp) # 4-byte Folded Reload 1316; RV32I-ILP32E-NEXT: sw a0, 56(s1) 1317; RV32I-ILP32E-NEXT: lw a0, 68(sp) # 4-byte Folded Reload 1318; RV32I-ILP32E-NEXT: sw a0, 52(s1) 1319; RV32I-ILP32E-NEXT: lw a0, 72(sp) # 4-byte Folded Reload 1320; RV32I-ILP32E-NEXT: sw a0, 48(s1) 1321; RV32I-ILP32E-NEXT: lw a0, 76(sp) # 4-byte Folded Reload 1322; RV32I-ILP32E-NEXT: sw a0, 44(s1) 1323; RV32I-ILP32E-NEXT: lw a0, 80(sp) # 4-byte Folded Reload 1324; RV32I-ILP32E-NEXT: sw a0, 40(s1) 1325; RV32I-ILP32E-NEXT: lw a0, 84(sp) # 4-byte Folded Reload 1326; RV32I-ILP32E-NEXT: sw a0, 36(s1) 1327; RV32I-ILP32E-NEXT: lw a0, 88(sp) # 4-byte Folded Reload 1328; RV32I-ILP32E-NEXT: sw a0, 32(s1) 1329; RV32I-ILP32E-NEXT: lw a0, 92(sp) # 4-byte Folded Reload 1330; RV32I-ILP32E-NEXT: sw a0, 28(s1) 1331; RV32I-ILP32E-NEXT: lw a0, 96(sp) # 4-byte Folded Reload 1332; RV32I-ILP32E-NEXT: sw a0, 24(s1) 1333; RV32I-ILP32E-NEXT: lw a0, 100(sp) # 4-byte Folded Reload 1334; RV32I-ILP32E-NEXT: sw a0, 20(s1) 1335; RV32I-ILP32E-NEXT: lw a0, 104(sp) # 4-byte Folded Reload 1336; RV32I-ILP32E-NEXT: sw a0, 16(s1) 1337; RV32I-ILP32E-NEXT: lui a1, %hi(var) 1338; RV32I-ILP32E-NEXT: lw a0, 108(sp) # 4-byte Folded Reload 1339; RV32I-ILP32E-NEXT: sw a0, %lo(var+12)(a1) 1340; RV32I-ILP32E-NEXT: lw a0, 112(sp) # 4-byte Folded Reload 1341; RV32I-ILP32E-NEXT: sw a0, %lo(var+8)(a1) 1342; RV32I-ILP32E-NEXT: lw a0, 116(sp) # 4-byte Folded Reload 1343; RV32I-ILP32E-NEXT: sw a0, %lo(var+4)(a1) 1344; RV32I-ILP32E-NEXT: lw a0, 120(sp) # 4-byte Folded Reload 1345; RV32I-ILP32E-NEXT: sw a0, %lo(var)(a1) 1346; RV32I-ILP32E-NEXT: lw ra, 132(sp) # 4-byte Folded Reload 1347; RV32I-ILP32E-NEXT: lw s0, 128(sp) # 4-byte Folded Reload 1348; RV32I-ILP32E-NEXT: lw s1, 124(sp) # 4-byte Folded Reload 1349; RV32I-ILP32E-NEXT: addi sp, sp, 136 1350; RV32I-ILP32E-NEXT: ret 1351; 1352; RV32I-WITH-FP-LABEL: caller: 1353; RV32I-WITH-FP: # %bb.0: 1354; RV32I-WITH-FP-NEXT: addi sp, sp, -144 1355; RV32I-WITH-FP-NEXT: sw ra, 140(sp) # 4-byte Folded Spill 1356; RV32I-WITH-FP-NEXT: sw s0, 136(sp) # 4-byte Folded Spill 1357; RV32I-WITH-FP-NEXT: sw s1, 132(sp) # 4-byte Folded Spill 1358; RV32I-WITH-FP-NEXT: sw s2, 128(sp) # 4-byte Folded Spill 1359; RV32I-WITH-FP-NEXT: sw s3, 124(sp) # 4-byte Folded Spill 1360; RV32I-WITH-FP-NEXT: sw s4, 120(sp) # 4-byte Folded Spill 1361; RV32I-WITH-FP-NEXT: sw s5, 116(sp) # 4-byte Folded Spill 1362; RV32I-WITH-FP-NEXT: sw s6, 112(sp) # 4-byte Folded Spill 1363; RV32I-WITH-FP-NEXT: sw s7, 108(sp) # 4-byte Folded Spill 1364; RV32I-WITH-FP-NEXT: sw s8, 104(sp) # 4-byte Folded Spill 1365; RV32I-WITH-FP-NEXT: sw s9, 100(sp) # 4-byte Folded Spill 1366; RV32I-WITH-FP-NEXT: sw s10, 96(sp) # 4-byte Folded Spill 1367; RV32I-WITH-FP-NEXT: sw s11, 92(sp) # 4-byte Folded Spill 1368; RV32I-WITH-FP-NEXT: addi s0, sp, 144 1369; RV32I-WITH-FP-NEXT: lui s1, %hi(var) 1370; RV32I-WITH-FP-NEXT: lw a0, %lo(var)(s1) 1371; RV32I-WITH-FP-NEXT: sw a0, -56(s0) # 4-byte Folded Spill 1372; RV32I-WITH-FP-NEXT: lw a0, %lo(var+4)(s1) 1373; RV32I-WITH-FP-NEXT: sw a0, -60(s0) # 4-byte Folded Spill 1374; RV32I-WITH-FP-NEXT: lw a0, %lo(var+8)(s1) 1375; RV32I-WITH-FP-NEXT: sw a0, -64(s0) # 4-byte Folded Spill 1376; RV32I-WITH-FP-NEXT: lw a0, %lo(var+12)(s1) 1377; RV32I-WITH-FP-NEXT: sw a0, -68(s0) # 4-byte Folded Spill 1378; RV32I-WITH-FP-NEXT: addi s6, s1, %lo(var) 1379; RV32I-WITH-FP-NEXT: lw a0, 16(s6) 1380; RV32I-WITH-FP-NEXT: sw a0, -72(s0) # 4-byte Folded Spill 1381; RV32I-WITH-FP-NEXT: lw a0, 20(s6) 1382; RV32I-WITH-FP-NEXT: sw a0, -76(s0) # 4-byte Folded Spill 1383; RV32I-WITH-FP-NEXT: lw a0, 24(s6) 1384; RV32I-WITH-FP-NEXT: sw a0, -80(s0) # 4-byte Folded Spill 1385; RV32I-WITH-FP-NEXT: lw a0, 28(s6) 1386; RV32I-WITH-FP-NEXT: sw a0, -84(s0) # 4-byte Folded Spill 1387; RV32I-WITH-FP-NEXT: lw a0, 32(s6) 1388; RV32I-WITH-FP-NEXT: sw a0, -88(s0) # 4-byte Folded Spill 1389; RV32I-WITH-FP-NEXT: lw a0, 36(s6) 1390; RV32I-WITH-FP-NEXT: sw a0, -92(s0) # 4-byte Folded Spill 1391; RV32I-WITH-FP-NEXT: lw a0, 40(s6) 1392; RV32I-WITH-FP-NEXT: sw a0, -96(s0) # 4-byte Folded Spill 1393; RV32I-WITH-FP-NEXT: lw a0, 44(s6) 1394; RV32I-WITH-FP-NEXT: sw a0, -100(s0) # 4-byte Folded Spill 1395; RV32I-WITH-FP-NEXT: lw a0, 48(s6) 1396; RV32I-WITH-FP-NEXT: sw a0, -104(s0) # 4-byte Folded Spill 1397; RV32I-WITH-FP-NEXT: lw a0, 52(s6) 1398; RV32I-WITH-FP-NEXT: sw a0, -108(s0) # 4-byte Folded Spill 1399; RV32I-WITH-FP-NEXT: lw a0, 56(s6) 1400; RV32I-WITH-FP-NEXT: sw a0, -112(s0) # 4-byte Folded Spill 1401; RV32I-WITH-FP-NEXT: lw a0, 60(s6) 1402; RV32I-WITH-FP-NEXT: sw a0, -116(s0) # 4-byte Folded Spill 1403; RV32I-WITH-FP-NEXT: lw a0, 64(s6) 1404; RV32I-WITH-FP-NEXT: sw a0, -120(s0) # 4-byte Folded Spill 1405; RV32I-WITH-FP-NEXT: lw a0, 68(s6) 1406; RV32I-WITH-FP-NEXT: sw a0, -124(s0) # 4-byte Folded Spill 1407; RV32I-WITH-FP-NEXT: lw a0, 72(s6) 1408; RV32I-WITH-FP-NEXT: sw a0, -128(s0) # 4-byte Folded Spill 1409; RV32I-WITH-FP-NEXT: lw a0, 76(s6) 1410; RV32I-WITH-FP-NEXT: sw a0, -132(s0) # 4-byte Folded Spill 1411; RV32I-WITH-FP-NEXT: lw a0, 80(s6) 1412; RV32I-WITH-FP-NEXT: sw a0, -136(s0) # 4-byte Folded Spill 1413; RV32I-WITH-FP-NEXT: lw a0, 84(s6) 1414; RV32I-WITH-FP-NEXT: sw a0, -140(s0) # 4-byte Folded Spill 1415; RV32I-WITH-FP-NEXT: lw a0, 88(s6) 1416; RV32I-WITH-FP-NEXT: sw a0, -144(s0) # 4-byte Folded Spill 1417; RV32I-WITH-FP-NEXT: lw s8, 92(s6) 1418; RV32I-WITH-FP-NEXT: lw s9, 96(s6) 1419; RV32I-WITH-FP-NEXT: lw s10, 100(s6) 1420; RV32I-WITH-FP-NEXT: lw s11, 104(s6) 1421; RV32I-WITH-FP-NEXT: lw s2, 108(s6) 1422; RV32I-WITH-FP-NEXT: lw s3, 112(s6) 1423; RV32I-WITH-FP-NEXT: lw s4, 116(s6) 1424; RV32I-WITH-FP-NEXT: lw s5, 120(s6) 1425; RV32I-WITH-FP-NEXT: lw s7, 124(s6) 1426; RV32I-WITH-FP-NEXT: call callee 1427; RV32I-WITH-FP-NEXT: sw s7, 124(s6) 1428; RV32I-WITH-FP-NEXT: sw s5, 120(s6) 1429; RV32I-WITH-FP-NEXT: sw s4, 116(s6) 1430; RV32I-WITH-FP-NEXT: sw s3, 112(s6) 1431; RV32I-WITH-FP-NEXT: sw s2, 108(s6) 1432; RV32I-WITH-FP-NEXT: sw s11, 104(s6) 1433; RV32I-WITH-FP-NEXT: sw s10, 100(s6) 1434; RV32I-WITH-FP-NEXT: sw s9, 96(s6) 1435; RV32I-WITH-FP-NEXT: sw s8, 92(s6) 1436; RV32I-WITH-FP-NEXT: lw a0, -144(s0) # 4-byte Folded Reload 1437; RV32I-WITH-FP-NEXT: sw a0, 88(s6) 1438; RV32I-WITH-FP-NEXT: lw a0, -140(s0) # 4-byte Folded Reload 1439; RV32I-WITH-FP-NEXT: sw a0, 84(s6) 1440; RV32I-WITH-FP-NEXT: lw a0, -136(s0) # 4-byte Folded Reload 1441; RV32I-WITH-FP-NEXT: sw a0, 80(s6) 1442; RV32I-WITH-FP-NEXT: lw a0, -132(s0) # 4-byte Folded Reload 1443; RV32I-WITH-FP-NEXT: sw a0, 76(s6) 1444; RV32I-WITH-FP-NEXT: lw a0, -128(s0) # 4-byte Folded Reload 1445; RV32I-WITH-FP-NEXT: sw a0, 72(s6) 1446; RV32I-WITH-FP-NEXT: lw a0, -124(s0) # 4-byte Folded Reload 1447; RV32I-WITH-FP-NEXT: sw a0, 68(s6) 1448; RV32I-WITH-FP-NEXT: lw a0, -120(s0) # 4-byte Folded Reload 1449; RV32I-WITH-FP-NEXT: sw a0, 64(s6) 1450; RV32I-WITH-FP-NEXT: lw a0, -116(s0) # 4-byte Folded Reload 1451; RV32I-WITH-FP-NEXT: sw a0, 60(s6) 1452; RV32I-WITH-FP-NEXT: lw a0, -112(s0) # 4-byte Folded Reload 1453; RV32I-WITH-FP-NEXT: sw a0, 56(s6) 1454; RV32I-WITH-FP-NEXT: lw a0, -108(s0) # 4-byte Folded Reload 1455; RV32I-WITH-FP-NEXT: sw a0, 52(s6) 1456; RV32I-WITH-FP-NEXT: lw a0, -104(s0) # 4-byte Folded Reload 1457; RV32I-WITH-FP-NEXT: sw a0, 48(s6) 1458; RV32I-WITH-FP-NEXT: lw a0, -100(s0) # 4-byte Folded Reload 1459; RV32I-WITH-FP-NEXT: sw a0, 44(s6) 1460; RV32I-WITH-FP-NEXT: lw a0, -96(s0) # 4-byte Folded Reload 1461; RV32I-WITH-FP-NEXT: sw a0, 40(s6) 1462; RV32I-WITH-FP-NEXT: lw a0, -92(s0) # 4-byte Folded Reload 1463; RV32I-WITH-FP-NEXT: sw a0, 36(s6) 1464; RV32I-WITH-FP-NEXT: lw a0, -88(s0) # 4-byte Folded Reload 1465; RV32I-WITH-FP-NEXT: sw a0, 32(s6) 1466; RV32I-WITH-FP-NEXT: lw a0, -84(s0) # 4-byte Folded Reload 1467; RV32I-WITH-FP-NEXT: sw a0, 28(s6) 1468; RV32I-WITH-FP-NEXT: lw a0, -80(s0) # 4-byte Folded Reload 1469; RV32I-WITH-FP-NEXT: sw a0, 24(s6) 1470; RV32I-WITH-FP-NEXT: lw a0, -76(s0) # 4-byte Folded Reload 1471; RV32I-WITH-FP-NEXT: sw a0, 20(s6) 1472; RV32I-WITH-FP-NEXT: lw a0, -72(s0) # 4-byte Folded Reload 1473; RV32I-WITH-FP-NEXT: sw a0, 16(s6) 1474; RV32I-WITH-FP-NEXT: lw a0, -68(s0) # 4-byte Folded Reload 1475; RV32I-WITH-FP-NEXT: sw a0, %lo(var+12)(s1) 1476; RV32I-WITH-FP-NEXT: lw a0, -64(s0) # 4-byte Folded Reload 1477; RV32I-WITH-FP-NEXT: sw a0, %lo(var+8)(s1) 1478; RV32I-WITH-FP-NEXT: lw a0, -60(s0) # 4-byte Folded Reload 1479; RV32I-WITH-FP-NEXT: sw a0, %lo(var+4)(s1) 1480; RV32I-WITH-FP-NEXT: lw a0, -56(s0) # 4-byte Folded Reload 1481; RV32I-WITH-FP-NEXT: sw a0, %lo(var)(s1) 1482; RV32I-WITH-FP-NEXT: lw ra, 140(sp) # 4-byte Folded Reload 1483; RV32I-WITH-FP-NEXT: lw s0, 136(sp) # 4-byte Folded Reload 1484; RV32I-WITH-FP-NEXT: lw s1, 132(sp) # 4-byte Folded Reload 1485; RV32I-WITH-FP-NEXT: lw s2, 128(sp) # 4-byte Folded Reload 1486; RV32I-WITH-FP-NEXT: lw s3, 124(sp) # 4-byte Folded Reload 1487; RV32I-WITH-FP-NEXT: lw s4, 120(sp) # 4-byte Folded Reload 1488; RV32I-WITH-FP-NEXT: lw s5, 116(sp) # 4-byte Folded Reload 1489; RV32I-WITH-FP-NEXT: lw s6, 112(sp) # 4-byte Folded Reload 1490; RV32I-WITH-FP-NEXT: lw s7, 108(sp) # 4-byte Folded Reload 1491; RV32I-WITH-FP-NEXT: lw s8, 104(sp) # 4-byte Folded Reload 1492; RV32I-WITH-FP-NEXT: lw s9, 100(sp) # 4-byte Folded Reload 1493; RV32I-WITH-FP-NEXT: lw s10, 96(sp) # 4-byte Folded Reload 1494; RV32I-WITH-FP-NEXT: lw s11, 92(sp) # 4-byte Folded Reload 1495; RV32I-WITH-FP-NEXT: addi sp, sp, 144 1496; RV32I-WITH-FP-NEXT: ret 1497; 1498; RV32IZCMP-LABEL: caller: 1499; RV32IZCMP: # %bb.0: 1500; RV32IZCMP-NEXT: cm.push {ra, s0-s11}, -112 1501; RV32IZCMP-NEXT: addi sp, sp, -48 1502; RV32IZCMP-NEXT: lui s0, %hi(var) 1503; RV32IZCMP-NEXT: lw a0, %lo(var)(s0) 1504; RV32IZCMP-NEXT: sw a0, 92(sp) # 4-byte Folded Spill 1505; RV32IZCMP-NEXT: lw a0, %lo(var+4)(s0) 1506; RV32IZCMP-NEXT: sw a0, 88(sp) # 4-byte Folded Spill 1507; RV32IZCMP-NEXT: lw a0, %lo(var+8)(s0) 1508; RV32IZCMP-NEXT: sw a0, 84(sp) # 4-byte Folded Spill 1509; RV32IZCMP-NEXT: lw a0, %lo(var+12)(s0) 1510; RV32IZCMP-NEXT: sw a0, 80(sp) # 4-byte Folded Spill 1511; RV32IZCMP-NEXT: addi s1, s0, %lo(var) 1512; RV32IZCMP-NEXT: lw a0, 16(s1) 1513; RV32IZCMP-NEXT: sw a0, 76(sp) # 4-byte Folded Spill 1514; RV32IZCMP-NEXT: lw a0, 20(s1) 1515; RV32IZCMP-NEXT: sw a0, 72(sp) # 4-byte Folded Spill 1516; RV32IZCMP-NEXT: lw a0, 24(s1) 1517; RV32IZCMP-NEXT: sw a0, 68(sp) # 4-byte Folded Spill 1518; RV32IZCMP-NEXT: lw a0, 28(s1) 1519; RV32IZCMP-NEXT: sw a0, 64(sp) # 4-byte Folded Spill 1520; RV32IZCMP-NEXT: lw a0, 32(s1) 1521; RV32IZCMP-NEXT: sw a0, 60(sp) # 4-byte Folded Spill 1522; RV32IZCMP-NEXT: lw a0, 36(s1) 1523; RV32IZCMP-NEXT: sw a0, 56(sp) # 4-byte Folded Spill 1524; RV32IZCMP-NEXT: lw a0, 40(s1) 1525; RV32IZCMP-NEXT: sw a0, 52(sp) # 4-byte Folded Spill 1526; RV32IZCMP-NEXT: lw a0, 44(s1) 1527; RV32IZCMP-NEXT: sw a0, 48(sp) # 4-byte Folded Spill 1528; RV32IZCMP-NEXT: lw a0, 48(s1) 1529; RV32IZCMP-NEXT: sw a0, 44(sp) # 4-byte Folded Spill 1530; RV32IZCMP-NEXT: lw a0, 52(s1) 1531; RV32IZCMP-NEXT: sw a0, 40(sp) # 4-byte Folded Spill 1532; RV32IZCMP-NEXT: lw a0, 56(s1) 1533; RV32IZCMP-NEXT: sw a0, 36(sp) # 4-byte Folded Spill 1534; RV32IZCMP-NEXT: lw a0, 60(s1) 1535; RV32IZCMP-NEXT: sw a0, 32(sp) # 4-byte Folded Spill 1536; RV32IZCMP-NEXT: lw a0, 64(s1) 1537; RV32IZCMP-NEXT: sw a0, 28(sp) # 4-byte Folded Spill 1538; RV32IZCMP-NEXT: lw a0, 68(s1) 1539; RV32IZCMP-NEXT: sw a0, 24(sp) # 4-byte Folded Spill 1540; RV32IZCMP-NEXT: lw a0, 72(s1) 1541; RV32IZCMP-NEXT: sw a0, 20(sp) # 4-byte Folded Spill 1542; RV32IZCMP-NEXT: lw a0, 76(s1) 1543; RV32IZCMP-NEXT: sw a0, 16(sp) # 4-byte Folded Spill 1544; RV32IZCMP-NEXT: lw a0, 80(s1) 1545; RV32IZCMP-NEXT: sw a0, 12(sp) # 4-byte Folded Spill 1546; RV32IZCMP-NEXT: lw a0, 84(s1) 1547; RV32IZCMP-NEXT: sw a0, 8(sp) # 4-byte Folded Spill 1548; RV32IZCMP-NEXT: lw s4, 88(s1) 1549; RV32IZCMP-NEXT: lw s5, 92(s1) 1550; RV32IZCMP-NEXT: lw s6, 96(s1) 1551; RV32IZCMP-NEXT: lw s7, 100(s1) 1552; RV32IZCMP-NEXT: lw s8, 104(s1) 1553; RV32IZCMP-NEXT: lw s9, 108(s1) 1554; RV32IZCMP-NEXT: lw s10, 112(s1) 1555; RV32IZCMP-NEXT: lw s11, 116(s1) 1556; RV32IZCMP-NEXT: lw s2, 120(s1) 1557; RV32IZCMP-NEXT: lw s3, 124(s1) 1558; RV32IZCMP-NEXT: call callee 1559; RV32IZCMP-NEXT: sw s3, 124(s1) 1560; RV32IZCMP-NEXT: sw s2, 120(s1) 1561; RV32IZCMP-NEXT: sw s11, 116(s1) 1562; RV32IZCMP-NEXT: sw s10, 112(s1) 1563; RV32IZCMP-NEXT: sw s9, 108(s1) 1564; RV32IZCMP-NEXT: sw s8, 104(s1) 1565; RV32IZCMP-NEXT: sw s7, 100(s1) 1566; RV32IZCMP-NEXT: sw s6, 96(s1) 1567; RV32IZCMP-NEXT: sw s5, 92(s1) 1568; RV32IZCMP-NEXT: sw s4, 88(s1) 1569; RV32IZCMP-NEXT: lw a0, 8(sp) # 4-byte Folded Reload 1570; RV32IZCMP-NEXT: sw a0, 84(s1) 1571; RV32IZCMP-NEXT: lw a0, 12(sp) # 4-byte Folded Reload 1572; RV32IZCMP-NEXT: sw a0, 80(s1) 1573; RV32IZCMP-NEXT: lw a0, 16(sp) # 4-byte Folded Reload 1574; RV32IZCMP-NEXT: sw a0, 76(s1) 1575; RV32IZCMP-NEXT: lw a0, 20(sp) # 4-byte Folded Reload 1576; RV32IZCMP-NEXT: sw a0, 72(s1) 1577; RV32IZCMP-NEXT: lw a0, 24(sp) # 4-byte Folded Reload 1578; RV32IZCMP-NEXT: sw a0, 68(s1) 1579; RV32IZCMP-NEXT: lw a0, 28(sp) # 4-byte Folded Reload 1580; RV32IZCMP-NEXT: sw a0, 64(s1) 1581; RV32IZCMP-NEXT: lw a0, 32(sp) # 4-byte Folded Reload 1582; RV32IZCMP-NEXT: sw a0, 60(s1) 1583; RV32IZCMP-NEXT: lw a0, 36(sp) # 4-byte Folded Reload 1584; RV32IZCMP-NEXT: sw a0, 56(s1) 1585; RV32IZCMP-NEXT: lw a0, 40(sp) # 4-byte Folded Reload 1586; RV32IZCMP-NEXT: sw a0, 52(s1) 1587; RV32IZCMP-NEXT: lw a0, 44(sp) # 4-byte Folded Reload 1588; RV32IZCMP-NEXT: sw a0, 48(s1) 1589; RV32IZCMP-NEXT: lw a0, 48(sp) # 4-byte Folded Reload 1590; RV32IZCMP-NEXT: sw a0, 44(s1) 1591; RV32IZCMP-NEXT: lw a0, 52(sp) # 4-byte Folded Reload 1592; RV32IZCMP-NEXT: sw a0, 40(s1) 1593; RV32IZCMP-NEXT: lw a0, 56(sp) # 4-byte Folded Reload 1594; RV32IZCMP-NEXT: sw a0, 36(s1) 1595; RV32IZCMP-NEXT: lw a0, 60(sp) # 4-byte Folded Reload 1596; RV32IZCMP-NEXT: sw a0, 32(s1) 1597; RV32IZCMP-NEXT: lw a0, 64(sp) # 4-byte Folded Reload 1598; RV32IZCMP-NEXT: sw a0, 28(s1) 1599; RV32IZCMP-NEXT: lw a0, 68(sp) # 4-byte Folded Reload 1600; RV32IZCMP-NEXT: sw a0, 24(s1) 1601; RV32IZCMP-NEXT: lw a0, 72(sp) # 4-byte Folded Reload 1602; RV32IZCMP-NEXT: sw a0, 20(s1) 1603; RV32IZCMP-NEXT: lw a0, 76(sp) # 4-byte Folded Reload 1604; RV32IZCMP-NEXT: sw a0, 16(s1) 1605; RV32IZCMP-NEXT: lw a0, 80(sp) # 4-byte Folded Reload 1606; RV32IZCMP-NEXT: sw a0, %lo(var+12)(s0) 1607; RV32IZCMP-NEXT: lw a0, 84(sp) # 4-byte Folded Reload 1608; RV32IZCMP-NEXT: sw a0, %lo(var+8)(s0) 1609; RV32IZCMP-NEXT: lw a0, 88(sp) # 4-byte Folded Reload 1610; RV32IZCMP-NEXT: sw a0, %lo(var+4)(s0) 1611; RV32IZCMP-NEXT: lw a0, 92(sp) # 4-byte Folded Reload 1612; RV32IZCMP-NEXT: sw a0, %lo(var)(s0) 1613; RV32IZCMP-NEXT: addi sp, sp, 48 1614; RV32IZCMP-NEXT: cm.popret {ra, s0-s11}, 112 1615; 1616; RV32IZCMP-WITH-FP-LABEL: caller: 1617; RV32IZCMP-WITH-FP: # %bb.0: 1618; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -144 1619; RV32IZCMP-WITH-FP-NEXT: sw ra, 140(sp) # 4-byte Folded Spill 1620; RV32IZCMP-WITH-FP-NEXT: sw s0, 136(sp) # 4-byte Folded Spill 1621; RV32IZCMP-WITH-FP-NEXT: sw s1, 132(sp) # 4-byte Folded Spill 1622; RV32IZCMP-WITH-FP-NEXT: sw s2, 128(sp) # 4-byte Folded Spill 1623; RV32IZCMP-WITH-FP-NEXT: sw s3, 124(sp) # 4-byte Folded Spill 1624; RV32IZCMP-WITH-FP-NEXT: sw s4, 120(sp) # 4-byte Folded Spill 1625; RV32IZCMP-WITH-FP-NEXT: sw s5, 116(sp) # 4-byte Folded Spill 1626; RV32IZCMP-WITH-FP-NEXT: sw s6, 112(sp) # 4-byte Folded Spill 1627; RV32IZCMP-WITH-FP-NEXT: sw s7, 108(sp) # 4-byte Folded Spill 1628; RV32IZCMP-WITH-FP-NEXT: sw s8, 104(sp) # 4-byte Folded Spill 1629; RV32IZCMP-WITH-FP-NEXT: sw s9, 100(sp) # 4-byte Folded Spill 1630; RV32IZCMP-WITH-FP-NEXT: sw s10, 96(sp) # 4-byte Folded Spill 1631; RV32IZCMP-WITH-FP-NEXT: sw s11, 92(sp) # 4-byte Folded Spill 1632; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 144 1633; RV32IZCMP-WITH-FP-NEXT: lui s6, %hi(var) 1634; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var)(s6) 1635; RV32IZCMP-WITH-FP-NEXT: sw a0, -56(s0) # 4-byte Folded Spill 1636; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+4)(s6) 1637; RV32IZCMP-WITH-FP-NEXT: sw a0, -60(s0) # 4-byte Folded Spill 1638; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+8)(s6) 1639; RV32IZCMP-WITH-FP-NEXT: sw a0, -64(s0) # 4-byte Folded Spill 1640; RV32IZCMP-WITH-FP-NEXT: lw a0, %lo(var+12)(s6) 1641; RV32IZCMP-WITH-FP-NEXT: sw a0, -68(s0) # 4-byte Folded Spill 1642; RV32IZCMP-WITH-FP-NEXT: addi s1, s6, %lo(var) 1643; RV32IZCMP-WITH-FP-NEXT: lw a0, 16(s1) 1644; RV32IZCMP-WITH-FP-NEXT: sw a0, -72(s0) # 4-byte Folded Spill 1645; RV32IZCMP-WITH-FP-NEXT: lw a0, 20(s1) 1646; RV32IZCMP-WITH-FP-NEXT: sw a0, -76(s0) # 4-byte Folded Spill 1647; RV32IZCMP-WITH-FP-NEXT: lw a0, 24(s1) 1648; RV32IZCMP-WITH-FP-NEXT: sw a0, -80(s0) # 4-byte Folded Spill 1649; RV32IZCMP-WITH-FP-NEXT: lw a0, 28(s1) 1650; RV32IZCMP-WITH-FP-NEXT: sw a0, -84(s0) # 4-byte Folded Spill 1651; RV32IZCMP-WITH-FP-NEXT: lw a0, 32(s1) 1652; RV32IZCMP-WITH-FP-NEXT: sw a0, -88(s0) # 4-byte Folded Spill 1653; RV32IZCMP-WITH-FP-NEXT: lw a0, 36(s1) 1654; RV32IZCMP-WITH-FP-NEXT: sw a0, -92(s0) # 4-byte Folded Spill 1655; RV32IZCMP-WITH-FP-NEXT: lw a0, 40(s1) 1656; RV32IZCMP-WITH-FP-NEXT: sw a0, -96(s0) # 4-byte Folded Spill 1657; RV32IZCMP-WITH-FP-NEXT: lw a0, 44(s1) 1658; RV32IZCMP-WITH-FP-NEXT: sw a0, -100(s0) # 4-byte Folded Spill 1659; RV32IZCMP-WITH-FP-NEXT: lw a0, 48(s1) 1660; RV32IZCMP-WITH-FP-NEXT: sw a0, -104(s0) # 4-byte Folded Spill 1661; RV32IZCMP-WITH-FP-NEXT: lw a0, 52(s1) 1662; RV32IZCMP-WITH-FP-NEXT: sw a0, -108(s0) # 4-byte Folded Spill 1663; RV32IZCMP-WITH-FP-NEXT: lw a0, 56(s1) 1664; RV32IZCMP-WITH-FP-NEXT: sw a0, -112(s0) # 4-byte Folded Spill 1665; RV32IZCMP-WITH-FP-NEXT: lw a0, 60(s1) 1666; RV32IZCMP-WITH-FP-NEXT: sw a0, -116(s0) # 4-byte Folded Spill 1667; RV32IZCMP-WITH-FP-NEXT: lw a0, 64(s1) 1668; RV32IZCMP-WITH-FP-NEXT: sw a0, -120(s0) # 4-byte Folded Spill 1669; RV32IZCMP-WITH-FP-NEXT: lw a0, 68(s1) 1670; RV32IZCMP-WITH-FP-NEXT: sw a0, -124(s0) # 4-byte Folded Spill 1671; RV32IZCMP-WITH-FP-NEXT: lw a0, 72(s1) 1672; RV32IZCMP-WITH-FP-NEXT: sw a0, -128(s0) # 4-byte Folded Spill 1673; RV32IZCMP-WITH-FP-NEXT: lw a0, 76(s1) 1674; RV32IZCMP-WITH-FP-NEXT: sw a0, -132(s0) # 4-byte Folded Spill 1675; RV32IZCMP-WITH-FP-NEXT: lw a0, 80(s1) 1676; RV32IZCMP-WITH-FP-NEXT: sw a0, -136(s0) # 4-byte Folded Spill 1677; RV32IZCMP-WITH-FP-NEXT: lw a0, 84(s1) 1678; RV32IZCMP-WITH-FP-NEXT: sw a0, -140(s0) # 4-byte Folded Spill 1679; RV32IZCMP-WITH-FP-NEXT: lw a0, 88(s1) 1680; RV32IZCMP-WITH-FP-NEXT: sw a0, -144(s0) # 4-byte Folded Spill 1681; RV32IZCMP-WITH-FP-NEXT: lw s8, 92(s1) 1682; RV32IZCMP-WITH-FP-NEXT: lw s9, 96(s1) 1683; RV32IZCMP-WITH-FP-NEXT: lw s10, 100(s1) 1684; RV32IZCMP-WITH-FP-NEXT: lw s11, 104(s1) 1685; RV32IZCMP-WITH-FP-NEXT: lw s2, 108(s1) 1686; RV32IZCMP-WITH-FP-NEXT: lw s3, 112(s1) 1687; RV32IZCMP-WITH-FP-NEXT: lw s4, 116(s1) 1688; RV32IZCMP-WITH-FP-NEXT: lw s5, 120(s1) 1689; RV32IZCMP-WITH-FP-NEXT: lw s7, 124(s1) 1690; RV32IZCMP-WITH-FP-NEXT: call callee 1691; RV32IZCMP-WITH-FP-NEXT: sw s7, 124(s1) 1692; RV32IZCMP-WITH-FP-NEXT: sw s5, 120(s1) 1693; RV32IZCMP-WITH-FP-NEXT: sw s4, 116(s1) 1694; RV32IZCMP-WITH-FP-NEXT: sw s3, 112(s1) 1695; RV32IZCMP-WITH-FP-NEXT: sw s2, 108(s1) 1696; RV32IZCMP-WITH-FP-NEXT: sw s11, 104(s1) 1697; RV32IZCMP-WITH-FP-NEXT: sw s10, 100(s1) 1698; RV32IZCMP-WITH-FP-NEXT: sw s9, 96(s1) 1699; RV32IZCMP-WITH-FP-NEXT: sw s8, 92(s1) 1700; RV32IZCMP-WITH-FP-NEXT: lw a0, -144(s0) # 4-byte Folded Reload 1701; RV32IZCMP-WITH-FP-NEXT: sw a0, 88(s1) 1702; RV32IZCMP-WITH-FP-NEXT: lw a0, -140(s0) # 4-byte Folded Reload 1703; RV32IZCMP-WITH-FP-NEXT: sw a0, 84(s1) 1704; RV32IZCMP-WITH-FP-NEXT: lw a0, -136(s0) # 4-byte Folded Reload 1705; RV32IZCMP-WITH-FP-NEXT: sw a0, 80(s1) 1706; RV32IZCMP-WITH-FP-NEXT: lw a0, -132(s0) # 4-byte Folded Reload 1707; RV32IZCMP-WITH-FP-NEXT: sw a0, 76(s1) 1708; RV32IZCMP-WITH-FP-NEXT: lw a0, -128(s0) # 4-byte Folded Reload 1709; RV32IZCMP-WITH-FP-NEXT: sw a0, 72(s1) 1710; RV32IZCMP-WITH-FP-NEXT: lw a0, -124(s0) # 4-byte Folded Reload 1711; RV32IZCMP-WITH-FP-NEXT: sw a0, 68(s1) 1712; RV32IZCMP-WITH-FP-NEXT: lw a0, -120(s0) # 4-byte Folded Reload 1713; RV32IZCMP-WITH-FP-NEXT: sw a0, 64(s1) 1714; RV32IZCMP-WITH-FP-NEXT: lw a0, -116(s0) # 4-byte Folded Reload 1715; RV32IZCMP-WITH-FP-NEXT: sw a0, 60(s1) 1716; RV32IZCMP-WITH-FP-NEXT: lw a0, -112(s0) # 4-byte Folded Reload 1717; RV32IZCMP-WITH-FP-NEXT: sw a0, 56(s1) 1718; RV32IZCMP-WITH-FP-NEXT: lw a0, -108(s0) # 4-byte Folded Reload 1719; RV32IZCMP-WITH-FP-NEXT: sw a0, 52(s1) 1720; RV32IZCMP-WITH-FP-NEXT: lw a0, -104(s0) # 4-byte Folded Reload 1721; RV32IZCMP-WITH-FP-NEXT: sw a0, 48(s1) 1722; RV32IZCMP-WITH-FP-NEXT: lw a0, -100(s0) # 4-byte Folded Reload 1723; RV32IZCMP-WITH-FP-NEXT: sw a0, 44(s1) 1724; RV32IZCMP-WITH-FP-NEXT: lw a0, -96(s0) # 4-byte Folded Reload 1725; RV32IZCMP-WITH-FP-NEXT: sw a0, 40(s1) 1726; RV32IZCMP-WITH-FP-NEXT: lw a0, -92(s0) # 4-byte Folded Reload 1727; RV32IZCMP-WITH-FP-NEXT: sw a0, 36(s1) 1728; RV32IZCMP-WITH-FP-NEXT: lw a0, -88(s0) # 4-byte Folded Reload 1729; RV32IZCMP-WITH-FP-NEXT: sw a0, 32(s1) 1730; RV32IZCMP-WITH-FP-NEXT: lw a0, -84(s0) # 4-byte Folded Reload 1731; RV32IZCMP-WITH-FP-NEXT: sw a0, 28(s1) 1732; RV32IZCMP-WITH-FP-NEXT: lw a0, -80(s0) # 4-byte Folded Reload 1733; RV32IZCMP-WITH-FP-NEXT: sw a0, 24(s1) 1734; RV32IZCMP-WITH-FP-NEXT: lw a0, -76(s0) # 4-byte Folded Reload 1735; RV32IZCMP-WITH-FP-NEXT: sw a0, 20(s1) 1736; RV32IZCMP-WITH-FP-NEXT: lw a0, -72(s0) # 4-byte Folded Reload 1737; RV32IZCMP-WITH-FP-NEXT: sw a0, 16(s1) 1738; RV32IZCMP-WITH-FP-NEXT: lw a0, -68(s0) # 4-byte Folded Reload 1739; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+12)(s6) 1740; RV32IZCMP-WITH-FP-NEXT: lw a0, -64(s0) # 4-byte Folded Reload 1741; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+8)(s6) 1742; RV32IZCMP-WITH-FP-NEXT: lw a0, -60(s0) # 4-byte Folded Reload 1743; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var+4)(s6) 1744; RV32IZCMP-WITH-FP-NEXT: lw a0, -56(s0) # 4-byte Folded Reload 1745; RV32IZCMP-WITH-FP-NEXT: sw a0, %lo(var)(s6) 1746; RV32IZCMP-WITH-FP-NEXT: lw ra, 140(sp) # 4-byte Folded Reload 1747; RV32IZCMP-WITH-FP-NEXT: lw s0, 136(sp) # 4-byte Folded Reload 1748; RV32IZCMP-WITH-FP-NEXT: lw s1, 132(sp) # 4-byte Folded Reload 1749; RV32IZCMP-WITH-FP-NEXT: lw s2, 128(sp) # 4-byte Folded Reload 1750; RV32IZCMP-WITH-FP-NEXT: lw s3, 124(sp) # 4-byte Folded Reload 1751; RV32IZCMP-WITH-FP-NEXT: lw s4, 120(sp) # 4-byte Folded Reload 1752; RV32IZCMP-WITH-FP-NEXT: lw s5, 116(sp) # 4-byte Folded Reload 1753; RV32IZCMP-WITH-FP-NEXT: lw s6, 112(sp) # 4-byte Folded Reload 1754; RV32IZCMP-WITH-FP-NEXT: lw s7, 108(sp) # 4-byte Folded Reload 1755; RV32IZCMP-WITH-FP-NEXT: lw s8, 104(sp) # 4-byte Folded Reload 1756; RV32IZCMP-WITH-FP-NEXT: lw s9, 100(sp) # 4-byte Folded Reload 1757; RV32IZCMP-WITH-FP-NEXT: lw s10, 96(sp) # 4-byte Folded Reload 1758; RV32IZCMP-WITH-FP-NEXT: lw s11, 92(sp) # 4-byte Folded Reload 1759; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 144 1760; RV32IZCMP-WITH-FP-NEXT: ret 1761; 1762; RV64I-LABEL: caller: 1763; RV64I: # %bb.0: 1764; RV64I-NEXT: addi sp, sp, -288 1765; RV64I-NEXT: sd ra, 280(sp) # 8-byte Folded Spill 1766; RV64I-NEXT: sd s0, 272(sp) # 8-byte Folded Spill 1767; RV64I-NEXT: sd s1, 264(sp) # 8-byte Folded Spill 1768; RV64I-NEXT: sd s2, 256(sp) # 8-byte Folded Spill 1769; RV64I-NEXT: sd s3, 248(sp) # 8-byte Folded Spill 1770; RV64I-NEXT: sd s4, 240(sp) # 8-byte Folded Spill 1771; RV64I-NEXT: sd s5, 232(sp) # 8-byte Folded Spill 1772; RV64I-NEXT: sd s6, 224(sp) # 8-byte Folded Spill 1773; RV64I-NEXT: sd s7, 216(sp) # 8-byte Folded Spill 1774; RV64I-NEXT: sd s8, 208(sp) # 8-byte Folded Spill 1775; RV64I-NEXT: sd s9, 200(sp) # 8-byte Folded Spill 1776; RV64I-NEXT: sd s10, 192(sp) # 8-byte Folded Spill 1777; RV64I-NEXT: sd s11, 184(sp) # 8-byte Folded Spill 1778; RV64I-NEXT: lui s0, %hi(var) 1779; RV64I-NEXT: lw a0, %lo(var)(s0) 1780; RV64I-NEXT: sd a0, 176(sp) # 8-byte Folded Spill 1781; RV64I-NEXT: lw a0, %lo(var+4)(s0) 1782; RV64I-NEXT: sd a0, 168(sp) # 8-byte Folded Spill 1783; RV64I-NEXT: lw a0, %lo(var+8)(s0) 1784; RV64I-NEXT: sd a0, 160(sp) # 8-byte Folded Spill 1785; RV64I-NEXT: lw a0, %lo(var+12)(s0) 1786; RV64I-NEXT: sd a0, 152(sp) # 8-byte Folded Spill 1787; RV64I-NEXT: addi s5, s0, %lo(var) 1788; RV64I-NEXT: lw a0, 16(s5) 1789; RV64I-NEXT: sd a0, 144(sp) # 8-byte Folded Spill 1790; RV64I-NEXT: lw a0, 20(s5) 1791; RV64I-NEXT: sd a0, 136(sp) # 8-byte Folded Spill 1792; RV64I-NEXT: lw a0, 24(s5) 1793; RV64I-NEXT: sd a0, 128(sp) # 8-byte Folded Spill 1794; RV64I-NEXT: lw a0, 28(s5) 1795; RV64I-NEXT: sd a0, 120(sp) # 8-byte Folded Spill 1796; RV64I-NEXT: lw a0, 32(s5) 1797; RV64I-NEXT: sd a0, 112(sp) # 8-byte Folded Spill 1798; RV64I-NEXT: lw a0, 36(s5) 1799; RV64I-NEXT: sd a0, 104(sp) # 8-byte Folded Spill 1800; RV64I-NEXT: lw a0, 40(s5) 1801; RV64I-NEXT: sd a0, 96(sp) # 8-byte Folded Spill 1802; RV64I-NEXT: lw a0, 44(s5) 1803; RV64I-NEXT: sd a0, 88(sp) # 8-byte Folded Spill 1804; RV64I-NEXT: lw a0, 48(s5) 1805; RV64I-NEXT: sd a0, 80(sp) # 8-byte Folded Spill 1806; RV64I-NEXT: lw a0, 52(s5) 1807; RV64I-NEXT: sd a0, 72(sp) # 8-byte Folded Spill 1808; RV64I-NEXT: lw a0, 56(s5) 1809; RV64I-NEXT: sd a0, 64(sp) # 8-byte Folded Spill 1810; RV64I-NEXT: lw a0, 60(s5) 1811; RV64I-NEXT: sd a0, 56(sp) # 8-byte Folded Spill 1812; RV64I-NEXT: lw a0, 64(s5) 1813; RV64I-NEXT: sd a0, 48(sp) # 8-byte Folded Spill 1814; RV64I-NEXT: lw a0, 68(s5) 1815; RV64I-NEXT: sd a0, 40(sp) # 8-byte Folded Spill 1816; RV64I-NEXT: lw a0, 72(s5) 1817; RV64I-NEXT: sd a0, 32(sp) # 8-byte Folded Spill 1818; RV64I-NEXT: lw a0, 76(s5) 1819; RV64I-NEXT: sd a0, 24(sp) # 8-byte Folded Spill 1820; RV64I-NEXT: lw a0, 80(s5) 1821; RV64I-NEXT: sd a0, 16(sp) # 8-byte Folded Spill 1822; RV64I-NEXT: lw a0, 84(s5) 1823; RV64I-NEXT: sd a0, 8(sp) # 8-byte Folded Spill 1824; RV64I-NEXT: lw s3, 88(s5) 1825; RV64I-NEXT: lw s4, 92(s5) 1826; RV64I-NEXT: lw s6, 96(s5) 1827; RV64I-NEXT: lw s7, 100(s5) 1828; RV64I-NEXT: lw s8, 104(s5) 1829; RV64I-NEXT: lw s9, 108(s5) 1830; RV64I-NEXT: lw s10, 112(s5) 1831; RV64I-NEXT: lw s11, 116(s5) 1832; RV64I-NEXT: lw s1, 120(s5) 1833; RV64I-NEXT: lw s2, 124(s5) 1834; RV64I-NEXT: call callee 1835; RV64I-NEXT: sw s2, 124(s5) 1836; RV64I-NEXT: sw s1, 120(s5) 1837; RV64I-NEXT: sw s11, 116(s5) 1838; RV64I-NEXT: sw s10, 112(s5) 1839; RV64I-NEXT: sw s9, 108(s5) 1840; RV64I-NEXT: sw s8, 104(s5) 1841; RV64I-NEXT: sw s7, 100(s5) 1842; RV64I-NEXT: sw s6, 96(s5) 1843; RV64I-NEXT: sw s4, 92(s5) 1844; RV64I-NEXT: sw s3, 88(s5) 1845; RV64I-NEXT: ld a0, 8(sp) # 8-byte Folded Reload 1846; RV64I-NEXT: sw a0, 84(s5) 1847; RV64I-NEXT: ld a0, 16(sp) # 8-byte Folded Reload 1848; RV64I-NEXT: sw a0, 80(s5) 1849; RV64I-NEXT: ld a0, 24(sp) # 8-byte Folded Reload 1850; RV64I-NEXT: sw a0, 76(s5) 1851; RV64I-NEXT: ld a0, 32(sp) # 8-byte Folded Reload 1852; RV64I-NEXT: sw a0, 72(s5) 1853; RV64I-NEXT: ld a0, 40(sp) # 8-byte Folded Reload 1854; RV64I-NEXT: sw a0, 68(s5) 1855; RV64I-NEXT: ld a0, 48(sp) # 8-byte Folded Reload 1856; RV64I-NEXT: sw a0, 64(s5) 1857; RV64I-NEXT: ld a0, 56(sp) # 8-byte Folded Reload 1858; RV64I-NEXT: sw a0, 60(s5) 1859; RV64I-NEXT: ld a0, 64(sp) # 8-byte Folded Reload 1860; RV64I-NEXT: sw a0, 56(s5) 1861; RV64I-NEXT: ld a0, 72(sp) # 8-byte Folded Reload 1862; RV64I-NEXT: sw a0, 52(s5) 1863; RV64I-NEXT: ld a0, 80(sp) # 8-byte Folded Reload 1864; RV64I-NEXT: sw a0, 48(s5) 1865; RV64I-NEXT: ld a0, 88(sp) # 8-byte Folded Reload 1866; RV64I-NEXT: sw a0, 44(s5) 1867; RV64I-NEXT: ld a0, 96(sp) # 8-byte Folded Reload 1868; RV64I-NEXT: sw a0, 40(s5) 1869; RV64I-NEXT: ld a0, 104(sp) # 8-byte Folded Reload 1870; RV64I-NEXT: sw a0, 36(s5) 1871; RV64I-NEXT: ld a0, 112(sp) # 8-byte Folded Reload 1872; RV64I-NEXT: sw a0, 32(s5) 1873; RV64I-NEXT: ld a0, 120(sp) # 8-byte Folded Reload 1874; RV64I-NEXT: sw a0, 28(s5) 1875; RV64I-NEXT: ld a0, 128(sp) # 8-byte Folded Reload 1876; RV64I-NEXT: sw a0, 24(s5) 1877; RV64I-NEXT: ld a0, 136(sp) # 8-byte Folded Reload 1878; RV64I-NEXT: sw a0, 20(s5) 1879; RV64I-NEXT: ld a0, 144(sp) # 8-byte Folded Reload 1880; RV64I-NEXT: sw a0, 16(s5) 1881; RV64I-NEXT: ld a0, 152(sp) # 8-byte Folded Reload 1882; RV64I-NEXT: sw a0, %lo(var+12)(s0) 1883; RV64I-NEXT: ld a0, 160(sp) # 8-byte Folded Reload 1884; RV64I-NEXT: sw a0, %lo(var+8)(s0) 1885; RV64I-NEXT: ld a0, 168(sp) # 8-byte Folded Reload 1886; RV64I-NEXT: sw a0, %lo(var+4)(s0) 1887; RV64I-NEXT: ld a0, 176(sp) # 8-byte Folded Reload 1888; RV64I-NEXT: sw a0, %lo(var)(s0) 1889; RV64I-NEXT: ld ra, 280(sp) # 8-byte Folded Reload 1890; RV64I-NEXT: ld s0, 272(sp) # 8-byte Folded Reload 1891; RV64I-NEXT: ld s1, 264(sp) # 8-byte Folded Reload 1892; RV64I-NEXT: ld s2, 256(sp) # 8-byte Folded Reload 1893; RV64I-NEXT: ld s3, 248(sp) # 8-byte Folded Reload 1894; RV64I-NEXT: ld s4, 240(sp) # 8-byte Folded Reload 1895; RV64I-NEXT: ld s5, 232(sp) # 8-byte Folded Reload 1896; RV64I-NEXT: ld s6, 224(sp) # 8-byte Folded Reload 1897; RV64I-NEXT: ld s7, 216(sp) # 8-byte Folded Reload 1898; RV64I-NEXT: ld s8, 208(sp) # 8-byte Folded Reload 1899; RV64I-NEXT: ld s9, 200(sp) # 8-byte Folded Reload 1900; RV64I-NEXT: ld s10, 192(sp) # 8-byte Folded Reload 1901; RV64I-NEXT: ld s11, 184(sp) # 8-byte Folded Reload 1902; RV64I-NEXT: addi sp, sp, 288 1903; RV64I-NEXT: ret 1904; 1905; RV64I-LP64E-LABEL: caller: 1906; RV64I-LP64E: # %bb.0: 1907; RV64I-LP64E-NEXT: addi sp, sp, -272 1908; RV64I-LP64E-NEXT: sd ra, 264(sp) # 8-byte Folded Spill 1909; RV64I-LP64E-NEXT: sd s0, 256(sp) # 8-byte Folded Spill 1910; RV64I-LP64E-NEXT: sd s1, 248(sp) # 8-byte Folded Spill 1911; RV64I-LP64E-NEXT: lui a0, %hi(var) 1912; RV64I-LP64E-NEXT: lw a1, %lo(var)(a0) 1913; RV64I-LP64E-NEXT: sd a1, 240(sp) # 8-byte Folded Spill 1914; RV64I-LP64E-NEXT: lw a1, %lo(var+4)(a0) 1915; RV64I-LP64E-NEXT: sd a1, 232(sp) # 8-byte Folded Spill 1916; RV64I-LP64E-NEXT: lw a1, %lo(var+8)(a0) 1917; RV64I-LP64E-NEXT: sd a1, 224(sp) # 8-byte Folded Spill 1918; RV64I-LP64E-NEXT: lw a1, %lo(var+12)(a0) 1919; RV64I-LP64E-NEXT: sd a1, 216(sp) # 8-byte Folded Spill 1920; RV64I-LP64E-NEXT: addi s1, a0, %lo(var) 1921; RV64I-LP64E-NEXT: lw a0, 16(s1) 1922; RV64I-LP64E-NEXT: sd a0, 208(sp) # 8-byte Folded Spill 1923; RV64I-LP64E-NEXT: lw a0, 20(s1) 1924; RV64I-LP64E-NEXT: sd a0, 200(sp) # 8-byte Folded Spill 1925; RV64I-LP64E-NEXT: lw a0, 24(s1) 1926; RV64I-LP64E-NEXT: sd a0, 192(sp) # 8-byte Folded Spill 1927; RV64I-LP64E-NEXT: lw a0, 28(s1) 1928; RV64I-LP64E-NEXT: sd a0, 184(sp) # 8-byte Folded Spill 1929; RV64I-LP64E-NEXT: lw a0, 32(s1) 1930; RV64I-LP64E-NEXT: sd a0, 176(sp) # 8-byte Folded Spill 1931; RV64I-LP64E-NEXT: lw a0, 36(s1) 1932; RV64I-LP64E-NEXT: sd a0, 168(sp) # 8-byte Folded Spill 1933; RV64I-LP64E-NEXT: lw a0, 40(s1) 1934; RV64I-LP64E-NEXT: sd a0, 160(sp) # 8-byte Folded Spill 1935; RV64I-LP64E-NEXT: lw a0, 44(s1) 1936; RV64I-LP64E-NEXT: sd a0, 152(sp) # 8-byte Folded Spill 1937; RV64I-LP64E-NEXT: lw a0, 48(s1) 1938; RV64I-LP64E-NEXT: sd a0, 144(sp) # 8-byte Folded Spill 1939; RV64I-LP64E-NEXT: lw a0, 52(s1) 1940; RV64I-LP64E-NEXT: sd a0, 136(sp) # 8-byte Folded Spill 1941; RV64I-LP64E-NEXT: lw a0, 56(s1) 1942; RV64I-LP64E-NEXT: sd a0, 128(sp) # 8-byte Folded Spill 1943; RV64I-LP64E-NEXT: lw a0, 60(s1) 1944; RV64I-LP64E-NEXT: sd a0, 120(sp) # 8-byte Folded Spill 1945; RV64I-LP64E-NEXT: lw a0, 64(s1) 1946; RV64I-LP64E-NEXT: sd a0, 112(sp) # 8-byte Folded Spill 1947; RV64I-LP64E-NEXT: lw a0, 68(s1) 1948; RV64I-LP64E-NEXT: sd a0, 104(sp) # 8-byte Folded Spill 1949; RV64I-LP64E-NEXT: lw a0, 72(s1) 1950; RV64I-LP64E-NEXT: sd a0, 96(sp) # 8-byte Folded Spill 1951; RV64I-LP64E-NEXT: lw a0, 76(s1) 1952; RV64I-LP64E-NEXT: sd a0, 88(sp) # 8-byte Folded Spill 1953; RV64I-LP64E-NEXT: lw a0, 80(s1) 1954; RV64I-LP64E-NEXT: sd a0, 80(sp) # 8-byte Folded Spill 1955; RV64I-LP64E-NEXT: lw a0, 84(s1) 1956; RV64I-LP64E-NEXT: sd a0, 72(sp) # 8-byte Folded Spill 1957; RV64I-LP64E-NEXT: lw a0, 88(s1) 1958; RV64I-LP64E-NEXT: sd a0, 64(sp) # 8-byte Folded Spill 1959; RV64I-LP64E-NEXT: lw a0, 92(s1) 1960; RV64I-LP64E-NEXT: sd a0, 56(sp) # 8-byte Folded Spill 1961; RV64I-LP64E-NEXT: lw a0, 96(s1) 1962; RV64I-LP64E-NEXT: sd a0, 48(sp) # 8-byte Folded Spill 1963; RV64I-LP64E-NEXT: lw a0, 100(s1) 1964; RV64I-LP64E-NEXT: sd a0, 40(sp) # 8-byte Folded Spill 1965; RV64I-LP64E-NEXT: lw a0, 104(s1) 1966; RV64I-LP64E-NEXT: sd a0, 32(sp) # 8-byte Folded Spill 1967; RV64I-LP64E-NEXT: lw a0, 108(s1) 1968; RV64I-LP64E-NEXT: sd a0, 24(sp) # 8-byte Folded Spill 1969; RV64I-LP64E-NEXT: lw a0, 112(s1) 1970; RV64I-LP64E-NEXT: sd a0, 16(sp) # 8-byte Folded Spill 1971; RV64I-LP64E-NEXT: lw a0, 116(s1) 1972; RV64I-LP64E-NEXT: sd a0, 8(sp) # 8-byte Folded Spill 1973; RV64I-LP64E-NEXT: lw a0, 120(s1) 1974; RV64I-LP64E-NEXT: sd a0, 0(sp) # 8-byte Folded Spill 1975; RV64I-LP64E-NEXT: lw s0, 124(s1) 1976; RV64I-LP64E-NEXT: call callee 1977; RV64I-LP64E-NEXT: sw s0, 124(s1) 1978; RV64I-LP64E-NEXT: ld a0, 0(sp) # 8-byte Folded Reload 1979; RV64I-LP64E-NEXT: sw a0, 120(s1) 1980; RV64I-LP64E-NEXT: ld a0, 8(sp) # 8-byte Folded Reload 1981; RV64I-LP64E-NEXT: sw a0, 116(s1) 1982; RV64I-LP64E-NEXT: ld a0, 16(sp) # 8-byte Folded Reload 1983; RV64I-LP64E-NEXT: sw a0, 112(s1) 1984; RV64I-LP64E-NEXT: ld a0, 24(sp) # 8-byte Folded Reload 1985; RV64I-LP64E-NEXT: sw a0, 108(s1) 1986; RV64I-LP64E-NEXT: ld a0, 32(sp) # 8-byte Folded Reload 1987; RV64I-LP64E-NEXT: sw a0, 104(s1) 1988; RV64I-LP64E-NEXT: ld a0, 40(sp) # 8-byte Folded Reload 1989; RV64I-LP64E-NEXT: sw a0, 100(s1) 1990; RV64I-LP64E-NEXT: ld a0, 48(sp) # 8-byte Folded Reload 1991; RV64I-LP64E-NEXT: sw a0, 96(s1) 1992; RV64I-LP64E-NEXT: ld a0, 56(sp) # 8-byte Folded Reload 1993; RV64I-LP64E-NEXT: sw a0, 92(s1) 1994; RV64I-LP64E-NEXT: ld a0, 64(sp) # 8-byte Folded Reload 1995; RV64I-LP64E-NEXT: sw a0, 88(s1) 1996; RV64I-LP64E-NEXT: ld a0, 72(sp) # 8-byte Folded Reload 1997; RV64I-LP64E-NEXT: sw a0, 84(s1) 1998; RV64I-LP64E-NEXT: ld a0, 80(sp) # 8-byte Folded Reload 1999; RV64I-LP64E-NEXT: sw a0, 80(s1) 2000; RV64I-LP64E-NEXT: ld a0, 88(sp) # 8-byte Folded Reload 2001; RV64I-LP64E-NEXT: sw a0, 76(s1) 2002; RV64I-LP64E-NEXT: ld a0, 96(sp) # 8-byte Folded Reload 2003; RV64I-LP64E-NEXT: sw a0, 72(s1) 2004; RV64I-LP64E-NEXT: ld a0, 104(sp) # 8-byte Folded Reload 2005; RV64I-LP64E-NEXT: sw a0, 68(s1) 2006; RV64I-LP64E-NEXT: ld a0, 112(sp) # 8-byte Folded Reload 2007; RV64I-LP64E-NEXT: sw a0, 64(s1) 2008; RV64I-LP64E-NEXT: ld a0, 120(sp) # 8-byte Folded Reload 2009; RV64I-LP64E-NEXT: sw a0, 60(s1) 2010; RV64I-LP64E-NEXT: ld a0, 128(sp) # 8-byte Folded Reload 2011; RV64I-LP64E-NEXT: sw a0, 56(s1) 2012; RV64I-LP64E-NEXT: ld a0, 136(sp) # 8-byte Folded Reload 2013; RV64I-LP64E-NEXT: sw a0, 52(s1) 2014; RV64I-LP64E-NEXT: ld a0, 144(sp) # 8-byte Folded Reload 2015; RV64I-LP64E-NEXT: sw a0, 48(s1) 2016; RV64I-LP64E-NEXT: ld a0, 152(sp) # 8-byte Folded Reload 2017; RV64I-LP64E-NEXT: sw a0, 44(s1) 2018; RV64I-LP64E-NEXT: ld a0, 160(sp) # 8-byte Folded Reload 2019; RV64I-LP64E-NEXT: sw a0, 40(s1) 2020; RV64I-LP64E-NEXT: ld a0, 168(sp) # 8-byte Folded Reload 2021; RV64I-LP64E-NEXT: sw a0, 36(s1) 2022; RV64I-LP64E-NEXT: ld a0, 176(sp) # 8-byte Folded Reload 2023; RV64I-LP64E-NEXT: sw a0, 32(s1) 2024; RV64I-LP64E-NEXT: ld a0, 184(sp) # 8-byte Folded Reload 2025; RV64I-LP64E-NEXT: sw a0, 28(s1) 2026; RV64I-LP64E-NEXT: ld a0, 192(sp) # 8-byte Folded Reload 2027; RV64I-LP64E-NEXT: sw a0, 24(s1) 2028; RV64I-LP64E-NEXT: ld a0, 200(sp) # 8-byte Folded Reload 2029; RV64I-LP64E-NEXT: sw a0, 20(s1) 2030; RV64I-LP64E-NEXT: ld a0, 208(sp) # 8-byte Folded Reload 2031; RV64I-LP64E-NEXT: sw a0, 16(s1) 2032; RV64I-LP64E-NEXT: lui a1, %hi(var) 2033; RV64I-LP64E-NEXT: ld a0, 216(sp) # 8-byte Folded Reload 2034; RV64I-LP64E-NEXT: sw a0, %lo(var+12)(a1) 2035; RV64I-LP64E-NEXT: ld a0, 224(sp) # 8-byte Folded Reload 2036; RV64I-LP64E-NEXT: sw a0, %lo(var+8)(a1) 2037; RV64I-LP64E-NEXT: ld a0, 232(sp) # 8-byte Folded Reload 2038; RV64I-LP64E-NEXT: sw a0, %lo(var+4)(a1) 2039; RV64I-LP64E-NEXT: ld a0, 240(sp) # 8-byte Folded Reload 2040; RV64I-LP64E-NEXT: sw a0, %lo(var)(a1) 2041; RV64I-LP64E-NEXT: ld ra, 264(sp) # 8-byte Folded Reload 2042; RV64I-LP64E-NEXT: ld s0, 256(sp) # 8-byte Folded Reload 2043; RV64I-LP64E-NEXT: ld s1, 248(sp) # 8-byte Folded Reload 2044; RV64I-LP64E-NEXT: addi sp, sp, 272 2045; RV64I-LP64E-NEXT: ret 2046; 2047; RV64I-WITH-FP-LABEL: caller: 2048; RV64I-WITH-FP: # %bb.0: 2049; RV64I-WITH-FP-NEXT: addi sp, sp, -288 2050; RV64I-WITH-FP-NEXT: sd ra, 280(sp) # 8-byte Folded Spill 2051; RV64I-WITH-FP-NEXT: sd s0, 272(sp) # 8-byte Folded Spill 2052; RV64I-WITH-FP-NEXT: sd s1, 264(sp) # 8-byte Folded Spill 2053; RV64I-WITH-FP-NEXT: sd s2, 256(sp) # 8-byte Folded Spill 2054; RV64I-WITH-FP-NEXT: sd s3, 248(sp) # 8-byte Folded Spill 2055; RV64I-WITH-FP-NEXT: sd s4, 240(sp) # 8-byte Folded Spill 2056; RV64I-WITH-FP-NEXT: sd s5, 232(sp) # 8-byte Folded Spill 2057; RV64I-WITH-FP-NEXT: sd s6, 224(sp) # 8-byte Folded Spill 2058; RV64I-WITH-FP-NEXT: sd s7, 216(sp) # 8-byte Folded Spill 2059; RV64I-WITH-FP-NEXT: sd s8, 208(sp) # 8-byte Folded Spill 2060; RV64I-WITH-FP-NEXT: sd s9, 200(sp) # 8-byte Folded Spill 2061; RV64I-WITH-FP-NEXT: sd s10, 192(sp) # 8-byte Folded Spill 2062; RV64I-WITH-FP-NEXT: sd s11, 184(sp) # 8-byte Folded Spill 2063; RV64I-WITH-FP-NEXT: addi s0, sp, 288 2064; RV64I-WITH-FP-NEXT: lui s1, %hi(var) 2065; RV64I-WITH-FP-NEXT: lw a0, %lo(var)(s1) 2066; RV64I-WITH-FP-NEXT: sd a0, -112(s0) # 8-byte Folded Spill 2067; RV64I-WITH-FP-NEXT: lw a0, %lo(var+4)(s1) 2068; RV64I-WITH-FP-NEXT: sd a0, -120(s0) # 8-byte Folded Spill 2069; RV64I-WITH-FP-NEXT: lw a0, %lo(var+8)(s1) 2070; RV64I-WITH-FP-NEXT: sd a0, -128(s0) # 8-byte Folded Spill 2071; RV64I-WITH-FP-NEXT: lw a0, %lo(var+12)(s1) 2072; RV64I-WITH-FP-NEXT: sd a0, -136(s0) # 8-byte Folded Spill 2073; RV64I-WITH-FP-NEXT: addi s6, s1, %lo(var) 2074; RV64I-WITH-FP-NEXT: lw a0, 16(s6) 2075; RV64I-WITH-FP-NEXT: sd a0, -144(s0) # 8-byte Folded Spill 2076; RV64I-WITH-FP-NEXT: lw a0, 20(s6) 2077; RV64I-WITH-FP-NEXT: sd a0, -152(s0) # 8-byte Folded Spill 2078; RV64I-WITH-FP-NEXT: lw a0, 24(s6) 2079; RV64I-WITH-FP-NEXT: sd a0, -160(s0) # 8-byte Folded Spill 2080; RV64I-WITH-FP-NEXT: lw a0, 28(s6) 2081; RV64I-WITH-FP-NEXT: sd a0, -168(s0) # 8-byte Folded Spill 2082; RV64I-WITH-FP-NEXT: lw a0, 32(s6) 2083; RV64I-WITH-FP-NEXT: sd a0, -176(s0) # 8-byte Folded Spill 2084; RV64I-WITH-FP-NEXT: lw a0, 36(s6) 2085; RV64I-WITH-FP-NEXT: sd a0, -184(s0) # 8-byte Folded Spill 2086; RV64I-WITH-FP-NEXT: lw a0, 40(s6) 2087; RV64I-WITH-FP-NEXT: sd a0, -192(s0) # 8-byte Folded Spill 2088; RV64I-WITH-FP-NEXT: lw a0, 44(s6) 2089; RV64I-WITH-FP-NEXT: sd a0, -200(s0) # 8-byte Folded Spill 2090; RV64I-WITH-FP-NEXT: lw a0, 48(s6) 2091; RV64I-WITH-FP-NEXT: sd a0, -208(s0) # 8-byte Folded Spill 2092; RV64I-WITH-FP-NEXT: lw a0, 52(s6) 2093; RV64I-WITH-FP-NEXT: sd a0, -216(s0) # 8-byte Folded Spill 2094; RV64I-WITH-FP-NEXT: lw a0, 56(s6) 2095; RV64I-WITH-FP-NEXT: sd a0, -224(s0) # 8-byte Folded Spill 2096; RV64I-WITH-FP-NEXT: lw a0, 60(s6) 2097; RV64I-WITH-FP-NEXT: sd a0, -232(s0) # 8-byte Folded Spill 2098; RV64I-WITH-FP-NEXT: lw a0, 64(s6) 2099; RV64I-WITH-FP-NEXT: sd a0, -240(s0) # 8-byte Folded Spill 2100; RV64I-WITH-FP-NEXT: lw a0, 68(s6) 2101; RV64I-WITH-FP-NEXT: sd a0, -248(s0) # 8-byte Folded Spill 2102; RV64I-WITH-FP-NEXT: lw a0, 72(s6) 2103; RV64I-WITH-FP-NEXT: sd a0, -256(s0) # 8-byte Folded Spill 2104; RV64I-WITH-FP-NEXT: lw a0, 76(s6) 2105; RV64I-WITH-FP-NEXT: sd a0, -264(s0) # 8-byte Folded Spill 2106; RV64I-WITH-FP-NEXT: lw a0, 80(s6) 2107; RV64I-WITH-FP-NEXT: sd a0, -272(s0) # 8-byte Folded Spill 2108; RV64I-WITH-FP-NEXT: lw a0, 84(s6) 2109; RV64I-WITH-FP-NEXT: sd a0, -280(s0) # 8-byte Folded Spill 2110; RV64I-WITH-FP-NEXT: lw a0, 88(s6) 2111; RV64I-WITH-FP-NEXT: sd a0, -288(s0) # 8-byte Folded Spill 2112; RV64I-WITH-FP-NEXT: lw s8, 92(s6) 2113; RV64I-WITH-FP-NEXT: lw s9, 96(s6) 2114; RV64I-WITH-FP-NEXT: lw s10, 100(s6) 2115; RV64I-WITH-FP-NEXT: lw s11, 104(s6) 2116; RV64I-WITH-FP-NEXT: lw s2, 108(s6) 2117; RV64I-WITH-FP-NEXT: lw s3, 112(s6) 2118; RV64I-WITH-FP-NEXT: lw s4, 116(s6) 2119; RV64I-WITH-FP-NEXT: lw s5, 120(s6) 2120; RV64I-WITH-FP-NEXT: lw s7, 124(s6) 2121; RV64I-WITH-FP-NEXT: call callee 2122; RV64I-WITH-FP-NEXT: sw s7, 124(s6) 2123; RV64I-WITH-FP-NEXT: sw s5, 120(s6) 2124; RV64I-WITH-FP-NEXT: sw s4, 116(s6) 2125; RV64I-WITH-FP-NEXT: sw s3, 112(s6) 2126; RV64I-WITH-FP-NEXT: sw s2, 108(s6) 2127; RV64I-WITH-FP-NEXT: sw s11, 104(s6) 2128; RV64I-WITH-FP-NEXT: sw s10, 100(s6) 2129; RV64I-WITH-FP-NEXT: sw s9, 96(s6) 2130; RV64I-WITH-FP-NEXT: sw s8, 92(s6) 2131; RV64I-WITH-FP-NEXT: ld a0, -288(s0) # 8-byte Folded Reload 2132; RV64I-WITH-FP-NEXT: sw a0, 88(s6) 2133; RV64I-WITH-FP-NEXT: ld a0, -280(s0) # 8-byte Folded Reload 2134; RV64I-WITH-FP-NEXT: sw a0, 84(s6) 2135; RV64I-WITH-FP-NEXT: ld a0, -272(s0) # 8-byte Folded Reload 2136; RV64I-WITH-FP-NEXT: sw a0, 80(s6) 2137; RV64I-WITH-FP-NEXT: ld a0, -264(s0) # 8-byte Folded Reload 2138; RV64I-WITH-FP-NEXT: sw a0, 76(s6) 2139; RV64I-WITH-FP-NEXT: ld a0, -256(s0) # 8-byte Folded Reload 2140; RV64I-WITH-FP-NEXT: sw a0, 72(s6) 2141; RV64I-WITH-FP-NEXT: ld a0, -248(s0) # 8-byte Folded Reload 2142; RV64I-WITH-FP-NEXT: sw a0, 68(s6) 2143; RV64I-WITH-FP-NEXT: ld a0, -240(s0) # 8-byte Folded Reload 2144; RV64I-WITH-FP-NEXT: sw a0, 64(s6) 2145; RV64I-WITH-FP-NEXT: ld a0, -232(s0) # 8-byte Folded Reload 2146; RV64I-WITH-FP-NEXT: sw a0, 60(s6) 2147; RV64I-WITH-FP-NEXT: ld a0, -224(s0) # 8-byte Folded Reload 2148; RV64I-WITH-FP-NEXT: sw a0, 56(s6) 2149; RV64I-WITH-FP-NEXT: ld a0, -216(s0) # 8-byte Folded Reload 2150; RV64I-WITH-FP-NEXT: sw a0, 52(s6) 2151; RV64I-WITH-FP-NEXT: ld a0, -208(s0) # 8-byte Folded Reload 2152; RV64I-WITH-FP-NEXT: sw a0, 48(s6) 2153; RV64I-WITH-FP-NEXT: ld a0, -200(s0) # 8-byte Folded Reload 2154; RV64I-WITH-FP-NEXT: sw a0, 44(s6) 2155; RV64I-WITH-FP-NEXT: ld a0, -192(s0) # 8-byte Folded Reload 2156; RV64I-WITH-FP-NEXT: sw a0, 40(s6) 2157; RV64I-WITH-FP-NEXT: ld a0, -184(s0) # 8-byte Folded Reload 2158; RV64I-WITH-FP-NEXT: sw a0, 36(s6) 2159; RV64I-WITH-FP-NEXT: ld a0, -176(s0) # 8-byte Folded Reload 2160; RV64I-WITH-FP-NEXT: sw a0, 32(s6) 2161; RV64I-WITH-FP-NEXT: ld a0, -168(s0) # 8-byte Folded Reload 2162; RV64I-WITH-FP-NEXT: sw a0, 28(s6) 2163; RV64I-WITH-FP-NEXT: ld a0, -160(s0) # 8-byte Folded Reload 2164; RV64I-WITH-FP-NEXT: sw a0, 24(s6) 2165; RV64I-WITH-FP-NEXT: ld a0, -152(s0) # 8-byte Folded Reload 2166; RV64I-WITH-FP-NEXT: sw a0, 20(s6) 2167; RV64I-WITH-FP-NEXT: ld a0, -144(s0) # 8-byte Folded Reload 2168; RV64I-WITH-FP-NEXT: sw a0, 16(s6) 2169; RV64I-WITH-FP-NEXT: ld a0, -136(s0) # 8-byte Folded Reload 2170; RV64I-WITH-FP-NEXT: sw a0, %lo(var+12)(s1) 2171; RV64I-WITH-FP-NEXT: ld a0, -128(s0) # 8-byte Folded Reload 2172; RV64I-WITH-FP-NEXT: sw a0, %lo(var+8)(s1) 2173; RV64I-WITH-FP-NEXT: ld a0, -120(s0) # 8-byte Folded Reload 2174; RV64I-WITH-FP-NEXT: sw a0, %lo(var+4)(s1) 2175; RV64I-WITH-FP-NEXT: ld a0, -112(s0) # 8-byte Folded Reload 2176; RV64I-WITH-FP-NEXT: sw a0, %lo(var)(s1) 2177; RV64I-WITH-FP-NEXT: ld ra, 280(sp) # 8-byte Folded Reload 2178; RV64I-WITH-FP-NEXT: ld s0, 272(sp) # 8-byte Folded Reload 2179; RV64I-WITH-FP-NEXT: ld s1, 264(sp) # 8-byte Folded Reload 2180; RV64I-WITH-FP-NEXT: ld s2, 256(sp) # 8-byte Folded Reload 2181; RV64I-WITH-FP-NEXT: ld s3, 248(sp) # 8-byte Folded Reload 2182; RV64I-WITH-FP-NEXT: ld s4, 240(sp) # 8-byte Folded Reload 2183; RV64I-WITH-FP-NEXT: ld s5, 232(sp) # 8-byte Folded Reload 2184; RV64I-WITH-FP-NEXT: ld s6, 224(sp) # 8-byte Folded Reload 2185; RV64I-WITH-FP-NEXT: ld s7, 216(sp) # 8-byte Folded Reload 2186; RV64I-WITH-FP-NEXT: ld s8, 208(sp) # 8-byte Folded Reload 2187; RV64I-WITH-FP-NEXT: ld s9, 200(sp) # 8-byte Folded Reload 2188; RV64I-WITH-FP-NEXT: ld s10, 192(sp) # 8-byte Folded Reload 2189; RV64I-WITH-FP-NEXT: ld s11, 184(sp) # 8-byte Folded Reload 2190; RV64I-WITH-FP-NEXT: addi sp, sp, 288 2191; RV64I-WITH-FP-NEXT: ret 2192; 2193; RV64IZCMP-LABEL: caller: 2194; RV64IZCMP: # %bb.0: 2195; RV64IZCMP-NEXT: cm.push {ra, s0-s11}, -160 2196; RV64IZCMP-NEXT: addi sp, sp, -128 2197; RV64IZCMP-NEXT: lui s0, %hi(var) 2198; RV64IZCMP-NEXT: lw a0, %lo(var)(s0) 2199; RV64IZCMP-NEXT: sd a0, 168(sp) # 8-byte Folded Spill 2200; RV64IZCMP-NEXT: lw a0, %lo(var+4)(s0) 2201; RV64IZCMP-NEXT: sd a0, 160(sp) # 8-byte Folded Spill 2202; RV64IZCMP-NEXT: lw a0, %lo(var+8)(s0) 2203; RV64IZCMP-NEXT: sd a0, 152(sp) # 8-byte Folded Spill 2204; RV64IZCMP-NEXT: lw a0, %lo(var+12)(s0) 2205; RV64IZCMP-NEXT: sd a0, 144(sp) # 8-byte Folded Spill 2206; RV64IZCMP-NEXT: addi s1, s0, %lo(var) 2207; RV64IZCMP-NEXT: lw a0, 16(s1) 2208; RV64IZCMP-NEXT: sd a0, 136(sp) # 8-byte Folded Spill 2209; RV64IZCMP-NEXT: lw a0, 20(s1) 2210; RV64IZCMP-NEXT: sd a0, 128(sp) # 8-byte Folded Spill 2211; RV64IZCMP-NEXT: lw a0, 24(s1) 2212; RV64IZCMP-NEXT: sd a0, 120(sp) # 8-byte Folded Spill 2213; RV64IZCMP-NEXT: lw a0, 28(s1) 2214; RV64IZCMP-NEXT: sd a0, 112(sp) # 8-byte Folded Spill 2215; RV64IZCMP-NEXT: lw a0, 32(s1) 2216; RV64IZCMP-NEXT: sd a0, 104(sp) # 8-byte Folded Spill 2217; RV64IZCMP-NEXT: lw a0, 36(s1) 2218; RV64IZCMP-NEXT: sd a0, 96(sp) # 8-byte Folded Spill 2219; RV64IZCMP-NEXT: lw a0, 40(s1) 2220; RV64IZCMP-NEXT: sd a0, 88(sp) # 8-byte Folded Spill 2221; RV64IZCMP-NEXT: lw a0, 44(s1) 2222; RV64IZCMP-NEXT: sd a0, 80(sp) # 8-byte Folded Spill 2223; RV64IZCMP-NEXT: lw a0, 48(s1) 2224; RV64IZCMP-NEXT: sd a0, 72(sp) # 8-byte Folded Spill 2225; RV64IZCMP-NEXT: lw a0, 52(s1) 2226; RV64IZCMP-NEXT: sd a0, 64(sp) # 8-byte Folded Spill 2227; RV64IZCMP-NEXT: lw a0, 56(s1) 2228; RV64IZCMP-NEXT: sd a0, 56(sp) # 8-byte Folded Spill 2229; RV64IZCMP-NEXT: lw a0, 60(s1) 2230; RV64IZCMP-NEXT: sd a0, 48(sp) # 8-byte Folded Spill 2231; RV64IZCMP-NEXT: lw a0, 64(s1) 2232; RV64IZCMP-NEXT: sd a0, 40(sp) # 8-byte Folded Spill 2233; RV64IZCMP-NEXT: lw a0, 68(s1) 2234; RV64IZCMP-NEXT: sd a0, 32(sp) # 8-byte Folded Spill 2235; RV64IZCMP-NEXT: lw a0, 72(s1) 2236; RV64IZCMP-NEXT: sd a0, 24(sp) # 8-byte Folded Spill 2237; RV64IZCMP-NEXT: lw a0, 76(s1) 2238; RV64IZCMP-NEXT: sd a0, 16(sp) # 8-byte Folded Spill 2239; RV64IZCMP-NEXT: lw a0, 80(s1) 2240; RV64IZCMP-NEXT: sd a0, 8(sp) # 8-byte Folded Spill 2241; RV64IZCMP-NEXT: lw a0, 84(s1) 2242; RV64IZCMP-NEXT: sd a0, 0(sp) # 8-byte Folded Spill 2243; RV64IZCMP-NEXT: lw s4, 88(s1) 2244; RV64IZCMP-NEXT: lw s5, 92(s1) 2245; RV64IZCMP-NEXT: lw s6, 96(s1) 2246; RV64IZCMP-NEXT: lw s7, 100(s1) 2247; RV64IZCMP-NEXT: lw s8, 104(s1) 2248; RV64IZCMP-NEXT: lw s9, 108(s1) 2249; RV64IZCMP-NEXT: lw s10, 112(s1) 2250; RV64IZCMP-NEXT: lw s11, 116(s1) 2251; RV64IZCMP-NEXT: lw s2, 120(s1) 2252; RV64IZCMP-NEXT: lw s3, 124(s1) 2253; RV64IZCMP-NEXT: call callee 2254; RV64IZCMP-NEXT: sw s3, 124(s1) 2255; RV64IZCMP-NEXT: sw s2, 120(s1) 2256; RV64IZCMP-NEXT: sw s11, 116(s1) 2257; RV64IZCMP-NEXT: sw s10, 112(s1) 2258; RV64IZCMP-NEXT: sw s9, 108(s1) 2259; RV64IZCMP-NEXT: sw s8, 104(s1) 2260; RV64IZCMP-NEXT: sw s7, 100(s1) 2261; RV64IZCMP-NEXT: sw s6, 96(s1) 2262; RV64IZCMP-NEXT: sw s5, 92(s1) 2263; RV64IZCMP-NEXT: sw s4, 88(s1) 2264; RV64IZCMP-NEXT: ld a0, 0(sp) # 8-byte Folded Reload 2265; RV64IZCMP-NEXT: sw a0, 84(s1) 2266; RV64IZCMP-NEXT: ld a0, 8(sp) # 8-byte Folded Reload 2267; RV64IZCMP-NEXT: sw a0, 80(s1) 2268; RV64IZCMP-NEXT: ld a0, 16(sp) # 8-byte Folded Reload 2269; RV64IZCMP-NEXT: sw a0, 76(s1) 2270; RV64IZCMP-NEXT: ld a0, 24(sp) # 8-byte Folded Reload 2271; RV64IZCMP-NEXT: sw a0, 72(s1) 2272; RV64IZCMP-NEXT: ld a0, 32(sp) # 8-byte Folded Reload 2273; RV64IZCMP-NEXT: sw a0, 68(s1) 2274; RV64IZCMP-NEXT: ld a0, 40(sp) # 8-byte Folded Reload 2275; RV64IZCMP-NEXT: sw a0, 64(s1) 2276; RV64IZCMP-NEXT: ld a0, 48(sp) # 8-byte Folded Reload 2277; RV64IZCMP-NEXT: sw a0, 60(s1) 2278; RV64IZCMP-NEXT: ld a0, 56(sp) # 8-byte Folded Reload 2279; RV64IZCMP-NEXT: sw a0, 56(s1) 2280; RV64IZCMP-NEXT: ld a0, 64(sp) # 8-byte Folded Reload 2281; RV64IZCMP-NEXT: sw a0, 52(s1) 2282; RV64IZCMP-NEXT: ld a0, 72(sp) # 8-byte Folded Reload 2283; RV64IZCMP-NEXT: sw a0, 48(s1) 2284; RV64IZCMP-NEXT: ld a0, 80(sp) # 8-byte Folded Reload 2285; RV64IZCMP-NEXT: sw a0, 44(s1) 2286; RV64IZCMP-NEXT: ld a0, 88(sp) # 8-byte Folded Reload 2287; RV64IZCMP-NEXT: sw a0, 40(s1) 2288; RV64IZCMP-NEXT: ld a0, 96(sp) # 8-byte Folded Reload 2289; RV64IZCMP-NEXT: sw a0, 36(s1) 2290; RV64IZCMP-NEXT: ld a0, 104(sp) # 8-byte Folded Reload 2291; RV64IZCMP-NEXT: sw a0, 32(s1) 2292; RV64IZCMP-NEXT: ld a0, 112(sp) # 8-byte Folded Reload 2293; RV64IZCMP-NEXT: sw a0, 28(s1) 2294; RV64IZCMP-NEXT: ld a0, 120(sp) # 8-byte Folded Reload 2295; RV64IZCMP-NEXT: sw a0, 24(s1) 2296; RV64IZCMP-NEXT: ld a0, 128(sp) # 8-byte Folded Reload 2297; RV64IZCMP-NEXT: sw a0, 20(s1) 2298; RV64IZCMP-NEXT: ld a0, 136(sp) # 8-byte Folded Reload 2299; RV64IZCMP-NEXT: sw a0, 16(s1) 2300; RV64IZCMP-NEXT: ld a0, 144(sp) # 8-byte Folded Reload 2301; RV64IZCMP-NEXT: sw a0, %lo(var+12)(s0) 2302; RV64IZCMP-NEXT: ld a0, 152(sp) # 8-byte Folded Reload 2303; RV64IZCMP-NEXT: sw a0, %lo(var+8)(s0) 2304; RV64IZCMP-NEXT: ld a0, 160(sp) # 8-byte Folded Reload 2305; RV64IZCMP-NEXT: sw a0, %lo(var+4)(s0) 2306; RV64IZCMP-NEXT: ld a0, 168(sp) # 8-byte Folded Reload 2307; RV64IZCMP-NEXT: sw a0, %lo(var)(s0) 2308; RV64IZCMP-NEXT: addi sp, sp, 128 2309; RV64IZCMP-NEXT: cm.popret {ra, s0-s11}, 160 2310; 2311; RV64IZCMP-WITH-FP-LABEL: caller: 2312; RV64IZCMP-WITH-FP: # %bb.0: 2313; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -288 2314; RV64IZCMP-WITH-FP-NEXT: sd ra, 280(sp) # 8-byte Folded Spill 2315; RV64IZCMP-WITH-FP-NEXT: sd s0, 272(sp) # 8-byte Folded Spill 2316; RV64IZCMP-WITH-FP-NEXT: sd s1, 264(sp) # 8-byte Folded Spill 2317; RV64IZCMP-WITH-FP-NEXT: sd s2, 256(sp) # 8-byte Folded Spill 2318; RV64IZCMP-WITH-FP-NEXT: sd s3, 248(sp) # 8-byte Folded Spill 2319; RV64IZCMP-WITH-FP-NEXT: sd s4, 240(sp) # 8-byte Folded Spill 2320; RV64IZCMP-WITH-FP-NEXT: sd s5, 232(sp) # 8-byte Folded Spill 2321; RV64IZCMP-WITH-FP-NEXT: sd s6, 224(sp) # 8-byte Folded Spill 2322; RV64IZCMP-WITH-FP-NEXT: sd s7, 216(sp) # 8-byte Folded Spill 2323; RV64IZCMP-WITH-FP-NEXT: sd s8, 208(sp) # 8-byte Folded Spill 2324; RV64IZCMP-WITH-FP-NEXT: sd s9, 200(sp) # 8-byte Folded Spill 2325; RV64IZCMP-WITH-FP-NEXT: sd s10, 192(sp) # 8-byte Folded Spill 2326; RV64IZCMP-WITH-FP-NEXT: sd s11, 184(sp) # 8-byte Folded Spill 2327; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 288 2328; RV64IZCMP-WITH-FP-NEXT: lui s6, %hi(var) 2329; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var)(s6) 2330; RV64IZCMP-WITH-FP-NEXT: sd a0, -112(s0) # 8-byte Folded Spill 2331; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+4)(s6) 2332; RV64IZCMP-WITH-FP-NEXT: sd a0, -120(s0) # 8-byte Folded Spill 2333; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+8)(s6) 2334; RV64IZCMP-WITH-FP-NEXT: sd a0, -128(s0) # 8-byte Folded Spill 2335; RV64IZCMP-WITH-FP-NEXT: lw a0, %lo(var+12)(s6) 2336; RV64IZCMP-WITH-FP-NEXT: sd a0, -136(s0) # 8-byte Folded Spill 2337; RV64IZCMP-WITH-FP-NEXT: addi s1, s6, %lo(var) 2338; RV64IZCMP-WITH-FP-NEXT: lw a0, 16(s1) 2339; RV64IZCMP-WITH-FP-NEXT: sd a0, -144(s0) # 8-byte Folded Spill 2340; RV64IZCMP-WITH-FP-NEXT: lw a0, 20(s1) 2341; RV64IZCMP-WITH-FP-NEXT: sd a0, -152(s0) # 8-byte Folded Spill 2342; RV64IZCMP-WITH-FP-NEXT: lw a0, 24(s1) 2343; RV64IZCMP-WITH-FP-NEXT: sd a0, -160(s0) # 8-byte Folded Spill 2344; RV64IZCMP-WITH-FP-NEXT: lw a0, 28(s1) 2345; RV64IZCMP-WITH-FP-NEXT: sd a0, -168(s0) # 8-byte Folded Spill 2346; RV64IZCMP-WITH-FP-NEXT: lw a0, 32(s1) 2347; RV64IZCMP-WITH-FP-NEXT: sd a0, -176(s0) # 8-byte Folded Spill 2348; RV64IZCMP-WITH-FP-NEXT: lw a0, 36(s1) 2349; RV64IZCMP-WITH-FP-NEXT: sd a0, -184(s0) # 8-byte Folded Spill 2350; RV64IZCMP-WITH-FP-NEXT: lw a0, 40(s1) 2351; RV64IZCMP-WITH-FP-NEXT: sd a0, -192(s0) # 8-byte Folded Spill 2352; RV64IZCMP-WITH-FP-NEXT: lw a0, 44(s1) 2353; RV64IZCMP-WITH-FP-NEXT: sd a0, -200(s0) # 8-byte Folded Spill 2354; RV64IZCMP-WITH-FP-NEXT: lw a0, 48(s1) 2355; RV64IZCMP-WITH-FP-NEXT: sd a0, -208(s0) # 8-byte Folded Spill 2356; RV64IZCMP-WITH-FP-NEXT: lw a0, 52(s1) 2357; RV64IZCMP-WITH-FP-NEXT: sd a0, -216(s0) # 8-byte Folded Spill 2358; RV64IZCMP-WITH-FP-NEXT: lw a0, 56(s1) 2359; RV64IZCMP-WITH-FP-NEXT: sd a0, -224(s0) # 8-byte Folded Spill 2360; RV64IZCMP-WITH-FP-NEXT: lw a0, 60(s1) 2361; RV64IZCMP-WITH-FP-NEXT: sd a0, -232(s0) # 8-byte Folded Spill 2362; RV64IZCMP-WITH-FP-NEXT: lw a0, 64(s1) 2363; RV64IZCMP-WITH-FP-NEXT: sd a0, -240(s0) # 8-byte Folded Spill 2364; RV64IZCMP-WITH-FP-NEXT: lw a0, 68(s1) 2365; RV64IZCMP-WITH-FP-NEXT: sd a0, -248(s0) # 8-byte Folded Spill 2366; RV64IZCMP-WITH-FP-NEXT: lw a0, 72(s1) 2367; RV64IZCMP-WITH-FP-NEXT: sd a0, -256(s0) # 8-byte Folded Spill 2368; RV64IZCMP-WITH-FP-NEXT: lw a0, 76(s1) 2369; RV64IZCMP-WITH-FP-NEXT: sd a0, -264(s0) # 8-byte Folded Spill 2370; RV64IZCMP-WITH-FP-NEXT: lw a0, 80(s1) 2371; RV64IZCMP-WITH-FP-NEXT: sd a0, -272(s0) # 8-byte Folded Spill 2372; RV64IZCMP-WITH-FP-NEXT: lw a0, 84(s1) 2373; RV64IZCMP-WITH-FP-NEXT: sd a0, -280(s0) # 8-byte Folded Spill 2374; RV64IZCMP-WITH-FP-NEXT: lw a0, 88(s1) 2375; RV64IZCMP-WITH-FP-NEXT: sd a0, -288(s0) # 8-byte Folded Spill 2376; RV64IZCMP-WITH-FP-NEXT: lw s8, 92(s1) 2377; RV64IZCMP-WITH-FP-NEXT: lw s9, 96(s1) 2378; RV64IZCMP-WITH-FP-NEXT: lw s10, 100(s1) 2379; RV64IZCMP-WITH-FP-NEXT: lw s11, 104(s1) 2380; RV64IZCMP-WITH-FP-NEXT: lw s2, 108(s1) 2381; RV64IZCMP-WITH-FP-NEXT: lw s3, 112(s1) 2382; RV64IZCMP-WITH-FP-NEXT: lw s4, 116(s1) 2383; RV64IZCMP-WITH-FP-NEXT: lw s5, 120(s1) 2384; RV64IZCMP-WITH-FP-NEXT: lw s7, 124(s1) 2385; RV64IZCMP-WITH-FP-NEXT: call callee 2386; RV64IZCMP-WITH-FP-NEXT: sw s7, 124(s1) 2387; RV64IZCMP-WITH-FP-NEXT: sw s5, 120(s1) 2388; RV64IZCMP-WITH-FP-NEXT: sw s4, 116(s1) 2389; RV64IZCMP-WITH-FP-NEXT: sw s3, 112(s1) 2390; RV64IZCMP-WITH-FP-NEXT: sw s2, 108(s1) 2391; RV64IZCMP-WITH-FP-NEXT: sw s11, 104(s1) 2392; RV64IZCMP-WITH-FP-NEXT: sw s10, 100(s1) 2393; RV64IZCMP-WITH-FP-NEXT: sw s9, 96(s1) 2394; RV64IZCMP-WITH-FP-NEXT: sw s8, 92(s1) 2395; RV64IZCMP-WITH-FP-NEXT: ld a0, -288(s0) # 8-byte Folded Reload 2396; RV64IZCMP-WITH-FP-NEXT: sw a0, 88(s1) 2397; RV64IZCMP-WITH-FP-NEXT: ld a0, -280(s0) # 8-byte Folded Reload 2398; RV64IZCMP-WITH-FP-NEXT: sw a0, 84(s1) 2399; RV64IZCMP-WITH-FP-NEXT: ld a0, -272(s0) # 8-byte Folded Reload 2400; RV64IZCMP-WITH-FP-NEXT: sw a0, 80(s1) 2401; RV64IZCMP-WITH-FP-NEXT: ld a0, -264(s0) # 8-byte Folded Reload 2402; RV64IZCMP-WITH-FP-NEXT: sw a0, 76(s1) 2403; RV64IZCMP-WITH-FP-NEXT: ld a0, -256(s0) # 8-byte Folded Reload 2404; RV64IZCMP-WITH-FP-NEXT: sw a0, 72(s1) 2405; RV64IZCMP-WITH-FP-NEXT: ld a0, -248(s0) # 8-byte Folded Reload 2406; RV64IZCMP-WITH-FP-NEXT: sw a0, 68(s1) 2407; RV64IZCMP-WITH-FP-NEXT: ld a0, -240(s0) # 8-byte Folded Reload 2408; RV64IZCMP-WITH-FP-NEXT: sw a0, 64(s1) 2409; RV64IZCMP-WITH-FP-NEXT: ld a0, -232(s0) # 8-byte Folded Reload 2410; RV64IZCMP-WITH-FP-NEXT: sw a0, 60(s1) 2411; RV64IZCMP-WITH-FP-NEXT: ld a0, -224(s0) # 8-byte Folded Reload 2412; RV64IZCMP-WITH-FP-NEXT: sw a0, 56(s1) 2413; RV64IZCMP-WITH-FP-NEXT: ld a0, -216(s0) # 8-byte Folded Reload 2414; RV64IZCMP-WITH-FP-NEXT: sw a0, 52(s1) 2415; RV64IZCMP-WITH-FP-NEXT: ld a0, -208(s0) # 8-byte Folded Reload 2416; RV64IZCMP-WITH-FP-NEXT: sw a0, 48(s1) 2417; RV64IZCMP-WITH-FP-NEXT: ld a0, -200(s0) # 8-byte Folded Reload 2418; RV64IZCMP-WITH-FP-NEXT: sw a0, 44(s1) 2419; RV64IZCMP-WITH-FP-NEXT: ld a0, -192(s0) # 8-byte Folded Reload 2420; RV64IZCMP-WITH-FP-NEXT: sw a0, 40(s1) 2421; RV64IZCMP-WITH-FP-NEXT: ld a0, -184(s0) # 8-byte Folded Reload 2422; RV64IZCMP-WITH-FP-NEXT: sw a0, 36(s1) 2423; RV64IZCMP-WITH-FP-NEXT: ld a0, -176(s0) # 8-byte Folded Reload 2424; RV64IZCMP-WITH-FP-NEXT: sw a0, 32(s1) 2425; RV64IZCMP-WITH-FP-NEXT: ld a0, -168(s0) # 8-byte Folded Reload 2426; RV64IZCMP-WITH-FP-NEXT: sw a0, 28(s1) 2427; RV64IZCMP-WITH-FP-NEXT: ld a0, -160(s0) # 8-byte Folded Reload 2428; RV64IZCMP-WITH-FP-NEXT: sw a0, 24(s1) 2429; RV64IZCMP-WITH-FP-NEXT: ld a0, -152(s0) # 8-byte Folded Reload 2430; RV64IZCMP-WITH-FP-NEXT: sw a0, 20(s1) 2431; RV64IZCMP-WITH-FP-NEXT: ld a0, -144(s0) # 8-byte Folded Reload 2432; RV64IZCMP-WITH-FP-NEXT: sw a0, 16(s1) 2433; RV64IZCMP-WITH-FP-NEXT: ld a0, -136(s0) # 8-byte Folded Reload 2434; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+12)(s6) 2435; RV64IZCMP-WITH-FP-NEXT: ld a0, -128(s0) # 8-byte Folded Reload 2436; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+8)(s6) 2437; RV64IZCMP-WITH-FP-NEXT: ld a0, -120(s0) # 8-byte Folded Reload 2438; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var+4)(s6) 2439; RV64IZCMP-WITH-FP-NEXT: ld a0, -112(s0) # 8-byte Folded Reload 2440; RV64IZCMP-WITH-FP-NEXT: sw a0, %lo(var)(s6) 2441; RV64IZCMP-WITH-FP-NEXT: ld ra, 280(sp) # 8-byte Folded Reload 2442; RV64IZCMP-WITH-FP-NEXT: ld s0, 272(sp) # 8-byte Folded Reload 2443; RV64IZCMP-WITH-FP-NEXT: ld s1, 264(sp) # 8-byte Folded Reload 2444; RV64IZCMP-WITH-FP-NEXT: ld s2, 256(sp) # 8-byte Folded Reload 2445; RV64IZCMP-WITH-FP-NEXT: ld s3, 248(sp) # 8-byte Folded Reload 2446; RV64IZCMP-WITH-FP-NEXT: ld s4, 240(sp) # 8-byte Folded Reload 2447; RV64IZCMP-WITH-FP-NEXT: ld s5, 232(sp) # 8-byte Folded Reload 2448; RV64IZCMP-WITH-FP-NEXT: ld s6, 224(sp) # 8-byte Folded Reload 2449; RV64IZCMP-WITH-FP-NEXT: ld s7, 216(sp) # 8-byte Folded Reload 2450; RV64IZCMP-WITH-FP-NEXT: ld s8, 208(sp) # 8-byte Folded Reload 2451; RV64IZCMP-WITH-FP-NEXT: ld s9, 200(sp) # 8-byte Folded Reload 2452; RV64IZCMP-WITH-FP-NEXT: ld s10, 192(sp) # 8-byte Folded Reload 2453; RV64IZCMP-WITH-FP-NEXT: ld s11, 184(sp) # 8-byte Folded Reload 2454; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 288 2455; RV64IZCMP-WITH-FP-NEXT: ret 2456 %val = load [32 x i32], ptr @var 2457 call void @callee() 2458 store volatile [32 x i32] %val, ptr @var 2459 ret void 2460} 2461 2462; This function tests if the stack size is correctly calculated when 2463; callee-saved registers are not a sequential list from $ra 2464define void @foo() { 2465; RV32I-LABEL: foo: 2466; RV32I: # %bb.0: # %entry 2467; RV32I-NEXT: addi sp, sp, -16 2468; RV32I-NEXT: .cfi_def_cfa_offset 16 2469; RV32I-NEXT: sw s4, 12(sp) # 4-byte Folded Spill 2470; RV32I-NEXT: .cfi_offset s4, -4 2471; RV32I-NEXT: #APP 2472; RV32I-NEXT: li s4, 0 2473; RV32I-NEXT: #NO_APP 2474; RV32I-NEXT: lw s4, 12(sp) # 4-byte Folded Reload 2475; RV32I-NEXT: .cfi_restore s4 2476; RV32I-NEXT: addi sp, sp, 16 2477; RV32I-NEXT: .cfi_def_cfa_offset 0 2478; RV32I-NEXT: ret 2479; 2480; RV32I-ILP32E-LABEL: foo: 2481; RV32I-ILP32E: # %bb.0: # %entry 2482; RV32I-ILP32E-NEXT: #APP 2483; RV32I-ILP32E-NEXT: li s4, 0 2484; RV32I-ILP32E-NEXT: #NO_APP 2485; RV32I-ILP32E-NEXT: ret 2486; 2487; RV32I-WITH-FP-LABEL: foo: 2488; RV32I-WITH-FP: # %bb.0: # %entry 2489; RV32I-WITH-FP-NEXT: addi sp, sp, -16 2490; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 16 2491; RV32I-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2492; RV32I-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill 2493; RV32I-WITH-FP-NEXT: sw s4, 4(sp) # 4-byte Folded Spill 2494; RV32I-WITH-FP-NEXT: .cfi_offset ra, -4 2495; RV32I-WITH-FP-NEXT: .cfi_offset s0, -8 2496; RV32I-WITH-FP-NEXT: .cfi_offset s4, -12 2497; RV32I-WITH-FP-NEXT: addi s0, sp, 16 2498; RV32I-WITH-FP-NEXT: .cfi_def_cfa s0, 0 2499; RV32I-WITH-FP-NEXT: #APP 2500; RV32I-WITH-FP-NEXT: li s4, 0 2501; RV32I-WITH-FP-NEXT: #NO_APP 2502; RV32I-WITH-FP-NEXT: .cfi_def_cfa sp, 16 2503; RV32I-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 2504; RV32I-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload 2505; RV32I-WITH-FP-NEXT: lw s4, 4(sp) # 4-byte Folded Reload 2506; RV32I-WITH-FP-NEXT: .cfi_restore ra 2507; RV32I-WITH-FP-NEXT: .cfi_restore s0 2508; RV32I-WITH-FP-NEXT: .cfi_restore s4 2509; RV32I-WITH-FP-NEXT: addi sp, sp, 16 2510; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2511; RV32I-WITH-FP-NEXT: ret 2512; 2513; RV32IZCMP-LABEL: foo: 2514; RV32IZCMP: # %bb.0: # %entry 2515; RV32IZCMP-NEXT: cm.push {ra, s0-s4}, -32 2516; RV32IZCMP-NEXT: .cfi_def_cfa_offset 32 2517; RV32IZCMP-NEXT: .cfi_offset s4, -4 2518; RV32IZCMP-NEXT: #APP 2519; RV32IZCMP-NEXT: li s4, 0 2520; RV32IZCMP-NEXT: #NO_APP 2521; RV32IZCMP-NEXT: cm.popret {ra, s0-s4}, 32 2522; 2523; RV32IZCMP-WITH-FP-LABEL: foo: 2524; RV32IZCMP-WITH-FP: # %bb.0: # %entry 2525; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -16 2526; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 16 2527; RV32IZCMP-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2528; RV32IZCMP-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill 2529; RV32IZCMP-WITH-FP-NEXT: sw s4, 4(sp) # 4-byte Folded Spill 2530; RV32IZCMP-WITH-FP-NEXT: .cfi_offset ra, -4 2531; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s0, -8 2532; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s4, -12 2533; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 16 2534; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 0 2535; RV32IZCMP-WITH-FP-NEXT: #APP 2536; RV32IZCMP-WITH-FP-NEXT: li s4, 0 2537; RV32IZCMP-WITH-FP-NEXT: #NO_APP 2538; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa sp, 16 2539; RV32IZCMP-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 2540; RV32IZCMP-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload 2541; RV32IZCMP-WITH-FP-NEXT: lw s4, 4(sp) # 4-byte Folded Reload 2542; RV32IZCMP-WITH-FP-NEXT: .cfi_restore ra 2543; RV32IZCMP-WITH-FP-NEXT: .cfi_restore s0 2544; RV32IZCMP-WITH-FP-NEXT: .cfi_restore s4 2545; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 16 2546; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2547; RV32IZCMP-WITH-FP-NEXT: ret 2548; 2549; RV64I-LABEL: foo: 2550; RV64I: # %bb.0: # %entry 2551; RV64I-NEXT: addi sp, sp, -16 2552; RV64I-NEXT: .cfi_def_cfa_offset 16 2553; RV64I-NEXT: sd s4, 8(sp) # 8-byte Folded Spill 2554; RV64I-NEXT: .cfi_offset s4, -8 2555; RV64I-NEXT: #APP 2556; RV64I-NEXT: li s4, 0 2557; RV64I-NEXT: #NO_APP 2558; RV64I-NEXT: ld s4, 8(sp) # 8-byte Folded Reload 2559; RV64I-NEXT: .cfi_restore s4 2560; RV64I-NEXT: addi sp, sp, 16 2561; RV64I-NEXT: .cfi_def_cfa_offset 0 2562; RV64I-NEXT: ret 2563; 2564; RV64I-LP64E-LABEL: foo: 2565; RV64I-LP64E: # %bb.0: # %entry 2566; RV64I-LP64E-NEXT: #APP 2567; RV64I-LP64E-NEXT: li s4, 0 2568; RV64I-LP64E-NEXT: #NO_APP 2569; RV64I-LP64E-NEXT: ret 2570; 2571; RV64I-WITH-FP-LABEL: foo: 2572; RV64I-WITH-FP: # %bb.0: # %entry 2573; RV64I-WITH-FP-NEXT: addi sp, sp, -32 2574; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 32 2575; RV64I-WITH-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill 2576; RV64I-WITH-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill 2577; RV64I-WITH-FP-NEXT: sd s4, 8(sp) # 8-byte Folded Spill 2578; RV64I-WITH-FP-NEXT: .cfi_offset ra, -8 2579; RV64I-WITH-FP-NEXT: .cfi_offset s0, -16 2580; RV64I-WITH-FP-NEXT: .cfi_offset s4, -24 2581; RV64I-WITH-FP-NEXT: addi s0, sp, 32 2582; RV64I-WITH-FP-NEXT: .cfi_def_cfa s0, 0 2583; RV64I-WITH-FP-NEXT: #APP 2584; RV64I-WITH-FP-NEXT: li s4, 0 2585; RV64I-WITH-FP-NEXT: #NO_APP 2586; RV64I-WITH-FP-NEXT: .cfi_def_cfa sp, 32 2587; RV64I-WITH-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload 2588; RV64I-WITH-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload 2589; RV64I-WITH-FP-NEXT: ld s4, 8(sp) # 8-byte Folded Reload 2590; RV64I-WITH-FP-NEXT: .cfi_restore ra 2591; RV64I-WITH-FP-NEXT: .cfi_restore s0 2592; RV64I-WITH-FP-NEXT: .cfi_restore s4 2593; RV64I-WITH-FP-NEXT: addi sp, sp, 32 2594; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2595; RV64I-WITH-FP-NEXT: ret 2596; 2597; RV64IZCMP-LABEL: foo: 2598; RV64IZCMP: # %bb.0: # %entry 2599; RV64IZCMP-NEXT: cm.push {ra, s0-s4}, -48 2600; RV64IZCMP-NEXT: .cfi_def_cfa_offset 48 2601; RV64IZCMP-NEXT: .cfi_offset s4, -8 2602; RV64IZCMP-NEXT: #APP 2603; RV64IZCMP-NEXT: li s4, 0 2604; RV64IZCMP-NEXT: #NO_APP 2605; RV64IZCMP-NEXT: cm.popret {ra, s0-s4}, 48 2606; 2607; RV64IZCMP-WITH-FP-LABEL: foo: 2608; RV64IZCMP-WITH-FP: # %bb.0: # %entry 2609; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -32 2610; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 32 2611; RV64IZCMP-WITH-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill 2612; RV64IZCMP-WITH-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill 2613; RV64IZCMP-WITH-FP-NEXT: sd s4, 8(sp) # 8-byte Folded Spill 2614; RV64IZCMP-WITH-FP-NEXT: .cfi_offset ra, -8 2615; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s0, -16 2616; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s4, -24 2617; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 32 2618; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 0 2619; RV64IZCMP-WITH-FP-NEXT: #APP 2620; RV64IZCMP-WITH-FP-NEXT: li s4, 0 2621; RV64IZCMP-WITH-FP-NEXT: #NO_APP 2622; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa sp, 32 2623; RV64IZCMP-WITH-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload 2624; RV64IZCMP-WITH-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload 2625; RV64IZCMP-WITH-FP-NEXT: ld s4, 8(sp) # 8-byte Folded Reload 2626; RV64IZCMP-WITH-FP-NEXT: .cfi_restore ra 2627; RV64IZCMP-WITH-FP-NEXT: .cfi_restore s0 2628; RV64IZCMP-WITH-FP-NEXT: .cfi_restore s4 2629; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 32 2630; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2631; RV64IZCMP-WITH-FP-NEXT: ret 2632entry: 2633 tail call void asm sideeffect "li s4, 0", "~{s4}"() 2634 ret void 2635} 2636 2637; Check .cfi_offset of s11 is correct for Zcmp. 2638define void @bar() { 2639; RV32I-LABEL: bar: 2640; RV32I: # %bb.0: # %entry 2641; RV32I-NEXT: addi sp, sp, -16 2642; RV32I-NEXT: .cfi_def_cfa_offset 16 2643; RV32I-NEXT: sw s11, 12(sp) # 4-byte Folded Spill 2644; RV32I-NEXT: .cfi_offset s11, -4 2645; RV32I-NEXT: #APP 2646; RV32I-NEXT: li s11, 0 2647; RV32I-NEXT: #NO_APP 2648; RV32I-NEXT: lw s11, 12(sp) # 4-byte Folded Reload 2649; RV32I-NEXT: .cfi_restore s11 2650; RV32I-NEXT: addi sp, sp, 16 2651; RV32I-NEXT: .cfi_def_cfa_offset 0 2652; RV32I-NEXT: ret 2653; 2654; RV32I-ILP32E-LABEL: bar: 2655; RV32I-ILP32E: # %bb.0: # %entry 2656; RV32I-ILP32E-NEXT: #APP 2657; RV32I-ILP32E-NEXT: li s11, 0 2658; RV32I-ILP32E-NEXT: #NO_APP 2659; RV32I-ILP32E-NEXT: ret 2660; 2661; RV32I-WITH-FP-LABEL: bar: 2662; RV32I-WITH-FP: # %bb.0: # %entry 2663; RV32I-WITH-FP-NEXT: addi sp, sp, -16 2664; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 16 2665; RV32I-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2666; RV32I-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill 2667; RV32I-WITH-FP-NEXT: sw s11, 4(sp) # 4-byte Folded Spill 2668; RV32I-WITH-FP-NEXT: .cfi_offset ra, -4 2669; RV32I-WITH-FP-NEXT: .cfi_offset s0, -8 2670; RV32I-WITH-FP-NEXT: .cfi_offset s11, -12 2671; RV32I-WITH-FP-NEXT: addi s0, sp, 16 2672; RV32I-WITH-FP-NEXT: .cfi_def_cfa s0, 0 2673; RV32I-WITH-FP-NEXT: #APP 2674; RV32I-WITH-FP-NEXT: li s11, 0 2675; RV32I-WITH-FP-NEXT: #NO_APP 2676; RV32I-WITH-FP-NEXT: .cfi_def_cfa sp, 16 2677; RV32I-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 2678; RV32I-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload 2679; RV32I-WITH-FP-NEXT: lw s11, 4(sp) # 4-byte Folded Reload 2680; RV32I-WITH-FP-NEXT: .cfi_restore ra 2681; RV32I-WITH-FP-NEXT: .cfi_restore s0 2682; RV32I-WITH-FP-NEXT: .cfi_restore s11 2683; RV32I-WITH-FP-NEXT: addi sp, sp, 16 2684; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2685; RV32I-WITH-FP-NEXT: ret 2686; 2687; RV32IZCMP-LABEL: bar: 2688; RV32IZCMP: # %bb.0: # %entry 2689; RV32IZCMP-NEXT: cm.push {ra, s0-s11}, -64 2690; RV32IZCMP-NEXT: .cfi_def_cfa_offset 64 2691; RV32IZCMP-NEXT: .cfi_offset s11, -4 2692; RV32IZCMP-NEXT: #APP 2693; RV32IZCMP-NEXT: li s11, 0 2694; RV32IZCMP-NEXT: #NO_APP 2695; RV32IZCMP-NEXT: cm.popret {ra, s0-s11}, 64 2696; 2697; RV32IZCMP-WITH-FP-LABEL: bar: 2698; RV32IZCMP-WITH-FP: # %bb.0: # %entry 2699; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -16 2700; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 16 2701; RV32IZCMP-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2702; RV32IZCMP-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill 2703; RV32IZCMP-WITH-FP-NEXT: sw s11, 4(sp) # 4-byte Folded Spill 2704; RV32IZCMP-WITH-FP-NEXT: .cfi_offset ra, -4 2705; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s0, -8 2706; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s11, -12 2707; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 16 2708; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 0 2709; RV32IZCMP-WITH-FP-NEXT: #APP 2710; RV32IZCMP-WITH-FP-NEXT: li s11, 0 2711; RV32IZCMP-WITH-FP-NEXT: #NO_APP 2712; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa sp, 16 2713; RV32IZCMP-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 2714; RV32IZCMP-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload 2715; RV32IZCMP-WITH-FP-NEXT: lw s11, 4(sp) # 4-byte Folded Reload 2716; RV32IZCMP-WITH-FP-NEXT: .cfi_restore ra 2717; RV32IZCMP-WITH-FP-NEXT: .cfi_restore s0 2718; RV32IZCMP-WITH-FP-NEXT: .cfi_restore s11 2719; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 16 2720; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2721; RV32IZCMP-WITH-FP-NEXT: ret 2722; 2723; RV64I-LABEL: bar: 2724; RV64I: # %bb.0: # %entry 2725; RV64I-NEXT: addi sp, sp, -16 2726; RV64I-NEXT: .cfi_def_cfa_offset 16 2727; RV64I-NEXT: sd s11, 8(sp) # 8-byte Folded Spill 2728; RV64I-NEXT: .cfi_offset s11, -8 2729; RV64I-NEXT: #APP 2730; RV64I-NEXT: li s11, 0 2731; RV64I-NEXT: #NO_APP 2732; RV64I-NEXT: ld s11, 8(sp) # 8-byte Folded Reload 2733; RV64I-NEXT: .cfi_restore s11 2734; RV64I-NEXT: addi sp, sp, 16 2735; RV64I-NEXT: .cfi_def_cfa_offset 0 2736; RV64I-NEXT: ret 2737; 2738; RV64I-LP64E-LABEL: bar: 2739; RV64I-LP64E: # %bb.0: # %entry 2740; RV64I-LP64E-NEXT: #APP 2741; RV64I-LP64E-NEXT: li s11, 0 2742; RV64I-LP64E-NEXT: #NO_APP 2743; RV64I-LP64E-NEXT: ret 2744; 2745; RV64I-WITH-FP-LABEL: bar: 2746; RV64I-WITH-FP: # %bb.0: # %entry 2747; RV64I-WITH-FP-NEXT: addi sp, sp, -32 2748; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 32 2749; RV64I-WITH-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill 2750; RV64I-WITH-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill 2751; RV64I-WITH-FP-NEXT: sd s11, 8(sp) # 8-byte Folded Spill 2752; RV64I-WITH-FP-NEXT: .cfi_offset ra, -8 2753; RV64I-WITH-FP-NEXT: .cfi_offset s0, -16 2754; RV64I-WITH-FP-NEXT: .cfi_offset s11, -24 2755; RV64I-WITH-FP-NEXT: addi s0, sp, 32 2756; RV64I-WITH-FP-NEXT: .cfi_def_cfa s0, 0 2757; RV64I-WITH-FP-NEXT: #APP 2758; RV64I-WITH-FP-NEXT: li s11, 0 2759; RV64I-WITH-FP-NEXT: #NO_APP 2760; RV64I-WITH-FP-NEXT: .cfi_def_cfa sp, 32 2761; RV64I-WITH-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload 2762; RV64I-WITH-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload 2763; RV64I-WITH-FP-NEXT: ld s11, 8(sp) # 8-byte Folded Reload 2764; RV64I-WITH-FP-NEXT: .cfi_restore ra 2765; RV64I-WITH-FP-NEXT: .cfi_restore s0 2766; RV64I-WITH-FP-NEXT: .cfi_restore s11 2767; RV64I-WITH-FP-NEXT: addi sp, sp, 32 2768; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2769; RV64I-WITH-FP-NEXT: ret 2770; 2771; RV64IZCMP-LABEL: bar: 2772; RV64IZCMP: # %bb.0: # %entry 2773; RV64IZCMP-NEXT: cm.push {ra, s0-s11}, -112 2774; RV64IZCMP-NEXT: .cfi_def_cfa_offset 112 2775; RV64IZCMP-NEXT: .cfi_offset s11, -8 2776; RV64IZCMP-NEXT: #APP 2777; RV64IZCMP-NEXT: li s11, 0 2778; RV64IZCMP-NEXT: #NO_APP 2779; RV64IZCMP-NEXT: cm.popret {ra, s0-s11}, 112 2780; 2781; RV64IZCMP-WITH-FP-LABEL: bar: 2782; RV64IZCMP-WITH-FP: # %bb.0: # %entry 2783; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -32 2784; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 32 2785; RV64IZCMP-WITH-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill 2786; RV64IZCMP-WITH-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill 2787; RV64IZCMP-WITH-FP-NEXT: sd s11, 8(sp) # 8-byte Folded Spill 2788; RV64IZCMP-WITH-FP-NEXT: .cfi_offset ra, -8 2789; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s0, -16 2790; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s11, -24 2791; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 32 2792; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 0 2793; RV64IZCMP-WITH-FP-NEXT: #APP 2794; RV64IZCMP-WITH-FP-NEXT: li s11, 0 2795; RV64IZCMP-WITH-FP-NEXT: #NO_APP 2796; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa sp, 32 2797; RV64IZCMP-WITH-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload 2798; RV64IZCMP-WITH-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload 2799; RV64IZCMP-WITH-FP-NEXT: ld s11, 8(sp) # 8-byte Folded Reload 2800; RV64IZCMP-WITH-FP-NEXT: .cfi_restore ra 2801; RV64IZCMP-WITH-FP-NEXT: .cfi_restore s0 2802; RV64IZCMP-WITH-FP-NEXT: .cfi_restore s11 2803; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 32 2804; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2805; RV64IZCMP-WITH-FP-NEXT: ret 2806entry: 2807 tail call void asm sideeffect "li s11, 0", "~{s11}"() 2808 ret void 2809} 2810 2811define void @varargs(...) { 2812; RV32I-LABEL: varargs: 2813; RV32I: # %bb.0: 2814; RV32I-NEXT: addi sp, sp, -48 2815; RV32I-NEXT: .cfi_def_cfa_offset 48 2816; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2817; RV32I-NEXT: .cfi_offset ra, -36 2818; RV32I-NEXT: sw a4, 32(sp) 2819; RV32I-NEXT: sw a5, 36(sp) 2820; RV32I-NEXT: sw a6, 40(sp) 2821; RV32I-NEXT: sw a7, 44(sp) 2822; RV32I-NEXT: sw a0, 16(sp) 2823; RV32I-NEXT: sw a1, 20(sp) 2824; RV32I-NEXT: sw a2, 24(sp) 2825; RV32I-NEXT: sw a3, 28(sp) 2826; RV32I-NEXT: call callee 2827; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 2828; RV32I-NEXT: .cfi_restore ra 2829; RV32I-NEXT: addi sp, sp, 48 2830; RV32I-NEXT: .cfi_def_cfa_offset 0 2831; RV32I-NEXT: ret 2832; 2833; RV32I-ILP32E-LABEL: varargs: 2834; RV32I-ILP32E: # %bb.0: 2835; RV32I-ILP32E-NEXT: addi sp, sp, -28 2836; RV32I-ILP32E-NEXT: .cfi_def_cfa_offset 28 2837; RV32I-ILP32E-NEXT: sw ra, 0(sp) # 4-byte Folded Spill 2838; RV32I-ILP32E-NEXT: .cfi_offset ra, -28 2839; RV32I-ILP32E-NEXT: sw a4, 20(sp) 2840; RV32I-ILP32E-NEXT: sw a5, 24(sp) 2841; RV32I-ILP32E-NEXT: sw a0, 4(sp) 2842; RV32I-ILP32E-NEXT: sw a1, 8(sp) 2843; RV32I-ILP32E-NEXT: sw a2, 12(sp) 2844; RV32I-ILP32E-NEXT: sw a3, 16(sp) 2845; RV32I-ILP32E-NEXT: call callee 2846; RV32I-ILP32E-NEXT: lw ra, 0(sp) # 4-byte Folded Reload 2847; RV32I-ILP32E-NEXT: .cfi_restore ra 2848; RV32I-ILP32E-NEXT: addi sp, sp, 28 2849; RV32I-ILP32E-NEXT: .cfi_def_cfa_offset 0 2850; RV32I-ILP32E-NEXT: ret 2851; 2852; RV32I-WITH-FP-LABEL: varargs: 2853; RV32I-WITH-FP: # %bb.0: 2854; RV32I-WITH-FP-NEXT: addi sp, sp, -48 2855; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 48 2856; RV32I-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2857; RV32I-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill 2858; RV32I-WITH-FP-NEXT: .cfi_offset ra, -36 2859; RV32I-WITH-FP-NEXT: .cfi_offset s0, -40 2860; RV32I-WITH-FP-NEXT: addi s0, sp, 16 2861; RV32I-WITH-FP-NEXT: .cfi_def_cfa s0, 32 2862; RV32I-WITH-FP-NEXT: sw a4, 16(s0) 2863; RV32I-WITH-FP-NEXT: sw a5, 20(s0) 2864; RV32I-WITH-FP-NEXT: sw a6, 24(s0) 2865; RV32I-WITH-FP-NEXT: sw a7, 28(s0) 2866; RV32I-WITH-FP-NEXT: sw a0, 0(s0) 2867; RV32I-WITH-FP-NEXT: sw a1, 4(s0) 2868; RV32I-WITH-FP-NEXT: sw a2, 8(s0) 2869; RV32I-WITH-FP-NEXT: sw a3, 12(s0) 2870; RV32I-WITH-FP-NEXT: call callee 2871; RV32I-WITH-FP-NEXT: .cfi_def_cfa sp, 48 2872; RV32I-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 2873; RV32I-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload 2874; RV32I-WITH-FP-NEXT: .cfi_restore ra 2875; RV32I-WITH-FP-NEXT: .cfi_restore s0 2876; RV32I-WITH-FP-NEXT: addi sp, sp, 48 2877; RV32I-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2878; RV32I-WITH-FP-NEXT: ret 2879; 2880; RV32IZCMP-LABEL: varargs: 2881; RV32IZCMP: # %bb.0: 2882; RV32IZCMP-NEXT: addi sp, sp, -48 2883; RV32IZCMP-NEXT: .cfi_def_cfa_offset 48 2884; RV32IZCMP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2885; RV32IZCMP-NEXT: .cfi_offset ra, -36 2886; RV32IZCMP-NEXT: sw a4, 32(sp) 2887; RV32IZCMP-NEXT: sw a5, 36(sp) 2888; RV32IZCMP-NEXT: sw a6, 40(sp) 2889; RV32IZCMP-NEXT: sw a7, 44(sp) 2890; RV32IZCMP-NEXT: sw a0, 16(sp) 2891; RV32IZCMP-NEXT: sw a1, 20(sp) 2892; RV32IZCMP-NEXT: sw a2, 24(sp) 2893; RV32IZCMP-NEXT: sw a3, 28(sp) 2894; RV32IZCMP-NEXT: call callee 2895; RV32IZCMP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 2896; RV32IZCMP-NEXT: .cfi_restore ra 2897; RV32IZCMP-NEXT: addi sp, sp, 48 2898; RV32IZCMP-NEXT: .cfi_def_cfa_offset 0 2899; RV32IZCMP-NEXT: ret 2900; 2901; RV32IZCMP-WITH-FP-LABEL: varargs: 2902; RV32IZCMP-WITH-FP: # %bb.0: 2903; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, -48 2904; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 48 2905; RV32IZCMP-WITH-FP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 2906; RV32IZCMP-WITH-FP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill 2907; RV32IZCMP-WITH-FP-NEXT: .cfi_offset ra, -36 2908; RV32IZCMP-WITH-FP-NEXT: .cfi_offset s0, -40 2909; RV32IZCMP-WITH-FP-NEXT: addi s0, sp, 16 2910; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 32 2911; RV32IZCMP-WITH-FP-NEXT: sw a4, 16(s0) 2912; RV32IZCMP-WITH-FP-NEXT: sw a5, 20(s0) 2913; RV32IZCMP-WITH-FP-NEXT: sw a6, 24(s0) 2914; RV32IZCMP-WITH-FP-NEXT: sw a7, 28(s0) 2915; RV32IZCMP-WITH-FP-NEXT: sw a0, 0(s0) 2916; RV32IZCMP-WITH-FP-NEXT: sw a1, 4(s0) 2917; RV32IZCMP-WITH-FP-NEXT: sw a2, 8(s0) 2918; RV32IZCMP-WITH-FP-NEXT: sw a3, 12(s0) 2919; RV32IZCMP-WITH-FP-NEXT: call callee 2920; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa sp, 48 2921; RV32IZCMP-WITH-FP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 2922; RV32IZCMP-WITH-FP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload 2923; RV32IZCMP-WITH-FP-NEXT: .cfi_restore ra 2924; RV32IZCMP-WITH-FP-NEXT: .cfi_restore s0 2925; RV32IZCMP-WITH-FP-NEXT: addi sp, sp, 48 2926; RV32IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2927; RV32IZCMP-WITH-FP-NEXT: ret 2928; 2929; RV64I-LABEL: varargs: 2930; RV64I: # %bb.0: 2931; RV64I-NEXT: addi sp, sp, -80 2932; RV64I-NEXT: .cfi_def_cfa_offset 80 2933; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 2934; RV64I-NEXT: .cfi_offset ra, -72 2935; RV64I-NEXT: sd a4, 48(sp) 2936; RV64I-NEXT: sd a5, 56(sp) 2937; RV64I-NEXT: sd a6, 64(sp) 2938; RV64I-NEXT: sd a7, 72(sp) 2939; RV64I-NEXT: sd a0, 16(sp) 2940; RV64I-NEXT: sd a1, 24(sp) 2941; RV64I-NEXT: sd a2, 32(sp) 2942; RV64I-NEXT: sd a3, 40(sp) 2943; RV64I-NEXT: call callee 2944; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 2945; RV64I-NEXT: .cfi_restore ra 2946; RV64I-NEXT: addi sp, sp, 80 2947; RV64I-NEXT: .cfi_def_cfa_offset 0 2948; RV64I-NEXT: ret 2949; 2950; RV64I-LP64E-LABEL: varargs: 2951; RV64I-LP64E: # %bb.0: 2952; RV64I-LP64E-NEXT: addi sp, sp, -56 2953; RV64I-LP64E-NEXT: .cfi_def_cfa_offset 56 2954; RV64I-LP64E-NEXT: sd ra, 0(sp) # 8-byte Folded Spill 2955; RV64I-LP64E-NEXT: .cfi_offset ra, -56 2956; RV64I-LP64E-NEXT: sd a4, 40(sp) 2957; RV64I-LP64E-NEXT: sd a5, 48(sp) 2958; RV64I-LP64E-NEXT: sd a0, 8(sp) 2959; RV64I-LP64E-NEXT: sd a1, 16(sp) 2960; RV64I-LP64E-NEXT: sd a2, 24(sp) 2961; RV64I-LP64E-NEXT: sd a3, 32(sp) 2962; RV64I-LP64E-NEXT: call callee 2963; RV64I-LP64E-NEXT: ld ra, 0(sp) # 8-byte Folded Reload 2964; RV64I-LP64E-NEXT: .cfi_restore ra 2965; RV64I-LP64E-NEXT: addi sp, sp, 56 2966; RV64I-LP64E-NEXT: .cfi_def_cfa_offset 0 2967; RV64I-LP64E-NEXT: ret 2968; 2969; RV64I-WITH-FP-LABEL: varargs: 2970; RV64I-WITH-FP: # %bb.0: 2971; RV64I-WITH-FP-NEXT: addi sp, sp, -80 2972; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 80 2973; RV64I-WITH-FP-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 2974; RV64I-WITH-FP-NEXT: sd s0, 0(sp) # 8-byte Folded Spill 2975; RV64I-WITH-FP-NEXT: .cfi_offset ra, -72 2976; RV64I-WITH-FP-NEXT: .cfi_offset s0, -80 2977; RV64I-WITH-FP-NEXT: addi s0, sp, 16 2978; RV64I-WITH-FP-NEXT: .cfi_def_cfa s0, 64 2979; RV64I-WITH-FP-NEXT: sd a4, 32(s0) 2980; RV64I-WITH-FP-NEXT: sd a5, 40(s0) 2981; RV64I-WITH-FP-NEXT: sd a6, 48(s0) 2982; RV64I-WITH-FP-NEXT: sd a7, 56(s0) 2983; RV64I-WITH-FP-NEXT: sd a0, 0(s0) 2984; RV64I-WITH-FP-NEXT: sd a1, 8(s0) 2985; RV64I-WITH-FP-NEXT: sd a2, 16(s0) 2986; RV64I-WITH-FP-NEXT: sd a3, 24(s0) 2987; RV64I-WITH-FP-NEXT: call callee 2988; RV64I-WITH-FP-NEXT: .cfi_def_cfa sp, 80 2989; RV64I-WITH-FP-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 2990; RV64I-WITH-FP-NEXT: ld s0, 0(sp) # 8-byte Folded Reload 2991; RV64I-WITH-FP-NEXT: .cfi_restore ra 2992; RV64I-WITH-FP-NEXT: .cfi_restore s0 2993; RV64I-WITH-FP-NEXT: addi sp, sp, 80 2994; RV64I-WITH-FP-NEXT: .cfi_def_cfa_offset 0 2995; RV64I-WITH-FP-NEXT: ret 2996; 2997; RV64IZCMP-LABEL: varargs: 2998; RV64IZCMP: # %bb.0: 2999; RV64IZCMP-NEXT: addi sp, sp, -80 3000; RV64IZCMP-NEXT: .cfi_def_cfa_offset 80 3001; RV64IZCMP-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 3002; RV64IZCMP-NEXT: .cfi_offset ra, -72 3003; RV64IZCMP-NEXT: sd a4, 48(sp) 3004; RV64IZCMP-NEXT: sd a5, 56(sp) 3005; RV64IZCMP-NEXT: sd a6, 64(sp) 3006; RV64IZCMP-NEXT: sd a7, 72(sp) 3007; RV64IZCMP-NEXT: sd a0, 16(sp) 3008; RV64IZCMP-NEXT: sd a1, 24(sp) 3009; RV64IZCMP-NEXT: sd a2, 32(sp) 3010; RV64IZCMP-NEXT: sd a3, 40(sp) 3011; RV64IZCMP-NEXT: call callee 3012; RV64IZCMP-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 3013; RV64IZCMP-NEXT: .cfi_restore ra 3014; RV64IZCMP-NEXT: addi sp, sp, 80 3015; RV64IZCMP-NEXT: .cfi_def_cfa_offset 0 3016; RV64IZCMP-NEXT: ret 3017; 3018; RV64IZCMP-WITH-FP-LABEL: varargs: 3019; RV64IZCMP-WITH-FP: # %bb.0: 3020; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, -80 3021; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 80 3022; RV64IZCMP-WITH-FP-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 3023; RV64IZCMP-WITH-FP-NEXT: sd s0, 0(sp) # 8-byte Folded Spill 3024; RV64IZCMP-WITH-FP-NEXT: .cfi_offset ra, -72 3025; RV64IZCMP-WITH-FP-NEXT: .cfi_offset s0, -80 3026; RV64IZCMP-WITH-FP-NEXT: addi s0, sp, 16 3027; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa s0, 64 3028; RV64IZCMP-WITH-FP-NEXT: sd a4, 32(s0) 3029; RV64IZCMP-WITH-FP-NEXT: sd a5, 40(s0) 3030; RV64IZCMP-WITH-FP-NEXT: sd a6, 48(s0) 3031; RV64IZCMP-WITH-FP-NEXT: sd a7, 56(s0) 3032; RV64IZCMP-WITH-FP-NEXT: sd a0, 0(s0) 3033; RV64IZCMP-WITH-FP-NEXT: sd a1, 8(s0) 3034; RV64IZCMP-WITH-FP-NEXT: sd a2, 16(s0) 3035; RV64IZCMP-WITH-FP-NEXT: sd a3, 24(s0) 3036; RV64IZCMP-WITH-FP-NEXT: call callee 3037; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa sp, 80 3038; RV64IZCMP-WITH-FP-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 3039; RV64IZCMP-WITH-FP-NEXT: ld s0, 0(sp) # 8-byte Folded Reload 3040; RV64IZCMP-WITH-FP-NEXT: .cfi_restore ra 3041; RV64IZCMP-WITH-FP-NEXT: .cfi_restore s0 3042; RV64IZCMP-WITH-FP-NEXT: addi sp, sp, 80 3043; RV64IZCMP-WITH-FP-NEXT: .cfi_def_cfa_offset 0 3044; RV64IZCMP-WITH-FP-NEXT: ret 3045 call void @callee() 3046 ret void 3047} 3048