Pinging
On 27/11/2024 20:27, Akram Ahmad wrote:
Hi all,
This patch series adds support for 2 new cases of unsigned scalar saturating
arithmetic
(one addition, one subtraction). This results in more valid patterns being
recognised,
which results in a call to .SAT_ADD or .SAT_SUB where relevant.
v3 of this series now introduces support for dg-require-effective-target for
both usadd
and ussub optabs as well as individual modes that these optabs may be
implemented for.
aarch64 support for these optabs is in review, so there are currently no
targets listed
in these effective-target options.
Regression tests for aarch64 all pass with no failures.
v3 changes:
- add support for new effective-target keywords.
- tests for the two new patterns now use the dg-require-effective-target so
that they are
skipped on relevant targets.
v2 changes:
- add new tests for both patterns (these will fail on targets which don't
implement
the standard insn names for IFN_SAT_ADD and IFN_SAT_SUB; another patch
series adds
support for this in aarch64).
- minor adjustment to the constraints on the match statement for
usadd_left_part_1.
If this is OK for master, please commit these on my behalf, as I do not have
the ability
to do so.
Many thanks,
Akram
---
Akram Ahmad (3):
testsuite: Support dg-require-effective-target for us{add, sub}
Match: support new case of unsigned scalar SAT_SUB
Match: make SAT_ADD case 7 commutative
gcc/match.pd | 12 +++-
.../gcc.dg/tree-ssa/sat-u-add-match-1-u16.c | 22 ++++++++
.../gcc.dg/tree-ssa/sat-u-add-match-1-u32.c | 22 ++++++++
.../gcc.dg/tree-ssa/sat-u-add-match-1-u64.c | 22 ++++++++
.../gcc.dg/tree-ssa/sat-u-add-match-1-u8.c | 22 ++++++++
.../gcc.dg/tree-ssa/sat-u-sub-match-1-u16.c | 15 +++++
.../gcc.dg/tree-ssa/sat-u-sub-match-1-u32.c | 15 +++++
.../gcc.dg/tree-ssa/sat-u-sub-match-1-u64.c | 15 +++++
.../gcc.dg/tree-ssa/sat-u-sub-match-1-u8.c | 15 +++++
gcc/testsuite/lib/target-supports.exp | 56 +++++++++++++++++++
10 files changed, 214 insertions(+), 2 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/sat-u-add-match-1-u16.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/sat-u-add-match-1-u32.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/sat-u-add-match-1-u64.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/sat-u-add-match-1-u8.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/sat-u-sub-match-1-u16.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/sat-u-sub-match-1-u32.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/sat-u-sub-match-1-u64.c
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/sat-u-sub-match-1-u8.c