https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101807
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Actually I need to check the cost, e.g. on MIPS, there is an one instruction which does the less than without doing anything. That is for: bool f0(bool a, bool b) { return a<b; } bool g(bool a, bool b) { return !a & b; } f0: jr $31 sltu $2,$4,$5 g: xori $4,$4,0x1 jr $31 and $2,$5,$4 And then after my current patch both are expanded like g. which is wrong.