This commit was manufactured by cvs2svn to create branch
[official-gcc.git] / gcc / testsuite / gcc.dg / 20001013-1.c
blob87126fc4a8149ee1828d27779fbd7d1252c1d121
1 /* { dg-do run { target sparc*-*-* } } */
2 /* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */
4 int l;
6 int baz (double x)
8 return l == 0;
11 double bar (double x)
13 return 1.0;
16 double foo (double x)
18 if (l == -1 || baz (x)) return x;
19 if (x < 0.0)
20 return bar (x);
21 else
22 return 0.0;
25 union {
26 double d;
27 long long l;
28 } x = { l: 0x7ff8000000000000LL }, y;
30 main ()
32 unsigned int fsr = 0;
33 __asm __volatile ("ld %0, %%fsr" : : "m" (fsr));
34 y.d = foo (x.d);
35 __asm __volatile ("st %%fsr, %0" : "=m" (fsr));
36 if (x.l != y.l || (fsr & 0x3ff))
37 abort ();
38 exit (0);