/* { dg-do run } */ /* { dg-options "-fno-common" { target hppa*-*-hpux* } } */ extern void abort (void); typedef long long T; typedef T vl_t __attribute__((vector_size(2 * sizeof (T)))); vl_t ul[4], vl[4] = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; static void mul_vl_l(vl_t *u, vl_t *v, T x, int m) { vl_t w; T *p = (T *)&w; p[0] = p[1] = x; while (m--) *u++ = *v++ * w; } int main(int argc, char *argv[]) { int i; T *pl; pl = (T *) &ul; mul_vl_l(ul, vl, 2, 4); for (i = 0; i < 8; i++) if (pl[i] != 2 * (i + 1)) abort (); return 0; }