145b172c8SCraig Topper; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 245b172c8SCraig Topper; RUN: llc < %s -mtriple=riscv64 -mattr=+d | FileCheck %s 345b172c8SCraig Topper 445b172c8SCraig Topperdefine void @test(ptr %0, ptr %1) nounwind { 545b172c8SCraig Topper; CHECK-LABEL: test: 645b172c8SCraig Topper; CHECK: # %bb.0: 745b172c8SCraig Topper; CHECK-NEXT: addi sp, sp, -80 845b172c8SCraig Topper; CHECK-NEXT: sd ra, 72(sp) # 8-byte Folded Spill 945b172c8SCraig Topper; CHECK-NEXT: sd s0, 64(sp) # 8-byte Folded Spill 1045b172c8SCraig Topper; CHECK-NEXT: sd s1, 56(sp) # 8-byte Folded Spill 1145b172c8SCraig Topper; CHECK-NEXT: fsd fs0, 48(sp) # 8-byte Folded Spill 1245b172c8SCraig Topper; CHECK-NEXT: fsd fs1, 40(sp) # 8-byte Folded Spill 1345b172c8SCraig Topper; CHECK-NEXT: fsd fs2, 32(sp) # 8-byte Folded Spill 1445b172c8SCraig Topper; CHECK-NEXT: fsd fs3, 24(sp) # 8-byte Folded Spill 1545b172c8SCraig Topper; CHECK-NEXT: fsd fs4, 16(sp) # 8-byte Folded Spill 1645b172c8SCraig Topper; CHECK-NEXT: fsd fs5, 8(sp) # 8-byte Folded Spill 1745b172c8SCraig Topper; CHECK-NEXT: fsd fs6, 0(sp) # 8-byte Folded Spill 1845b172c8SCraig Topper; CHECK-NEXT: mv s0, a1 1945b172c8SCraig Topper; CHECK-NEXT: mv s1, a0 2045b172c8SCraig Topper; CHECK-NEXT: lhu a0, 12(a0) 2145b172c8SCraig Topper; CHECK-NEXT: fmv.w.x fa0, a0 22eabaee0cSFangrui Song; CHECK-NEXT: call __extendhfsf2 2345b172c8SCraig Topper; CHECK-NEXT: fmv.s fs0, fa0 2445b172c8SCraig Topper; CHECK-NEXT: lhu a0, 10(s1) 2545b172c8SCraig Topper; CHECK-NEXT: fmv.w.x fa0, a0 26eabaee0cSFangrui Song; CHECK-NEXT: call __extendhfsf2 2745b172c8SCraig Topper; CHECK-NEXT: fmv.s fs1, fa0 2845b172c8SCraig Topper; CHECK-NEXT: lhu a0, 8(s1) 2945b172c8SCraig Topper; CHECK-NEXT: fmv.w.x fa0, a0 30eabaee0cSFangrui Song; CHECK-NEXT: call __extendhfsf2 3145b172c8SCraig Topper; CHECK-NEXT: fmv.s fs2, fa0 3245b172c8SCraig Topper; CHECK-NEXT: lhu a0, 6(s1) 3345b172c8SCraig Topper; CHECK-NEXT: fmv.w.x fa0, a0 34eabaee0cSFangrui Song; CHECK-NEXT: call __extendhfsf2 3545b172c8SCraig Topper; CHECK-NEXT: fmv.s fs3, fa0 3645b172c8SCraig Topper; CHECK-NEXT: lhu a0, 4(s1) 3745b172c8SCraig Topper; CHECK-NEXT: fmv.w.x fa0, a0 38eabaee0cSFangrui Song; CHECK-NEXT: call __extendhfsf2 3945b172c8SCraig Topper; CHECK-NEXT: fmv.s fs4, fa0 4045b172c8SCraig Topper; CHECK-NEXT: lhu a0, 2(s1) 4145b172c8SCraig Topper; CHECK-NEXT: fmv.w.x fa0, a0 42eabaee0cSFangrui Song; CHECK-NEXT: call __extendhfsf2 4345b172c8SCraig Topper; CHECK-NEXT: fmv.s fs5, fa0 4445b172c8SCraig Topper; CHECK-NEXT: lhu a0, 0(s1) 4545b172c8SCraig Topper; CHECK-NEXT: fmv.w.x fa0, a0 46eabaee0cSFangrui Song; CHECK-NEXT: call __extendhfsf2 4745b172c8SCraig Topper; CHECK-NEXT: fcvt.d.s fs6, fa0 4845b172c8SCraig Topper; CHECK-NEXT: fcvt.d.s fs5, fs5 4945b172c8SCraig Topper; CHECK-NEXT: fcvt.d.s fs4, fs4 5045b172c8SCraig Topper; CHECK-NEXT: lhu a0, 14(s1) 5145b172c8SCraig Topper; CHECK-NEXT: fcvt.d.s fs3, fs3 5245b172c8SCraig Topper; CHECK-NEXT: fcvt.d.s fs2, fs2 5345b172c8SCraig Topper; CHECK-NEXT: fcvt.d.s fs1, fs1 5445b172c8SCraig Topper; CHECK-NEXT: fmv.w.x fa0, a0 5545b172c8SCraig Topper; CHECK-NEXT: fcvt.d.s fs0, fs0 56eabaee0cSFangrui Song; CHECK-NEXT: call __extendhfsf2 5745b172c8SCraig Topper; CHECK-NEXT: fcvt.d.s fa5, fa0 5845b172c8SCraig Topper; CHECK-NEXT: fsd fs2, 32(s0) 59*2967e5f8SAlex Bradbury; CHECK-NEXT: fsd fs1, 40(s0) 60*2967e5f8SAlex Bradbury; CHECK-NEXT: fsd fs0, 48(s0) 61*2967e5f8SAlex Bradbury; CHECK-NEXT: fsd fa5, 56(s0) 6245b172c8SCraig Topper; CHECK-NEXT: fsd fs6, 0(s0) 63*2967e5f8SAlex Bradbury; CHECK-NEXT: fsd fs5, 8(s0) 64*2967e5f8SAlex Bradbury; CHECK-NEXT: fsd fs4, 16(s0) 65*2967e5f8SAlex Bradbury; CHECK-NEXT: fsd fs3, 24(s0) 6645b172c8SCraig Topper; CHECK-NEXT: ld ra, 72(sp) # 8-byte Folded Reload 6745b172c8SCraig Topper; CHECK-NEXT: ld s0, 64(sp) # 8-byte Folded Reload 6845b172c8SCraig Topper; CHECK-NEXT: ld s1, 56(sp) # 8-byte Folded Reload 6945b172c8SCraig Topper; CHECK-NEXT: fld fs0, 48(sp) # 8-byte Folded Reload 7045b172c8SCraig Topper; CHECK-NEXT: fld fs1, 40(sp) # 8-byte Folded Reload 7145b172c8SCraig Topper; CHECK-NEXT: fld fs2, 32(sp) # 8-byte Folded Reload 7245b172c8SCraig Topper; CHECK-NEXT: fld fs3, 24(sp) # 8-byte Folded Reload 7345b172c8SCraig Topper; CHECK-NEXT: fld fs4, 16(sp) # 8-byte Folded Reload 7445b172c8SCraig Topper; CHECK-NEXT: fld fs5, 8(sp) # 8-byte Folded Reload 7545b172c8SCraig Topper; CHECK-NEXT: fld fs6, 0(sp) # 8-byte Folded Reload 7645b172c8SCraig Topper; CHECK-NEXT: addi sp, sp, 80 7745b172c8SCraig Topper; CHECK-NEXT: ret 7845b172c8SCraig Topper %V1 = load <8 x half>, ptr %0 7945b172c8SCraig Topper %V2 = fpext <8 x half> %V1 to <8 x double> 8045b172c8SCraig Topper store <8 x double> %V2, ptr %1 8145b172c8SCraig Topper ret void 8245b172c8SCraig Topper} 83