On 6/7/23 15:32, Andrew Pinski via Gcc-patches wrote:
This allows unsigned types if the inner type where the negation is
located has greater than or equal to precision than the outer type.

branchless-cond.c needs to be updated since now we change it to
use a multiply rather than still having (-a)&c in there.

OK? Bootstrapped and tested on x86_64-linux-gnu.

gcc/ChangeLog:

        * match.pd (`X & -Y -> X * Y`): Allow for truncation
        and the same type for unsigned types.

gcc/testsuite/ChangeLog:

        * gcc.dg/tree-ssa/branchless-cond.c: Update testcase.
OK.
jeff

Reply via email to