__complex float __go_complex64_div (__complex float a, __complex float b) { if (__builtin_expect (b == 0+0i, 0)) { if (!__builtin_isinff (__real__ a) && !__builtin_isinff (__imag__ a) && (__builtin_isnanf (__real__ a) || __builtin_isnanf (__imag__ a))) { /* Pass "1" to nanf to match math/bits.go. */ return __builtin_nanf("1") + __builtin_nanf("1")*1i; } } return a / b; }
int main () { double pinf = __builtin_inf (); float pinff = __builtin_inff (); long double pinfl = __builtin_infl (); if (__builtin_isinf (pinf) != 1) link_error (); if (__builtin_isinf (pinff) != 1) link_error (); if (__builtin_isinff (pinff) != 1) link_error (); if (__builtin_isinf (pinfl) != 1) link_error (); if (__builtin_isinfl (pinfl) != 1) link_error (); if (__builtin_isinf (-pinf) != -1) link_error (); if (__builtin_isinf (-pinff) != -1) link_error (); if (__builtin_isinff (-pinff) != -1) link_error (); if (__builtin_isinf (-pinfl) != -1) link_error (); if (__builtin_isinfl (-pinfl) != -1) link_error (); if (__builtin_isinf (4.0)) link_error (); if (__builtin_isinf (4.0)) link_error (); if (__builtin_isinff (4.0)) link_error (); if (__builtin_isinf (4.0)) link_error (); if (__builtin_isinfl (4.0)) link_error (); }
static inline int __attribute__((always_inline)) testf (float b) { float c = 1.01f * b; return __builtin_isinff (c); }