https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126157
Bug ID: 126157
Summary: arc: -ffuse-ops-with-volatile-access breaks volatile
memops
Product: gcc
Version: 16.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: michiel at derhaeg dot be
Target Milestone: ---
newlib's libgloss/arc/hl/hl_api.c fails to build with -Os using GCC 16.
`stdi<mode>` incorrectly uses a too liberal predicate for the destination
operand, producing something like this:
stb.di r2,[r13,r1]
These [reg,reg] operands are not valid.
This bug appeared because the introduction of
`-ffuse-ops-with-volatile-access`.
Before its existence, recog/combine would've disallowed `(plus (reg) (reg))` as
the destination operand.
Originally reported on the newlib mailing list:
https://sourceware.org/pipermail/newlib/2026/022429.html
Fix is being worked on.