blob: fae17de11128a7fec5a32ec4b4809039b4e8f946 [file] [log] [blame]
/* { dg-do run } */
/* { dg-additional-options "-fgcse-after-reload" } */
int a, b, c, d, e;
static __attribute__ ((__noipa__))
int foo (int i)
{
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
__builtin_memmove (&i, &e, 1);
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
__builtin_memmove ((char *) &i + sizeof (i) - 1,
(char *) &e + sizeof (e) - 1, 1);
#elif __BYTE_ORDER__ == __ORDER_PDP_ENDIAN__
__builtin_memmove ((char *) &i + sizeof (i) - 2,
(char *) &e + sizeof (e) - 2, 1);
#else
#error "endian unknown?"
#endif
if (a > 0)
i /= e;
e /= 5;
b = 0;
return i + c + d + 5;
}
int
main (void)
{
int x = foo (4);
if (x != 5)
__builtin_abort ();
return 0;
}