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

            Bug ID: 128372
           Summary: [X86_64] Use vbitrevb for scalar bit reverse when
                    AVX512BMM and AVX512VL available
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vekumar at gcc dot gnu.org
  Target Milestone: ---

For the below test case 

unsigned char br8 (unsigned char x)
{
  return __builtin_bitreverse8 (x);
}

unsigned short br16 (unsigned short x)
{
  return __builtin_bitreverse16 (x);
}

unsigned int br32 (unsigned int x)
{
  return __builtin_bitreverse32 (x);
}

unsigned long long br64 (unsigned long long x)
{
  return __builtin_bitreverse64 (x);
}

with -mavx512bmm -mavx512vl prefer generating vbitrevb than vgf2p8affineqb when
doing bit reversal.


Ref: https://godbolt.org/z/Gnz7xoP7c

Reply via email to