[Bug tree-optimization/102872] If statement is always false but not figured out at gimple level

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Oct 21 08:58:21 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102872

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-10-21
                 CC|                            |amacleod at redhat dot com,
                   |                            |rguenth at gcc dot gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  I wonder if the relation oracle could be extended to handle this
though there's the usual caveat that _9 and d_10 are not dependent on each
other but only are indirectly related through a.3_5.

  d_10 = (short unsigned int) a.3_5;
  _9 = a.3_5 & 65535;
  if (_9 == 0)

Here VN could be teached to look for (short unsigned int) a.3_5 when
seeing a.3_5 & 65535 and CSE it as (short signed int) d_10 (but then
I think we might fold that back).


More information about the Gcc-bugs mailing list