[llvm] [RISCV][GISel] Support G_MERGE_VALUES/G_UNMERGE_VALUES with Zfa. (PR #120379)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 19 21:06:25 PST 2024
================
@@ -23,7 +23,9 @@ def SDT_RISCVSplitF64 : SDTypeProfile<2, 1, [SDTCisVT<0, i32>,
SDTCisVT<2, f64>]>;
def RISCVBuildPairF64 : SDNode<"RISCVISD::BuildPairF64", SDT_RISCVBuildPairF64>;
+def : GINodeEquiv<G_MERGE_VALUES, RISCVBuildPairF64>;
----------------
topperc wrote:
Looks like the tablegen generated code looks like this
```
GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s64,
GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s32,
GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s32,
GIM_RootCheckRegBankForClass, /*Op*/0, /*RC*/GIMT_Encode2(RISCV::FPR64RegClassID),
GIM_RootCheckRegBankForClass, /*Op*/1, /*RC*/GIMT_Encode2(RISCV::GPRRegClassID),
GIM_RootCheckRegBankForClass, /*Op*/2, /*RC*/GIMT_Encode2(RISCV::GPRRegClassID),
```
That seems disambiguated to the exact number of operands, types and regbank/class.
https://github.com/llvm/llvm-project/pull/120379
More information about the llvm-commits
mailing list