[Bug tree-optimization/93131] ((a&8) == 8) && ((a&2) == 2) is not optimized to (a&(8|2)) == (8|2)

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 24 21:36:00 GMT 2020


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

--- Comment #20 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Andrew Pinski <pinskia@gcc.gnu.org>:

https://gcc.gnu.org/g:6ccc19bd4d12379a0d9fce486ceba3207749424a

commit r10-6213-g6ccc19bd4d12379a0d9fce486ceba3207749424a
Author: Andrew Pinski <apinski@marvell.com>
Date:   Sat Jan 11 20:34:24 2020 +0000

    Decrease cortexa57_extra_costs's alu.shift_reg

    Like I mentioned in https://gcc.gnu.org/ml/gcc/2020-01/msg00157.html,
    The shift by a register should be just COSTS_N_INSNS (1) rather than
    COSTS_N_INSNS (2).  This allows lshift_cheap_p to return true now
    and converting switches to be using shift and other like
    structures.  I noticed this difference when I was working
    through PR 93131 and understanding what reassoc could handle.

    ChangeLog:
    * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
    alu.shift_reg to 0.


More information about the Gcc-bugs mailing list