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 >