https://gcc.gnu.org/g:5b665add60b8b6e07a7a90d906a7e64ad7e46e6d
commit 5b665add60b8b6e07a7a90d906a7e64ad7e46e6d Author: Michael Meissner <meiss...@linux.ibm.com> Date: Tue Jun 3 19:10:25 2025 -0400 Update ChangeLog.* Diff: --- gcc/ChangeLog.bugs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gcc/ChangeLog.bugs b/gcc/ChangeLog.bugs index 7341470f50dc..a2ba00af3a38 100644 --- a/gcc/ChangeLog.bugs +++ b/gcc/ChangeLog.bugs @@ -1,3 +1,33 @@ +==================== Branch work210-bugs, patch #110 ==================== + +PR target/108958 -- simplify mtvsrdd to zero extend GPR DImode to VSX TImode + +Previously GCC would zero extend a DImode GPR value to TImode by first zero +extending the DImode value into a GPR TImode register pair, and then do a +MTVSRDD to move this value to a VSX register. + +This patch creates a peephole2 to catch this case, and it eliminates creating +the TImode variable. Instead it just does the MTVSRDD instruction directly. + +I have built GCC with the patches in this patch set applied on both little and +big endian PowerPC systems and there were no regressions. Can I apply this +patch to GCC 16? + +2025-06-03 Michael Meissner <meiss...@linux.ibm.com> + +gcc/ + + PR target/108958 + * config/rs6000/rs6000.md (UNSPEC_ZERO_EXTEND): New unspec. + (zero_extendsiti2 peephole2): Add a peephole2 to simplify zero extend + between DImode value in a GPR to a TImode target in a vector register. + (zero_extendsiti2_vsx): New insn. + +gcc/testsuite/ + + PR target/108958 + * gcc.target/powerpc/pr108958.c: New test. + ==================== Branch work210-bugs, patch #100 ==================== Fix PR 118541, do not generate unordered fp cmoves for IEEE compares.