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

Xi Ruoyao <xry111 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|target                      |rtl-optimization

--- Comment #5 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
In simplify_binary_operation_1, simplify-rtx.cc:

    case COPYSIGN:
      if (rtx_equal_p (trueop0, trueop1) && ! side_effects_p (op0))
        return op0; 
      if (CONST_DOUBLE_AS_FLOAT_P (trueop1))
        {    
          REAL_VALUE_TYPE f1;
          real_convert (&f1, mode, CONST_DOUBLE_REAL_VALUE (trueop1));
          rtx tmp = simplify_gen_unary (ABS, mode, op0, mode);
          if (REAL_VALUE_NEGATIVE (f1))
            tmp = simplify_gen_unary (NEG, mode, op0, mode);
                                                 ^^^
          return tmp; 
        }    

shouldn't the "op0" with caret be "tmp" instead??

Reply via email to