[Bug tree-optimization/88841] Missed optimization transforming cascading ||s into a bit select
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jan 15 09:10:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88841
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Status|UNCONFIRMED |NEW
Last reconfirmed| |2019-01-15
Component|other |tree-optimization
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue is the tests are split in different ways.
isspc_1 (char c)
{
bool D.2304;
bool iftmp.0;
_1 = c == 32;
_2 = c == 10;
_3 = _1 | _2;
if (_3 != 0) goto <D.2306>; else goto <D.2309>;
<D.2309>:
_4 = c == 13;
_5 = c == 9;
_6 = _4 | _5;
if (_6 != 0) goto <D.2306>; else goto <D.2307>;
vs.
isspc_2 (char c)
{
bool D.2311;
bool iftmp.1;
_1 = c == 32;
_2 = c == 13;
_3 = _1 | _2;
if (_3 != 0) goto <D.2313>; else goto <D.2316>;
<D.2316>:
c.2_4 = (unsigned char) c;
_5 = c.2_4 + 247;
if (_5 <= 1) goto <D.2313>; else goto <D.2314>;
More information about the Gcc-bugs
mailing list