https://gcc.gnu.org/g:a8ddf80c197653b77b6b4b52f20739404db5b2ef
commit a8ddf80c197653b77b6b4b52f20739404db5b2ef Author: Michael Meissner <meiss...@linux.ibm.com> Date: Sun Oct 6 01:46:46 2024 -0400 Update ChangeLog.* Diff: --- gcc/ChangeLog.bugs | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog.bugs b/gcc/ChangeLog.bugs index 2d17e8b98a1e..52fbbd344388 100644 --- a/gcc/ChangeLog.bugs +++ b/gcc/ChangeLog.bugs @@ -1,6 +1,56 @@ +==================== Branch work180-bugs, patch #200 ==================== + +PR 99293: Optimize splat of a V2DF/V2DI extract with constant element + +We had optimizations for splat of a vector extract for the other vector +types, but we missed having one for V2DI and V2DF. This patch adds a +combiner insn to do this optimization. + +In looking at the source, we had similar optimizations for V4SI and V4SF +extract and splats, but we missed doing V2DI/V2DF. + +Without the patch for the code: + + vector long long splat_dup_l_0 (vector long long v) + { + return __builtin_vec_splats (__builtin_vec_extract (v, 0)); + } + +the compiler generates (on a little endian power9): + + splat_dup_l_0: + mfvsrld 9,34 + mtvsrdd 34,9,9 + blr + +Now it generates: + + splat_dup_l_0: + xxpermdi 34,34,34,3 + blr + +2024-10-06 Michael Meissner <meiss...@linux.ibm.com> + +gcc/ + + * config/rs6000/vsx.md (vsx_splat_extract_<mode>): New insn. + +gcc/testsuite/ + + * gcc.target/powerpc/builtins-1.c: Adjust insn count. + * gcc.target/powerpc/pr99293.c: New test. + ==================== Branch work180-bugs, baseline ==================== +Add ChangeLog.bugs and update REVISION. + +2024-10-05 Michael Meissner <meiss...@linux.ibm.com> + +gcc/ + + * ChangeLog.bugs: New file for branch. + * REVISION: Update. + 2024-10-05 Michael Meissner <meiss...@linux.ibm.com> Clone branch -