https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77729
--- Comment #13 from Segher Boessenkool <segher at gcc dot gnu.org> --- Author: segher Date: Tue Oct 3 16:02:38 2017 New Revision: 253384 URL: https://gcc.gnu.org/viewcvs?rev=253384&root=gcc&view=rev Log: 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. Modified: trunk/gcc/ChangeLog trunk/gcc/simplify-rtx.c