/* PR target/96166 */ | |
/* { dg-do compile { target { ! ia32 } } } */ | |
/* { dg-options "-O3 -mtune=generic -masm=att" } */ | |
/* { dg-final { scan-assembler "rolq\\s\\\$32, \\\(%\[re]di\\\)" } } */ | |
static inline void | |
swap (int *x, int *y) | |
{ | |
int tmp = *x; | |
*x = *y; | |
*y = tmp; | |
} | |
void | |
bar (int (*x)[2]) | |
{ | |
int y[2]; | |
__builtin_memcpy (&y, x, sizeof *x); | |
swap (&y[0], &y[1]); | |
__builtin_memcpy (x, &y, sizeof *x); | |
} |