https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110009
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- With the nop_convert added and using bitwise_equal_p : (simplify (mult:c @0 (nop_convert? (bit_ior:c (rshift @1 INTEGER_CST@2) integer_onep))) (if (!TYPE_UNSIGNED (TREE_TYPE (@1)) && wi::to_wide (@2) == element_precision (type) - 1 && bitwise_equal_p (@0, @1)) (if (TYPE_UNSIGNED (type)) (absu @1) (abs @1))))