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

-- 
2.34.1

Reply via email to