https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101756
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note with my patch for PR 101805, we are able to get the scalar version of this
function to:
xorl %eax, %eax
testl %edx, %edx
sete %al
orl %esi, %eax
ret
_23 = kk_13(D) == 0;
_18 = (int) _23;
of_33 = of_10(D) | _18;
return of_33;
This is because MAX<ea!=-1, ea!=-2> (ea != -1 | ea != -2) will always be 1.
ICC, clang nor MSVC is able to figure this out either.
