aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/aarch64/ldp_stp_unaligned_1.c
blob: a70f92100fb91bcfdcfd4af1cab6f58915038568 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* { 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 } } */