[PATCH] D135302: [AArch64] Support SETCCCARRY lowering
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 7 11:02:03 PDT 2022
efriedma added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:417
setOperationAction(ISD::JumpTable, MVT::i64, Custom);
+ setOperationAction(ISD::SETCCCARRY, MVT::i32, Custom);
+ setOperationAction(ISD::SETCCCARRY, MVT::i64, Custom);
----------------
fzhinkin wrote:
> efriedma wrote:
> > fzhinkin wrote:
> > > efriedma wrote:
> > > > Do we ever actually use SETCCCARRY for i32 on targets where i64 is legal?
> > > `SelectionDAGLegalize::LegalizeOp` uses default case to handle SETCCCARRY and calls `TLI.getOperationAction` with SETCCCARRY's type (which is `i32`). I guess that this question never arose previously because for other targets there were either no 64-bit registers (ARM), or because various value types were supported (X86, M86k).
> > >
> > > Not sure if it should be fixed along with this change or via separate commit.
> > Oh, I see what you mean. The current way is fine; just wasn't really thinking about the output type.
> I'm not sure that it supposed to work this way, because while `SelectionDAGLegalize::LegalizeOp` looks at SETCCCARRY's output type, `DAGTypeLegalizer::IntegerExpandSetCCOperands` uses operand's type.
Oh, hmm. They should use the same type; that's probably worth fixing. (I don't think it causes a practical problem here, but it could in other cases.)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D135302/new/
https://reviews.llvm.org/D135302
More information about the llvm-commits
mailing list