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 
 
Unit TestsFailed 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 519344 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/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?