[PATCH] D101555: [SLP]Improve handling of compensate external uses cost.

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 10 04:57:17 PDT 2021


RKSimon added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:4311
+                                  It->second.second == UndefMaskElem ||
+                                  EU.Lane == UndefMaskElem);
+      UsedShuffleMask = true;
----------------
IsIdentity &= ?


================
Comment at: llvm/test/Transforms/SLPVectorizer/X86/hsub.ll:174
+; SSE-NEXT:    [[R2:%.*]] = fsub double [[A2]], [[A3]]
+; SSE-NEXT:    [[R3:%.*]] = fsub double [[B2]], [[B3]]
+; SSE-NEXT:    [[TMP4:%.*]] = extractelement <2 x double> [[TMP3]], i32 0
----------------
These regressions looks like we need to do more in the shuffle costs to recognise when the shuffles don't cross subvector boundaries? Either for illegal types like this or across 128-bit subvector boundaries on AVX.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101555



More information about the llvm-commits mailing list