Adds the following intrinsic for contiguous load & replicate:
- @llvm.aarch64.sve.ld1rq
The LD1RQ intrinsic only needs the SImmS16XForm added by this
patch. The others (SImmS2XForm, SImmS3XForm & SImmS4XForm)
were added for consistency.
Paths
| Differential D76929
[AArch64][SVE] Add SVE intrinsic for LD1RQ ClosedPublic Authored by kmclaughlin on Mar 27 2020, 8:05 AM.
Details Summary Adds the following intrinsic for contiguous load & replicate:
The LD1RQ intrinsic only needs the SImmS16XForm added by this
Diff Detail
Event TimelineComment Actions Cheers for working on this @kmclaughlin !
kmclaughlin marked 4 inline comments as done. Comment ActionsSimplified performLD1RQCombine method & added negative tests where the immediate is out of range. kmclaughlin added inline comments.
kmclaughlin marked an inline comment as done. Comment ActionsEnsure LoadChain is always preserved in performLD1RQCombine
kmclaughlin marked an inline comment as done. Comment Actions
This revision is now accepted and ready to land.Apr 21 2020, 12:48 PM Closed by commit rG17f6e18acf5b: [AArch64][SVE] Add SVE intrinsic for LD1RQ (authored by kmclaughlin). · Explain WhyApr 22 2020, 4:17 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 259232 llvm/include/llvm/IR/IntrinsicsAArch64.td
llvm/lib/Target/AArch64/AArch64ISelLowering.h
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll
|
[nit] In AArch64ISelLowering.h you added LD1RQ as the last load instruction, here it's the first load instruction.