This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/67601] New: Vectorization of loop causes aligned access to possibly unaligned address
- From: "drohr at jwdt dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 16 Sep 2015 11:35:07 +0000
- Subject: [Bug tree-optimization/67601] New: Vectorization of loop causes aligned access to possibly unaligned address
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67601
Bug ID: 67601
Summary: Vectorization of loop causes aligned access to
possibly unaligned address
Product: gcc
Version: 4.8.5
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: drohr at jwdt dot org
Target Milestone: ---
Created attachment 36342
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36342&action=edit
Source code file to reproduce issue
The attached source crashes if compiled with
gcc-4.8.5 -march=native -O2 -ftree-vectorize -o test test.cpp
and it works with
gcc-4.8.5 -march=native -O0 -o test test.cpp
The problem appears with all gcc 4.8.x versions and on all systems I have
tested.
(Gentoo Linux and several RedHat versions, AMD MagnyCours CPU and Intel
Sandy-Bridge CPUs).
When the loop in the SetTracksEnd function is vectorized, the generated code
does not check whether the address is aligned, but it uses movdqa instruction
to load the data.
The problem does not appear in gcc 4.9 and newer, but new versions generate
completely different code, so I am not sure whether this issue has been fixed,
or whether it does no longer pop up by chance.