This patch was split from D122918.
Co-Author: @liaolucy @sunshaoce
Paths
| Differential D149811
[RISCV][CodeGen] Support Zhinx and Zhinxmin ClosedPublic Authored by realqhc on May 3 2023, 8:04 PM.
Details
Diff Detail
Event Timelinerealqhc added a parent revision: D149743: [RISCV][CodeGen] Support Zdinx on RV32 codegen.May 3 2023, 8:07 PM realqhc added reviewers: craig.topper, jrtc27, asb, rogfer01, luismarques, frasercrmck, kito-cheng, arcbbb.May 3 2023, 8:15 PM Comment Actions Do we need to update RISCVInstrInfo::storeRegToStackSlot and RISCVInstrInfo::loadRegFromStackSlot`? Comment Actions
Based on my understanding, it may not require update, as the GPRRegClass load and store is handling it similar to the zfinx patch. Comment Actions
I hadn't noticed we are using the same spill sizes for GPRF16/GPRF32/GPRF64. So you're correct it doesn't need an update.
Comment Actions restore the unintentionally removed test cases, it was caused by wrongly defined check prefix in zhinxmin Comment Actions Can we make this patch not depend on Zdinx RV32 support? That patch needs more work and I don't want it to block Zhinx. realqhc removed a parent revision: D149743: [RISCV][CodeGen] Support Zdinx on RV32 codegen.May 9 2023, 8:23 PM Comment Actions
I have removed the dependency on phabricator, but I think some modification should be required on RISCVInstrInfoZfh.td, do you think it is better to move them to the rv32zdinx patch instead? Comment Actions
In the interest of forward progress, yes. This revision is now accepted and ready to land.May 11 2023, 11:34 AM Closed by commit rG773b0aaa4917: [RISCV][CodeGen] Support Zhinx and Zhinxmin (authored by Qihan Cai <qcai8733@uni.sydney.edu.au>). · Explain WhyMay 12 2023, 1:31 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 521581 llvm/docs/RISCVUsage.rst
llvm/lib/Target/RISCV/RISCVFeatures.td
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
llvm/lib/Target/RISCV/RISCVISelLowering.cpp
llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td
llvm/lib/Target/RISCV/RISCVSubtarget.h
llvm/test/CodeGen/RISCV/half-arith-strict.ll
llvm/test/CodeGen/RISCV/half-arith.ll
llvm/test/CodeGen/RISCV/half-bitmanip-dagcombines.ll
llvm/test/CodeGen/RISCV/half-br-fcmp.ll
llvm/test/CodeGen/RISCV/half-convert-strict.ll
llvm/test/CodeGen/RISCV/half-convert.ll
llvm/test/CodeGen/RISCV/half-fcmp-strict.ll
llvm/test/CodeGen/RISCV/half-fcmp.ll
llvm/test/CodeGen/RISCV/half-frem.ll
llvm/test/CodeGen/RISCV/half-imm.ll
llvm/test/CodeGen/RISCV/half-intrinsics.ll
llvm/test/CodeGen/RISCV/half-isnan.ll
llvm/test/CodeGen/RISCV/half-mem.ll
llvm/test/CodeGen/RISCV/half-round-conv-sat.ll
llvm/test/CodeGen/RISCV/half-round-conv.ll
llvm/test/CodeGen/RISCV/half-select-fcmp.llllvm/test/CodeGen/RISCV/half-select-icmp.ll
llvm/test/CodeGen/RISCV/rv64zfh-half-convert-strict.ll
llvm/test/CodeGen/RISCV/rv64zfh-half-convert.ll
llvm/test/CodeGen/RISCV/rv64zfh-half-intrinsics.ll
llvm/test/CodeGen/RISCV/rv64zfhmin-half-convert-strict.ll
llvm/test/CodeGen/RISCV/rv64zfhmin-half-convert.ll
llvm/test/CodeGen/RISCV/rv64zfhmin-half-intrinsics.ll
llvm/test/CodeGen/RISCV/zfh-half-intrinsics-strict.ll
llvm/test/CodeGen/RISCV/zfh-half-intrinsics.ll
llvm/test/CodeGen/RISCV/zfh-imm.ll
llvm/test/CodeGen/RISCV/zfhmin-half-intrinsics-strict.ll
llvm/test/CodeGen/RISCV/zfhmin-half-intrinsics.ll
llvm/test/CodeGen/RISCV/zfhmin-imm.ll
|
Why are these lines deleted?