-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: robertw89 at googlemail dot com
Target Milestone: ---
Fails to (auto)vectorize the code bellow with the flags
-O3 -mavx
#include
void simdSqrt(
float * __restrict__ a,
float * __restrict__ res,
int size
-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: robertw89 at googlemail dot com
Target Milestone: ---
I expected that it generates a vectorized version potentially specializing to
the boundary. LLVM produces strange looking (vectorized) code so I guess it's
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85143
--- Comment #2 from robertw89 at googlemail dot com ---
This change would be trivial.
To defend my case and rant a bit ;) ...
Indeed, but programmers can manually unroll a loop too ;) . What if the code is
autogenerated? What if the constant
y: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: robertw89 at googlemail dot com
Target Milestone: ---
The compiler fails to unroll the loop (partially).
compiled with -O3 -mavx -mavx2 -mfma -fno-math-errno -ffast-math
-floop-paralleliz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85212
robertw89 at googlemail dot com changed:
What|Removed |Added
Status|WAITING |RESOLVED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85212
--- Comment #2 from robertw89 at googlemail dot com ---
Thanks you for your explaination :) . The compiler indeed emits the expected
code wit -funroll-loops