https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116004
--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Vijay Telidevulapalli <[email protected]>: https://gcc.gnu.org/g:16e53b53791725ead6af8071faaa2960ee9a3da5 commit r17-3696-g16e53b53791725ead6af8071faaa2960ee9a3da5 Author: Vijay Shankar <[email protected]> Date: Thu Mar 26 03:37:52 2026 -0500 rs6000: Reduces a multi-step comparison sequence to a single vcmpnez instruction This patch removes redundant vector compare instructions and logic from the vec_first_mismatch_or_eos_index intrinsic. Currently, GCC generates extra vcmpneb instructions and additional masking logic (xxland, xxlorc) to handle EOS and mismatch comparisons. However, a single vcmpnezb instruction already suffices, as it covers both. By eliminating the redundant comparisons (vcmpneb) and the associated logic (xxland/xxlorc) we produce shorter, more efficient code. Bootstrapped and regtested on powerpc64le-linux-gnu with no regressions. Bootstrapped and regtested on powerpc64-linux-gnu with no regressions. 2025-10-22 Vijay Shankar <[email protected]> gcc/ChangeLog: PR target/116004 * config/rs6000/vsx.md (first_mismatch_or_eos_index): Remove redundant emit_insns. gcc/testsuite/ChangeLog: PR target/116004 * gcc.target/powerpc/pr116004.c: New Test.
