https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128372
--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Venkataramanan Kumar <[email protected]>: https://gcc.gnu.org/g:6783b7375fff65e917637e86688918e808682f14 commit r17-5901-g6783b7375fff65e917637e86688918e808682f14 Author: Sarvesh Chandra <[email protected]> Date: Thu Oct 29 18:21:53 2026 +0530 i386: Add AVX512BMM bitreverse lowering [PR128372] Use vbitrevb for scalar bitreverse when AVX512BMM and AVX512VL are available, while retaining GFNI as the fallback without AVX512VL. The vector bitreverse optab has also been added; vectorizer support will be addressed separately. gcc/ChangeLog: PR target/128372 * config/i386/i386-expand.cc (ix86_expand_bitreverse): Use vbitrevb only when AVX512BMM and AVX512VL are available; retain GFNI otherwise. * config/i386/i386-protos.h (ix86_expand_gfni_bitreverse): Rename to ... (ix86_expand_bitreverse): ... this. * config/i386/i386.md (bitreverse<mode>2): Require AVX512VL for BMM. * config/i386/sse.md (bitreverse<mode>2): New expander for VI1_AVX512VL. gcc/testsuite/ChangeLog: PR target/128372 * gcc.target/i386/avx512bmm-bitreverse-1.c: Test BMM scalar lowering. * gcc.target/i386/gfni-bitreverse-scalar.c: Test the GFNI-only path. Co-authored-by: Venkataramanan Kumar <[email protected]> Signed-off-by: Sarvesh Chandra <[email protected]>
