[PATCH] D135937: [X86] Support -march=meteorlake
RKSimon added inline comments. Comment at: llvm/lib/Target/X86/X86.td:1424 +def : ProcModel<"meteorlake", SLMModel, ProcessorFeatures.ADLFeatures, +ProcessorFeatures.TRMTuning>; This should be with the alderlake/raptorlake defs below (and use ADL model/features/tuning) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135937/new/ https://reviews.llvm.org/D135937 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D135937: [X86] Support -march=meteorlake
RKSimon added a comment. Please add this to llvm-project\llvm\test\CodeGen\X86\cpus-intel.ll Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135937/new/ https://reviews.llvm.org/D135937 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D135937: [X86] Support -march=meteorlake
FreddyYe updated this revision to Diff 468387. FreddyYe added a comment. Merge raptorlake patch and address comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135937/new/ https://reviews.llvm.org/D135937 Files: clang/docs/ReleaseNotes.rst clang/lib/Basic/Targets/X86.cpp clang/test/CodeGen/attr-target-mv.c clang/test/CodeGen/target-builtin-noerror.c clang/test/Driver/x86-march.c clang/test/Misc/target-invalid-cpu-note.c clang/test/Preprocessor/predefined-arch-macros.c compiler-rt/lib/builtins/cpu_model.c llvm/docs/ReleaseNotes.rst llvm/include/llvm/Support/X86TargetParser.def llvm/include/llvm/Support/X86TargetParser.h llvm/lib/Support/Host.cpp llvm/lib/Support/X86TargetParser.cpp llvm/lib/Target/X86/X86.td llvm/test/CodeGen/X86/cpus-intel.ll Index: llvm/test/CodeGen/X86/cpus-intel.ll === --- llvm/test/CodeGen/X86/cpus-intel.ll +++ llvm/test/CodeGen/X86/cpus-intel.ll @@ -17,6 +17,8 @@ ; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=yonah 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=prescott 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=lakemont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty +; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=raptorlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty +; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=meteorlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=nocona 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=core2 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty @@ -52,6 +54,8 @@ ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=tremont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=knl 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=knm 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty +; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=raptorlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty +; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=meteorlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty define void @foo() { ret void Index: llvm/lib/Target/X86/X86.td === --- llvm/lib/Target/X86/X86.td +++ llvm/lib/Target/X86/X86.td @@ -1481,6 +1481,10 @@ ProcessorFeatures.SPRFeatures, ProcessorFeatures.SPRTuning>; def : ProcModel<"alderlake", AlderlakePModel, ProcessorFeatures.ADLFeatures, ProcessorFeatures.ADLTuning>; +def : ProcModel<"raptorlake", AlderlakePModel, +ProcessorFeatures.ADLFeatures, ProcessorFeatures.ADLTuning>; +def : ProcModel<"meteorlake", AlderlakePModel, +ProcessorFeatures.ADLFeatures, ProcessorFeatures.ADLTuning>; // AMD CPUs. Index: llvm/lib/Support/X86TargetParser.cpp === --- llvm/lib/Support/X86TargetParser.cpp +++ llvm/lib/Support/X86TargetParser.cpp @@ -370,6 +370,10 @@ { {"sapphirerapids"}, CK_SapphireRapids, FEATURE_AVX512BF16, FeaturesSapphireRapids }, // Alderlake microarchitecture based processors. { {"alderlake"}, CK_Alderlake, FEATURE_AVX2, FeaturesAlderlake }, + // Raptorlake microarchitecture based processors. + { {"raptorlake"}, CK_Raptorlake, FEATURE_AVX2, FeaturesAlderlake }, + // Meteorlake microarchitecture based processors. + { {"meteorlake"}, CK_Meteorlake, FEATURE_AVX2, FeaturesAlderlake }, // Knights Landing processor. { {"knl"}, CK_KNL, FEATURE_AVX512F, FeaturesKNL }, // Knights Mill processor. Index: llvm/lib/Support/Host.cpp === --- llvm/lib/Support/Host.cpp +++ llvm/lib/Support/Host.cpp @@ -820,6 +820,21 @@ *Subtype = X86::INTEL_COREI7_ALDERLAKE; break; +// Raptorlake: +case 0xb7: + CPU = "raptorlake"; + *Type = X86::INTEL_COREI7; + *Subtype = X86::INTEL_COREI7_RAPTORLAKE; + break; + +// Meteorlake: +case 0xb5: +case 0xaa: +case 0xac: + CPU = "meteorlake"; + *Type = X86::INTEL_COREI7; + *Subtype = X86::INTEL_COREI7_METEORLAKE; + // Icelake Xeon: case 0x6a: case 0x6c: Index: llvm/include/llvm/Support/X86TargetParser.h === --- llvm/inclu
[PATCH] D135937: [X86] Support -march=meteorlake
FreddyYe marked 3 inline comments as done. FreddyYe added a comment. THX for review! Gcc is also recently reviewing related patches. So to align with the compiler-rt and libgcc, let's wait for their land first. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135937/new/ https://reviews.llvm.org/D135937 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D135937: [X86] Support -march=meteorlake
RKSimon added a comment. Please can you update the summary now that raptorlake + meteorlake are in the same patch? Comment at: clang/test/Preprocessor/predefined-arch-macros.c:2233 +// RUN: %clang -march=raptorlake -m32 -E -dM %s -o - 2>&1 \ +// RUN: -target i386-unknown-linux \ (pedantic) Probably better to put these after the alderlake tests so its easier to find? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135937/new/ https://reviews.llvm.org/D135937 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D135937: [X86] Support -march=meteorlake
FreddyYe created this revision. Herald added subscribers: Enna1, pengfei, hiraditya. Herald added a project: All. FreddyYe requested review of this revision. Herald added projects: clang, Sanitizers, LLVM. Herald added subscribers: llvm-commits, Sanitizers, cfe-commits. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D135937 Files: clang/lib/Basic/Targets/X86.cpp clang/test/CodeGen/attr-target-mv.c clang/test/CodeGen/target-builtin-noerror.c clang/test/Driver/x86-march.c clang/test/Misc/target-invalid-cpu-note.c clang/test/Preprocessor/predefined-arch-macros.c compiler-rt/lib/builtins/cpu_model.c llvm/include/llvm/Support/X86TargetParser.def llvm/include/llvm/Support/X86TargetParser.h llvm/lib/Support/Host.cpp llvm/lib/Support/X86TargetParser.cpp llvm/lib/Target/X86/X86.td llvm/test/CodeGen/X86/cpus-intel.ll Index: llvm/test/CodeGen/X86/cpus-intel.ll === --- llvm/test/CodeGen/X86/cpus-intel.ll +++ llvm/test/CodeGen/X86/cpus-intel.ll @@ -17,6 +17,7 @@ ; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=yonah 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=prescott 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=lakemont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty +; RUN: llc < %s -o /dev/null -mtriple=i686-unknown-unknown -mcpu=meteorlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=nocona 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=core2 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty @@ -52,6 +53,7 @@ ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=tremont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=knl 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=knm 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty +; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=meteorlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty define void @foo() { ret void Index: llvm/lib/Target/X86/X86.td === --- llvm/lib/Target/X86/X86.td +++ llvm/lib/Target/X86/X86.td @@ -1420,6 +1420,8 @@ ProcessorFeatures.GLPTuning>; def : ProcModel<"tremont", SLMModel, ProcessorFeatures.TRMFeatures, ProcessorFeatures.TRMTuning>; +def : ProcModel<"meteorlake", SLMModel, ProcessorFeatures.ADLFeatures, +ProcessorFeatures.TRMTuning>; // "Arrandale" along with corei3 and corei5 foreach P = ["nehalem", "corei7"] in { Index: llvm/lib/Support/X86TargetParser.cpp === --- llvm/lib/Support/X86TargetParser.cpp +++ llvm/lib/Support/X86TargetParser.cpp @@ -370,6 +370,8 @@ { {"sapphirerapids"}, CK_SapphireRapids, FEATURE_AVX512BF16, FeaturesSapphireRapids }, // Alderlake microarchitecture based processors. { {"alderlake"}, CK_Alderlake, FEATURE_AVX2, FeaturesAlderlake }, + // Meteorlake microarchitecture based processors. + { {"meteorlake"}, CK_Meteorlake, FEATURE_AVX2, FeaturesAlderlake }, // Knights Landing processor. { {"knl"}, CK_KNL, FEATURE_AVX512F, FeaturesKNL }, // Knights Mill processor. Index: llvm/lib/Support/Host.cpp === --- llvm/lib/Support/Host.cpp +++ llvm/lib/Support/Host.cpp @@ -820,6 +820,14 @@ *Subtype = X86::INTEL_COREI7_ALDERLAKE; break; +// Meteorlake: +case 0xb5: +case 0xaa: +case 0xac: + CPU = "meteorlake"; + *Type = X86::INTEL_COREI7; + *Subtype = X86::INTEL_COREI7_METEORLAKE; + break; // Icelake Xeon: case 0x6a: case 0x6c: Index: llvm/include/llvm/Support/X86TargetParser.h === --- llvm/include/llvm/Support/X86TargetParser.h +++ llvm/include/llvm/Support/X86TargetParser.h @@ -104,6 +104,7 @@ CK_Tigerlake, CK_SapphireRapids, CK_Alderlake, + CK_Meteorlake, CK_KNL, CK_KNM, CK_Lakemont, Index: llvm/include/llvm/Support/X86TargetParser.def === --- llvm/include/llvm/Support/X86TargetParser.def +++ llvm/include/llvm/Support/X86TargetParser.def @@ -89,6 +89,7 @@ X86_CPU_SUBTYPE(INTEL_COREI7_ALDERLAKE, "alderlake") X86_CPU_SUBTYPE(AMDFAM19H_ZNVER3,"znver3") X86_CPU_SUBTYPE(INTEL_COREI7_ROCKETLAKE, "rocketlake") +X86_CPU_S
[PATCH] D135937: [X86] Support -march=meteorlake
craig.topper added inline comments. Comment at: clang/test/CodeGen/target-builtin-noerror.c:129 (void)__builtin_cpu_is("tremont"); + (void)__builtin_cpu_is("meteorlake"); (void)__builtin_cpu_is("westmere"); I think this list was once in alphabetical order Comment at: compiler-rt/lib/builtins/cpu_model.c:110 INTEL_COREI7_ROCKETLAKE, + INTEL_COREI7_METEORLAKE, CPU_SUBTYPE_MAX The raptorlake patch also puts a constant here. What is the correct order? Can you please rebase one patch on top of the other or merge them into a single patch. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135937/new/ https://reviews.llvm.org/D135937 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D135937: [X86] Support -march=meteorlake
craig.topper added a comment. Release notes? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135937/new/ https://reviews.llvm.org/D135937 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits