http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58542
Richard Henderson <rth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rth at gcc dot gnu.org --- Comment #10 from Richard Henderson <rth at gcc dot gnu.org> --- Thanks for reminding me of this. The bug isn't in expand_atomic_compare_and_swap, and the parameters to create_convert_operand_to, because the argument is already TImode: <integer_cst 0x7ffff19d75e0 type <integer_type 0x7ffff19e1a80 __int128 unsigned> constant -1> The bug is either in expand_expr_* in creating a const_int instead of a const_double, or in convert_to_mode (or its callees) in misinterpreting the const_int.