https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95409
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2021-04-21 Status|UNCONFIRMED |NEW Severity|normal |enhancement Component|target |tree-optimization Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. They produce at the tree level: _1 = ~x_7(D); _4 = x.2_2 < y.3_3; _5 = (int) _4; _6 = _1 & _5; _9 = (bool) _6; ------------------------ _3 = x.4_1 < y.5_2; _11 = ~x_7(D); _5 = (bool) _11; _6 = _3 & _5; ------------------------------- That is it does not convert: _5 = (int) _4; _6 = _1 & _5; _9 = (bool) _6; Into: _t = (bool) _1; _6 = _t & _4;