Issue |
136209
|
Summary |
[X86] Target feature implication mismatch with GCC
|
Labels |
new issue
|
Assignees |
|
Reporter |
sayantn
|
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](https://github.com/llvm/llvm-project/blob/1756fcb8b0192281db641d2038c03b96015e29d4/llvm/lib/Target/X86/X86.td#L118)).
Also for `avx512fp16`, GCC implies only `avx512bw`, where LLVM also implies `avx512dq` and `avx512vl` (see [here](https://github.com/llvm/llvm-project/blob/1756fcb8b0192281db641d2038c03b96015e29d4/llvm/lib/Target/X86/X86.td#L174)).
`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
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs