Index: lib/Support/Host.cpp =================================================================== --- lib/Support/Host.cpp +++ lib/Support/Host.cpp @@ -339,6 +339,7 @@ AMD_BTVER1, AMD_BTVER2, AMDFAM17H, + INTEL_KNM, // Entries below this are not in libgcc/compiler-rt. INTEL_i386, INTEL_i486, @@ -759,6 +760,9 @@ case 0x57: *Type = INTEL_KNL; // knl break; + case 0x85: + *Type = INTEL_KNM; // knm + break; default: // Unknown family 6 CPU, try to guess. if (Features & (1 << FEATURE_AVX512F)) { @@ -1167,6 +1171,8 @@ return "goldmont"; case INTEL_KNL: return "knl"; + case INTEL_KNM: + return "knm"; case INTEL_X86_64: return "x86-64"; case INTEL_NOCONA: Index: lib/Target/X86/X86.td =================================================================== --- lib/Target/X86/X86.td +++ lib/Target/X86/X86.td @@ -629,6 +629,7 @@ FeatureFastPartialYMMorZMMWrite ]>; def : KnightsLandingProc<"knl">; +def : KnightsLandingProc<"knm">; // TODO implement this completely. def SKXFeatures : ProcessorFeatures&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=silvermont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=goldmont 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=k8 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=opteron 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=athlon64 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty