(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr52407.c
       1  /* { dg-do run } */
       2  /* { dg-options "-fno-common" { target hppa*-*-hpux* } } */
       3  
       4  extern void abort (void);
       5  
       6  typedef long long T;
       7  typedef T vl_t __attribute__((vector_size(2 * sizeof (T))));
       8  
       9  vl_t	ul[4], vl[4] = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
      10  
      11  static void
      12  mul_vl_l(vl_t *u, vl_t *v, T x, int m)
      13  {
      14    vl_t	 w;
      15    T *p = (T *)&w;
      16    p[0] = p[1] = x;
      17    while (m--)
      18      *u++ = *v++ * w;
      19  }
      20  
      21  int
      22  main(int argc, char *argv[])
      23  {
      24    int i;
      25    T *pl;
      26  
      27    pl = (T *) &ul;
      28    mul_vl_l(ul, vl, 2, 4);
      29    for (i = 0; i < 8; i++)
      30      if (pl[i] != 2 * (i + 1))
      31        abort ();
      32  
      33    return 0;
      34  }