1 /* Test infinities convert to __float128 infinity. Bug 77265. */ 2 /* { dg-do run } */ 3 /* { dg-require-effective-target __float128 } */ 4 /* { dg-require-effective-target base_quadfloat_support } */ 5 /* { dg-add-options __float128 } */ 6 7 extern void abort (void); 8 extern void exit (int); 9 10 volatile float finf = __builtin_inff (); 11 volatile double dinf = __builtin_inf (); 12 volatile long double ldinf = __builtin_infl (); 13 volatile float nfinf = -__builtin_inff (); 14 volatile double ndinf = -__builtin_inf (); 15 volatile long double nldinf = -__builtin_infl (); 16 17 int main(void)18main (void) 19 { 20 volatile __float128 r; 21 r = (__float128) finf; 22 if (!__builtin_isinf (r) || __builtin_signbit (r) != 0) 23 abort (); 24 r = (__float128) dinf; 25 if (!__builtin_isinf (r) || __builtin_signbit (r) != 0) 26 abort (); 27 r = (__float128) ldinf; 28 if (!__builtin_isinf (r) || __builtin_signbit (r) != 0) 29 abort (); 30 r = (__float128) nfinf; 31 if (!__builtin_isinf (r) || __builtin_signbit (r) == 0) 32 abort (); 33 r = (__float128) ndinf; 34 if (!__builtin_isinf (r) || __builtin_signbit (r) == 0) 35 abort (); 36 r = (__float128) nldinf; 37 if (!__builtin_isinf (r) || __builtin_signbit (r) == 0) 38 abort (); 39 exit (0); 40 } 41