From: Kyrylo Tkachov <[email protected]>

[Resending as my mail server seems to have eaten some parts of the series]

This is a respin of the saturating matching improvement series.
Some patches have landed, after some small detours.
Thanks to Andrea and Richi for the reviews.
I'm resending the rebased series with what still remains.

Thanks,
Kyrill

Kyrylo Tkachov (9):
  match-sat-alu.pd: Allow wider ranges for signed saturating truncation
  match-sat-alu.pd: Recognize X - MIN (X, Y) as saturating subtraction
  match-sat-alu.pd: Recognize signed saturation clamps
  match-sat-alu.pd: Recognize more unsigned saturating subtraction forms
  match-sat-alu.pd: Recognize strict widened unsigned saturation clamps
  match-sat-alu.pd: Recognize signed saturating truncation after a shift
  match-sat-alu.pd: Recognize unsigned constant-clamp truncation
  match-sat-alu.pd: Recognize signed constant-clamp truncation
  match-sat-alu.pd: Recognize complement masks for unsigned saturating
    truncation

 gcc/match-sat-alu.pd                          | 289 +++++++++++++++---
 gcc/testsuite/gcc.dg/sat-trunc-signed-cmp-2.c |  42 +++
 .../gcc.dg/vect/vect-sat-trunc-clamp-1.c      | 121 ++++++++
 .../gcc.dg/vect/vect-sat-trunc-clamp-2.c      | 126 ++++++++
 .../gcc.dg/vect/vect-sat-trunc-complement-1.c |  70 +++++
 .../vect/vect-sat-trunc-range-precision-1.c   | 121 ++++++++
 .../vect/vect-sat-trunc-shift-sign-source-1.c | 220 +++++++++++++
 .../gcc.target/aarch64/sat_s_clamp-1.c        |  78 +++++
 .../gcc.target/aarch64/sat_s_clamp-2.c        |  43 +++
 .../gcc.target/aarch64/sat_s_val_ashr-1.c     |  30 ++
 .../gcc.target/aarch64/sat_u_add_widen_lt-1.c |  32 ++
 .../gcc.target/aarch64/sat_u_sub_minmax-1.c   |  18 ++
 .../gcc.target/aarch64/sat_u_sub_minmax-2.c   |  32 ++
 .../gcc.target/aarch64/sat_u_sub_minmax-3.c   |  17 ++
 .../gcc.target/aarch64/sat_u_sub_swapped-1.c  |  27 ++
 .../vect-sat-trunc-clamp-inner-use-1.c        |  22 ++
 .../vect-sat-trunc-clamp-multi-use-1.c        |  21 ++
 .../aarch64/vect-sat-trunc-clamp-s-1.c        |   7 +
 .../vect-sat-trunc-clamp-s-negative-1.c       |  30 ++
 .../aarch64/vect-sat-trunc-clamp-u-1.c        |   7 +
 .../vect-sat-trunc-clamp-u-negative-1.c       |  30 ++
 .../aarch64/vect-sat-trunc-complement-1.c     |  30 ++
 .../vect-sat-trunc-range-precision-1.c        |   7 +
 ...ect-sat-trunc-range-precision-negative-1.c |  24 ++
 .../vect-sat-trunc-shift-sign-source-1.c      |   7 +
 ...t-sat-trunc-shift-sign-source-negative-1.c | 122 ++++++++
 gcc/tree-ssa-math-opts.cc                     |  48 +--
 27 files changed, 1567 insertions(+), 54 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/sat-trunc-signed-cmp-2.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-sat-trunc-clamp-1.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-sat-trunc-clamp-2.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-sat-trunc-complement-1.c
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-sat-trunc-range-precision-1.c
 create mode 100644 
gcc/testsuite/gcc.dg/vect/vect-sat-trunc-shift-sign-source-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sat_s_clamp-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sat_s_clamp-2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sat_s_val_ashr-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sat_u_add_widen_lt-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sat_u_sub_minmax-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sat_u_sub_minmax-2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sat_u_sub_minmax-3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sat_u_sub_swapped-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-clamp-inner-use-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-clamp-multi-use-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-clamp-s-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-clamp-s-negative-1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-clamp-u-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-clamp-u-negative-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-complement-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-range-precision-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-range-precision-negative-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-shift-sign-source-1.c
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/vect-sat-trunc-shift-sign-source-negative-1.c

-- 
2.50.1 (Apple Git-155)

Reply via email to