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.

Reply via email to