simplify-rtx: Remove non-simplifying simplification (PR77729)
authorSegher Boessenkool <segher@kernel.crashing.org>
Tue, 3 Oct 2017 16:02:38 +0000 (18:02 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Tue, 3 Oct 2017 16:02:38 +0000 (18:02 +0200)
commita8ccdfa8ea6fbdc78bdd5617427d7ba945cc83af
tree50f8effb7cc092e35fba1cd02ad40548cf55e31b
parent9c53f040cb3c3bc0b86f702af5bd73d904d6cf0f
simplify-rtx: Remove non-simplifying simplification (PR77729)

If we have (X&C1)|C2 simplify_binary_operation_1 makes C1 as small as
possible.  This makes worse code in common cases like when the AND with
C1 is from a zero-extension.  This patch fixes it by removing this
transformation (twice).

PR rtl-optimization/77729
* simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
to (X&(C1&~C2))|C2 transformations.

From-SVN: r253384
gcc/ChangeLog
gcc/simplify-rtx.c