[PATCH] RISC-V: Add .bfloat16 directive
Jan Beulich
jbeulich@suse.com
Mon Jan 20 10:35:28 GMT 2025
On 20.01.2025 10:31, Kito Cheng wrote:
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -473,7 +473,7 @@ const char EXP_CHARS[] = "eE";
>
> /* Chars that mean this number is a floating point constant.
> As in 0f12.456 or 0d1.2345e12. */
> -const char FLT_CHARS[] = "rRsSfFdDxXpPhH";
> +const char FLT_CHARS[] = "rRsSfFdDxXpPhHb";
Is there a particular reason you add b here but not also B?
> --- /dev/null
> +++ b/gas/testsuite/gas/riscv/bfloat16.d
> @@ -0,0 +1,10 @@
> +# source: bfloat16.s
> +# objdump: -sj .data
> +# as:
> +
> +.*:[ ]+file format .*
> +
> +Contents of section \.data:
> + 0000 4041fc3d 0000f742 0080f7c2 ff7f807f.*
> + 0010 80ff7f7f 7fff8000 80800100 01807f00.*
> + 0020 7f80803f 80bf0040 00c0c1ff 81ff.*
Are these expectations going to be okay for big-endian targets?
> --- /dev/null
> +++ b/gas/testsuite/gas/riscv/bfloat16.s
> @@ -0,0 +1,21 @@
> + .data
> + .bfloat16 12.0
> + .bfloat16 0.123
> + .bfloat16 +0.0
> + .bfloat16 123.4
> + .bfloat16 -0.0
> + .bfloat16 -123.4
> + .bfloat16 NaN
> + .bfloat16 Inf
> + .bfloat16 -Inf
> + .bfloat16 3.390e+38
> + .bfloat16 -3.390e+38
> + .bfloat16 1.175e-38
> + .bfloat16 -1.175e-38
> + .bfloat16 9.194e-41
> + .bfloat16 -9.194e-41
> + .bfloat16 1.167e-38
> + .bfloat16 -1.167e-38
> + .bfloat16 1.0, -1, 2.0, -2
> + .bfloat16 0b:ffc1 # qNaNh
> + .bfloat16 0b:ff81 # sNaNh
I'm struggling with the comments here: What are the 'h' about? And
aren't both values negative, which the comments then also ought to
reflect?
Jan
More information about the Binutils
mailing list