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