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