The following test case is compiled to use hardware vector support for -msse, -msse2, or -mmmx even though the vector type is smaller than what the hardware supports for float elements. The vector variables are given an alignment of 4 bytes, causing a seg fault at runtime. __attribute__ ((vector_size (8))) float v1, v2, v3; int main () { v1 = v2 + v3; return 0; } Last tested with a native i686-pc-linux-gnu compiler with today's mainline.
-- Summary: small fp vector uses sse/mmx vectors and is not aligned Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janis187 at us dot ibm dot com CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17962