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

--- Comment #3 from Georg-Johann Lay <gjl at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #2)
> Zeroone*b could be expanded also as zeroone?b:0.
Though that's only half of the story and would

x = zeroone ? b : 0;
c ^= x;

instead of

if (zeroone & 1)
  c ^= b;

and similar for | and +.

IMO the most straight forward, comprehensible and concise would be not to
generate bad code to begin with.

Reply via email to