https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111126
--- Comment #5 from Jeffrey A. Law <law at gcc dot gnu.org> --- Multiply as a canonical form of a conditional move/zero seems fairly non-obvious relative to a conditional expression. But I don't mind going with consensus on a canonical form. After all we just need to define one. The bigger question is fixing the expansion. We can expand as a multiply, x&-y or with a conditional-move like sequence.