[llvm] [RISCV][GISEL] Fix legalization for G_MERGE/UNMERGE_VALUES (PR #75619)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 15 10:00:26 PST 2023
================
@@ -85,14 +85,14 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
// Merge/Unmerge
for (unsigned Op : {G_MERGE_VALUES, G_UNMERGE_VALUES}) {
- unsigned BigTyIdx = Op == G_MERGE_VALUES ? 0 : 1;
- unsigned LitTyIdx = Op == G_MERGE_VALUES ? 1 : 0;
auto &MergeUnmergeActions = getActionDefinitionsBuilder(Op);
if (XLen == 32 && ST.hasStdExtD()) {
- LLT IdxZeroTy = G_MERGE_VALUES ? s64 : s32;
- LLT IdxOneTy = G_MERGE_VALUES ? s32 : s64;
- MergeUnmergeActions.legalFor({IdxZeroTy, IdxOneTy});
+ LLT IdxZeroTy = Op == G_MERGE_VALUES ? s64 : s32;
+ LLT IdxOneTy = Op == G_MERGE_VALUES ? s32 : s64;
+ MergeUnmergeActions.legalFor({{IdxZeroTy}, {IdxOneTy}});
----------------
topperc wrote:
Can we write
```
MergeUnmergeActions.legalFor(all(TypeIs(BigTyIdx, s64), TypeIs(LitTyIdx, s32)))`
```
https://github.com/llvm/llvm-project/pull/75619
More information about the llvm-commits
mailing list