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")))

Reply via email to