[PATCH] D144958: [SLP]Initial support for reshuffling of non-starting buildvector/gather nodes.

Bogdan Graur via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 10 06:12:15 PST 2023


bgraur added a comment.

We've found another clang crasher caused by this change.

repro.c:

  double a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;
  void n() {
    double k, l, m = g = h = j = e;
    k = e * e;
    l = 0.3e1 * k - e + e - k - g + 0.7e1 * e * 0 * h - i + 0.6e1 * e * 0 * j;
    m = 0 * e + 0.68e2 * e * 0 * e - a + 0.57e2 * e * 0 * b - e +
        0.2e1 * e * 0 * e;
    c = f ? d + l + m : 0;
  }

Compilation command:

  clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj \
    -O2 -vectorize-slp \
    -x c repro.c \
    -o /tmp/obj

Output:

  Invalid shufflevector operands!
    %11 = shufflevector <2 x double> %5, PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
  Stack dump:
  0.      Program arguments: bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -O2 -vectorize-slp -x c repro.c -o /tmp/obj
  1.      <eof> parser at end of file
  2.      Code generation
  3.      Running pass 'Function Pass Manager' on module 'repro.c'.
  4.      Running pass 'Module Verifier' on function '@n'
  Segmentation fault

Thanks @hans for the prompt revert!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D144958



More information about the llvm-commits mailing list