https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118541

--- Comment #1 from Jeevitha <jeevitha at gcc dot gnu.org> ---
This issue arises from a glibc math function. Below is the discussion from the
glibc mailing list conversation between Florian and Adhemerval.

I saw this when building for POWER10 and it seems a compiler issue to me,
where gcc generates:

   0x00007ffff7eb0280 <+64>:    fdiv    f0,f1,f0
   0x00007ffff7eb0284 <+68>:    mtlr    r0
=> 0x00007ffff7eb0288 <+72>:    xscmpgtdp vs1,vs0,vs31
   0x00007ffff7eb028c <+76>:    xxsel   vs1,vs0,vs31,vs1

For 

  FLOAT ret = M_SUF (__ieee754_acos) (x) / M_MLIT (M_PI);
  /* Ensure that rounding upward for both acos and the division cannot
     yield a return value from acospi greater than 1.  */
  return isgreater (ret, M_LIT (1.0)) ? M_LIT (1.0) : ret;

I don't think compiler is allowed to transform this expression to
xscmpgtdp for unordered operations.

Reply via email to