(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
vect-singleton_1.c
       1  /* PR target/59843 ICE on function taking/returning vector of one float64_t.  */
       2  
       3  /* { dg-do compile } */
       4  /* { dg-options "-Warray-bounds -O2 -fno-inline -std=c99" } */
       5  
       6  #define TEST(BASETYPE, VECTYPE, SUFFIX)					     \
       7    typedef BASETYPE VECTYPE						     \
       8        __attribute__ ((__vector_size__ (sizeof (BASETYPE))));		     \
       9    VECTYPE								     \
      10    test_vadd_##SUFFIX (VECTYPE a, VECTYPE b)				     \
      11    {									     \
      12      return a + b;							     \
      13    }									     \
      14  									     \
      15    void									     \
      16    test_##SUFFIX (BASETYPE val)						     \
      17    {									     \
      18      VECTYPE var = { val };						     \
      19      BASETYPE v0 = var[0];						     \
      20      BASETYPE v1 = var[1]; /* { dg-warning "index value is out of bound" } */ \
      21    }
      22  
      23  TEST (double, float64x1_t, f64)
      24  
      25  /* Original bug was for above type;
      26     in a nod to completeness, test other types too.  */
      27  
      28  TEST (long long, int64x1_t, s64)
      29  
      30  TEST (float, float32x1_t, f32)
      31  
      32  TEST (long, longx1_t, l)
      33  
      34  TEST (int, intx1_t, i)
      35  
      36  TEST (short, int16x1_t, s16)
      37  
      38  TEST (char, int8x1_t, s8)