http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52407
Bug #: 52407 Summary: sse2 simd uint32_t and int64_t and stack variable initialization Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: p...@mandriva.com.br Created attachment 26766 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26766 simple test The attached test case works if adapted for smaller integer types (initializing more fields through the pointer), and also works if declaring either "mul_vl_l" variables "p" or "w" static or global. If compiled with -O0 it also works, but -O1 or greater generates incorrect result. If not casting and initializing through the pointer, as in the "#if 0" code it also works. expected output: $ ./a.out 2 4 6 8 10 12 14 16 generated output: $ ./a.out 0 4 0 8 0 12 0 16