(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
rev16.c
       1  /* { dg-options "-O2" } */
       2  /* { dg-do run } */
       3  
       4  extern void abort (void);
       5  
       6  typedef unsigned int __u32;
       7  
       8  __u32
       9  __rev16_32_alt (__u32 x)
      10  {
      11    return (((__u32)(x) & (__u32)0xff00ff00UL) >> 8)
      12           | (((__u32)(x) & (__u32)0x00ff00ffUL) << 8);
      13  }
      14  
      15  __u32
      16  __rev16_32 (__u32 x)
      17  {
      18    return (((__u32)(x) & (__u32)0x00ff00ffUL) << 8)
      19           | (((__u32)(x) & (__u32)0xff00ff00UL) >> 8);
      20  }
      21  
      22  int
      23  main (void)
      24  {
      25    volatile __u32 in32 = 0x12345678;
      26    volatile __u32 expected32 = 0x34127856;
      27  
      28    if (__rev16_32 (in32) != expected32)
      29      abort ();
      30  
      31    if (__rev16_32_alt (in32) != expected32)
      32      abort ();
      33  
      34    return 0;
      35  }