[AArch64] Merge stores of D-register values with different modes
[official-gcc.git] / gcc / testsuite / gcc.c-torture / compile / 20070905-1.c
blob5953275b10fcfdd3c970e2f2d07d341c1942672b
1 /* PR tree-optimization/32772 */
3 struct S
5 unsigned long bits[1];
6 };
8 void f1 (int, unsigned long *);
9 int f2 (void);
10 int f3 (int, unsigned long *);
11 int f4 (int, unsigned long *);
13 static inline __attribute__ ((always_inline))
14 void baz (int x, volatile struct S *y)
16 f1 (x, y->bits);
19 static int
20 bar (int x, struct S *y)
22 int n;
23 if (__builtin_constant_p (x) ? f3 (x, y->bits) : f4 (x, y->bits))
24 baz (x, y);
25 for (n = f2 (); n < 8; n = f2 ())
26 f3 (n, y->bits);
29 void
30 foo (int x, int y)
32 struct S m;
33 while ((y = bar (x, &m)) >= 0);