public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [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-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 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 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-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 19:35 [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 18:50 Michael Meissner
2022-08-02 18:00 Michael Meissner
2022-08-02 4:26 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).