This series expands on the fix for PR115464 by using force_subreg
in more places.  It also adds some convenience wrappers for lowpart
and highpart subregs.

A part of this will need to be backported after a grace period,
but I'll post the cherry-picked parts separately.

Tested on aarch64-linux-gnu & x86_64-linux-gnu.  OK to install?

Richard Sandiford (8):
  Make force_subreg emit nothing on failure
  aarch64: Use force_subreg in more places
  Make more use of force_subreg
  Add force_lowpart_subreg
  aarch64: Add some uses of force_lowpart_subreg
  Make more use of force_lowpart_subreg
  Add force_highpart_subreg
  aarch64: Add some uses of force_highpart_subreg

 gcc/builtins.cc                               | 22 +++-------
 gcc/config/aarch64/aarch64-builtins.cc        | 15 +++----
 gcc/config/aarch64/aarch64-simd.md            |  4 +-
 .../aarch64/aarch64-sve-builtins-base.cc      | 10 ++---
 .../aarch64/aarch64-sve-builtins-functions.h  |  6 +--
 .../aarch64/aarch64-sve-builtins-sme.cc       |  2 +-
 gcc/config/aarch64/aarch64.cc                 | 31 ++++---------
 gcc/explow.cc                                 | 34 +++++++++++++-
 gcc/explow.h                                  |  2 +
 gcc/expmed.cc                                 | 26 ++++-------
 gcc/expr.cc                                   | 44 +++++++++----------
 gcc/optabs.cc                                 | 26 ++---------
 .../aarch64/sve/acle/general/pr115464_2.c     | 11 +++++
 13 files changed, 111 insertions(+), 122 deletions(-)
 create mode 100644 
gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c

-- 
2.25.1

Reply via email to