This patch series adds support for the CMPBR extension. It includes the
new `+cmpbr` option and rules to generate the new instructions when
lowering conditional branches.

Testing done:
`make bootstrap; make check`

Karl Meakin (10):
  AArch64: place branch instruction rules together
  AArch64: reformat branch instruction rules
  AArch64: rename branch instruction rules
  AArch64: add constants for branch displacements
  AArch64: make `far_branch` attribute a boolean
  AArch64: recognize `+cmpbr` option
  AArch64: precommit test for CMPBR instructions
  AArch64: rules for CMPBR instructions
  AArch64: make rules for CBZ/TBZ higher priority
  Use HS/LO instead of CS/CC

 .../aarch64/aarch64-option-extensions.def     |    2 +
 gcc/config/aarch64/aarch64-simd.md            |    2 +-
 gcc/config/aarch64/aarch64-sme.md             |    2 +-
 gcc/config/aarch64/aarch64.cc                 |   39 +-
 gcc/config/aarch64/aarch64.h                  |    3 +
 gcc/config/aarch64/aarch64.md                 |  564 ++++---
 gcc/config/aarch64/iterators.md               |    5 +
 gcc/config/aarch64/predicates.md              |   15 +
 gcc/doc/invoke.texi                           |    3 +
 gcc/testsuite/gcc.target/aarch64/cmpbr.c      | 1481 +++++++++++++++++
 gcc/testsuite/lib/target-supports.exp         |   14 +-
 11 files changed, 1898 insertions(+), 232 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/cmpbr.c

-- 
2.45.2

Reply via email to