Issue 148390
Summary [LV] must have a resume value for the canonical IV
Labels new issue
Assignees
Reporter sjoerdmeijer
    Compiling this:

```
#include <algorithm>
extern char a;
unsigned short e;
long b;
short *c, *d;
void fn1(short f[][3], int g[][3], short h[][3]) {
  for (int i; i < 3ULL; i += 5ULL)
    for (int k; c[i]; k += 2)
#pragma clang loop vectorize_predicate(enable)
      for (int j(((4 ? c[2] : 0) || d[i]) - 1); j < -108 - 18446744073709551485;
           j += 3) {
        a = 0 != f[1][j];
        b = g[1][k] = std::min(e, (unsigned short)h[2][k]);
 }
}
```

with `-Ofast -mcpu=grace -std=c++11` results in:

```
clang++: llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:9759: void preparePlanForEpilogueVectorLoop(VPlan &, Loop *, const SCEV2ValueTy &, const EpilogueLoopVectorizationInfo &): Assertion `EPResumeVal && "must have a resume value for the canonical IV"' failed.

```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to