Esempio n. 1
0
__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 ();
}
Esempio n. 3
0
static inline int __attribute__((always_inline)) testf (float b)
{
  float c = 1.01f * b;

  return __builtin_isinff (c);
}