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

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to igor.v.tsimbalist from comment #6)
> I haven't look into all the cases but I think there are similar cases with
> OPTION_MASK_ISA_AVX512F and OPTION_MASK_ISA_AVX512VL.

Which ones do you mean?

With my patch, the isa_flags OPTION_MASK_ISA_* values are:
OPTION_MASK_ISA_3DNOW
OPTION_MASK_ISA_3DNOW_A
OPTION_MASK_ISA_64BIT
OPTION_MASK_ISA_ABM
OPTION_MASK_ISA_ADX
OPTION_MASK_ISA_AES
OPTION_MASK_ISA_AVX
OPTION_MASK_ISA_AVX2
OPTION_MASK_ISA_AVX512BW
OPTION_MASK_ISA_AVX512CD
OPTION_MASK_ISA_AVX512DQ
OPTION_MASK_ISA_AVX512ER
OPTION_MASK_ISA_AVX512F
OPTION_MASK_ISA_AVX512IFMA
OPTION_MASK_ISA_AVX512PF
OPTION_MASK_ISA_AVX512VBMI
OPTION_MASK_ISA_AVX512VBMI2
OPTION_MASK_ISA_AVX512VL
OPTION_MASK_ISA_BMI
OPTION_MASK_ISA_BMI2
OPTION_MASK_ISA_CLFLUSHOPT
OPTION_MASK_ISA_CLWB
OPTION_MASK_ISA_CRC32
OPTION_MASK_ISA_F16C
OPTION_MASK_ISA_FMA
OPTION_MASK_ISA_FMA4
OPTION_MASK_ISA_FSGSBASE
OPTION_MASK_ISA_FXSR
OPTION_MASK_ISA_GFNI
OPTION_MASK_ISA_LWP
OPTION_MASK_ISA_LZCNT
OPTION_MASK_ISA_MMX
OPTION_MASK_ISA_PCLMUL
OPTION_MASK_ISA_PKU
OPTION_MASK_ISA_POPCNT
OPTION_MASK_ISA_PREFETCHWT1
OPTION_MASK_ISA_PRFCHW
OPTION_MASK_ISA_RDRND
OPTION_MASK_ISA_RDSEED
OPTION_MASK_ISA_RTM
OPTION_MASK_ISA_SAHF
OPTION_MASK_ISA_SHA
OPTION_MASK_ISA_SHSTK
OPTION_MASK_ISA_SSE
OPTION_MASK_ISA_SSE2
OPTION_MASK_ISA_SSE3
OPTION_MASK_ISA_SSE4_1
OPTION_MASK_ISA_SSE4_2
OPTION_MASK_ISA_SSE4A
OPTION_MASK_ISA_SSSE3
OPTION_MASK_ISA_TBM
OPTION_MASK_ISA_VPCLMULQDQ
OPTION_MASK_ISA_XOP
OPTION_MASK_ISA_XSAVE
OPTION_MASK_ISA_XSAVEC
OPTION_MASK_ISA_XSAVEOPT
OPTION_MASK_ISA_XSAVES

and isa_flags2 values are:

OPTION_MASK_ISA_AVX5124FMAPS
OPTION_MASK_ISA_AVX5124VNNIW
OPTION_MASK_ISA_AVX512VNNI
OPTION_MASK_ISA_AVX512VPOPCNTDQ
OPTION_MASK_ISA_CLZERO
OPTION_MASK_ISA_CX16
OPTION_MASK_ISA_HLE
OPTION_MASK_ISA_IBT
OPTION_MASK_ISA_MOVBE
OPTION_MASK_ISA_MPX
OPTION_MASK_ISA_MWAITX
OPTION_MASK_ISA_RDPID
OPTION_MASK_ISA_SGX
OPTION_MASK_ISA_VAES

If the first list above is in /tmp/J1 and second list in /tmp/J2, then:

$ for i in `cat /tmp/J2`; do grep 'isa_flags[^2].*'${i}'_SET' i386-common.c; \
done
$ for i in `cat /tmp/J2`; do grep 'isa_flags[^2].*'${i}'_UNSET' i386-common.c;
\
done
$ for i in `cat /tmp/J1`; do grep 'isa_flags2.*'${i}'_SET' i386-common.c; done
          opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA_AVX512F_SET;
          opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA_AVX512F_SET;
$ for i in `cat /tmp/J1`; do grep 'isa_flags2.*'${i}'_UNSET' i386-common.c;
done

so it shows the single case you've found.

Reply via email to