[PATCH] D75601: [AArch64][SVE] Add intrinsics for non-temporal scatters/gathers
Andrzej Warzynski via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 6 05:31:20 PST 2020
andwar marked 2 inline comments as done.
andwar added inline comments.
================
Comment at: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5265
// TLI.getShiftAmount().
- assert(N2.getValueSizeInBits() >= Log2_32_Ceil(N1.getValueSizeInBits()) &&
- "Invalid use of small shift amount with oversized value!");
+ assert(N2.getValueType().getScalarSizeInBits().getFixedSize() >=
+ Log2_32_Ceil(VT.getScalarSizeInBits().getFixedSize()) &&
----------------
This change is needed to accommodate for scalable types.
================
Comment at: llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-64bit-scaled-offset.ll:12
+; CHECK-LABEL: gldnt1h_index
+; CHECK: mul z0.d, z0.d, #2
+; CHECK-NEXT: ldnt1h { z0.d }, p0/z, [z0.d, x0]
----------------
efriedma wrote:
> andwar wrote:
> > efriedma wrote:
> > > "mul"? Can we make a shift instead?
> > Sadly there are no patterns for `lsl` yet, so I'd have to add a call to `@llvm.aarch64.sve.lsl` for this to wok. It's an option, but I'd prefer to leave a TODO instead (e.g. `// TODO Replace MUL with SHL once patterns for lsl are added)`.
> The lsl patterns are pretty simple; see https://reviews.llvm.org/D73602 . But sure, we can leave that for later.
Fair point, updated.
Btw, thanks for the link, but it seems unrelated. Did you have some other patch in mind?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D75601/new/
https://reviews.llvm.org/D75601
More information about the llvm-commits
mailing list