https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104675
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #3) > > I think both: > /* -A - 1 -> ~A */ > (simplify > (minus (convert? (negate @0)) integer_each_onep) > (if (!TYPE_OVERFLOW_TRAPS (type) > && tree_nop_conversion_p (type, TREE_TYPE (@0))) > (bit_not (convert @0)))) > > /* -1 - A -> ~A */ > (simplify > (minus integer_all_onesp @0) > (bit_not @0)) > needs to punt for COMPLEX_TYPE. Yes agreed. In fact that is basically what I wrote to the original patch on the mailing list a few minutes ago.