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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2017-02-17
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 40761
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40761&action=edit
gcc7-pr79568.patch

Untested fix.

The issue is as the comment in def_builtin says, OPTION_MASK_ISA_AVX512VL and
OPTION_MASK_ISA_64BIT behave specially in the builtin mask bitmask, while for
others (not 100% sure) oring two isa bits together means enable on either this
or that, for avx512vl and/or m64 in the bitmask it means honor these and any of
the other bits.  The full list of builtin masks with more than one bit is:
OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL
OPTION_MASK_ISA_AVX512CD | OPTION_MASK_ISA_AVX512VL
OPTION_MASK_ISA_AVX512DQ | OPTION_MASK_ISA_AVX512VL
OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_AVX512IFMA | OPTION_MASK_ISA_AVX512VL
OPTION_MASK_ISA_AVX512VBMI | OPTION_MASK_ISA_AVX512VL
OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512CD
OPTION_MASK_ISA_BMI2 | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_BMI | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_FMA | OPTION_MASK_ISA_FMA4
OPTION_MASK_ISA_FSGSBASE | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_FXSR | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_LWP | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_LZCNT | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_SSE2 | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_SSE4_2 | OPTION_MASK_ISA_CRC32
OPTION_MASK_ISA_SSE4_2 | OPTION_MASK_ISA_CRC32 | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_3DNOW_A
OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_TBM | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_XSAVEC | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_XSAVE | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_XSAVEOPT | OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_XSAVES | OPTION_MASK_ISA_64BIT
out of these, only
OPTION_MASK_ISA_FMA | OPTION_MASK_ISA_FMA4
OPTION_MASK_ISA_SSE4_2 | OPTION_MASK_ISA_CRC32
OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_3DNOW_A
are ones if I filter out the 2 special bits.  I believe at least the last one
really is supposed to be either -msse or -m3dnowa, no idea about the other two.

Reply via email to