[gcc(refs/users/meissner/heads/work098)] Improve converting between 128-bit modes that use the same format.
Michael Meissner
meissner@gcc.gnu.org
Wed Aug 17 03:48:06 GMT 2022
https://gcc.gnu.org/g:5446ce481c25fef0e9bf8bb22b9498861987dd9e
commit 5446ce481c25fef0e9bf8bb22b9498861987dd9e
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Tue Aug 16 23:47:48 2022 -0400
Improve converting between 128-bit modes that use the same format.
This patch improves the insns used for converting between two modes using
the 128-bit floating point format (i.e. converting between KFmode and TFmode if
-mabi=ieeelongdouble is used, and converting between IFmode and TFmode if
-mabi=ibmlongdouble is used). The new insns have the correct insn type and
instruction length for the move involved.
Previously, the two different moves were lumped together (i.e. converting
between IEEE 128-bit and IEEE 128-bit was matched by the same insns as
converting between IBM 128-bit and IBM 128-bit moves).
2022-08-16 Michael Meissner <meissner@linux.ibm.com>
gcc/
* 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 the move uses IEEE 128-bit floating
point or IBM 128-bit floating point type.
(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 the move uses IEEE 128-bit floating e
point or IBM 128-bit floating point type.
(extendtfif2_internal): Likewise.
(extendtfkf2_internal): Likewise.
Diff:
---
gcc/ChangeLog.meissner | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index b13f3846227..5fe27d232ef 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,32 @@
+==================== work098, patch #5
+
+Improve converting between 128-bit modes that use the same format.
+
+This patch improves the insns used for converting between two modes using
+the 128-bit floating point format (i.e. converting between KFmode and TFmode if
+-mabi=ieeelongdouble is used, and converting between IFmode and TFmode if
+-mabi=ibmlongdouble is used). The new insns have the correct insn type and
+instruction length for the move involved.
+
+2022-08-10 Michael Meissner <meissner@linux.ibm.com>
+
+gcc/
+
+ * 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.
+
==================== work098, patch #4
Rework 128-bit complex multiply and divide.
More information about the Gcc-cvs
mailing list