https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770
--- Comment #21 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>: https://gcc.gnu.org/g:e08a125b208e717f99caa991052537305ca75b6a commit r12-1707-ge08a125b208e717f99caa991052537305ca75b6a Author: liuhongt <hongtao....@intel.com> Date: Wed Jun 16 17:34:43 2021 +0800 Add vect_recog_popcount_pattern to handle mismatch between the vectorized popcount IFN and scalar popcount builtin. The patch remove those pro- and demotions when backend support direct optab. For i386: it enables vectorization for vpopcntb/vpopcntw and optimized for vpopcntq. gcc/ChangeLog: PR tree-optimization/97770 * tree-vect-patterns.c (vect_recog_popcount_pattern): New. (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern. gcc/testsuite/ChangeLog: PR tree-optimization/97770 * gcc.target/i386/avx512bitalg-pr97770-1.c: Remove xfail. * gcc.target/i386/avx512vpopcntdq-pr97770-1.c: Remove xfail.