public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Joseph Myers <joseph@codesourcery.com>
To: liuhongt <hongtao.liu@intel.com>
Cc: <gcc-patches@gcc.gnu.org>, <ubizjak@gmail.com>
Subject: Re: [PATCH 02/10] [i386] Enable _Float16 type for TARGET_SSE2 and above.
Date: Wed, 28 Jul 2021 21:56:53 +0000	[thread overview]
Message-ID: <alpine.DEB.2.22.394.2107282130050.459949@digraph.polyomino.org.uk> (raw)
In-Reply-To: <20210721074347.7689-3-hongtao.liu@intel.com>

On Wed, 21 Jul 2021, liuhongt via Gcc-patches wrote:

> @@ -23254,13 +23337,15 @@ ix86_get_excess_precision (enum excess_precision_type type)
>  	   provide would be identical were it not for the unpredictable
>  	   cases.  */
>  	if (!TARGET_80387)
> -	  return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT;
> +	  return TARGET_SSE2
> +		 ? FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16
> +		 : FLT_EVAL_METHOD_PROMOTE_TO_FLOAT;
>  	else if (!TARGET_MIX_SSE_I387)
>  	  {
>  	    if (!(TARGET_SSE && TARGET_SSE_MATH))
>  	      return FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE;
>  	    else if (TARGET_SSE2)
> -	      return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT;
> +	      return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16;
>  	  }
>  
>  	/* If we are in standards compliant mode, but we know we will

This patch is not changing the default "fast" mode at all; that's 
promoting to float, unconditionally.  But you have a subsequent change 
there in patch 4 to make the promotions in the default "fast" mode depend 
on hardware support for the new instructions; it's unhelpful for the 
documentation not to corresponding exactly to the code changes in the same 
patch.

Rather than using FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 whenever TARGET_SSE2 
(i.e. whenever the type is available), it might make more sense to follow 
AArch64 and use it only when the hardware instructions are available.  In 
any case, it seems peculiar to use a different threshold in the "fast" 
case from the "standard" case.  -fexcess-precision=standard is not "avoid 
excess precision", it's "implement excess precision in the front end".  
Whenever "fast" is implementing excess precision in the front end, 
"standard" should be doing the same thing as "fast".

> +Soft-fp keeps the intermediate result of the operation at 32-bit precision by defaults,
> +which may lead to inconsistent behavior between soft-fp and avx512fp16 instructions,
> +using @option{-fexcess-precision=standard} will force round back after every operation.

"soft-fp" is, as the name of some code within GCC, an internal 
implementation detail, which should not be referenced in the user manual.  
What results in intermediate results being in a wider precision is not 
soft-fp; it's promotions inserted by the front end as a result of how the 
above hook is defined (promotions inserted by the optabs/expand code are 
an implementation detail that should always be followed automatically by a 
truncation of the result and so not be user-visible).

As far as I know, the official name of "avx512fp16" is "AVX512-FP16" and 
text in the manual should use the official capitalization, hyphenation 
etc. in such names unless literally referring to command-line options 
inside @option or similar.

-- 
Joseph S. Myers
joseph@codesourcery.com

  parent reply	other threads:[~2021-07-28 21:57 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20210701054808.39000-1-hongtao.liu@intel.com>
2021-07-01  5:55 ` [PATCH 0/2] Initial support for AVX512FP16 Hongtao Liu
2021-07-01 20:46   ` Joseph Myers
2021-07-06  8:53     ` Hongtao Liu
     [not found] ` <20210701054808.39000-3-hongtao.liu@intel.com>
2021-07-01  5:55   ` [PATCH 2/2] AVX512FP16: Add HFmode support in libgcc Hongtao Liu
     [not found] ` <20210701054808.39000-2-hongtao.liu@intel.com>
2021-07-01  5:55   ` [PATCH 1/2] AVX512FP16: Initial support for _Float16 type and AVX512FP16 feature Hongtao Liu
2021-07-01 11:10 ` [PATCH 0/2] Initial support for AVX512FP16 Uros Bizjak
2021-07-01 12:39   ` H.J. Lu
2021-07-01 12:58     ` Richard Biener
2021-07-01 13:03       ` Jakub Jelinek
2021-07-06  8:51         ` Hongtao Liu
2021-07-06 10:14           ` Richard Biener
2021-07-06 12:11             ` H.J. Lu
2021-07-06 18:20               ` Joseph Myers
2021-07-06 18:18             ` Joseph Myers
2021-07-06 18:11           ` Joseph Myers
2021-07-07  1:24             ` Hongtao Liu
2021-07-14  7:50               ` Hongtao Liu
2021-07-14 15:32                 ` [llvm-dev] " Craig Topper
2021-07-15  2:07                   ` Wang, Pengfei
2021-07-15  6:34                     ` Hongtao Liu
2021-07-15  6:57                       ` Wang, Pengfei
2021-07-15  7:49                         ` Hongtao Liu
2021-07-21  7:43       ` [PATCH V2 00/10] " liuhongt
2021-07-21  7:43         ` [PATCH 01/10] Update hf soft-fp from glibc liuhongt
2021-07-21  7:43         ` [PATCH 02/10] [i386] Enable _Float16 type for TARGET_SSE2 and above liuhongt
2021-07-21 10:35           ` Uros Bizjak
2021-07-22  5:21             ` Hongtao Liu
2021-07-22 11:56           ` Richard Biener
2021-07-28 21:56           ` Joseph Myers [this message]
2021-07-29  4:53             ` Hongtao Liu
2021-07-29  5:34               ` Hongtao Liu
2021-07-29 21:30               ` Joseph Myers
2021-08-02  5:23                 ` Hongtao Liu
2021-08-02  6:31                   ` [PATCH V3 0/6] Initial support for AVX512FP16 liuhongt
2021-08-02  6:31                     ` [PATCH 1/6] Update hf soft-fp from glibc liuhongt
2021-08-02  6:31                     ` [PATCH 2/6] [i386] Enable _Float16 type for TARGET_SSE2 and above liuhongt
2021-08-04  2:45                       ` Hongtao Liu
2021-08-04 11:28                         ` Richard Biener
2021-08-05  7:31                           ` Hongtao Liu
2021-08-05  7:39                             ` Hongtao Liu
2021-08-05  9:24                             ` Richard Biener
2021-08-05  9:49                               ` Hongtao Liu
2021-08-05 10:14                                 ` Richard Biener
2021-08-06  3:32                                   ` [PATCH] Make sure we're playing with integral modes before call extract_integral_bit_field liuhongt
2021-08-06  3:44                                     ` Andrew Pinski
2021-08-06  4:59                                       ` Hongtao Liu
2021-08-06  5:52                                         ` Hongtao Liu
2021-08-06  6:59                                         ` Richard Biener
2021-08-06  6:57                                     ` Richard Biener
2021-08-06  9:05                                       ` Richard Sandiford
2021-08-06 11:27                                         ` Richard Biener
2021-08-09  8:34                                           ` Hongtao Liu
2021-08-17  1:52                                             ` Hongtao Liu
2021-08-24  9:40                                               ` Hongtao Liu
2021-08-24  9:44                                                 ` Hongtao Liu
2021-08-24 11:38                                                   ` Richard Biener
2021-08-26  1:17                                                     ` Hongtao Liu
2021-08-25 23:16                                                   ` Jeff Law
2021-08-26  2:05                                                     ` Hongtao Liu
2021-08-26  7:11                                                     ` Richard Biener
2021-08-26  9:06                                                       ` Richard Sandiford
2021-08-26 10:14                                                         ` Richard Biener
2021-08-26 10:50                                                           ` Richard Sandiford
2021-08-26 11:09                                                             ` Richard Biener
2021-08-27  4:56                                                               ` Hongtao Liu
2021-08-30 19:09                                                                 ` Joseph Myers
2021-08-30 21:15                                                                   ` Jeff Law
2021-08-31  6:10                                                                 ` Richard Biener
2021-08-31  6:30                                                                   ` Hongtao Liu
2021-08-31  6:48                                                                     ` Hongtao Liu
2021-08-31 11:16                                                                       ` Richard Biener
2021-08-31 11:17                                                                       ` [PATCH 0/2] Get rid of all float-int special cases in validate_subreg liuhongt
2021-08-31 11:17                                                                         ` [PATCH 1/2] Revert "Make sure we're playing with integral modes before call extract_integral_bit_field." liuhongt
2021-08-31 11:17                                                                         ` [PATCH 2/2] Get rid of all float-int special cases in validate_subreg liuhongt
2021-08-31 11:57                                                                           ` Richard Biener
2021-09-02 17:55                                                                           ` Segher Boessenkool
2021-09-03 15:05                                                                             ` Andreas Schwab
2021-09-07 23:19                                                                               ` Segher Boessenkool
2021-09-08  0:55                                                                                 ` Hongtao Liu
2021-09-03 12:42                       ` [PATCH 2/6] [i386] Enable _Float16 type for TARGET_SSE2 and above Jakub Jelinek
2021-09-06  2:05                         ` Hongtao Liu
2021-09-06 12:13                           ` Jakub Jelinek
2021-09-07  1:52                             ` Hongtao Liu
2021-09-07  7:17                               ` Jakub Jelinek
2021-09-07 10:08                                 ` Hongtao Liu
2021-09-07 10:10                                   ` Jakub Jelinek
2021-08-02  6:31                     ` [PATCH 3/6] [i386] libgcc: Enable hfmode soft-sf/df/xf/tf extensions and truncations liuhongt
2021-08-02  6:31                     ` [PATCH 4/6] Support -fexcess-precision=16 which will enable FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when backend supports _Float16 liuhongt
2021-08-02 19:34                       ` Joseph Myers
2021-08-03  2:44                         ` Hongtao Liu
2021-08-06  6:06                           ` Hongtao Liu
2021-08-17  1:53                             ` Hongtao Liu
2021-08-24  9:39                               ` Hongtao Liu
2021-09-02  6:06                                 ` Hongtao Liu
2021-08-02  6:39                     ` [PATCH 6/6] AVX512FP16: Support vector init/broadcast/set/extract for FP16 liuhongt
2021-08-02  6:44                     ` [PATCH 5/6] AVX512FP16: Initial support for AVX512FP16 feature and scalar _Float16 instructions liuhongt
2021-08-04  2:40                       ` Hongtao Liu
2021-08-04  9:55                       ` Uros Bizjak
2021-09-02  6:06                     ` [PATCH V3 0/6] Initial support for AVX512FP16 Hongtao Liu
2021-09-02 11:30                       ` Iain Sandoe
2021-09-02 15:18                         ` Hongtao Liu
2021-09-02 16:44                           ` Iain Sandoe
2021-09-02 20:03                             ` Joseph Myers
2021-09-03  7:51                               ` Iain Sandoe
2021-09-03 15:33                                 ` Iain Sandoe
2021-09-21 20:11                                   ` Joseph Myers
2021-09-21 20:25                                     ` Iain Sandoe
2021-09-22  7:08                                     ` Iain Sandoe
2021-09-22 19:50                                       ` Joseph Myers
2021-09-02 15:30                       ` H.J. Lu
2021-09-02 15:50                         ` Hongtao Liu
2021-09-02 19:45                       ` Joseph Myers
2021-07-21  7:43         ` [PATCH 03/10] [i386] libgcc: Enable hfmode soft-sf/df/xf/tf extensions and truncations liuhongt
2021-07-21 10:51           ` Uros Bizjak
2021-07-22 12:14           ` Richard Biener
2021-07-27  5:32             ` Hongtao Liu
2021-07-29 20:57               ` Joseph Myers
2021-08-02  5:10                 ` Hongtao Liu
2021-07-21  7:43         ` [PATCH 04/10] AVX512FP16: Initial support for AVX512FP16 feature and scalar _Float16 instructions liuhongt
2021-07-22  8:49           ` Uros Bizjak
2021-07-27  7:31             ` Hongtao Liu
2021-07-21  7:43         ` [PATCH 05/10] AVX512FP16: Support vector init/broadcast/set/extract for FP16 liuhongt
2021-07-22  5:24           ` Hongtao Liu
2021-07-21  7:43         ` [PATCH 06/10] AVX512FP16: Add testcase for vector init and broadcast intrinsics liuhongt
2021-07-21  7:43         ` [PATCH 07/10] AVX512FP16: Add tests for vector passing in variable arguments liuhongt
2021-07-21  7:43         ` [PATCH 08/10] AVX512FP16: Add ABI tests for xmm liuhongt
2021-07-21  7:43         ` [PATCH 09/10] AVX512FP16: Add ABI test for ymm liuhongt
2021-07-21  7:43         ` [PATCH 10/10] AVX512FP16: Add abi test for zmm liuhongt
2021-09-08  2:54         ` [PATCH V2 00/10] Initial support for AVX512FP16 Hongtao Liu
2021-09-08  3:02           ` Hongtao Liu
2021-07-01 12:58     ` [PATCH 0/2] " Uros Bizjak
2021-07-01 21:40     ` Joseph Myers
2021-07-02  6:30   ` Hongtao Liu
2021-07-02  8:03     ` Uros Bizjak
2021-07-02  8:19       ` Richard Biener
2021-07-03 14:44         ` Hongtao Liu
2021-07-05  1:25       ` Hongtao Liu
2021-07-05 11:02         ` Richard Biener

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.22.394.2107282130050.459949@digraph.polyomino.org.uk \
    --to=joseph@codesourcery.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hongtao.liu@intel.com \
    --cc=ubizjak@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).