invoke.texi: Clarify -march=lujiazui
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gcc_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-arm |
success
|
Testing passed
|
Commit Message
Hi!
Yesterday I was searching which exact CPUs are affected by the PR114576
wrong-code issue and went from the PTA_* bitmasks in GCC, so arrived
at the goldmont, goldmont-plus, tremont and lujiazui CPUs (as -march=
cases which do enable -maes and don't enable -mavx).
But when double-checking that against the invoke.texi documentation,
that was true for the first 3, but lujiazui said it supported AVX.
I was really confused by that, until I found the
https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604407.html
explanation. So, seems the CPUs do have AVX and F16C but -march=lujiazui
doesn't enable those and even activelly attempts to filter those out from
the announced CPUID features, in glibc as well as e.g. in libgcc.
Thus, I think we should document what actually happens, otherwise
users could assume that
gcc -march=lujiazui predefines __AVX__ and __F16C__, which it doesn't.
Tested on x86_64, ok for trunk?
2024-04-11 Jakub Jelinek <jakub@redhat.com>
* doc/invoke.texi (lujiazui): Clarify that while the CPUs do support
AVX and F16C, -march=lujiazui actually doesn't enable those.
Jakub
Comments
Hi Jakub:
I think the modified lujiazui description is what actually
happens,thanks.
BR
Mayshao
>
>
> [这封邮件来自外部发件人 谨防风险]
>
> Hi!
>
> Yesterday I was searching which exact CPUs are affected by the PR114576
> wrong-code issue and went from the PTA_* bitmasks in GCC, so arrived
> at the goldmont, goldmont-plus, tremont and lujiazui CPUs (as -march=
> cases which do enable -maes and don't enable -mavx).
> But when double-checking that against the invoke.texi documentation,
> that was true for the first 3, but lujiazui said it supported AVX.
> I was really confused by that, until I found the
> https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604407.html
> explanation. So, seems the CPUs do have AVX and F16C but -march=lujiazui
> doesn't enable those and even activelly attempts to filter those out from
> the announced CPUID features, in glibc as well as e.g. in libgcc.
>
> Thus, I think we should document what actually happens, otherwise
> users could assume that
> gcc -march=lujiazui predefines __AVX__ and __F16C__, which it doesn't.
>
> Tested on x86_64, ok for trunk?
>
> 2024-04-11 Jakub Jelinek <jakub@redhat.com>
>
> * doc/invoke.texi (lujiazui): Clarify that while the CPUs do support
> AVX and F16C, -march=lujiazui actually doesn't enable those.
>
> --- gcc/doc/invoke.texi.jj 2024-04-11 09:26:01.156865894 +0200
> +++ gcc/doc/invoke.texi 2024-04-11 10:47:53.457582922 +0200
> @@ -34696,8 +34696,10 @@ instruction set support.
>
> @item lujiazui
> ZHAOXIN lujiazui CPU with x86-64, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
> -SSE4.2, AVX, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, CX16,
> -ABM, BMI, BMI2, F16C, FXSR, RDSEED instruction set support.
> +SSE4.2, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, CX16,
> +ABM, BMI, BMI2, FXSR, RDSEED instruction set support. While the CPUs
> +do support AVX and F16C, these aren't enabled by @code{-march=lujiazui}
> +for performance reasons.
>
> @item yongfeng
> ZHAOXIN yongfeng CPU with x86-64, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
>
> Jakub
>
@@ -34696,8 +34696,10 @@ instruction set support.
@item lujiazui
ZHAOXIN lujiazui CPU with x86-64, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
-SSE4.2, AVX, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, CX16,
-ABM, BMI, BMI2, F16C, FXSR, RDSEED instruction set support.
+SSE4.2, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, CX16,
+ABM, BMI, BMI2, FXSR, RDSEED instruction set support. While the CPUs
+do support AVX and F16C, these aren't enabled by @code{-march=lujiazui}
+for performance reasons.
@item yongfeng
ZHAOXIN yongfeng CPU with x86-64, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,