[Bug middle-end/105253] __popcountdi2 calls generated in kernel code with gcc12

crazylht at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Apr 15 07:48:25 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105253

Hongtao.liu <crazylht at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |crazylht at gmail dot com

--- Comment #16 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Jakub Jelinek from comment #11)
> This is a regression (as in we don't want such a call in that case for
> performance reasons and in the past we didn't emit it).

Yes, just note it regresses 531.deepsjeng_r by 2% for -O2 -march=x86-64 since
below function.

typedef unsigned long long BITBOARD;
int PopCount (BITBOARD b) {
    int c = 0;

    while (b) {
        b &= b - 1;
        c++;
    }

    return c;
}

popcnt is supported by x86-64_v2.


More information about the Gcc-bugs mailing list