(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
20180112-1.c
       1  /* PR rtl-optimization/83565 */
       2  /* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
       3  
       4  extern void abort (void);
       5  
       6  typedef __UINT32_TYPE__ u32;
       7  
       8  u32 bug (u32 * result) __attribute__((noinline));
       9  u32 bug (u32 * result)
      10  {
      11    volatile u32 ss = 0xFFFFffff;
      12    volatile u32 d  = 0xEEEEeeee;
      13    u32 tt = d & 0x00800000;
      14    u32 r  = tt << 8;
      15  
      16    r = (r >> 31) | (r <<  1);
      17  
      18    u32 u = r^ss;
      19    u32 off = u >> 1;
      20  
      21    *result = tt;
      22    return off;
      23  }
      24  
      25  int main(void)
      26  {
      27    u32 l;
      28    u32 off = bug(&l);
      29    if (off != 0x7fffffff)
      30      abort ();
      31    return 0;
      32  }