https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94212
Bug ID: 94212
Summary: [AARCH64] [Regression] Incorrect vectorization of loop
with FP calculations
Product: gcc
Version: tree-ssa
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dpochepk at gmail dot com
Target Milestone: ---
Created attachment 48054
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48054&action=edit
example application returning different result for O3 and O2
Example application (FP polynomial loop calculations) gives different result
for O2 and O3 optimizations. Different is 1 ulp, so it might be some kind of
rounding error (unsafe math leaked?).
"-O3 -fno-tree-vectorize" gives correct result.
This issue seems to affect aarch64-only (at least x86_64 is fine).
Tried several gcc versions:
trunk: affected
gcc8.3: affected
gcc7.4: not affected
(I haven't investigated assembly)
Example application is in attachment. Method "foo" has vectorized loop, which
is probably the trigger for this bug.