[PATCH] D76354: [RISCV][GlobalISel] Legalize types for ALU operations
Lewis Revill via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 16 05:54:26 PST 2022
lewis-revill added inline comments.
================
Comment at: llvm/lib/Target/RISCV/RISCVLegalizerInfo.cpp:101-104
+bool RISCVLegalizerInfo::legalizeWOpWithSExt(
+ MachineInstr &MI, MachineRegisterInfo &MRI,
+ MachineIRBuilder &MIRBuilder) const {
+ const LLT s64 = LLT::scalar(64);
----------------
arsenm wrote:
> You shouldn't have this function, you're just repeating totally ordinary promotion the legalizer will handle by default
It doesn't do this by default though. By default the destination gets widened without a `G_SEXT` or a `G_ZEXT`, so any pattern we could look to select later on ends up disappearing. I can use the `widenScalarSrc` as a helper but the `widenScalarDst` employed by the default lowering will give the wrong behaviour.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76354/new/
https://reviews.llvm.org/D76354
More information about the llvm-commits
mailing list