diff options
author | Matthew Malcomson <matthew.malcomson@arm.com> | 2019-11-07 17:20:08 +0000 |
---|---|---|
committer | Matthew Malcomson <matthew.malcomson@arm.com> | 2019-11-07 17:20:08 +0000 |
commit | 616ce08e1cc98c28c42bc2afed6b92df449c7b00 (patch) | |
tree | cbc0e78a74f954d5a40177b1887de248fa0d400f /include | |
parent | 8382113fdb028386a335e8dee9ac04ebc8cf04a1 (diff) | |
download | gdb-616ce08e1cc98c28c42bc2afed6b92df449c7b00.zip gdb-616ce08e1cc98c28c42bc2afed6b92df449c7b00.tar.gz gdb-616ce08e1cc98c28c42bc2afed6b92df449c7b00.tar.bz2 |
[Patch][binutils][arm] Armv8.6-A Matrix Multiply extension [9/10]
Hi,
This patch is part of a series that adds support for Armv8.6-A
(Matrix Multiply and BFloat16 extensions) to binutils.
This patch introduces the Matrix Multiply (Int8, F32, F64) extensions
to the arm backend.
The following Matrix Multiply instructions are added: vummla, vsmmla,
vusmmla, vusdot, vsudot[1].
[1]https://developer.arm.com/docs/ddi0597/latest/simd-and-floating-point-instructions-alphabetic-order
Committed on behalf of Mihail Ionescu.
gas/ChangeLog:
2019-11-07 Mihail Ionescu <mihail.ionescu@arm.com>
* config/tc-arm.c (arm_ext_i8mm): New feature set.
(do_vusdot): New.
(do_vsudot): New.
(do_vsmmla): New.
(do_vummla): New.
(insns): Add vsmmla, vummla, vusmmla, vusdot, vsudot mnemonics.
(armv86a_ext_table): Add i8mm extension.
(arm_extensions): Move bf16 extension to context sensitive table.
(armv82a_ext_table, armv84a_ext_table, armv85a_ext_table):
Move bf16 extension to context sensitive table.
(armv86a_ext_table): Add i8mm extension.
* doc/c-arm.texi: Document i8mm extension.
* testsuite/gas/arm/i8mm.s: New test.
* testsuite/gas/arm/i8mm.d: New test.
* testsuite/gas/arm/bfloat17-cmdline-bad-3.d: Update test.
include/ChangeLog:
2019-11-07 Mihail Ionescu <mihail.ionescu@arm.com>
* opcode/arm.h (ARM_EXT2_I8MM): New feature macro.
opcodes/ChangeLog:
2019-11-07 Mihail Ionescu <mihail.ionescu@arm.com>
* arm-dis.c (neon_opcodes): Add i8mm SIMD instructions.
Regression tested on arm-none-eabi.
Is this ok for trunk?
Regards,
Mihail
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/opcode/arm.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 2543e09..591ae4e 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,5 +1,9 @@ 2019-11-07 Mihail Ionescu <mihail.ionescu@arm.com> + * opcode/arm.h (ARM_EXT2_I8MM): New feature macro. + +2019-11-07 Mihail Ionescu <mihail.ionescu@arm.com> + * opcode/aarch64.h (AARCH64_FEATURE_I8MM): New. (AARCH64_FEATURE_F32MM): New. (AARCH64_FEATURE_F64MM): New. diff --git a/include/opcode/arm.h b/include/opcode/arm.h index 7aea4d6..982da5a 100644 --- a/include/opcode/arm.h +++ b/include/opcode/arm.h @@ -75,6 +75,7 @@ #define ARM_EXT2_V8_1M_MAIN 0x00008000 /* ARMv8.1-M Mainline. */ #define ARM_EXT2_V8_6A 0x00010000 /* ARM V8.6A. */ #define ARM_EXT2_BF16 0x00020000 /* ARMv8 bfloat16. */ +#define ARM_EXT2_I8MM 0x00040000 /* ARMv8.6A i8mm. */ /* Co-processor space extensions. */ #define ARM_CEXT_XSCALE 0x00000001 /* Allow MIA etc. */ |