/* { dg-do compile { target aarch64*-*-* } } */
/* { dg-options "-flax-vector-conversions" } */

typedef int v4si __attribute__((vector_size(16)));
typedef short v8hi __attribute__((vector_size(16)));

struct s { __Int16x8_t x; __Int32x4_t y; };
union u1 { __Int16x8_t x; __Int32x4_t y; };
union u2 { __Int32x4_t s; __Int16x8_t y; };

void
foo (v4si i, v8hi h)
{
  struct s x1 = { i, i };
  struct s x2 = { h, h };
  struct s x3 = { i, h };
  struct s x4 = { h, i };

  union u1 y1 = { i };
  union u1 y2 = { h };
  union u2 y3 = { i };
  union u2 y4 = { h };

  v4si z1[] = { i, i };
  v4si z2[] = { i, h };
  v4si z3[] = { h, i };
  v4si z4[] = { h, h };
  v8hi z5[] = { i, i };
  v8hi z6[] = { i, h };
  v8hi z7[] = { h, i };
  v8hi z8[] = { h, h };
}
