[AArch64] Merge stores of D-register values with different modes
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr38151.c
blob86c8f774fc160bbf15860b0514034f618bc962a9
1 /* { dg-options "-Wno-psabi" } */
2 /* { dg-require-effective-target int32plus } */
3 void abort (void);
5 struct S2848
7 unsigned int a;
8 _Complex int b;
9 struct
11 } __attribute__ ((aligned)) c;
14 struct S2848 s2848;
16 int fails;
18 void __attribute__((noinline))
19 check2848va (int z, ...)
21 struct S2848 arg;
22 __builtin_va_list ap;
24 __builtin_va_start (ap, z);
26 arg = __builtin_va_arg (ap, struct S2848);
28 if (s2848.a != arg.a)
29 ++fails;
30 if (s2848.b != arg.b)
31 ++fails;
33 __builtin_va_end (ap);
36 int main (void)
38 s2848.a = 4027477739U;
39 s2848.b = (723419448 + -218144346 * __extension__ 1i);
41 check2848va (1, s2848);
43 if (fails)
44 abort ();
46 return 0;