[PATCH] D73132: Allow combining of extract_subvector to extract element

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 22 08:12:16 PST 2020


rampitec marked an inline comment as done.
rampitec added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18573-18574
+          }
+          if (NewExtNumElts == 1 &&
+              TLI.isOperationLegalOrCustom(ISD::EXTRACT_VECTOR_ELT, ScalarVT)) {
+            SDValue NewIndex = DAG.getVectorIdxConstant(IndexValScaled, DL);
----------------
rampitec wrote:
> lebedev.ri wrote:
> > I'm guessing the order doesn't matter?
> > If `ISD::EXTRACT_VECTOR_ELT` is legal, we'll transform
> > single-element `ISD::EXTRACT_SUBVECTOR` into `ISD::EXTRACT_VECTOR_ELT` later anyway?
> > 
> Unfortunately it matters. ARM makes legal v1i32  but does worse job for i32. If I change the order that leads to obvious regression in ARM Neon.
Sorry, it is aarch64, not arm.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73132/new/

https://reviews.llvm.org/D73132





More information about the llvm-commits mailing list