https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83123
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Target| |x86_64-*-*, i?86-*-*
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-11-23
CC| |segher at gcc dot gnu.org
Component|c |rtl-optimization
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The first case is somehow optimized by combine while the latter is not.
The gimple is almost equal, so is the expanded RTL.
test1 (int a, int b)
{
_Bool _1;
_Bool _2;
_Bool _3;
int _6;
<bb 2> [local count: 1073741825]:
_1 = a_4(D) < 0;
_2 = b_5(D) < 0;
_3 = _1 & _2;
_6 = (int) _3;
return _6;
test2 (int a, int b)
{
_Bool _1;
_Bool _2;
_Bool _3;
<bb 2> [local count: 1073741825]:
_1 = a_4(D) < 0;
_2 = b_5(D) < 0;
_3 = _1 & _2;
return _3;