[PATCH 0/6] arm: small correctness fixes (wrong-code, ICE, debug-info)

Dominic P <[email protected]> Sun, 2 Aug 2026 11:56:02 +0100
Newsgroups gmane.comp.gcc.patches
Message-ID <[email protected]>
This series collects six small, self-contained ARM backend correctness
fixes.  Each reproduces on current trunk, carries a regression test, and
applies cleanly to master.

  1  __fp16 homogeneous-aggregate return miscompile (every element placed
     in s0).  Two-line fix mirroring the argument-passing path; verified by
     an executed ABI round-trip.
  2  compare_exchange with success=release/failure=acquire dropped the
     acquire barrier on pre-v8 (memory-model wrong-code).  One-line fix.
  3  vshll_n with a zero shift emitted an unassemblable "vshll ... #0";
     divert shift-0 to vmovl.
  4  __bf16 move ICE in Thumb-1; add the BFmode mover via the existing
     HFBF iterator.
  5  wrong DWARF register span for Q8-Q15 register variables.
  6  stale comment referencing the removed pe.c.

Each patch was prepared with the assistance of an AI coding tool and is
marked Assisted-by: accordingly; I have reviewed and verified every line
and certify the DCO.

Dominic P (6):
  arm: fix wrong-code for __fp16 homogeneous aggregate return [PR92999]
  arm: Fix missing acquire barrier for compare_exchange release/acquire
    on ARMv6/v7 [PR96056]
  arm: fix vshll_n intrinsics with a zero shift [PR111609]
  arm: Add Thumb-1 BFmode moves to fix __bf16 ICE [PR99764]
  arm: Fix DWARF register span for Q8-Q15 register variables [PR91381]
  arm: Fix stale comment reference to removed pe.c [PR91041]

 gcc/config/arm/arm-protos.h                   |  2 +-
 gcc/config/arm/arm.cc                         | 22 +++++++---
 gcc/config/arm/neon.md                        |  7 ++-
 gcc/config/arm/thumb1.md                      | 12 +++---
 .../arm/atomic-comp-swap-release-acquire-4.c  | 16 +++++++
 gcc/testsuite/gcc.target/arm/pr111609.c       | 28 ++++++++++++
 gcc/testsuite/gcc.target/arm/pr91381.c        | 26 +++++++++++
 gcc/testsuite/gcc.target/arm/pr92999.c        | 43 +++++++++++++++++++
 gcc/testsuite/gcc.target/arm/pr99764.c        | 37 ++++++++++++++++
 9 files changed, 180 insertions(+), 13 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/arm/atomic-comp-swap-release-acquire-4.c
 create mode 100644 gcc/testsuite/gcc.target/arm/pr111609.c
 create mode 100644 gcc/testsuite/gcc.target/arm/pr91381.c
 create mode 100644 gcc/testsuite/gcc.target/arm/pr92999.c
 create mode 100644 gcc/testsuite/gcc.target/arm/pr99764.c

-- 
2.55.0