https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122223
Christophe Lyon <clyon at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2025-10-09
Ever confirmed|0 |1
Status|UNCONFIRMED |ASSIGNED
--- Comment #1 from Christophe Lyon <clyon at gcc dot gnu.org> ---
The reason is that the operands are swapped in the vbicq_f pattern in mve.md
(define_insn "@mve_vbicq_f<mode>"
[
(set (match_operand:MVE_0 0 "s_register_operand" "=w")
(and:MVE_0 (not:MVE_0 (match_operand:MVE_0 1 "s_register_operand" "w"))
(match_operand:MVE_0 2 "s_register_operand"
"w")))
[.....]
Operands 1 and 2 should be swapped:
(set (match_operand:MVE_0 0 "s_register_operand" "=w")
(and:MVE_0 (not:MVE_0 (match_operand:MVE_0 2 "s_register_operand" "w"))
(match_operand:MVE_0 1 "s_register_operand"
"w")))