"Kewen.Lin" <li...@linux.ibm.com> writes:
> Hi,
>
> The fix for PR112993 will make KFmode have 128 bit mode precision,
> we don't need this workaround to fix up the type precision any
> more, and just go with the mode precision.  So this patch is to
> remove KFmode workaround.
>
> Bootstrapped and regtested on x86_64-redhat-linux,
> powerpc64{,le}-linux-gnu (ibm128 long double default)
> and powerpc64le-linux-gnu (ieee128 long double default).
>
> Is it OK for trunk if {1,2}/3 in this series get landed?

Yes.  Thanks for doing this!

Richard

> BR,
> Kewen
> -----
>
>       PR target/112993
>
> gcc/ChangeLog:
>
>       * tree.cc (build_common_tree_nodes): Drop the workaround for rs6000
>       KFmode precision adjustment.
> ---
>  gcc/tree.cc | 9 ---------
>  1 file changed, 9 deletions(-)
>
> diff --git a/gcc/tree.cc b/gcc/tree.cc
> index f801712c9dd..f730981ec8b 100644
> --- a/gcc/tree.cc
> +++ b/gcc/tree.cc
> @@ -9575,15 +9575,6 @@ build_common_tree_nodes (bool signed_char)
>        if (!targetm.floatn_mode (n, extended).exists (&mode))
>       continue;
>        int precision = GET_MODE_PRECISION (mode);
> -      /* Work around the rs6000 KFmode having precision 113 not
> -      128.  */
> -      const struct real_format *fmt = REAL_MODE_FORMAT (mode);
> -      gcc_assert (fmt->b == 2 && fmt->emin + fmt->emax == 3);
> -      int min_precision = fmt->p + ceil_log2 (fmt->emax - fmt->emin);
> -      if (!extended)
> -     gcc_assert (min_precision == n);
> -      if (precision < min_precision)
> -     precision = min_precision;
>        FLOATN_NX_TYPE_NODE (i) = make_node (REAL_TYPE);
>        TYPE_PRECISION (FLOATN_NX_TYPE_NODE (i)) = precision;
>        layout_type (FLOATN_NX_TYPE_NODE (i));
> --
> 2.39.1

Reply via email to