From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2078) id 908143858C60; Wed, 8 Sep 2021 01:11:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 908143858C60 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: hongtao Liu To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-3404] Adjust the wording for x86 _Float16 type. X-Act-Checkin: gcc X-Git-Author: liuhongt X-Git-Refname: refs/heads/master X-Git-Oldrev: b2748138c05c6fba1a34f54980b6382bc6332f56 X-Git-Newrev: a549a9a39a9bd92107667b99a67acbd7ef551323 Message-Id: <20210908011114.908143858C60@sourceware.org> Date: Wed, 8 Sep 2021 01:11:14 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Sep 2021 01:11:14 -0000 https://gcc.gnu.org/g:a549a9a39a9bd92107667b99a67acbd7ef551323 commit r12-3404-ga549a9a39a9bd92107667b99a67acbd7ef551323 Author: liuhongt Date: Mon Sep 6 09:54:42 2021 +0800 Adjust the wording for x86 _Float16 type. gcc/ChangeLog: * doc/extend.texi: (@node Floating Types): Adjust the wording. (@node Half-Precision): Ditto. Diff: --- gcc/doc/extend.texi | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 31319f7dd08..777dc0f529f 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -1076,9 +1076,10 @@ 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, 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. GCC does not currently +support @code{_Float128x} on any systems. 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 +1109,9 @@ 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 SSE2 enabled, 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. ARM targets support two incompatible representations for half-precision floating-point values. You must choose one of the representations and @@ -1151,17 +1155,12 @@ calls. It is recommended that portable code use the @code{_Float16} type defined by ISO/IEC TS 18661-3:2015. @xref{Floating Types}. -On x86 targets with @code{target("sse2")} and above, GCC supports half-precision -(16-bit) floating point via the @code{_Float16} type which is defined by -18661-3:2015. For C++, x86 provide a builtin type named @code{_Float16} -which contains same data format as C. - -Without @option{-mavx512fp16}, @code{_Float16} type is storage only, all -operations will be emulated by software emulation and the @code{float} -instructions. The default behavior for @code{FLT_EVAL_METHOD} is to keep -the intermediate result of the operation as 32-bit precision. This may lead -to inconsistent behavior between software emulation and AVX512-FP16 -instructions. +On x86 targets with SSE2 enabled, without @option{-mavx512fp16}, +@code{_Float16} type is storage only, all operations will be emulated by +software emulation and the @code{float} instructions. The default behavior +for @code{FLT_EVAL_METHOD} is to keep the intermediate result of the operation +as 32-bit precision. This may lead to inconsistent behavior between software +emulation and AVX512-FP16 instructions. @node Decimal Float @section Decimal Floating Types