(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
torture/
vector-subscript-3.c
       1  /* { dg-do run } */
       2  #define vector __attribute__((vector_size(16) ))
       3  
       4  /* Check whether register declaration of vector type still 
       5     allow us to subscript this type.  */
       6  
       7  typedef vector short myvec_t;
       8  
       9  struct vec_s {
      10      vector short member;
      11  };
      12  
      13  #if defined(__cplusplus) && __cplusplus >= 201703L
      14  #define register /* nothing */
      15  #endif
      16  
      17  int main () {
      18    register short vector v0 = {1,2,3,4,5,6,7};
      19    register myvec_t v1 = {1,2,3,4,5,6,7};
      20    register struct vec_s v2;
      21      
      22    v2.member = v1;
      23  
      24    short r = v0[0] + v1[1] + v2.member[2];
      25    if (r != 6)
      26      __builtin_abort ();
      27  
      28    return 0;
      29  }