https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126555
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2026-10-14
--- Comment #2 from Drea Pinski <pinskia at gcc dot gnu.org> ---
https://support.arm.com/documentation/ddi0487/maa/-Part-C-The-AArch64-Instruction-Set/-Chapter-C6-A64-Base-Instruction-Descriptions/-C6-2-Alphabetical-list-of-A64-base-instructions/-C6-2-459-SUBP?lang=en
(define_insn "subp"
[(set (match_operand:DI 0 "register_operand" "=r")
(minus:DI
(and:DI (match_operand:DI 1 "register_operand" "rk")
(const_int MEMTAG_ADDR_MASK))
(and:DI (match_operand:DI 2 "register_operand" "rk")
(const_int MEMTAG_ADDR_MASK))))]
"TARGET_MEMTAG"
"subp\\t%0, %1, %2"
[(set_attr "type" "memtag")]
Confirmed. Yes this is wrong.
Which was added with r10-4827-gef01e6bbeb7e7e .
I might have a look tomorrow.
But I think all of the memtag instructions are incorrectly modeled too. So it
might take me a while to fix this.