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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Roger Sayle <sa...@gcc.gnu.org>:

https://gcc.gnu.org/g:98837d6e79dd27c15f5218f3f1ddf838cda4796c

commit r13-5111-g98837d6e79dd27c15f5218f3f1ddf838cda4796c
Author: Roger Sayle <ro...@nextmovesoftware.com>
Date:   Wed Jan 11 16:54:58 2023 +0000

    PR tree-optimization/71343: Value number X<<2 as X*4.

    This patch is the second part of a fix for PR tree-optimization/71343,
    that implements Richard Biener's suggestion of using tree-ssa's value
    numbering instead of match.pd.  The change is that when assigning a
    value number for the expression X<<C, we actually look-up or insert
    the value number for the multiplication X*(1<<C).  This elegantly
    handles the fact that we (intentionally) don't canonicalize these as
    equivalent in GIMPLE, and the optimization/equivalence in PR 71343 now
    happens by (tree-ssa SCCVN) magic.

    2023-01-11  Roger Sayle  <ro...@nextmovesoftware.com>

    gcc/ChangeLog
            PR tree-optimization/71343
            * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
            the value number of the expression X << C the same as the value
            number for the multiplication X * (1<<C).

    gcc/testsuite/ChangeLog
            PR tree-optimization/71343
            * gcc.dg/pr71343-2.c: New test case.
  • [Bug tree-optimization/7134... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to