/* { dg-options "-O2" } */ | |
/* Check that we can use a REG + IMM addressing mode when moving an unaligned | |
TImode value to and from memory. */ | |
struct foo | |
{ | |
long long b; | |
__int128 a; | |
} __attribute__ ((packed)); | |
void | |
bar (struct foo *p, struct foo *q) | |
{ | |
p->a = q->a; | |
} | |
/* { dg-final { scan-assembler-not "add\tx\[0-9\]+, x\[0-9\]+" } } */ | |
/* { dg-final { scan-assembler-times "ldp\tx\[0-9\]+, x\[0-9\], .*8" 1 } } */ | |
/* { dg-final { scan-assembler-times "stp\tx\[0-9\]+, x\[0-9\], .*8" 1 } } */ |