[Bug tree-optimization/88598] New: simplification of multiplication by 1 or 0 fails
vincenzo.innocente at cern dot ch
gcc-bugzilla@gcc.gnu.org
Wed Dec 26 09:01:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88598
Bug ID: 88598
Summary: simplification of multiplication by 1 or 0 fails
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: vincenzo.innocente at cern dot ch
Target Milestone: ---
g++ fails to optimize the code below
even with -Ofast https://godbolt.org/z/mYRgVX
independently of vectorization options https://godbolt.org/z/XMnCNz
clang optimizes (return zero for "foo" and v[1] for "bar") even for just
-ffinite-math-only -fno-signed-zeros -O2
https://godbolt.org/z/KU5f-x
float foo(float const * __restrict__ v) {
float j[5] = {0.,0.,0.,0.,0.};
float ret=0.;
for (int i=0; i<5; ++i) ret +=j[i]*v[i];
return ret;
}
float bar(float const * __restrict__ v) {
float j[5] = {0.,1.,0.,0.,0.};
float ret=0.;
for (int i=0; i<5; ++i) ret +=j[i]*v[i];
return ret;
}
More information about the Gcc-bugs
mailing list