diff mbox series

RISC-V: Modify _Bfloat16 to __bf16

Message ID 20240517081013.12611-1-zengxiao@eswincomputing.com
State New
Headers show
Series RISC-V: Modify _Bfloat16 to __bf16 | expand

Commit Message

Xiao Zeng May 17, 2024, 8:10 a.m. UTC
According to the description in:
<https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/367>,
the type representation symbol of BF16 has been corrected.

Kito Cheng pointed out relevant information in the email:
<https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651850.html>

gcc/ChangeLog:

	* config/riscv/riscv-builtins.cc (riscv_init_builtin_types):
	Modify _Bfloat16 to __bf16.
	* config/riscv/riscv.cc (riscv_mangle_type): Ditto.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/_Bfloat16-nanboxing.c: Move to...
	* gcc.target/riscv/__bf16-nanboxing.c: ...here.
	* gcc.target/riscv/bf16_arithmetic.c: Modify _Bfloat16 to __bf16.
	* gcc.target/riscv/bf16_call.c: Ditto.
	* gcc.target/riscv/bf16_comparison.c: Ditto.
	* gcc.target/riscv/bf16_float_libcall_convert.c: Ditto.
	* gcc.target/riscv/bf16_integer_libcall_convert.c: Ditto.
---
 gcc/config/riscv/riscv-builtins.cc                   |  6 +++---
 gcc/config/riscv/riscv.cc                            |  2 +-
 .../{_Bfloat16-nanboxing.c => __bf16-nanboxing.c}    | 12 ++++++------
 gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c     |  6 +++---
 gcc/testsuite/gcc.target/riscv/bf16_call.c           |  4 ++--
 gcc/testsuite/gcc.target/riscv/bf16_comparison.c     |  6 +++---
 .../gcc.target/riscv/bf16_float_libcall_convert.c    |  2 +-
 .../gcc.target/riscv/bf16_integer_libcall_convert.c  |  2 +-
 8 files changed, 20 insertions(+), 20 deletions(-)
 rename gcc/testsuite/gcc.target/riscv/{_Bfloat16-nanboxing.c => __bf16-nanboxing.c} (83%)

Comments

Kito Cheng May 17, 2024, 8:19 a.m. UTC | #1
LGTM, thanks for fixing this :)

On Fri, May 17, 2024 at 4:05 PM Xiao Zeng <zengxiao@eswincomputing.com> wrote:
>
> According to the description in:
> <https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/367>,
> the type representation symbol of BF16 has been corrected.
>
> Kito Cheng pointed out relevant information in the email:
> <https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651850.html>
>
> gcc/ChangeLog:
>
>         * config/riscv/riscv-builtins.cc (riscv_init_builtin_types):
>         Modify _Bfloat16 to __bf16.
>         * config/riscv/riscv.cc (riscv_mangle_type): Ditto.
>
> gcc/testsuite/ChangeLog:
>
>         * gcc.target/riscv/_Bfloat16-nanboxing.c: Move to...
>         * gcc.target/riscv/__bf16-nanboxing.c: ...here.
>         * gcc.target/riscv/bf16_arithmetic.c: Modify _Bfloat16 to __bf16.
>         * gcc.target/riscv/bf16_call.c: Ditto.
>         * gcc.target/riscv/bf16_comparison.c: Ditto.
>         * gcc.target/riscv/bf16_float_libcall_convert.c: Ditto.
>         * gcc.target/riscv/bf16_integer_libcall_convert.c: Ditto.
> ---
>  gcc/config/riscv/riscv-builtins.cc                   |  6 +++---
>  gcc/config/riscv/riscv.cc                            |  2 +-
>  .../{_Bfloat16-nanboxing.c => __bf16-nanboxing.c}    | 12 ++++++------
>  gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c     |  6 +++---
>  gcc/testsuite/gcc.target/riscv/bf16_call.c           |  4 ++--
>  gcc/testsuite/gcc.target/riscv/bf16_comparison.c     |  6 +++---
>  .../gcc.target/riscv/bf16_float_libcall_convert.c    |  2 +-
>  .../gcc.target/riscv/bf16_integer_libcall_convert.c  |  2 +-
>  8 files changed, 20 insertions(+), 20 deletions(-)
>  rename gcc/testsuite/gcc.target/riscv/{_Bfloat16-nanboxing.c => __bf16-nanboxing.c} (83%)
>
> diff --git a/gcc/config/riscv/riscv-builtins.cc b/gcc/config/riscv/riscv-builtins.cc
> index 4c08834288a..dc54e1a59b5 100644
> --- a/gcc/config/riscv/riscv-builtins.cc
> +++ b/gcc/config/riscv/riscv-builtins.cc
> @@ -275,7 +275,7 @@ riscv_init_builtin_types (void)
>      lang_hooks.types.register_builtin_type (riscv_float16_type_node,
>                                             "_Float16");
>
> -  /* Provide the _Bfloat16 type and bfloat16_type_node if needed.  */
> +  /* Provide the __bf16 type and bfloat16_type_node if needed.  */
>    if (!bfloat16_type_node)
>      {
>        riscv_bfloat16_type_node = make_node (REAL_TYPE);
> @@ -286,9 +286,9 @@ riscv_init_builtin_types (void)
>    else
>      riscv_bfloat16_type_node = bfloat16_type_node;
>
> -  if (!maybe_get_identifier ("_Bfloat16"))
> +  if (!maybe_get_identifier ("__bf16"))
>      lang_hooks.types.register_builtin_type (riscv_bfloat16_type_node,
> -                                           "_Bfloat16");
> +                                           "__bf16");
>  }
>
>  /* Implement TARGET_INIT_BUILTINS.  */
> diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
> index 4067505270e..cf15a12de3a 100644
> --- a/gcc/config/riscv/riscv.cc
> +++ b/gcc/config/riscv/riscv.cc
> @@ -10262,7 +10262,7 @@ riscv_asan_shadow_offset (void)
>  static const char *
>  riscv_mangle_type (const_tree type)
>  {
> -  /* Half-precision float, _Float16 is "DF16_" and _Bfloat16 is "DF16b".  */
> +  /* Half-precision float, _Float16 is "DF16_" and __bf16 is "DF16b".  */
>    if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16)
>      {
>        if (TYPE_MODE (type) == HFmode)
> diff --git a/gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c b/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
> similarity index 83%
> rename from gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c
> rename to gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
> index 11a73d22234..a9a586c98b9 100644
> --- a/gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c
> +++ b/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
> @@ -1,14 +1,14 @@
>  /* { dg-do compile } */
>  /* { dg-options "-march=rv64ifd -mabi=lp64d -mcmodel=medlow -O" } */
>
> -_Bfloat16 gvar = 9.87654;
> +__bf16 gvar = 9.87654;
>  union U
>  {
>    unsigned short i16;
> -  _Bfloat16 f16;
> +  __bf16 f16;
>  };
>
> -_Bfloat16
> +__bf16
>  test1 (unsigned short input)
>  {
>    union U tmp;
> @@ -16,19 +16,19 @@ test1 (unsigned short input)
>    return tmp.f16;
>  }
>
> -_Bfloat16
> +__bf16
>  test2 ()
>  {
>    return 1.234f;
>  }
>
> -_Bfloat16
> +__bf16
>  test3 ()
>  {
>    return gvar;
>  }
>
> -_Bfloat16
> +__bf16
>  test ()
>  {
>    return 0.0f;
> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c b/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
> index 9e485051260..190cc1d574a 100644
> --- a/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
> +++ b/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
> @@ -5,9 +5,9 @@
>  /* 1) bf -> sf          (call      __extendbfsf2)  */
>  /* 2) sf1 [+|-|*|/] sf2 (call      __[add|sub|mul|div]sf3)  */
>  /* 3) sf -> bf          (call      __truncsfbf2)  */
> -extern _Bfloat16 bf;
> -extern _Bfloat16 bf1;
> -extern _Bfloat16 bf2;
> +extern __bf16 bf;
> +extern __bf16 bf1;
> +extern __bf16 bf2;
>
>  void bf_add_bf () { bf = bf1 + bf2; }
>
> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_call.c b/gcc/testsuite/gcc.target/riscv/bf16_call.c
> index 29f67719999..6ace1494370 100644
> --- a/gcc/testsuite/gcc.target/riscv/bf16_call.c
> +++ b/gcc/testsuite/gcc.target/riscv/bf16_call.c
> @@ -4,9 +4,9 @@
>
>  /* 1) bf -> sf (call      __extendbfsf2)  */
>  /* 2) sf -> bf (call      __truncsfbf2)  */
> -__attribute__ ((noinline)) _Bfloat16 add (_Bfloat16 a, _Bfloat16 b) { return a + b; }
> +__attribute__ ((noinline)) __bf16 add (__bf16 a, __bf16 b) { return a + b; }
>
> -_Bfloat16 test(_Bfloat16 a, _Bfloat16 b) { return add (a, b); }
> +__bf16 test(__bf16 a, __bf16 b) { return add (a, b); }
>
>  /* { dg-final { scan-assembler-times "call\t__extendbfsf2" 2 } } */
>  /* { dg-final { scan-assembler-times "call\t__truncsfbf2" 1 } } */
> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_comparison.c b/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
> index 69db803f403..2c13b8a0c9a 100644
> --- a/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
> +++ b/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
> @@ -4,9 +4,9 @@
>
>  /* 1) bf -> sf               (call     __extendbfsf2)  */
>  /* 2) sf1 [<|<=|>|>=|==] sf2 (call     __[lt|le|gt|ge|eq]sf2)  */
> -extern _Bfloat16 bf;
> -extern _Bfloat16 bf1;
> -extern _Bfloat16 bf2;
> +extern __bf16 bf;
> +extern __bf16 bf1;
> +extern __bf16 bf2;
>
>  void bf_lt_bf () { bf = (bf1 < bf2) ? bf1 : bf2; }
>
> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
> index ba6c6460bc2..423a071d1a5 100644
> --- a/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
> +++ b/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
> @@ -14,7 +14,7 @@
>   *    bf          -> tf == bf -> sf -> tf (call   __extendbfsf2 && __extendsftf2)
>  */
>
> -extern   _Bfloat16 bf;
> +extern   __bf16    bf;
>  extern   _Float16  hf;
>  extern      float  sf;
>  extern      double df;
> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
> index ad714253a4a..2c37302e294 100644
> --- a/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
> +++ b/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
> @@ -16,7 +16,7 @@
>   *    bf          -> udi/uti     (call   __fixunssf[d|t]i)
>  */
>
> -extern _Bfloat16 bf;
> +extern __bf16 bf;
>
>  extern   signed char       qi;
>  extern unsigned char      uqi;
> --
> 2.17.1
>
Jeff Law May 18, 2024, 12:36 a.m. UTC | #2
On 5/17/24 2:19 AM, Kito Cheng wrote:
> LGTM, thanks for fixing this :)
And just to be clear for Xiao, you can go ahead and commit this patch to 
the trunk.  An ACK from Kito, Juzhe, Palmer, Robin or myself is all you 
need for a change that is isolated to RISC-V code.

jeff
Xiao Zeng May 18, 2024, 2:59 a.m. UTC | #3
2024-05-17 16:19  Kito Cheng <kito.cheng@gmail.com> wrote:
>
>LGTM, thanks for fixing this :) 
1 Passed CI testing:
<https://patchwork.sourceware.org/project/gcc/patch/20240517081013.12611-1-zengxiao@eswincomputing.com/>

2 pushed to trunk.
>
>On Fri, May 17, 2024 at 4:05 PM Xiao Zeng <zengxiao@eswincomputing.com> wrote:
>>
>> According to the description in:
>> <https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/367>,
>> the type representation symbol of BF16 has been corrected.
>>
>> Kito Cheng pointed out relevant information in the email:
>> <https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651850.html>
>>
>> gcc/ChangeLog:
>>
>>         * config/riscv/riscv-builtins.cc (riscv_init_builtin_types):
>>         Modify _Bfloat16 to __bf16.
>>         * config/riscv/riscv.cc (riscv_mangle_type): Ditto.
>>
>> gcc/testsuite/ChangeLog:
>>
>>         * gcc.target/riscv/_Bfloat16-nanboxing.c: Move to...
>>         * gcc.target/riscv/__bf16-nanboxing.c: ...here.
>>         * gcc.target/riscv/bf16_arithmetic.c: Modify _Bfloat16 to __bf16.
>>         * gcc.target/riscv/bf16_call.c: Ditto.
>>         * gcc.target/riscv/bf16_comparison.c: Ditto.
>>         * gcc.target/riscv/bf16_float_libcall_convert.c: Ditto.
>>         * gcc.target/riscv/bf16_integer_libcall_convert.c: Ditto.
>> ---
>>  gcc/config/riscv/riscv-builtins.cc                   |  6 +++---
>>  gcc/config/riscv/riscv.cc                            |  2 +-
>>  .../{_Bfloat16-nanboxing.c => __bf16-nanboxing.c}    | 12 ++++++------
>>  gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c     |  6 +++---
>>  gcc/testsuite/gcc.target/riscv/bf16_call.c           |  4 ++--
>>  gcc/testsuite/gcc.target/riscv/bf16_comparison.c     |  6 +++---
>>  .../gcc.target/riscv/bf16_float_libcall_convert.c    |  2 +-
>>  .../gcc.target/riscv/bf16_integer_libcall_convert.c  |  2 +-
>>  8 files changed, 20 insertions(+), 20 deletions(-)
>>  rename gcc/testsuite/gcc.target/riscv/{_Bfloat16-nanboxing.c => __bf16-nanboxing.c} (83%)
>>
>> diff --git a/gcc/config/riscv/riscv-builtins.cc b/gcc/config/riscv/riscv-builtins.cc
>> index 4c08834288a..dc54e1a59b5 100644
>> --- a/gcc/config/riscv/riscv-builtins.cc
>> +++ b/gcc/config/riscv/riscv-builtins.cc
>> @@ -275,7 +275,7 @@ riscv_init_builtin_types (void)
>>      lang_hooks.types.register_builtin_type (riscv_float16_type_node,
>>                                             "_Float16");
>>
>> -  /* Provide the _Bfloat16 type and bfloat16_type_node if needed.  */
>> +  /* Provide the __bf16 type and bfloat16_type_node if needed.  */
>>    if (!bfloat16_type_node)
>>      {
>>        riscv_bfloat16_type_node = make_node (REAL_TYPE);
>> @@ -286,9 +286,9 @@ riscv_init_builtin_types (void)
>>    else
>>      riscv_bfloat16_type_node = bfloat16_type_node;
>>
>> -  if (!maybe_get_identifier ("_Bfloat16"))
>> +  if (!maybe_get_identifier ("__bf16"))
>>      lang_hooks.types.register_builtin_type (riscv_bfloat16_type_node,
>> -                                           "_Bfloat16");
>> +                                           "__bf16");
>>  }
>>
>>  /* Implement TARGET_INIT_BUILTINS.  */
>> diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
>> index 4067505270e..cf15a12de3a 100644
>> --- a/gcc/config/riscv/riscv.cc
>> +++ b/gcc/config/riscv/riscv.cc
>> @@ -10262,7 +10262,7 @@ riscv_asan_shadow_offset (void)
>>  static const char *
>>  riscv_mangle_type (const_tree type)
>>  {
>> -  /* Half-precision float, _Float16 is "DF16_" and _Bfloat16 is "DF16b".  */
>> +  /* Half-precision float, _Float16 is "DF16_" and __bf16 is "DF16b".  */
>>    if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16)
>>      {
>>        if (TYPE_MODE (type) == HFmode)
>> diff --git a/gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c b/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
>> similarity index 83%
>> rename from gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c
>> rename to gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
>> index 11a73d22234..a9a586c98b9 100644
>> --- a/gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c
>> +++ b/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
>> @@ -1,14 +1,14 @@
>>  /* { dg-do compile } */
>>  /* { dg-options "-march=rv64ifd -mabi=lp64d -mcmodel=medlow -O" } */
>>
>> -_Bfloat16 gvar = 9.87654;
>> +__bf16 gvar = 9.87654;
>>  union U
>>  {
>>    unsigned short i16;
>> -  _Bfloat16 f16;
>> +  __bf16 f16;
>>  };
>>
>> -_Bfloat16
>> +__bf16
>>  test1 (unsigned short input)
>>  {
>>    union U tmp;
>> @@ -16,19 +16,19 @@ test1 (unsigned short input)
>>    return tmp.f16;
>>  }
>>
>> -_Bfloat16
>> +__bf16
>>  test2 ()
>>  {
>>    return 1.234f;
>>  }
>>
>> -_Bfloat16
>> +__bf16
>>  test3 ()
>>  {
>>    return gvar;
>>  }
>>
>> -_Bfloat16
>> +__bf16
>>  test ()
>>  {
>>    return 0.0f;
>> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c b/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
>> index 9e485051260..190cc1d574a 100644
>> --- a/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
>> +++ b/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
>> @@ -5,9 +5,9 @@
>>  /* 1) bf -> sf          (call      __extendbfsf2)  */
>>  /* 2) sf1 [+|-|*|/] sf2 (call      __[add|sub|mul|div]sf3)  */
>>  /* 3) sf -> bf          (call      __truncsfbf2)  */
>> -extern _Bfloat16 bf;
>> -extern _Bfloat16 bf1;
>> -extern _Bfloat16 bf2;
>> +extern __bf16 bf;
>> +extern __bf16 bf1;
>> +extern __bf16 bf2;
>>
>>  void bf_add_bf () { bf = bf1 + bf2; }
>>
>> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_call.c b/gcc/testsuite/gcc.target/riscv/bf16_call.c
>> index 29f67719999..6ace1494370 100644
>> --- a/gcc/testsuite/gcc.target/riscv/bf16_call.c
>> +++ b/gcc/testsuite/gcc.target/riscv/bf16_call.c
>> @@ -4,9 +4,9 @@
>>
>>  /* 1) bf -> sf (call      __extendbfsf2)  */
>>  /* 2) sf -> bf (call      __truncsfbf2)  */
>> -__attribute__ ((noinline)) _Bfloat16 add (_Bfloat16 a, _Bfloat16 b) { return a + b; }
>> +__attribute__ ((noinline)) __bf16 add (__bf16 a, __bf16 b) { return a + b; }
>>
>> -_Bfloat16 test(_Bfloat16 a, _Bfloat16 b) { return add (a, b); }
>> +__bf16 test(__bf16 a, __bf16 b) { return add (a, b); }
>>
>>  /* { dg-final { scan-assembler-times "call\t__extendbfsf2" 2 } } */
>>  /* { dg-final { scan-assembler-times "call\t__truncsfbf2" 1 } } */
>> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_comparison.c b/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
>> index 69db803f403..2c13b8a0c9a 100644
>> --- a/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
>> +++ b/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
>> @@ -4,9 +4,9 @@
>>
>>  /* 1) bf -> sf               (call     __extendbfsf2)  */
>>  /* 2) sf1 [<|<=|>|>=|==] sf2 (call     __[lt|le|gt|ge|eq]sf2)  */
>> -extern _Bfloat16 bf;
>> -extern _Bfloat16 bf1;
>> -extern _Bfloat16 bf2;
>> +extern __bf16 bf;
>> +extern __bf16 bf1;
>> +extern __bf16 bf2;
>>
>>  void bf_lt_bf () { bf = (bf1 < bf2) ? bf1 : bf2; }
>>
>> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
>> index ba6c6460bc2..423a071d1a5 100644
>> --- a/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
>> +++ b/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
>> @@ -14,7 +14,7 @@
>>   *    bf          -> tf == bf -> sf -> tf (call   __extendbfsf2 && __extendsftf2)
>>  */
>>
>> -extern   _Bfloat16 bf;
>> +extern   __bf16    bf;
>>  extern   _Float16  hf;
>>  extern      float  sf;
>>  extern      double df;
>> diff --git a/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
>> index ad714253a4a..2c37302e294 100644
>> --- a/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
>> +++ b/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
>> @@ -16,7 +16,7 @@
>>   *    bf          -> udi/uti     (call   __fixunssf[d|t]i)
>>  */
>>
>> -extern _Bfloat16 bf;
>> +extern __bf16 bf;
>>
>>  extern   signed char       qi;
>>  extern unsigned char      uqi;
>> --
>> 2.17.1
>>
Thanks
Xiao Zeng
Xiao Zeng May 18, 2024, 3:04 a.m. UTC | #4
2024-05-18 08:36  Jeff Law <jeffreyalaw@gmail.com> wrote:
>
>
>
>On 5/17/24 2:19 AM, Kito Cheng wrote:
>> LGTM, thanks for fixing this :)
>And just to be clear for Xiao, you can go ahead and commit this patch to
>the trunk. 
> An ACK from Kito, Juzhe, Palmer, Robin or myself
good.

>is all you need for a change that is isolated to RISC-V code.
>
>jeff
Thanks
Xiao Zeng
diff mbox series

Patch

diff --git a/gcc/config/riscv/riscv-builtins.cc b/gcc/config/riscv/riscv-builtins.cc
index 4c08834288a..dc54e1a59b5 100644
--- a/gcc/config/riscv/riscv-builtins.cc
+++ b/gcc/config/riscv/riscv-builtins.cc
@@ -275,7 +275,7 @@  riscv_init_builtin_types (void)
     lang_hooks.types.register_builtin_type (riscv_float16_type_node,
 					    "_Float16");
 
-  /* Provide the _Bfloat16 type and bfloat16_type_node if needed.  */
+  /* Provide the __bf16 type and bfloat16_type_node if needed.  */
   if (!bfloat16_type_node)
     {
       riscv_bfloat16_type_node = make_node (REAL_TYPE);
@@ -286,9 +286,9 @@  riscv_init_builtin_types (void)
   else
     riscv_bfloat16_type_node = bfloat16_type_node;
 
-  if (!maybe_get_identifier ("_Bfloat16"))
+  if (!maybe_get_identifier ("__bf16"))
     lang_hooks.types.register_builtin_type (riscv_bfloat16_type_node,
-					    "_Bfloat16");
+					    "__bf16");
 }
 
 /* Implement TARGET_INIT_BUILTINS.  */
diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
index 4067505270e..cf15a12de3a 100644
--- a/gcc/config/riscv/riscv.cc
+++ b/gcc/config/riscv/riscv.cc
@@ -10262,7 +10262,7 @@  riscv_asan_shadow_offset (void)
 static const char *
 riscv_mangle_type (const_tree type)
 {
-  /* Half-precision float, _Float16 is "DF16_" and _Bfloat16 is "DF16b".  */
+  /* Half-precision float, _Float16 is "DF16_" and __bf16 is "DF16b".  */
   if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16)
     {
       if (TYPE_MODE (type) == HFmode)
diff --git a/gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c b/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
similarity index 83%
rename from gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c
rename to gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
index 11a73d22234..a9a586c98b9 100644
--- a/gcc/testsuite/gcc.target/riscv/_Bfloat16-nanboxing.c
+++ b/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c
@@ -1,14 +1,14 @@ 
 /* { dg-do compile } */
 /* { dg-options "-march=rv64ifd -mabi=lp64d -mcmodel=medlow -O" } */
 
-_Bfloat16 gvar = 9.87654;
+__bf16 gvar = 9.87654;
 union U
 {
   unsigned short i16;
-  _Bfloat16 f16;
+  __bf16 f16;
 };
 
-_Bfloat16
+__bf16
 test1 (unsigned short input)
 {
   union U tmp;
@@ -16,19 +16,19 @@  test1 (unsigned short input)
   return tmp.f16;
 }
 
-_Bfloat16
+__bf16
 test2 ()
 {
   return 1.234f;
 }
 
-_Bfloat16
+__bf16
 test3 ()
 {
   return gvar;
 }
 
-_Bfloat16
+__bf16
 test ()
 {
   return 0.0f;
diff --git a/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c b/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
index 9e485051260..190cc1d574a 100644
--- a/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
+++ b/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c
@@ -5,9 +5,9 @@ 
 /* 1) bf -> sf          (call      __extendbfsf2)  */
 /* 2) sf1 [+|-|*|/] sf2 (call      __[add|sub|mul|div]sf3)  */
 /* 3) sf -> bf          (call      __truncsfbf2)  */
-extern _Bfloat16 bf;
-extern _Bfloat16 bf1;
-extern _Bfloat16 bf2;
+extern __bf16 bf;
+extern __bf16 bf1;
+extern __bf16 bf2;
 
 void bf_add_bf () { bf = bf1 + bf2; }
 
diff --git a/gcc/testsuite/gcc.target/riscv/bf16_call.c b/gcc/testsuite/gcc.target/riscv/bf16_call.c
index 29f67719999..6ace1494370 100644
--- a/gcc/testsuite/gcc.target/riscv/bf16_call.c
+++ b/gcc/testsuite/gcc.target/riscv/bf16_call.c
@@ -4,9 +4,9 @@ 
 
 /* 1) bf -> sf (call      __extendbfsf2)  */
 /* 2) sf -> bf (call      __truncsfbf2)  */
-__attribute__ ((noinline)) _Bfloat16 add (_Bfloat16 a, _Bfloat16 b) { return a + b; }
+__attribute__ ((noinline)) __bf16 add (__bf16 a, __bf16 b) { return a + b; }
 
-_Bfloat16 test(_Bfloat16 a, _Bfloat16 b) { return add (a, b); }
+__bf16 test(__bf16 a, __bf16 b) { return add (a, b); }
 
 /* { dg-final { scan-assembler-times "call\t__extendbfsf2" 2 } } */
 /* { dg-final { scan-assembler-times "call\t__truncsfbf2" 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/bf16_comparison.c b/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
index 69db803f403..2c13b8a0c9a 100644
--- a/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
+++ b/gcc/testsuite/gcc.target/riscv/bf16_comparison.c
@@ -4,9 +4,9 @@ 
 
 /* 1) bf -> sf               (call	__extendbfsf2)  */
 /* 2) sf1 [<|<=|>|>=|==] sf2 (call	__[lt|le|gt|ge|eq]sf2)  */
-extern _Bfloat16 bf;
-extern _Bfloat16 bf1;
-extern _Bfloat16 bf2;
+extern __bf16 bf;
+extern __bf16 bf1;
+extern __bf16 bf2;
 
 void bf_lt_bf () { bf = (bf1 < bf2) ? bf1 : bf2; }
 
diff --git a/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
index ba6c6460bc2..423a071d1a5 100644
--- a/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
+++ b/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c
@@ -14,7 +14,7 @@ 
  *    bf          -> tf == bf -> sf -> tf (call   __extendbfsf2 && __extendsftf2)
 */
 
-extern   _Bfloat16 bf;
+extern   __bf16    bf;
 extern   _Float16  hf;
 extern      float  sf;
 extern      double df;
diff --git a/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
index ad714253a4a..2c37302e294 100644
--- a/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
+++ b/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c
@@ -16,7 +16,7 @@ 
  *    bf          -> udi/uti     (call   __fixunssf[d|t]i)
 */
 
-extern _Bfloat16 bf;
+extern __bf16 bf;
 
 extern   signed char       qi;
 extern unsigned char      uqi;