1  /* { dg-do compile } */
       2  /* { dg-options "-O3" } */
       3  
       4  typedef int int32_t __attribute__((mode (__SI__)));
       5  typedef unsigned uint32_t __attribute__((mode (__SI__)));
       6  
       7  void c(int32_t *d, char *g)
       8  {
       9    char *a, *b, *e;
      10    int f;
      11    for (; f; f -= 8) {
      12        *d++ = *e++ | (uint32_t)*g++ << 8 | (uint32_t)*b++ << 16 |
      13  	  (uint32_t)*a++ << 24;
      14        *d++ = *e++ | (uint32_t)*g++ << 8 | (uint32_t)*b++ << 16 |
      15  	  (uint32_t)*a++ << 24;
      16    }
      17  }