LGTM, thanks for fixing this :)

On Fri, May 17, 2024 at 4:05 PM Xiao Zeng <zengx...@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
>

Reply via email to