2018-02-09 Sebastian Perta <sebastian.perta@renesas.com>
[official-gcc.git] / gcc / testsuite / gcc.target / ia64 / pr43603.c
blob92fc2c6981ba5c7f7f7519137b9e6488ee6c5399
1 /* { dg-do compile } */
2 /* { dg-options "-O3" } */
4 int bar (int);
5 void car (long *, int *, int);
6 int
7 foo( long * np, int * dp, int qn)
9 int i;
10 int n0;
11 int d0;
12 int a;
13 int b;
14 int c;
15 int d;
17 a = 1;
18 b = 0;
19 c = 1;
20 d = 1;
22 d0 = dp[0];
24 for (i = qn; i >= 0; i--) {
25 if (bar((c == 0)) && (np[1] == d0)) {
26 car(np - 3, dp, 3);
27 } else {
28 __asm__ ("xma.hu %0 = %2, %3, f0\n\txma.l %1 = %2, %3, f0" : "=&f" ((a)),
29 "=f" (b) : "f" ((c)), "f" ((d)));
30 n0 = np[0];
31 if (n0 < d0)
32 c = 1;
33 else
34 c = 0;
37 *--np = a;
40 return 0;