/* PR target/59843 ICE on function taking/returning vector of one float64_t.  */

/* { dg-do compile } */
/* { dg-options "-Warray-bounds -O2 -fno-inline -std=c99" } */

#define TEST(BASETYPE, VECTYPE, SUFFIX)					     \
  typedef BASETYPE VECTYPE						     \
      __attribute__ ((__vector_size__ (sizeof (BASETYPE))));		     \
  VECTYPE								     \
  test_vadd_##SUFFIX (VECTYPE a, VECTYPE b)				     \
  {									     \
    return a + b;							     \
  }									     \
									     \
  void									     \
  test_##SUFFIX (BASETYPE val)						     \
  {									     \
    VECTYPE var = { val };						     \
    BASETYPE v0 = var[0];						     \
    BASETYPE v1 = var[1]; /* { dg-warning "index value is out of bound" } */ \
  }

TEST (double, float64x1_t, f64)

/* Original bug was for above type;
   in a nod to completeness, test other types too.  */

TEST (long long, int64x1_t, s64)

TEST (float, float32x1_t, f32)

TEST (long, longx1_t, l)

TEST (int, intx1_t, i)

TEST (short, int16x1_t, s16)

TEST (char, int8x1_t, s8)
