http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
Bug #: 52736 Summary: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: kr...@kde.org Created attachment 27007 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27007 testcase The attached testcase fails when compiled with: g++ -msse2 -O1 main.cpp The first aliased store on line 35 stores to the second element in the vector instead of the fist. The store on line 37 stores to the exact same location in memory (which is the correct location for line 37). Slight modification of the example can lead to the compiler optimizing the code to use half vector loads, in which case it uses the correct one.