https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92342
--- Comment #10 from Segher Boessenkool <segher at gcc dot gnu.org> --- There are a gazillion ways to write this without if_then_else, none obviously better than any other, and it gets much worse if your b,c have special values. I don't think this optimisation should be done by combine at all. combine has some serious problems doing this. It is closely related to ifcvt, in some ways.