[PATCH] D100244: [ARM] Create VMOVRRD from adjacent vector extracts
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 19 04:47:52 PDT 2021
dmgreen marked an inline comment as done.
dmgreen added inline comments.
================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:14207
+ isa<ConstantSDNode>(V->getOperand(1)) &&
+ V->getConstantOperandVal(1) == Lane + 1;
+ });
----------------
SjoerdMeijer wrote:
> SjoerdMeijer wrote:
> > Out of curiousity, this means we recognise:
> >
> > vmov.32 r3, d18[0]
> > vmov.32 r2, d18[1]
> >
> > but not:
> >
> > vmov.32 r2, d18[1]
> > vmov.32 r3, d18[0]
> >
> > ?
> Just out of u
It will create `vmov r2, r3, d18`, so should handle either. We are dealing with a DAG, so can start from the even lane and find the odd one. They don't have a fixed order (And we don't have fixed registers yet.)
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D100244/new/
https://reviews.llvm.org/D100244
More information about the llvm-commits
mailing list