[AArch64] Merge stores of D-register values with different modes
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / ldp_stp_7.c
blobbe24c8a97009a77b510e2b1caee754a75bb9c3d3
1 /* { dg-options "-O2" } */
3 struct pair
5 double a;
6 long long int b;
7 };
9 void
10 stp (struct pair *p)
12 p->a = 0.0;
13 p->b = 1;
16 /* { dg-final { scan-assembler "stp\txzr, x\[0-9\]+, \\\[x\[0-9\]+\\\]" } } */
18 void
19 stp2 (struct pair *p)
21 p->a = 0.0;
22 p->b = 0;
25 struct reverse_pair
27 long long int a;
28 double b;
31 void
32 stp_reverse (struct reverse_pair *p)
34 p->a = 1;
35 p->b = 0.0;
38 /* { dg-final { scan-assembler "stp\tx\[0-9\]+, xzr, \\\[x\[0-9\]+\\\]" } } */
40 void
41 stp_reverse2 (struct reverse_pair *p)
43 p->a = 0;
44 p->b = 0.0;
47 /* { dg-final { scan-assembler-times "stp\txzr, xzr, \\\[x\[0-9\]+\\\]" 2 } } */