You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"loop not vectorized: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Wpass-failed=transform-warning]"
for the following example, when compiled with "-fopenmp -O2". The generated code is, however, vectorized and is almost identical to the code generated by clang7, which does not emit the warning. The same problem as in clang8 is in the current clang9 (and the emitted code is identical). clang6 produces similar code, vectorizes the loop, and does not emit the warning, either.
The warning is generated twice when compiling the example, with identical texts and code locations, and counted as "2 warnings".
int maybeNotFinite(double *x, unsigned n)
{
double s = 0;
#pragma omp simd reduction(+:s)
for (unsigned i = 0; i < n; i++)
s += x[i];
return !finite(s);
}
tested on Ubuntu 18.04.1 with clang from apt.llvm.org
clang version 8.0.0-svn352547-1exp120190130015936.13 (branches/release_80)
clang version 7.0.1-svn348686-1exp120190113235231.54 (branches/release_70)
clang version 9.0.0-svn352666-1exp1+020190130204444.773~1.gbp5cc800 (trunk)
and on clang from Ubuntu 18.04.1
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
The text was updated successfully, but these errors were encountered:
LoopVectorize adds llvm.loop.isvectorized, but leaves llvm.loop.vectorize.enable which is reported (for the vectorized loop and the fallback). The function hasVectorizeTransformation considers this, but with different priorization. Working on it.
Extended Description
clang8 emits warning
"loop not vectorized: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Wpass-failed=transform-warning]"
for the following example, when compiled with "-fopenmp -O2". The generated code is, however, vectorized and is almost identical to the code generated by clang7, which does not emit the warning. The same problem as in clang8 is in the current clang9 (and the emitted code is identical). clang6 produces similar code, vectorizes the loop, and does not emit the warning, either.
The warning is generated twice when compiling the example, with identical texts and code locations, and counted as "2 warnings".
int maybeNotFinite(double *x, unsigned n)
{
double s = 0;
}
tested on Ubuntu 18.04.1 with clang from apt.llvm.org
clang version 8.0.0-svn352547-1
exp120190130015936.13 (branches/release_80)clang version 7.0.1-svn348686-1
exp120190113235231.54 (branches/release_70)clang version 9.0.0-svn352666-1
exp1+020190130204444.773~1.gbp5cc800 (trunk)and on clang from Ubuntu 18.04.1
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
The text was updated successfully, but these errors were encountered: