public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Michael Meissner <meissner@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc(refs/users/meissner/heads/work094)] Update ChangeLog.meissner.
Date: Thu, 14 Jul 2022 02:13:10 +0000 (GMT)	[thread overview]
Message-ID: <20220714021310.2475D3858C54@sourceware.org> (raw)

https://gcc.gnu.org/g:93c3fd0c2736652b0725ae113daa09a12cb4a66a

commit 93c3fd0c2736652b0725ae113daa09a12cb4a66a
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Wed Jul 13 22:12:39 2022 -0400

    Update ChangeLog.meissner.
    
    2022-07-13   Michael Meissner  <meissner@linux.ibm.com>
    
    gcc/
    
            * ChangeLog.meissner: Update.

Diff:
---
 gcc/ChangeLog.meissner | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 153591df175..d19113d7487 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,78 @@
+==================== work094, patch #6
+
+__float128 and __ibm128 use different types from long double.
+
+2022-07-13   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Always
+	create a new tree node for __ibm128, even if long double uses the
+	IBM 128-bit format.  Always create a new tree node for __float128,
+	even if long double uses the IEEE 128-bit format.
+	(rs6000_expand_builtin): Remove all of the code that changed
+	KFmode built-in functions into TFmode, since these functions now
+	support overloading between KFmode and TFmode.
+	* config/rs6000/rs6000-c.cc (rs6000_builtin_type_compatible):
+	Don't consider _Float128 and long double under
+	-mabi=ieeelongdouble to be compatible for built-in functions.  Use
+	overloading instead.
+	* config/rs6000/rs600.cc (reg_offset_addressing_ok_p): Allow
+	IFmode to use offset addresses.
+	(init_float128_ibm): Remove checks for hardware floating point for
+	the IBM 128-bit comparisons.
+	(init_float128_ieee): Do not create __mulkc3 and __divkc3 since
+	__float128 always creates these functions.
+	(rs6000_init_libfuncs): Create complex multiply and divide for
+	long double if long double uses the IEEE 128-bit encoding.
+	(rs6000_mangle_type): Mangle __ibm128 into "u8__ibm128".
+	(rs6000_scalar_mode_supported_p): Allow __ibm128 even if we don't
+	support _Float128.
+	(rs6000_libgcc_floating_mode_supported_p): Allow KFmode if IEEE
+	128-bit floating point is supported.  Allow IFmode if either IEEE
+	128-bit floating point is supported or long double is IBM
+	128-bit.
+	(rs6000_floatn_mode): Always return KFmode for IEEE 128-bit.  Do
+	not return TFmode, even if long double uses the IEEE 128-bit
+	format.
+	(rs6000_c_mode_for_suffix): The 'q' suffix always uses KFmode,
+	even if long double uses the IEEE 128-bit encoding.
+	* config/rs6000/rs6000.h (FLOAT128_IBM_P): Remove checks for
+	-mhard-float.
+	(TARGET_IBM128): New macro.
+	* config/rs6000/rs6000.md (IFKF): Delete.
+	(IFKF_reg): Delete.
+	(@extenddf<mode>2_fprs): Remove extra test for
+	TARGET_LONG_DOUBLE_128.
+	(@extenddf<mode2>_vsx): Likewise.
+	(extendiftf2): Allow __ibm128 even if _Float128 is not supported.
+	(extendkfif2): New insn.
+	(extendtfkf2): Allow __ibm128 even if _Float128 is not supported.
+	(extendtfif2): Likewise.
+	(trunckfif2): New insn.
+	(trunctfif2): Allow __ibm128 even if _Float128 is not supported.
+	(extendkftf2_internal): Split extend<mode>tf2_internal and
+	extendtf<mode>2_internal into separate insns that handle either
+	conversions between IEEE 128-bit types or between IBM 128-bit
+	types.  Set the type and insn length correctly.
+	(extendtfkf2_internal): Likewise.
+	(extendiftf2_internal): Likewise.
+	(extendtfif2_internal): Likewise.
+
+gcc/testsuite/
+
+	* gcc.target/powerpc/mulkd3-2.c: Update test.
+	* gcc.target/powerpc/divkd3-2.c: Likewise.
+
+libgcc/
+
+	* config/rs6000/float128-ifunc.c (__multc3_ieee128): Add ifunc
+	support.
+	(__divtc3_ieee128): Likewise.
+	* config/rs6000/quad-float128.h (__multc3_ieee128): Add
+        Declaration.
+        (__divtc3_ieee128): Likewise.
+
 ==================== work094, patch #5
 
 Make IEEE 128-bit test data built-in functions overloaded.


             reply	other threads:[~2022-07-14  2:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-14  2:13 Michael Meissner [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-07-14  0:29 Michael Meissner
2022-07-13 23:41 Michael Meissner
2022-07-13 23:36 Michael Meissner
2022-07-13 23:20 Michael Meissner
2022-07-13 23:18 Michael Meissner
2022-07-13 21:28 Michael Meissner
2022-07-13 21:18 Michael Meissner
2022-07-13 20:35 Michael Meissner

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=20220714021310.2475D3858C54@sourceware.org \
    --to=meissner@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /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).