(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
xtensa/
bswap-O1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O1" } */
       3  
       4  unsigned int test_0(unsigned int a)
       5  {
       6    return (a & 0x000000FF) << 24 |
       7           (a & 0x0000FF00) << 8  |
       8           (a & 0x00FF0000) >> 8  |
       9           (a & 0xFF000000) >> 24;
      10  }
      11  
      12  unsigned int test_1(unsigned int a)
      13  {
      14    union
      15    {
      16      unsigned int i;
      17      unsigned char a[4];
      18    } u, v;
      19    u.i = a;
      20    v.a[0] = u.a[3];
      21    v.a[1] = u.a[2];
      22    v.a[2] = u.a[1];
      23    v.a[3] = u.a[0];
      24    return v.i;
      25  }
      26  
      27  unsigned int test_2(unsigned int a)
      28  {
      29    return __builtin_bswap32(a);
      30  }
      31  
      32  unsigned long long test_3(unsigned long long a)
      33  {
      34    return __builtin_bswap64(a);
      35  }
      36  
      37  /* { dg-final { scan-assembler-times "call" 2 } } */