On Mon, Sep 06, 2021 at 10:05:00AM +0800, Hongtao Liu wrote: > @@ -1076,9 +1076,11 @@ systems where @code{__float128} is supported. > The @code{_Float32} > type is supported on all systems supporting IEEE binary32; the > @code{_Float64} and @code{_Float32x} types are supported on all systems > supporting IEEE binary64. The @code{_Float16} type is supported on AArch64 > -systems by default, and on ARM systems when the IEEE format for 16-bit > -floating-point types is selected with @option{-mfp16-format=ieee}. > -GCC does not currently support @code{_Float128x} on any systems. > +systems by default, and also on x86 systems with @code{target("sse2")} > +for both C and C++. > +On ARM systems when the IEEE format for 16-bit floating-point types is > +selected with @option{-mfp16-format=ieee}.
This isn't a sentence. I think it should be: The @code{_Float16} type is supported on AArch64 systems by default, on ARM systems when the IEEE format for 16-bit floating-point types is selected with @option{-mfp16-format=ieee} and, for both C and C++, on x86 systems with SSE2 enabled. > On the i386, x86_64, IA-64, and HP-UX targets, you can declare complex > types using the corresponding internal complex type, @code{XCmode} for > @@ -1108,6 +1110,10 @@ On ARM and AArch64 targets, GCC supports > half-precision (16-bit) floating > point via the @code{__fp16} type defined in the ARM C Language Extensions. > On ARM systems, you must enable this type explicitly with the > @option{-mfp16-format} command-line option in order to use it. > +On x86 targets with @code{target("sse2")} and above, GCC supports > +half-precision (16-bit) floating point via the @code{_Float16} type. > +For C++, x86 provides a builtin type named @code{_Float16} which contains > +same data format as C. Again, I'd write with SSE2 enabled, there are many ways to enable SSE2, -msse2, -mavx, -mavx512f, ... on the command line, or various target attributes. Jakub