(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr91656-1.c
       1  /* { dg-do run } */
       2  /* { dg-additional-options "-fgcse-after-reload" } */
       3  
       4  int a, b, c, d, e;
       5  
       6  static __attribute__ ((__noipa__))
       7  int foo (int i)
       8  {
       9  #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
      10    __builtin_memmove (&i, &e, 1);
      11  #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
      12    __builtin_memmove ((char *) &i + sizeof (i) - 1,
      13  		     (char *) &e + sizeof (e) - 1, 1);
      14  #elif __BYTE_ORDER__ == __ORDER_PDP_ENDIAN__
      15    __builtin_memmove ((char *) &i + sizeof (i) - 2,
      16  		     (char *) &e + sizeof (e) - 2, 1);
      17  #else
      18  #error "endian unknown?"
      19  #endif
      20    if (a > 0)
      21      i /= e;
      22    e /= 5;
      23    b = 0;
      24    return i + c + d + 5;
      25  }
      26  
      27  int
      28  main (void)
      29  {
      30    int x = foo (4);
      31    if (x != 5)
      32      __builtin_abort ();
      33    return 0;
      34  }