[PATCH] D68877: [AArch64][SVE] Implement masked load intrinsics
Dave Green via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 23 06:44:31 PDT 2019
dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.
In D68877#1718729 <https://reviews.llvm.org/D68877#1718729>, @kmclaughlin wrote:
> There is not yet support for vector selects, so for this patch the intention was that any passthru which is not all zero or undef would result in a selection failure.
> Do you think it would acceptable to handle different passthrus in a future patch which also implements vector selects for SVE?
Yeah OK. That makes sense. I remember the same chicken and egg from MVE. We ended up doing them the other way around there. Can you try and add a FIXME comment somewhere?
Otherwise LGTM.
================
Comment at: llvm/lib/Target/AArch64/SVEInstrFormats.td:4753
+ let hasSideEffects = 1, hasNoSchedulingInfo = 1, mayLoad = 1 in {
+ def "" : Pseudo<(outs listty:$Zt), (ins PPR3bAny:$Pg, GPR64sp:$Rn, simm4s1:$imm4), []>,
+ PseudoInstExpansion<(!cast<Instruction>(NAME # _REAL) listty:$Zt, PPR3bAny:$Pg, GPR64sp:$Rn, simm4s1:$imm4)>;
----------------
kmclaughlin wrote:
> dmgreen wrote:
> > Can you explain why is this pseudo is needed, exactly? I feel that using pseudos is often the wrong solution to a problem (it may be required here, I'm just sure why exactly).
> >
> > We currently seem to generate ld1b (for example), over ldnf1b. Is there ever a time that we expect to generate a nf load?
> The pseudo was a workaround that was added downstream for non-faulting loads, but it is not needed here.
Righteo. We know where to find it if it turns out we do need them.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68877/new/
https://reviews.llvm.org/D68877
More information about the cfe-commits
mailing list