diff options
author | Andrew Pinski <apinski@marvell.com> | 2023-06-07 07:58:50 -0700 |
---|---|---|
committer | Andrew Pinski <apinski@marvell.com> | 2023-06-09 07:09:15 -0700 |
commit | 7ceed7e3e29c3375e3b8c4347d1985a72bbe7f11 (patch) | |
tree | e83fd55d965b5ba5094dbb040b22bc852fb4b724 /gcc/tree-vectorizer.h | |
parent | 72e652f3425079259faa4edefe1dc571f72f91e0 (diff) | |
download | gcc-7ceed7e3e29c3375e3b8c4347d1985a72bbe7f11.zip gcc-7ceed7e3e29c3375e3b8c4347d1985a72bbe7f11.tar.gz gcc-7ceed7e3e29c3375e3b8c4347d1985a72bbe7f11.tar.bz2 |
MATCH: Allow unsigned types for `X & -Y -> X * Y` pattern
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.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions