This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/81410] [5/6/7/8 Regression] -O3 breaks code
- From: "glisse at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 12 Jul 2017 12:36:45 +0000
- Subject: [Bug c++/81410] [5/6/7/8 Regression] -O3 breaks code
- Auto-submitted: auto-generated
- References: <bug-81410-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81410
--- Comment #5 from Marc Glisse <glisse at gcc dot gnu.org> ---
Seems related to vectorization. These lines look suspicious:
vect__37.14_78 = MEM[(long int *)_30];
vect__37.15_72 = MEM[(long int *)_30 + 16B];
vect__37.16_70 = MEM[(long int *)_30 + 32B];
vect__37.17_68 = MEM[(long int *)_30 + 48B];
MEM[(long int *)_28] = vect__37.14_78;
MEM[(long int *)_28 + 16B] = vect__37.15_72;
MEM[(long int *)_28 + 32B] = vect__37.16_70;
MEM[(long int *)_28 + 48B] = vect__37.17_68;
where _30 is for b, _28 is for a, and I would expect to see gaps in the reads
from b (+24, +48, +72 instead of +16, +32 and +48). But I haven't checked, this
is only a first guess.