Closed
Description
There is a mismatch between which other features avx512f
and avx512fp16
imply.
For avx512f
, GCC implies only avx2
, where LLVM also implies fma
and f16c
(see here).
Also for avx512fp16
, GCC implies only avx512bw
, where LLVM also implies avx512dq
and avx512vl
(see here).
gcc -mavx512f -Q --help=target | grep enabled
-m128bit-long-double [enabled]
-m64 [enabled]
-m80387 [enabled]
-malign-stringops [enabled]
-mavx [enabled]
-mavx2 [enabled]
-mavx512f [enabled]
-mcrc32 [enabled]
-mdirect-extern-access [enabled]
-mevex512 [enabled]
-mfancy-math-387 [enabled]
-mfp-ret-in-387 [enabled]
-mfxsr [enabled]
-mglibc [enabled]
-mhard-float [enabled]
-mieee-fp [enabled]
-mlong-double-80 [enabled]
-mmmx [enabled]
-mmwait [enabled]
-mpartial-vector-fp-math [enabled]
-mpopcnt [enabled]
-mpush-args [enabled]
-mred-zone [enabled]
-msse [enabled]
-msse2 [enabled]
-msse3 [enabled]
-msse4 [enabled]
-msse4.1 [enabled]
-msse4.2 [enabled]
-mssse3 [enabled]
-mstv [enabled]
-mtls-direct-seg-refs [enabled]
-mxsave [enabled]
gcc -mavx512fp16 -Q --help=target | grep enabled
-m128bit-long-double [enabled]
-m64 [enabled]
-m80387 [enabled]
-malign-stringops [enabled]
-mavx [enabled]
-mavx2 [enabled]
-mavx512bw [enabled]
-mavx512f [enabled]
-mavx512fp16 [enabled]
-mcrc32 [enabled]
-mdirect-extern-access [enabled]
-mevex512 [enabled]
-mfancy-math-387 [enabled]
-mfp-ret-in-387 [enabled]
-mfxsr [enabled]
-mglibc [enabled]
-mhard-float [enabled]
-mieee-fp [enabled]
-mlong-double-80 [enabled]
-mmmx [enabled]
-mmwait [enabled]
-mpartial-vector-fp-math [enabled]
-mpopcnt [enabled]
-mpush-args [enabled]
-mred-zone [enabled]
-msse [enabled]
-msse2 [enabled]
-msse3 [enabled]
-msse4 [enabled]
-msse4.1 [enabled]
-msse4.2 [enabled]
-mssse3 [enabled]
-mstv [enabled]
-mtls-direct-seg-refs [enabled]
-mxsave [enabled]
gcc --version
gcc (GCC) 14.2.1 20250207
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I do not know what Intel specifies about implies features, but I believe this mismatch needs to be corrected.
related: rust-lang/rust#138940
related: rust-lang/rust#111137