OSDN Git Service

PR target/43603
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / ia64 / pr43603.c
1 /* { dg-do compile } */
2 /* { dg-options "-O3" } */
3
4 int 
5 foo( long * np, int * dp, int qn)
6 {
7   int i;
8   int n0;
9   int d0;
10   int a;
11   int b;
12   int c;
13   int d;
14
15   a = 1;
16   b = 0;
17   c = 1;
18   d = 1;
19
20   d0 = dp[0];
21
22   for (i = qn; i >= 0; i--) {
23     if (bar((c == 0)) && (np[1] == d0)) {
24       car(np - 3, dp, 3);
25     } else { 
26       __asm__ ("xma.hu %0 = %2, %3, f0\n\txma.l %1 = %2, %3, f0" : "=&f" ((a)), 
27 "=f" (b) : "f" ((c)), "f" ((d))); 
28       n0 = np[0]; 
29       if (n0 < d0) 
30         c = 1; 
31       else 
32         c = 0; 
33
34     }
35     *--np = a;
36   }
37
38   return 0;
39 }