OSDN Git Service

* gcc.dg/pr31344.c: Move to ...
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / builtins-32.c
1 /* Copyright (C) 2004 Free Software Foundation.
2
3    Check that constant folding of signbit, signbitf and signbitl math
4    functions doesn't break anything and produces the expected results.
5
6    Written by Roger Sayle, 28th January 2004.  */
7
8 /* { dg-do run } */
9 /* { dg-options "-O2" } */
10
11 extern void abort(void);
12
13 extern int signbit(double);
14 extern int signbitf(float);
15 extern int signbitl(long double);
16
17 int test (double x)
18 {
19   return signbit(x);
20 }
21
22 int testf (float x)
23 {
24   return signbitf(x);
25 }
26
27 int testl (long double x)
28 {
29   return signbitl(x);
30 }
31
32
33 int main()
34 {
35   if (test (0.0) != 0)
36     abort ();
37   if (test (1.0) != 0)
38     abort ();
39   if (test (-2.0) == 0)
40     abort ();
41
42   if (testf (0.0f) != 0)
43     abort ();
44   if (testf (1.0f) != 0)
45     abort ();
46   if (testf (-2.0f) == 0)
47     abort ();
48
49   if (testl (0.0l) != 0)
50     abort ();
51   if (testl (1.0l) != 0)
52     abort ();
53   if (testl (-2.0l) == 0)
54     abort ();
55
56   return 0;
57 }
58