1 /* Test AAPCS layout (alignment) for callee. */
2
3 /* { dg-do run { target aarch64*-*-* } } */
4
5 extern void abort (void);
6
7 typedef __attribute__ ((__aligned__ (8))) int alignedint;
8
9 alignedint a = 11;
10 alignedint b = 13;
11 alignedint c = 17;
12 alignedint d = 19;
13 alignedint e = 23;
14 alignedint f = 29;
15 alignedint g = 31;
16 alignedint h = 37;
17 alignedint i = 41;
18 alignedint j = 43;
19
20 void
test_passing_many_alignedint(alignedint x0,alignedint x1,alignedint x2,alignedint x3,alignedint x4,alignedint x5,alignedint x6,alignedint x7,alignedint stack,alignedint stack8)21 test_passing_many_alignedint (alignedint x0, alignedint x1, alignedint x2,
22 alignedint x3, alignedint x4, alignedint x5,
23 alignedint x6, alignedint x7, alignedint stack,
24 alignedint stack8)
25 {
26 if (x0 != a
27 || x1 != b
28 || x2 != c
29 || x3 != d
30 || x4 != e
31 || x5 != f
32 || x6 != g
33 || x7 != h
34 || stack != i
35 || stack8 !=j)
36 abort ();
37 }
38
39 int
main(int argc,char ** argv)40 main (int argc, char **argv)
41 {
42 test_passing_many_alignedint (a, b, c, d, e, f, g, h, i, j);
43 return 0;
44 }
45