[PATCH] D116801: [PowerPC] Avoid perfect shuffle when mask has multiple uses

ChenZheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 9 18:44:44 PST 2022


shchenz added inline comments.


================
Comment at: llvm/lib/Target/PowerPC/PPCISelLowering.cpp:10050
+  if (MaskMap.find(PermMask) == MaskMap.end()) {
+    for (const SDNode &Node: DAG.allnodes()) {
+      if (const auto *Shuffle = dyn_cast<ShuffleVectorSDNode>(&Node)) {
----------------
Please fix all the Lint warnings.


================
Comment at: llvm/lib/Target/PowerPC/PPCISelLowering.cpp:10063
+  // cheaper to use load+vperm.
+  if (!MaskMap[PermMask].second) {
+    unsigned PFIndexes[4];
----------------
Can we first check `isLittleEndian` and then `isFourElementShuffle` and then `MaskMap[PermMask].second` to improve the compile time?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D116801



More information about the llvm-commits mailing list