https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125791
--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> --- Note for others, sometimes targets don't have a cheap shifter. So turning x >> 31 into `x < 0` might always be better ... Also note `(typeof(y))zero_one * z` does not always expand using `zero_one? z : 0` when it could.
