These changes allow us to support sign-extending gather loads with the existing intrinsics (i.e. @llvm.aarch64.sve.ld1.gather.*).
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 41944 Build 42279: arc lint + arc unit
Event Timeline
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
9961 | AArch64Subtarget *Subtarget isn't used by performSVEAndCombine, so you can remove this change. | |
11986 | The condition Src.hasOneUse() is not in the SVEAndCombine, so you probably want to add one there as well. |
Comment Actions
- Apply suggestions from @sdesmalen (e.g. add !Src.hasOneUse() in performANDCombine)
- Removed a bunch of setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::nxv2i64, Legal), which are not needed for this patch
- Simplified performSignExtendInRegCombine
- Added patterns for sext_inreg (required for the new tests vvvv)
- Added tests that verify that the new DAG Combine rules are not used when the result of gather load has multiple uses
nit: Are these asserts necessary?