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??