/* { dg-do run } */ /* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ typedef union { double v[2]; double s __attribute__ ((vector_size (16))); } data; data reg; void __attribute__ ((noinline)) set_lower (double b) { data stack_var; double __attribute__ ((vector_size (16))) one = { 1.0, 1.0 }; stack_var.s = reg.s; stack_var.s += one; stack_var.v[0] += b; reg.s = stack_var.s; } int main (int argc, char ** argv) { reg.v[0] = 1.0; reg.v[1] = 1.0; /* reg should contain { 1.0, 1.0 }. */ set_lower (2.0); /* reg should contain { 4.0, 2.0 }. */ if ((int) reg.v[0] != 4 || (int) reg.v[1] != 2) __builtin_abort (); return 0; }