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: [email protected]
ReportedBy: [email protected]
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