[PATCH] D115462: [SLP]Improve shuffles cost estimation where possible.

Manoj Gupta via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 27 13:00:57 PDT 2022


manojgupta added a comment.

Still crashes on trunk.

C-reduce Test case:

  typedef __INT64_TYPE__ int64_t;
  int sbr_autocorrelate_c_x_i;
  void phiautocorr_calc(int64_t );
  
  void sbr_autocorrelate_c_x(void) {
    int(*x)[2] = sbr_autocorrelate_c_x;
    int64_t accu_re , accu_im = 0;
    for (; sbr_autocorrelate_c_x_i; sbr_autocorrelate_c_x_i++) {
      accu_re +=
          x[sbr_autocorrelate_c_x_i][0] * x[sbr_autocorrelate_c_x_i + 2][0];
      accu_re +=
          x[sbr_autocorrelate_c_x_i][1] * x[sbr_autocorrelate_c_x_i + 2][1];
      accu_im +=
          x[sbr_autocorrelate_c_x_i][0] * x[sbr_autocorrelate_c_x_i + 2][1];
      accu_im -=
          x[sbr_autocorrelate_c_x_i][1] * x[sbr_autocorrelate_c_x_i + 2][0];
    }
    phiautocorr_calc(accu_im);
    phiautocorr_calc(accu_re);
  }

Crashes with 
`clang -Os -c test.c --target=armv7a-linux-gnueabihf -mfpu=neon -Wno-error `

llvm/llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:7744: llvm::Value *llvm::slpvectorizer::BoUpSLP::createBuildVector(ArrayRef<llvm::Value *>): Assertion `any_of(VectorizableTree, [VL](const std::unique_ptr<TreeEntry> &TE) { return TE->State == TreeEntry::NeedToGather && TE->isSame(VL); }) && "Non-matching gather node."' failed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D115462



More information about the llvm-commits mailing list