[llvm] [RISCV] Add 32 bit GPR sub-register for Zfinx. (PR #108336)
Yingwei Zheng via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 28 01:42:32 PDT 2024
================
@@ -723,8 +772,18 @@ bool llvm::CC_RISCV_GHC(unsigned ValNo, MVT ValVT, MVT LocVT,
}
}
- if ((LocVT == MVT::f32 && Subtarget.hasStdExtZfinx()) ||
- (LocVT == MVT::f64 && Subtarget.hasStdExtZdinx() &&
+ if (LocVT == MVT::f32 && Subtarget.hasStdExtZfinx()) {
+ static const MCPhysReg GPR32List[] = {
+ RISCV::X9_W, RISCV::X18_W, RISCV::X19_W, RISCV::X20_W,
+ RISCV::X21_W, RISCV::X22_W, RISCV::X23_W, RISCV::X24_W,
+ RISCV::X25_W, RISCV::X26_W, RISCV::X27_W};
+ if (MCRegister Reg = State.AllocateReg(GPR32List)) {
+ State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo));
+ return false;
+ }
+ }
+
+ if ((LocVT == MVT::f64 && Subtarget.hasStdExtZdinx() &&
Subtarget.is64Bit())) {
----------------
dtcxzyw wrote:
```suggestion
if (LocVT == MVT::f64 && Subtarget.hasStdExtZdinx() &&
Subtarget.is64Bit()) {
```
https://github.com/llvm/llvm-project/pull/108336
More information about the llvm-commits
mailing list