http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47866
Summary: gcc.dg/torture/vector-2.c fails on IA64 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: s...@cup.hp.com gcc.dg/torture/vector-2.c is failing on Linux and HP-UX IA64 platforms since r165240 which is Richard Henderson's fix for PR rtl-opt/33721. This may be a target specific bug but the change that caused the failure to show up is not target specific. gcc.dg/torture/vector-2.c fails at -O2, but passes at -O0 or -O1. With the latest sources I can use this cutdown test case to see the difference: #define vector __attribute__((vector_size(16) )) vector int f0(vector int t, int a) { ((int*)&t)[0] = a; return t; } vector int f1(vector int t, int a) { ((int*)&t)[1] = a; return t; } int main(void) { vector int a = {0, 0, 0, 0}; vector int a0; a0 = f0(a, 1); printf("%d %d %d %d\n", a0[0], a0[1], a0[2], a0[3]); a0 = f1(a, 1); printf("%d %d %d %d\n", a0[0], a0[1], a0[2], a0[3]); return 0; } At -O0 or -O1 it prints: 1 0 0 0 0 1 0 0 At -O2 it prints: 1 0 0 0 0 0 0 0