[Patch][binutils][arm] .bfloat16 directive for Arm [6/X]
authorMatthew Malcomson <matthew.malcomson@arm.com>
Thu, 7 Nov 2019 17:03:54 +0000 (17:03 +0000)
committerMatthew Malcomson <matthew.malcomson@arm.com>
Thu, 7 Nov 2019 17:03:54 +0000 (17:03 +0000)
commit27cce8667f5c897751bb10d7c859b02b0bb26291
tree6446644127a180b49c1171e4188a3be68d5e14f7
parentc96f148b7bcaad8b6f1191faafbcd6c8cfdee7a3
[Patch][binutils][arm] .bfloat16 directive for Arm [6/X]

Hi,

This patch is part of a series that adds support for Armv8.6-A
(Matrix Multiply and BFloat16 extensions) to binutils.

This patch implements the '.bfloat16' directive for the Arm backend.

The syntax for the directive is:
  .bfloat16 <0-n numbers>
e.g.
  .bfloat16 12.0
  .bfloat16 0.123, 1.0, NaN, 5

This is implemented by utilizing the ieee_atof_detail function (included
in the previous patch) in order to encode the slightly different
bfloat16 format.

Added testcases to verify the correct encoding for various bfloat16
values (NaN, Infinity (+ & -), normals, subnormals etc...).

Cross compiled and tested on arm-none-eabi and arm-none-linux-gnueabihf
with no issues.

Committed on behalf of Mihail Ionescu.

gas/ChangeLog:

2019-10-21  Mihail Ionescu  <mihail.ionescu@arm.com>
2019-10-21  Barnaby Wilks  <barnaby.wilks@arm.com>

* config/tc-arm.c (md_atof): Add encoding for bfloat16
* testsuite/gas/arm/bfloat16-directive-le.d: New test.
* testsuite/gas/arm/bfloat16-directive-be.d: New test.
* testsuite/gas/arm/bfloat16-directive.s: New test.

Is it ok for trunk?

Regards,
Mihail
gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/gas/arm/bfloat16-directive-be.d [new file with mode: 0644]
gas/testsuite/gas/arm/bfloat16-directive-le.d [new file with mode: 0644]
gas/testsuite/gas/arm/bfloat16-directive.s [new file with mode: 0644]