gas, arm: PR25660L Fix vadd/vsub with lt and le condition codes for MVE
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Fri, 13 Mar 2020 13:31:56 +0000 (13:31 +0000)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Fri, 13 Mar 2020 13:35:04 +0000 (13:35 +0000)
commit66d1f7cc129495ea6c820bcd16242ec5ff39b172
treee075b2dfed16bae37c5b6e4e1ff9e71a82808b13
parent015ec493d8603095d212df443e7b75017b572455
gas, arm: PR25660L Fix vadd/vsub with lt and le condition codes for MVE

As explained in the PR, the addition of MVE makes the parser strip 't' and 'e'
as suffixes when MVE is enabled.  This leads to vadd and vsub in it blocks with
lt and le conditions to be initially parsed as vaddl and vsubl.  This means the
operand parsing for these must allow for the same operands as the scalar vadd
and vsub.  I had forgotten to do this and this patch remedies that oversight.

gas/ChangeLog:
2020-03-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>

PR 25660
*  config/tc-arm.c (operand_parse_code): Add OP_RNSDMQR and OP_oRNSDMQ.
(parse_operands): Handle new operand codes.
(do_neon_dyadic_long): Make shape check accept the scalar variants.
(asm_opcode_insns): Fix operand codes for vaddl and vsubl.
* testsuite/gas/arm/mve-vaddsub-it.s: New test.
* testsuite/gas/arm/mve-vaddsub-it.d: New test.
* testsuite/gas/arm/mve-vaddsub-it-bad.s: New test.
* testsuite/gas/arm/mve-vaddsub-it-bad.l: New test.
* testsuite/gas/arm/mve-vaddsub-it-bad.d: New test.
* testsuite/gas/arm/nomve-vaddsub-it.d: New test.
gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/gas/arm/mve-vaddsub-it-bad.d [new file with mode: 0644]
gas/testsuite/gas/arm/mve-vaddsub-it-bad.l [new file with mode: 0644]
gas/testsuite/gas/arm/mve-vaddsub-it-bad.s [new file with mode: 0644]
gas/testsuite/gas/arm/mve-vaddsub-it.d [new file with mode: 0644]
gas/testsuite/gas/arm/mve-vaddsub-it.s [new file with mode: 0644]
gas/testsuite/gas/arm/nomve-vaddsub-it.d [new file with mode: 0644]