1 /* { dg-do run { target { powerpc*-*-linux* } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
3 /* { dg-skip-if "" { powerpc*-*-*spe* } } */
4 /* { dg-require-effective-target vsx_hw } */
5 /* { dg-options "-O1 -mdejagnu-cpu=power7" } */
6 
7 extern void abort (void);
8 
9 typedef long long T;
10 typedef T vl_t __attribute__((vector_size(2 * sizeof (T))));
11 
12 vl_t
buggy_func(T x)13 buggy_func (T x)
14 {
15   vl_t w;
16   T *p = (T *)&w;
17   p[0] = p[1] = x;
18   return w;
19 }
20 
21 int
main(void)22 main(void)
23 {
24   vl_t rval;
25   T *pl;
26 
27   pl = (T *) &rval;
28   rval = buggy_func (2);
29 
30   if (pl[0] != 2 || pl[1] != 2)
31     abort ();
32 
33   return 0;
34 }
35