(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
pr95539.c
       1  /* { dg-do compile } */
       2  
       3  typedef unsigned short uint16_t;
       4  typedef short __v8hi __attribute__ ((__vector_size__ (16)));
       5  typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
       6  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__))
       7  _mm_set_epi16 (short __q7, short __q6, short __q5, short __q4,
       8  	       short __q3, short __q2, short __q1, short __q0)
       9  {
      10    return __extension__ (__m128i)(__v8hi){
      11        __q0, __q1, __q2, __q3, __q4, __q5, __q6, __q7 };
      12  }
      13  void gcm_HashMult_hw(__m128i *x, const unsigned char *buf, unsigned int count)
      14  {
      15    unsigned i;
      16    __m128i bin __attribute__((aligned(16)));
      17    for (i = 0; i < count; i++, buf += 16)
      18      {
      19        bin = _mm_set_epi16(((uint16_t)buf[0] << 8) | buf[1],
      20  			  ((uint16_t)buf[2] << 8) | buf[3],
      21  			  ((uint16_t)buf[4] << 8) | buf[5],
      22  			  ((uint16_t)buf[6] << 8) | buf[7],
      23  			  ((uint16_t)buf[8] << 8) | buf[9],
      24  			  ((uint16_t)buf[10] << 8) | buf[11],
      25  			  ((uint16_t)buf[12] << 8) | buf[13],
      26  			  ((uint16_t)buf[14] << 8) | buf[15]);
      27        *(x++) = bin;
      28      }
      29  }