1 /* { dg-do run } */
2 
3 typedef long long V
4   __attribute__ ((vector_size (2 * sizeof (long long)), may_alias));
5 
6 struct s
7 {
8   char u;
9   V v[2];
10 } __attribute__((packed,aligned(1)));
11 
12 __attribute__((noinline, noclone))
foo(struct s * x,int y,V * z)13 long long foo(struct s *x, int y, V *z)
14 {
15   V a = x->v[y];
16   x->v[y] = *z;
17   return a[1];
18 }
19 
20 struct s a = {0,{{0,0},{0,0}}};
main()21 int main()
22 {
23   V v1 = {0,1};
24   V v2 = {0,2};
25 
26   if (foo(&a,0,&v1) != 0)
27     __builtin_abort();
28   if (foo(&a,0,&v2) != 1)
29     __builtin_abort();
30   if (foo(&a,1,&v1) != 0)
31     __builtin_abort();
32   return 0;
33 }
34