[llvm] [RISCV][GISEL] Fix legalization for G_MERGE/UNMERGE_VALUES (PR #75619)
Michael Maitland via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 15 09:05:41 PST 2023
================
@@ -85,14 +85,16 @@ 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});
+ // Only need to legalize on IdxZeroTy since there is no way to construct
+ // a valid MERGE/UNMERGE where the types don't combine/decompose as
+ // expected.
+ LLT IdxZeroTy = Op == G_MERGE_VALUES ? s64 : s32;
+ MergeUnmergeActions.legalFor({IdxZeroTy});
----------------
michaelmaitland wrote:
Do we need to?
```
// Only need to legalize on IdxZeroTy since there is no way to construct
// a valid MERGE/UNMERGE where the types don't combine/decompose as
// expected.
```
https://github.com/llvm/llvm-project/pull/75619
More information about the llvm-commits
mailing list