On 11/11/20 6:54 PM, Hongyu Wang via Gcc-patches wrote:
> Hi,
>
> According to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97770, x86
> backend need popcount<mode>2 expander so __builtin_popcount could be
> auto vectorized with AVX512BITALG/AVX512VPOPCNTDQ targets.
>
> For DImode the middle-end vectorizer could not generate expected code,
> and for QI/HImode there is no corresponding IFN, xfails are added for
> these tests.
>
> Bootstrap/regression test for x86 backend is OK.
>
> OK for master?
>
> gcc/ChangeLog
>
>     PR target/97770
>     * gcc/config/i386/sse.md (popcount<mode>2): New expander
>     for SI/DI vector modes.
>     (popcount<mode>2): Likewise for QI/HI vector modes.
>
> gcc/testsuite/ChangeLog
>
>     PR target/97770
>     * gcc.target/i386/avx512bitalg-pr97770-1.c: New test.
>     * gcc.target/i386/avx512vpopcntdq-pr97770-1.c: Likewise.
>     * gcc.target/i386/avx512vpopcntdq-pr97770-2.c: Likewise.
>     * gcc.target/i386/avx512vpopcntdqvl-pr97770-1.c: Likewise.
>
>
> 0001-Add-popcount-mode-expander-to-enable-popcount-auto-v.patch
>
OK.  Presumably once this is applied Richi is going to  look at the
higher level issues in the vectorizer which inhibit creating the HI/QI
vector popcounts?

Jeff

Reply via email to