public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/meissner/heads/work129)] Update ChangeLog.meissner
@ 2023-07-31 22:13 Michael Meissner
0 siblings, 0 replies; only message in thread
From: Michael Meissner @ 2023-07-31 22:13 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:829f3be59e79d30630402b9c6ddfd118d55def36
commit 829f3be59e79d30630402b9c6ddfd118d55def36
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Mon Jul 31 18:13:45 2023 -0400
Update ChangeLog.meissner
Diff:
---
gcc/ChangeLog.meissner | 107 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 107 insertions(+)
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index a1cef242f42..03195b3dbb0 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,3 +1,110 @@
+==================== Branch work129, patch #3 ====================
+
+Replace UNSPEC_COPYSIGN with copysign
+
+2023-07-28 Michael Meissner <meissner@linux.ibm.com>
+
+gcc/
+
+ * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): Delete.
+ (copysign<mode>3_fcpsg): Use copysign RTL instead of UNSPEC.
+ (copysign<mode>3_hard): Likewise.
+ (copysign<mode>3_soft): Likewise.
+ * config/rs6000/vector.md (vector_copysign<mode>3): Use copysign RTL
+ instead of UNSPEC.
+ * config/rs6000/vsx.md (vsx_copysign<mode>3): Use copysign RTL instead
+ of UNSPEC.
+
+==================== Branch work129, patch #3 ====================
+
+Improve 64->128 bit zero extension on PowerPC (PR target/108958)
+
+If we are converting an unsigned DImode to a TImode value, and the TImode value
+will go in a vector register, GCC currently does the DImode to TImode conversion
+in GPR registers, and then moves the value to the vector register via a mtvsrdd
+instruction.
+
+This patch adds a new zero_extendditi2 insn which optimizes moving a GPR to a
+vector register using the mtvsrdd instruction with RA=0, and using lxvrdx to
+load a 64-bit value into the bottom 64-bits of the vector register.
+
+I have tested this patch on the following systems and there was no degration.
+Can I check it into the trunk branch?
+
+ * Power10, LE, --with-cpu=power10, IBM 128-bit long double
+ * Power9, LE, --with-cpu=power9, IBM 128-bit long double
+ * Power9, LE, --with-cpu=power9, IEEE 128-bit long double
+ * Power9, LE, --with-cpu=power9, 64-bit default long double
+ * Power9, BE, --with-cpu=power9, IBM 128-bit long double
+ * Power8, BE, --with-cpu=power8, IBM 128-bit long double
+
+2023-07-28 Michael Meissner <meissner@linux.ibm.com>
+
+gcc/
+
+ PR target/108958
+ * gcc/config/rs6000.md (zero_extendditi2): New insn.
+
+gcc/testsuite/
+
+ PR target/108958
+ * gcc.target/powerpc/pr108958.c: New test.
+
+==================== Branch work129, patch #3 ====================
+
+Optimize vec_splats of vec_extract for V2DI/V2DF (PR target/99293)
+
+This patch optimizes cases like:
+
+ vector double v1, v2;
+ /* ... */
+ v2 = vec_splats (vec_extract (v1, 0); /* or */
+ v2 = vec_splats (vec_extract (v1, 1);
+
+Previously:
+
+ vector long long
+ splat_dup_l_0 (vector long long v)
+ {
+ return __builtin_vec_splats (__builtin_vec_extract (v, 0));
+ }
+
+would generate:
+
+ mfvsrld 9,34
+ mtvsrdd 34,9,9
+ blr
+
+With this patch, GCC generates:
+
+ xxpermdi 34,34,34,3
+ blr
+
+
+I have tested this patch on the following systems and there was no degration.
+Can I check it into the trunk branch?
+
+ * Power10, LE, --with-cpu=power10, IBM 128-bit long double
+ * Power9, LE, --with-cpu=power9, IBM 128-bit long double
+ * Power9, LE, --with-cpu=power9, IEEE 128-bit long double
+ * Power9, LE, --with-cpu=power9, 64-bit default long double
+ * Power9, BE, --with-cpu=power9, IBM 128-bit long double
+ * Power8, BE, --with-cpu=power8, IBM 128-bit long double
+
+2023-07-28 Michael Meissner <meissner@linux.ibm.com>
+
+gcc/
+
+ PR target/99293
+ * gcc/config/rs6000/vsx.md (vsx_splat_extract_<mode>): New combiner
+ insn.
+
+gcc/testsuite/
+
+ PR target/108958
+ * gcc.target/powerpc/pr99293.c: New test.
+ * gcc.target/powerpc/builtins-1.c: Update insn count.
+
==================== Branch work129, baseline ====================
2023-07-31 Michael Meissner <meissner@linux.ibm.com>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-07-31 22:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-31 22:13 [gcc(refs/users/meissner/heads/work129)] Update ChangeLog.meissner 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).