public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-02  4:26 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-02  4:26 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:4af46f37c4ebef8ca630cdb2bc69812563a08af6

commit 4af46f37c4ebef8ca630cdb2bc69812563a08af6
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Aug 2 00:25:54 2022 -0400

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

Diff:
---
 gcc/ChangeLog.meissner | 94 ++++++++++++++++++++++++++++++++++----------------
 1 file changed, 65 insertions(+), 29 deletions(-)

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index f2ab27393de..014aefff8eb 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,6 +1,70 @@
+==================== work096, patch 7.
+
+Allow __ibm128 even if IEEE 128-bit floating point is not supported.
+
+This set of patches changes the GCC compiler to allow the use of the __ibm128
+keyword if we have IEEE 128-bit floating point support enabled or if long double
+is 128-bits.
+
+In addition, checks for requiring hardware floating point to use __ibm128 have
+been removed.  This fixes PR target/105534.
+
+2022-08-02   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	PR target/105534
+	* config/rs6000/rs6000-builtins.cc (rs6000_init_builtins): Create
+	__ibm128 on older machines without IEEE 128-bit support.
+	* config/rs6000/rs600.cc (init_float128_ibm): Remove checks for hardware
+	floating point for the IBM 128-bit comparisons.
+	(rs6000_init_libfuncs): Create IBM 128-bit floating point support even
+	if we don't support IEEE 128-bit floating point.
+	(rs6000_scalar_mode_supported_p): Allow __ibm128 even if we don't
+	support _Float128.
+	* config/rs6000/rs6000.h (FLOAT128_IBM_P): Remove checks for
+	-mhard-float.
+	(TARGET_IBM128): New macro.
+	* config/rs6000/rs6000.md (@extenddf<mode>2_fprs): Allow IFmode to be
+	converted even if long double is not 128-bits.
+	(extenddf<mode>2_vsx): Likewise.
+	(extendtfif2): Allow conversion if we have __ibm128 but not IEEE 128-bit
+	floating point.
+	(trunckftf2): Likewise.
+
 ==================== work096, patch 6.
 
-Support IEEE 128-bit overload extract and insert built-in functions.
+Add IEEE 128-bit overload test data built-in functions.
+
+This patch adds support for overloading the IEEE 128-bit test data and test data
+negate built-in functions bewteeen KFmode and TFmode arguments.
+
+2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000-builtins.def
+	(__builtin_vsx_scalar_test_data_class_qp_kf): Rename KFmode IEEE 128-bit
+	test data built-in functions to have a KF suffix to allow overloading.
+	(__builtin_vsx_scalar_test_neg_qp_kf): Likewise.
+	(__builtin_vsx_scalar_test_data_class_qp_tf): Add TFmode variants for
+	IEEE 128-bit insert and extract support.
+	(__builtin_vsx_scalar_test_neg_qp_tf): Likewise.
+	* config/rs6000/rs6000-overload.def
+	(__builtin_vec_scalar_test_data_class): Add TFmode overloads.
+	(__builtin_vec_scalar_test_neg): Likewise.
+	(__builtin_vec_scalar_test_neg_qp): Likewise.
+	(__builtin_vec_scalar_test_data_class_qp): Likewise.
+
+gcc/testsuite/
+
+	* gcc.target/powerpc/bfp/scalar-test-data-class-11.c:  Update the
+	expected error message.
+	* gcc.target/powerpc/bfp/scalar-test-neg-5.c: Likewise.
+
+==================== work096, patch 5.
+
+Add IEEE 128-bit overload extract and insert built-in functions.
 
 This patch adds support for overloading the IEEE 128-bit extract and insert
 built-in functions bewteeen KFmode and TFmode arguments.
@@ -33,34 +97,6 @@ gcc/testsuite/
 	* gcc.target/powerpc/bfp/scalar-extract-sig-4.c: Likewise.
 	* gcc.target/powerpc/bfp/scalar-insert-exp-10.c: Likewise.
 
-==================== work096, patch 5.
-
-Add IEEE 128-bit overload comparison built-in functions.
-
-This patch adds support for overloading the IEEE 128-bit comparison built-in
-functions bewteeen KFmode and TFmode arguments.
-
-2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
-
-gcc/
-
-	* config/rs6000/rs6000-builtins.def
-	(__builtin_vsx_scalar_cmp_exp_qp_eq_kf): Rename KFmode comparison
-	built-in functions to have a KF suffix to allow overloading.
-	(__builtin_vsx_scalar_cmp_exp_qp_gt_kf): Likewise.
-	(__builtin_vsx_scalar_cmp_exp_qp_lt_kf): Likewise.
-	(__builtin_vsx_scalar_cmp_exp_qp_unordered_kf): Likewise.
-	(__builtin_vsx_scalar_cmp_exp_qp_eq_tf): Add TFmode comparison built-in
-	functions.
-	(__builtin_vsx_scalar_cmp_exp_qp_gt_tf): Likewise.
-	(__builtin_vsx_scalar_cmp_exp_qp_lt_tf): Likewise.
-	(__builtin_vsx_scalar_cmp_exp_qp_unordered_tf): Likewise.
-	* config/rs6000/rs6000-overload.def (__builtin_vec_scalar_cmp_exp_eq):
-	Add TFmode overloaded functions.
-	(__builtin_vec_scalar_cmp_exp_gt): Likewise.
-	(__builtin_vec_scalar_cmp_exp_lt): Likewise.
-	(__builtin_vec_scalar_cmp_exp_unordered): Likewise.
-
 ==================== work096, patch 4.
 
 Add IEEE 128-bit overload comparison built-in functions.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-04 22:50 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-04 22:50 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:ae29cffdc0948f40663ed09d45c27fe8344824ba

commit ae29cffdc0948f40663ed09d45c27fe8344824ba
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Thu Aug 4 18:50:39 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 5cdeae3a44b..9a3bf0390e6 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,28 @@
+==================== work096, patch 12.
+
+Make 'w' the __ibm128 suffix.
+
+In writing code with __ibm128 support, it would be nice if we supported a suffix
+that marked __ibm128 constants.  The preprocessor lexer supports using either
+'q'/'Q' or 'w'/'W' as machine dependent suffixes.  The 'q'/'Q' suffix was
+already taken for __float128 constants, so I added 'w' or 'W' as the suffix for
+the __ibm128 constant.
+
+I went to the file doc/extend.texi to document using a 'w' or 'W' suffix, but it
+appears that we already had documented using 'w'/'W' for __ibm128.  This code
+adds this support to the GCC compiler.
+
+2022-08-04   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000.cc (rs6000_c_mode_for_suffix): Add support for
+	using 'w' or 'W' as the __ibm128 bit constant.
+
+gcc/testsuite/
+
+	* gcc.target/powerpc/ibm128-suffix.c: New test.
+
 ==================== work096, patch 11.
 
 Mangle __ibm128 to u8__ibm128.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-03 15:36 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-03 15:36 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:4c54bfeab72d7a56678ea421cd3a7d1a3002d44d

commit 4c54bfeab72d7a56678ea421cd3a7d1a3002d44d
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Wed Aug 3 11:36:25 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 78ff9a7dbd5..5cdeae3a44b 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,18 @@
+==================== work096, patch 11.
+
+Mangle __ibm128 to u8__ibm128.
+
+With the change to __ibm128 having a distinct type within GCC, we need to adjust
+the mangling for __ibm128 to distinguish it from long double, when long double
+uses the IBM 128-bit encoding.
+
+2022-08-03   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000.cc (rs6000_mangle_type): Mangle __ibm128 to
+	u8__ibm128 if long double uses the IBM 128-bit encoding.
+
 ==================== work096, patch 10.
 
 Make __ibm128 have a distinct type and always use IFmode.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-03 15:14 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-03 15:14 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:d31dd8389a4de7109e79838ef55b350ea57f779b

commit d31dd8389a4de7109e79838ef55b350ea57f779b
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Wed Aug 3 11:13:48 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 0ff42d6d4d4..78ff9a7dbd5 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,24 @@
+==================== work096, patch 10.
+
+Make __ibm128 have a distinct type and always use IFmode.
+
+This patch makes the __ibm128 use a distinct type which always uses the IFmode
+instead of __ibm128 using the long double type when long double uses the IBM
+128-bit encoding.
+
+
+2022-08-03   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Always create
+	a unique type for __ibm128 instead of using the long double type.  Make
+	sure ibm128_float_type_node is initialized.
+	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not define
+	__KF__ and __KC__ mode when long double uses the IEEE 128-bit encoding.
+	* config/rs6000/rs6000.cc (TARGET_TRANSLATE_MODE_ATTRIBUTE): Delete.
+	(rs6000_translate_mode_attribute): Likewise.
+
 ==================== work096, patch 9.
 
 Use _Float128 type for __float128.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-02 21:34 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-02 21:34 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:0fcc54d9ac7f9d532dcda14b1319e2380b780859

commit 0fcc54d9ac7f9d532dcda14b1319e2380b780859
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Aug 2 17:33:38 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index cdbcb06498b..0ff42d6d4d4 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,59 @@
+==================== work096, patch 9.
+
+Use _Float128 type for __float128.
+
+In the past if the long double type was IEEE 128-bit, the __float128 type would
+use the long double type, and TFmode would be used for the mode for both
+_Float128 and long double types.
+
+This patch always uses the _Float128 type for __float128, and it always uses
+KFmode for the mode.  Right now, a similar change for __ibm128 has not been
+made.
+
+In making these changes, I noticed that there was an internal tree for holding
+the __float128 type.  This code removes that internal tree variable.
+
+2022-08-02   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000-builtin.cc (rs6000_type_string): Use
+	float128_type_node, not ieee128_float_type_mode.
+	(rs6000_init_builtins): Always use the _Float128 type for the __float128
+	keyword.
+	(rs6000_expand_builtin): Remove code that mapped the KFmode built-in
+	functions to TFmode functions if long double was IEEE 128-bit, and use
+	built-in function overloading instead.  Also remove the conversion of
+	IBM 128-bit built-in functions from IFmode to TFmode if long double is
+	IBM 128-bit.
+	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use
+	float128_type_node, not ieee128_float_type_mode.
+	(rs6000_cpu_cpp_builtins): Delete ieee128_float_type_mode.
+	(is_float128_p): Delete.
+	(rs6000_builtin_type_compatible): Don't consider 128-bit floating point
+	types to be compatible if they use the same encoding.  Use built-in
+	function overloading instead.
+	(rs6000_libgcc_floating_mode_supported_p): Use KFmode for _Float128 and
+	__float128, not TFmode.
+	(rs6000_floatn_mode): Likewise.
+	(rs6000_c_mode_for_suffix): Likewise.
+	* config/rs6000/rs6000.h (RS6000_BTI_ieee128_float): Delete.
+	(ieee128_float_type_node): Likewise.
+	* config/rs6000/rs6000.md (IFKF): Delete.
+	(IFKF_reg): Delete.
+	(extendkfif2): New define_expand.
+	(trunckfif2): New define_expand.
+	(extend<mode>tf2_internal): Split into extendiftf2_internal and
+	extendkftf2_internal.  Update the insns to use the correct insn type and
+	length attributes based on whether KFmode or IFmode is used.
+	(extendiftf2_internal): Likewise.
+	(extendkftf2_internal): Likewise.
+	(extendtf<mode>2_internal): Split into extendtfif2_internal and
+	extendtfkf2_internal.  Update the insns to use the correct insn type and
+	length attributes based on whether KFmode or IFmode is used.
+	(extendtfif2_internal): Likewise.
+	(extendtfkf2_internal): Likewise.
+
 ==================== work096, patch 8.
 
 Rework 128-bit complex multiply and divide.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-02 19:35 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-02 19:35 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:cec95352918eda6df6486d69febed6afa375ceb5

commit cec95352918eda6df6486d69febed6afa375ceb5
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Aug 2 15:35:34 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 0f188d17fd8..cdbcb06498b 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -23,8 +23,8 @@ gcc/
 	* config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
 	(init_float128_ieee): Delete code to switch complex multiply and divide
 	for long double.
-	(complex_multiply_name): New helper function.
-	(complex_divide_name): Likewise.
+	(complex_multiply_builtin_code): New helper function.
+	(complex_divide_builtin_code): Likewise.
 	(rs6000_mangle_decl_assembler_name): Add support for mangling the name
 	of complex 128-bit multiply and divide built-in functions.
 	* config/rs6000/rs6000.opt (building_libgcc): New target variable.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-02 18:50 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-02 18:50 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:f70cefc080ee042c61a60689eea8db9017956a32

commit f70cefc080ee042c61a60689eea8db9017956a32
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Aug 2 14:50:12 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 9a743ceb9a1..0f188d17fd8 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -18,6 +18,8 @@ out to the assembler file.
 
 gcc/
 
+	* config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Set
+	building_libgcc.
 	* config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
 	(init_float128_ieee): Delete code to switch complex multiply and divide
 	for long double.
@@ -25,6 +27,7 @@ gcc/
 	(complex_divide_name): Likewise.
 	(rs6000_mangle_decl_assembler_name): Add support for mangling the name
 	of complex 128-bit multiply and divide built-in functions.
+	* config/rs6000/rs6000.opt (building_libgcc): New target variable.
 
 ==================== work096, patch 7.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-02 18:00 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-02 18:00 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:24371f3904ec916001745f6ac8bc012113940304

commit 24371f3904ec916001745f6ac8bc012113940304
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Aug 2 14:00:24 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 014aefff8eb..9a743ceb9a1 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,31 @@
+==================== work096, patch 8.
+
+Rework 128-bit complex multiply and divide.
+
+This function reworks how the complex multiply and divide built-in functions are
+done.  Previously we created built-in declarations for doing long double complex
+multiply and divide when long double is IEEE 128-bit.  The old code also did not
+support __ibm128 complex multiply and divide if long double is IEEE 128-bit.
+
+One of the problems with this approach is that the add_builtin_function would
+abort if we used the same name for two different built-in functions.
+
+This code does not create the built-in declaration.  Instead, it uses the
+TARGET_MANGLE_DECL_ASSEMBLER_NAME hook to change the name before it is written
+out to the assembler file.
+
+2022-08-02   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
+	(init_float128_ieee): Delete code to switch complex multiply and divide
+	for long double.
+	(complex_multiply_name): New helper function.
+	(complex_divide_name): Likewise.
+	(rs6000_mangle_decl_assembler_name): Add support for mangling the name
+	of complex 128-bit multiply and divide built-in functions.
+
 ==================== work096, patch 7.
 
 Allow __ibm128 even if IEEE 128-bit floating point is not supported.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-02  0:38 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-02  0:38 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:3c0f73d3f96a94d3fffd902a3668ea724438cbfa

commit 3c0f73d3f96a94d3fffd902a3668ea724438cbfa
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Mon Aug 1 20:38:12 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index d0f8a782cc1..f2ab27393de 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,170 @@
+==================== work096, patch 6.
+
+Support IEEE 128-bit overload extract and insert built-in functions.
+
+This patch adds support for overloading the IEEE 128-bit extract and insert
+built-in functions bewteeen KFmode and TFmode arguments.
+
+2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000-builtins.def
+	(__builtin_vsx_scalar_extract_expq_kf): Rename KFmode IEEE 128-bit
+	insert and extract built-in functions to have a KF suffix to allow
+	overloading.
+	(__builtin_vsx_scalar_extract_sigq_kf): Likewise.
+	(__builtin_vsx_scalar_insert_exp_qp_kf): Likewise.
+	(__builtin_vsx_scalar_extract_expq_tf): Add TFmode variants for IEEE
+	128-bit insert and extract support.
+	(__builtin_vsx_scalar_extract_sigq_tf): Likewise.
+	(__builtin_vsx_scalar_insert_exp_qp_tf): Likewise.
+	* config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
+	Add support for having KFmode and TFmode variants of VSIEQPF.
+	* config/rs6000/rs6000-overload.def (__builtin_vec_scalar_extract_exp):
+	Add TFmode overloads.
+	(__builtin_vec_scalar_extract_sig): Likewise.
+	(__builtin_vec_scalar_insert_exp): Likewise.
+
+gcc/testsuite/
+
+	* gcc.target/powerpc/bfp/scalar-extract-exp-4.c:  Update the expected
+	error message.
+	* gcc.target/powerpc/bfp/scalar-extract-sig-4.c: Likewise.
+	* gcc.target/powerpc/bfp/scalar-insert-exp-10.c: Likewise.
+
+==================== work096, patch 5.
+
+Add IEEE 128-bit overload comparison built-in functions.
+
+This patch adds support for overloading the IEEE 128-bit comparison built-in
+functions bewteeen KFmode and TFmode arguments.
+
+2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000-builtins.def
+	(__builtin_vsx_scalar_cmp_exp_qp_eq_kf): Rename KFmode comparison
+	built-in functions to have a KF suffix to allow overloading.
+	(__builtin_vsx_scalar_cmp_exp_qp_gt_kf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_lt_kf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_unordered_kf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_eq_tf): Add TFmode comparison built-in
+	functions.
+	(__builtin_vsx_scalar_cmp_exp_qp_gt_tf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_lt_tf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_unordered_tf): Likewise.
+	* config/rs6000/rs6000-overload.def (__builtin_vec_scalar_cmp_exp_eq):
+	Add TFmode overloaded functions.
+	(__builtin_vec_scalar_cmp_exp_gt): Likewise.
+	(__builtin_vec_scalar_cmp_exp_lt): Likewise.
+	(__builtin_vec_scalar_cmp_exp_unordered): Likewise.
+
+==================== work096, patch 4.
+
+Add IEEE 128-bit overload comparison built-in functions.
+
+This patch adds support for overloading the IEEE 128-bit comparison built-in
+functions bewteeen KFmode and TFmode arguments.
+
+2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000-builtins.def
+	(__builtin_vsx_scalar_cmp_exp_qp_eq_kf): Rename KFmode comparison
+	built-in functions to have a KF suffix to allow overloading.
+	(__builtin_vsx_scalar_cmp_exp_qp_gt_kf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_lt_kf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_unordered_kf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_eq_tf): Add TFmode comparison
+	built-in functions.
+	(__builtin_vsx_scalar_cmp_exp_qp_gt_tf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_lt_tf): Likewise.
+	(__builtin_vsx_scalar_cmp_exp_qp_unordered_tf): Likewise.
+	* config/rs6000/rs6000-overload.def
+	(__builtin_vec_scalar_cmp_exp_eq): Add TFmode overloaded
+	functions.
+	(__builtin_vec_scalar_cmp_exp_gt): Likewise.
+	(__builtin_vec_scalar_cmp_exp_lt): Likewise.
+	(__builtin_vec_scalar_cmp_exp_unordered): Likewise.
+
+==================== work096, patch 3.
+
+Add IEEE 128-bit overload round_to_odd built-in functions.
+
+This patch adds support for overloading the IEEE 128-bit round to odd built-in
+functions bewteeen KFmode and TFmode arguments.
+
+2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000-builtins.def
+	(__builtin_addf128_round_to_odd_kf): Rename KFmode round to odd
+	built-in functions with a KF suffix to allow overloading.
+	(__builtin_divf128_round_to_odd_kf): Likewise.
+	(__builtin_fmaf128_round_to_odd_kf): Likewise.
+	(__builtin_mulf128_round_to_odd_kf): Likewise.
+	(__builtin_sqrtf128_round_to_odd_kf): Likewise.
+	(__builtin_subf128_round_to_odd_kf): Likewise.
+	(__builtin_truncf128_round_to_odd_kf): Likewise.
+	(__builtin_addf128_round_to_odd_tf): Add TFmode round to odd
+	built-in functions.
+	(__builtin_fmaf128_round_to_odd_tf): Likewise.
+	(__builtin_mulf128_round_to_odd_tf): Likewise.
+	(__builtin_sqrtf128_round_to_odd_tf): Likewise.
+	(__builtin_subf128_round_to_odd_tf): Likewise.
+	(__builtin_truncf128_round_to_odd_tf): Likewise.
+	* config/rs6000/rs6000-overload.def
+	(__builtin_addf128_round_to_odd): Make IEEE 128-bit round to odd
+	built-in functions overloaded.
+	(__builtin_divf128_round_to_odd): Likewise.
+	(__builtin_fmaf128_round_to_odd): Likewise.
+	(__builtin_mulf128_round_to_odd): Likewise.
+	(__builtin_sqrtf128_round_to_odd): Likewise.
+	(__builtin_subf128_round_to_odd): Likewise.
+	(__builtin_truncf128_round_to_odd): Likewise.
+
+==================== work096, patch 2.
+
+IEEE 128-bit built-in overload support.
+
+This patch lays the ground work that future patches will use to add builtin
+support (both normal and overloaded) for the case where long double uses the
+IEEE 128-bit encoding.
+
+This adds a new stanza (ieee128-hw-ld) for when we have IEEE 128-bit hardware
+support and long double uses the IEEE 128-bit encoding.
+
+A new type attribute (ieeeld) is added for long double if long double uses the
+IEEE 128-bit encoding.
+
+2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
+
+
+gcc/
+
+	* config/rs6000/rs6000-builtin.cc (rs6000_invalid_builtin): Add
+	support for ibm128-hw-ld stanza.
+	(rs6000_builtin_is_supported): Likewise.
+	(rs6000_init_builtins): Likewise.
+	(rs6000_expand_builtin): Add support for IEEE128_HW_LD.  Add
+	support for ieeeld.
+	* config/rs6000/rs6000-builtins.def (toplevel): Add comment about
+	the new ieeeld attribute.
+	* config/rs6000/rs6000-gen-builtins.cc (enum bif_stanza): Add
+	BSTZ_IEEE128_HW_LD.
+	(stanza_map): Likewise.
+	(enable_string): Likewise.
+	(attrinfo): Add isieeeld.
+	(parse_bif_attrs): Parse ieeeld.  Add printing ieeeld to the debug
+	print.
+	(write_decls): Add support for ibm128-hw-ld stanza and ieeeld
+	attribute.
+	(write_bif_static_init): Add support for ieeeld attribute.
+
 ==================== work096, patch 1.
 
 Do not enable -mblock-ops-vector-pair.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner.
@ 2022-08-01 22:12 Michael Meissner
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Meissner @ 2022-08-01 22:12 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:1d8907484246602c8ddc52300e778e88aaeb1be6

commit 1d8907484246602c8ddc52300e778e88aaeb1be6
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Mon Aug 1 18:12:37 2022 -0400

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

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

diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 7549ae1606b..d0f8a782cc1 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,29 @@
+==================== work096, patch 1.
+
+Do not enable -mblock-ops-vector-pair.
+
+Testing has shown that using the load vector pair and store vector pair
+instructions for block moves has some performance issues on power10.
+
+A patch on June 11th modified the code so that GCC would not set
+-mblock-ops-vector-pair by default if we are tuning for power10, but it
+would set the option if we were tuning for a different machine and have
+load and store vector pair instructions enabled.
+
+This patch eliminates the code setting -mblock-ops-vector-pair.  If you
+want to generate load vector pair and store vector pair instructions for
+block moves, you must use -mblock-ops-vector-pair.
+
+
+2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
+
+gcc/
+
+	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
+	code setting -mblock-ops-vector-pair.
+
+==================== work096, create branch.
+
 2022-08-01   Michael Meissner  <meissner@linux.ibm.com>
 
 	Clone branch


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-08-04 22:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-02  4:26 [gcc(refs/users/meissner/heads/work096)] Update ChangeLog.meissner Michael Meissner
  -- strict thread matches above, loose matches on Subject: below --
2022-08-04 22:50 Michael Meissner
2022-08-03 15:36 Michael Meissner
2022-08-03 15:14 Michael Meissner
2022-08-02 21:34 Michael Meissner
2022-08-02 19:35 Michael Meissner
2022-08-02 18:50 Michael Meissner
2022-08-02 18:00 Michael Meissner
2022-08-02  0:38 Michael Meissner
2022-08-01 22:12 Michael Meissner

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).