1/* { dg-add-options ieee } */
2/* { dg-skip-if "No Inf/NaN support" { spu-*-* } "*" "" } */
3
4extern void abort (void);
5
6static inline int __attribute__((always_inline)) testf (float b)
7{
8  float c = 1.01f * b;
9
10  return __builtin_isinff (c);
11}
12
13static inline int __attribute__((always_inline)) test (double b)
14{
15  double c = 1.01 * b;
16
17  return __builtin_isinf (c);
18}
19
20static inline int __attribute__((always_inline)) testl (long double b)
21{
22  long double c = 1.01L * b;
23
24  return __builtin_isinfl (c);
25}
26
27int main()
28{
29  if (testf (__FLT_MAX__) < 1)
30    abort ();
31
32  if (test (__DBL_MAX__) < 1)
33    abort ();
34
35  if (testl (__LDBL_MAX__) < 1)
36    abort ();
37
38  return 0;
39}
40