From db41342444f4d54ee7ede9373720b70bb978e511 Mon Sep 17 00:00:00 2001 From: "Cui,Lili" Date: Wed, 9 Nov 2022 15:27:29 +0800 Subject: [PATCH] [SPR] Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS gcc/ChangeLog: * config/i386/driver-i386.cc (host_detect_local_cpu): Move sapphirerapids out of AVX512_VP2INTERSECT. * config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS * doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS url: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=11c72f20d4d7ba1862a257cef05dc3a5e84a276d --- ...VP2INTERSECT-from-PTA_SAPPHIRERAPIDS.patch | 83 +++++++++++++++++++ gcc-12.spec | 7 +- 2 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 0003-Remove-AVX512_VP2INTERSECT-from-PTA_SAPPHIRERAPIDS.patch diff --git a/0003-Remove-AVX512_VP2INTERSECT-from-PTA_SAPPHIRERAPIDS.patch b/0003-Remove-AVX512_VP2INTERSECT-from-PTA_SAPPHIRERAPIDS.patch new file mode 100644 index 0000000..42cabc2 --- /dev/null +++ b/0003-Remove-AVX512_VP2INTERSECT-from-PTA_SAPPHIRERAPIDS.patch @@ -0,0 +1,83 @@ +From 11c72f20d4d7ba1862a257cef05dc3a5e84a276d Mon Sep 17 00:00:00 2001 +From: "Cui,Lili" +Date: Thu, 29 Sep 2022 14:28:06 +0800 +Subject: [PATCH] Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS + +gcc/ChangeLog: + + * config/i386/driver-i386.cc (host_detect_local_cpu): + Move sapphirerapids out of AVX512_VP2INTERSECT. + * config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS + * doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS +--- + gcc/config/i386/driver-i386.cc | 13 +++++-------- + gcc/config/i386/i386.h | 7 +++---- + gcc/doc/invoke.texi | 8 ++++---- + 3 files changed, 12 insertions(+), 16 deletions(-) + +diff --git a/gcc/config/i386/driver-i386.cc b/gcc/config/i386/driver-i386.cc +index 3c702fdca33..ef567045c67 100644 +--- a/gcc/config/i386/driver-i386.cc ++++ b/gcc/config/i386/driver-i386.cc +@@ -589,15 +589,12 @@ const char *host_detect_local_cpu (int argc, const char **argv) + /* This is unknown family 0x6 CPU. */ + if (has_feature (FEATURE_AVX)) + { ++ /* Assume Tiger Lake */ + if (has_feature (FEATURE_AVX512VP2INTERSECT)) +- { +- if (has_feature (FEATURE_TSXLDTRK)) +- /* Assume Sapphire Rapids. */ +- cpu = "sapphirerapids"; +- else +- /* Assume Tiger Lake */ +- cpu = "tigerlake"; +- } ++ cpu = "tigerlake"; ++ /* Assume Sapphire Rapids. */ ++ else if (has_feature (FEATURE_TSXLDTRK)) ++ cpu = "sapphirerapids"; + /* Assume Cooper Lake */ + else if (has_feature (FEATURE_AVX512BF16)) + cpu = "cooperlake"; +diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h +index 900a3bc3673..372a2cff8fe 100644 +--- a/gcc/config/i386/i386.h ++++ b/gcc/config/i386/i386.h +@@ -2326,10 +2326,9 @@ constexpr wide_int_bitmask PTA_ICELAKE_SERVER = PTA_ICELAKE_CLIENT + constexpr wide_int_bitmask PTA_TIGERLAKE = PTA_ICELAKE_CLIENT | PTA_MOVDIRI + | PTA_MOVDIR64B | PTA_CLWB | PTA_AVX512VP2INTERSECT | PTA_KL | PTA_WIDEKL; + constexpr wide_int_bitmask PTA_SAPPHIRERAPIDS = PTA_ICELAKE_SERVER | PTA_MOVDIRI +- | PTA_MOVDIR64B | PTA_AVX512VP2INTERSECT | PTA_ENQCMD | PTA_CLDEMOTE +- | PTA_PTWRITE | PTA_WAITPKG | PTA_SERIALIZE | PTA_TSXLDTRK | PTA_AMX_TILE +- | PTA_AMX_INT8 | PTA_AMX_BF16 | PTA_UINTR | PTA_AVXVNNI | PTA_AVX512FP16 +- | PTA_AVX512BF16; ++ | PTA_MOVDIR64B | PTA_ENQCMD | PTA_CLDEMOTE | PTA_PTWRITE | PTA_WAITPKG ++ | PTA_SERIALIZE | PTA_TSXLDTRK | PTA_AMX_TILE | PTA_AMX_INT8 | PTA_AMX_BF16 ++ | PTA_UINTR | PTA_AVXVNNI | PTA_AVX512FP16 | PTA_AVX512BF16; + constexpr wide_int_bitmask PTA_KNL = PTA_BROADWELL | PTA_AVX512PF + | PTA_AVX512ER | PTA_AVX512F | PTA_AVX512CD | PTA_PREFETCHWT1; + constexpr wide_int_bitmask PTA_BONNELL = PTA_CORE2 | PTA_MOVBE; +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index 271c8bb8468..a9ecc4426a4 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -32057,11 +32057,11 @@ Intel sapphirerapids CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, + SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, + RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, + AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ, +-AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2 ++AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2, + VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG, WBNOINVD, CLWB, +-MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, +-SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16 +-and AVX512BF16 instruction set support. ++MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, ++UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16 and AVX512BF16 ++instruction set support. + + @item alderlake + Intel Alderlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, +-- +2.18.2 + diff --git a/gcc-12.spec b/gcc-12.spec index 3332b8f..2616d4a 100644 --- a/gcc-12.spec +++ b/gcc-12.spec @@ -84,7 +84,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: %{?scl_prefix}gcc Version: 12.2.1 -Release: 6 +Release: 7 # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD @@ -134,6 +134,7 @@ Provides: %{?scl_prefix}gcc(major) = %{gcc_major} Patch0: 0001-change-gcc-version.patch Patch1: 0002-i386-Add-syscall-to-enable-AMX-for-latest-kernels.patch +Patch2: 0003-Remove-AVX512_VP2INTERSECT-from-PTA_SAPPHIRERAPIDS.patch # On ARM EABI systems, we do want -gnueabi to be part of the @@ -593,6 +594,7 @@ not stable, so plugins must be rebuilt any time GCC is updated. %patch0 -p1 %patch1 -p1 +%patch2 -p1 echo 'openEuler %{version}-%{release}' > gcc/DEV-PHASE @@ -2649,6 +2651,9 @@ end %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Wed Nov 09 2022 Cui Lili 12.2.1-7 +- Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS + * Wed Nov 09 2022 Haochen Jiang 12.2.1-6 - i386: Add syscall to enable AMX for latest kernels