1extern void abort (void);
2
3void test(double f, double i)
4{
5  if (f == __builtin_inf())
6    abort ();
7  if (f == -__builtin_inf())
8    abort ();
9  if (i == -__builtin_inf())
10    abort ();
11  if (i != __builtin_inf())
12    abort ();
13
14  if (f >= __builtin_inf())
15    abort ();
16  if (f > __builtin_inf())
17    abort ();
18  if (i > __builtin_inf())
19    abort ();
20  if (f <= -__builtin_inf())
21    abort ();
22  if (f < -__builtin_inf())
23    abort ();
24}
25
26void testf(float f, float i)
27{
28#ifndef __SPU__
29  /* The SPU single-precision floating point format does not support Inf.  */
30
31  if (f == __builtin_inff())
32    abort ();
33  if (f == -__builtin_inff())
34    abort ();
35  if (i == -__builtin_inff())
36    abort ();
37  if (i != __builtin_inff())
38    abort ();
39
40  if (f >= __builtin_inff())
41    abort ();
42  if (f > __builtin_inff())
43    abort ();
44  if (i > __builtin_inff())
45    abort ();
46  if (f <= -__builtin_inff())
47    abort ();
48  if (f < -__builtin_inff())
49    abort ();
50#endif
51}
52
53void testl(long double f, long double i)
54{
55  if (f == __builtin_infl())
56    abort ();
57  if (f == -__builtin_infl())
58    abort ();
59  if (i == -__builtin_infl())
60    abort ();
61  if (i != __builtin_infl())
62    abort ();
63
64  if (f >= __builtin_infl())
65    abort ();
66  if (f > __builtin_infl())
67    abort ();
68  if (i > __builtin_infl())
69    abort ();
70  if (f <= -__builtin_infl())
71    abort ();
72  if (f < -__builtin_infl())
73    abort ();
74}
75
76int main()
77{
78  test (34.0, __builtin_inf());
79  testf (34.0f, __builtin_inff());
80  testl (34.0l, __builtin_infl());
81  return 0;
82}
83
84