1/* { dg-do run } */
2/* { dg-options "-fno-common" { target hppa*-*-hpux* } } */
3
4typedef union
5{
6  double v[2];
7  double s __attribute__ ((vector_size (16)));
8} data;
9
10data reg;
11
12void __attribute__ ((noinline))
13set_lower (double b)
14{
15  data stack_var;
16  double __attribute__ ((vector_size (16))) one = { 1.0, 1.0 };
17  stack_var.s = reg.s;
18  stack_var.s += one;
19  stack_var.v[0] += b;
20  reg.s = stack_var.s;
21}
22
23int
24main (int argc, char ** argv)
25{
26  reg.v[0] = 1.0;
27  reg.v[1] = 1.0;
28  /* reg should contain { 1.0, 1.0 }.  */
29  set_lower (2.0);
30  /* reg should contain { 4.0, 2.0 }.  */
31  if ((int) reg.v[0] != 4 || (int) reg.v[1] != 2)
32    __builtin_abort ();
33  return 0;
34}
35