[PATCH v2 0/5][Binutils] aarch64: Add support for sme2 and sve2 BFloat16 feature.
Srinath Parvathaneni
srinath.parvathaneni@arm.com
Fri Jul 19 12:14:33 GMT 2024
Changes v1 -> v2:
* Previously in version v1 this patch series was posted on top of master + FEAT_SME_F16F16 [3],
but this failed to apply by the Linaro CI due to dependency on FEAT_SME_F16F16. I have
rebased the patch series on later master (without FEAT_SME_F16F16) in version v2.
version v1:
In the current assembler, SVE2 Bfloat16 instructions are implemented with tick
FEAT_B16B16 and command line flag "+b16b16" and this feature was suspended
due to incomplete support.
In the new spec available here(SVE[1], SME[2]), FEAT_B16B16 is replaced with
FEAT_SVE_B16B16 and FEAT_SME_B16B16 and command line flag "+b16b16" is replaced
with "+sve-b16b16" and "+sme-b16b16"
More details about the Bflaot16 are provided below:
The Bfloat16 feature in sve2 and sme2 is divided into 3 combinations.
* SVE Z-targeting non-widening BFloat16 instructions under FEAT_SVE_B16B16
implemented with command line flag "+sve-b16b16+sve2".
* SME Z-targeting multi-vector non-widening BFloat16 instructions under
FEAT_SVE_B16B16 implemented with command line flag "+sve-b16b16+sme2".
* SME ZA-targeting non-widening BFloat16 instructions under FEAT_SME_B16B16
implemented with command line flag "+sme-b16b16".
This following 5 patch series add support for above combinations and instructions:
Srinath Parvathaneni (5):
aarch64: Add support for FEAT_SVE_B16B16 feature.
aarch64: Add support for FEAT_SVE_B16B16 min and max instructions.
aarch64: Add support for FEAT_SVE_B16B16 min and max instructions (autogenerated files).
aarch64: Add support for FEAT_SME_B16B16 feature.
aarch64: Add support for FEAT_SME_B16B16 feature (autogenerated files).
SVE[1]: https://developer.arm.com/documentation/ddi0602/2024-06/SVE-Instructions?lang=en
SME[2]: https://developer.arm.com/documentation/ddi0602/2024-06/SME-Instructions?lang=en
FEAT_SME_F16F16: https://inbox.sourceware.org/binutils/20240712163537.1768993-1-srinath.parvathaneni@arm.com/
Regression testing for aarch64-none-elf target and found no regressions.
Ok for binutils-master?
Regards,
Srinath.
gas/NEWS | 2 +
gas/config/tc-aarch64.c | 9 +-
gas/doc/c-aarch64.texi | 8 +-
.../gas/aarch64/bfloat16-1-invalid.d | 2 +-
gas/testsuite/gas/aarch64/bfloat16-1.d | 3 +-
.../gas/aarch64/bfloat16-2-invalid.d | 3 +-
.../gas/aarch64/bfloat16-2-invalid.l | 20 +-
.../gas/aarch64/bfloat16-sme2-1-bad.d | 4 +
.../gas/aarch64/bfloat16-sme2-1-bad.l | 193 ++++
.../gas/aarch64/bfloat16-sme2-1-bad.s | 173 ++++
gas/testsuite/gas/aarch64/bfloat16-sme2-1.d | 122 +++
gas/testsuite/gas/aarch64/bfloat16-sme2-1.s | 139 +++
.../gas/aarch64/bfloat16-sme2-2-bad.d | 4 +
.../gas/aarch64/bfloat16-sme2-2-bad.l | 159 ++++
.../gas/aarch64/bfloat16-sme2-2-bad.s | 136 +++
gas/testsuite/gas/aarch64/bfloat16-sme2-2.d | 122 +++
gas/testsuite/gas/aarch64/bfloat16-sme2-2.s | 138 +++
include/opcode/aarch64.h | 10 +-
opcodes/aarch64-dis-2.c | 886 +++++++++++-------
opcodes/aarch64-tbl.h | 107 ++-
20 files changed, 1868 insertions(+), 372 deletions(-)
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-1-bad.d
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-1-bad.l
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-1-bad.s
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-1.d
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-1.s
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-2-bad.d
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-2-bad.l
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-2-bad.s
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-2.d
create mode 100644 gas/testsuite/gas/aarch64/bfloat16-sme2-2.s
--
2.25.1
More information about the Binutils
mailing list