//===--- X86Target.def - X86 Feature/Processor Database ---------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file defines the X86-specific Features and Processors, as used by
// the X86 Targets.
//
//===----------------------------------------------------------------------===//


#ifndef PROC
#define PROC(ENUM, STRING, IS64BIT)
#endif

#ifndef PROC_ALIAS
#define PROC_ALIAS(ENUM, ALIAS)
#endif

#define PROC_64_BIT true
#define PROC_32_BIT false

/// \name i386
/// i386-generation processors.
//@{
PROC(i386, "i386", PROC_32_BIT)
//@}

/// \name i486
/// i486-generation processors.
//@{
PROC(i486, "i486", PROC_32_BIT)
PROC(WinChipC6, "winchip-c6", PROC_32_BIT)
PROC(WinChip2, "winchip2", PROC_32_BIT)
PROC(C3, "c3", PROC_32_BIT)
//@}

/// \name i586
/// i586-generation processors, P5 microarchitecture based.
//@{
PROC(i586, "i586", PROC_32_BIT)
PROC(Pentium, "pentium", PROC_32_BIT)
PROC(PentiumMMX, "pentium-mmx", PROC_32_BIT)
//@}

/// \name i686
/// i686-generation processors, P6 / Pentium M microarchitecture based.
//@{
PROC(PentiumPro, "pentiumpro", PROC_32_BIT)
PROC_ALIAS(PentiumPro, "i686")
PROC(Pentium2, "pentium2", PROC_32_BIT)
PROC(Pentium3, "pentium3", PROC_32_BIT)
PROC_ALIAS(Pentium3, "pentium3m")
PROC(PentiumM, "pentium-m", PROC_32_BIT)
PROC(C3_2, "c3-2", PROC_32_BIT)

/// This enumerator is a bit odd, as GCC no longer accepts -march=yonah.
/// Clang however has some logic to support this.
// FIXME: Warn, deprecate, and potentially remove this.
PROC(Yonah, "yonah", PROC_32_BIT)
//@}

/// \name Netburst
/// Netburst microarchitecture based processors.
//@{
PROC(Pentium4, "pentium4", PROC_32_BIT)
PROC_ALIAS(Pentium4, "pentium4m")

PROC(Prescott, "prescott", PROC_32_BIT)
PROC(Nocona, "nocona", PROC_64_BIT)
//@}

/// \name Core
/// Core microarchitecture based processors.
//@{
PROC(Core2, "core2", PROC_64_BIT)

/// This enumerator, like Yonah, is a bit odd. It is another
/// codename which GCC no longer accepts as an option to -march, but Clang
/// has some logic for recognizing it.
// FIXME: Warn, deprecate, and potentially remove this.
PROC(Penryn, "penryn", PROC_64_BIT)
//@}

/// \name Atom
/// Atom processors
//@{
PROC(Bonnell, "bonnell", PROC_64_BIT)
PROC_ALIAS(Bonnell, "atom")

PROC(Silvermont, "silvermont", PROC_64_BIT)
PROC_ALIAS(Silvermont, "slm")

PROC(Goldmont, "goldmont", PROC_64_BIT)
//@}

/// \name Nehalem
/// Nehalem microarchitecture based processors.
PROC(Nehalem, "nehalem", PROC_64_BIT)
PROC_ALIAS(Nehalem, "corei7")

/// \name Westmere
/// Westmere microarchitecture based processors.
PROC(Westmere, "westmere", PROC_64_BIT)

/// \name Sandy Bridge
/// Sandy Bridge microarchitecture based processors.
PROC(SandyBridge, "sandybridge", PROC_64_BIT)
PROC_ALIAS(SandyBridge, "corei7-avx")

/// \name Ivy Bridge
/// Ivy Bridge microarchitecture based processors.
PROC(IvyBridge, "ivybridge", PROC_64_BIT)
PROC_ALIAS(IvyBridge, "core-avx-i")

/// \name Haswell
/// Haswell microarchitecture based processors.
PROC(Haswell, "haswell", PROC_64_BIT)
PROC_ALIAS(Haswell, "core-avx2")

/// \name Broadwell
/// Broadwell microarchitecture based processors.
PROC(Broadwell, "broadwell", PROC_64_BIT)

/// \name Skylake Client
/// Skylake client microarchitecture based processors.
PROC(SkylakeClient, "skylake", PROC_64_BIT)

/// \name Skylake Server
/// Skylake server microarchitecture based processors.
PROC(SkylakeServer, "skylake-avx512", PROC_64_BIT)
PROC_ALIAS(SkylakeServer, "skx")

/// \name Cannonlake Client
/// Cannonlake client microarchitecture based processors.
PROC(Cannonlake, "cannonlake", PROC_64_BIT)

/// \name Icelake Client
/// Icelake client microarchitecture based processors.
PROC(Icelake, "icelake", PROC_64_BIT)

/// \name Knights Landing
/// Knights Landing processor.
PROC(KNL, "knl", PROC_64_BIT)

/// \name Knights Mill
/// Knights Mill processor.
PROC(KNM, "knm", PROC_64_BIT)

/// \name Lakemont
/// Lakemont microarchitecture based processors.
PROC(Lakemont, "lakemont", PROC_32_BIT)

/// \name K6
/// K6 architecture processors.
//@{
PROC(K6, "k6", PROC_32_BIT)
PROC(K6_2, "k6-2", PROC_32_BIT)
PROC(K6_3, "k6-3", PROC_32_BIT)
//@}

/// \name K7
/// K7 architecture processors.
//@{
PROC(Athlon, "athlon", PROC_32_BIT)
PROC_ALIAS(Athlon, "athlon-tbird")

PROC(AthlonXP, "athlon-xp", PROC_32_BIT)
PROC_ALIAS(AthlonXP, "athlon-mp")
PROC_ALIAS(AthlonXP, "athlon-4")
//@}

/// \name K8
/// K8 architecture processors.
//@{
PROC(K8, "k8", PROC_64_BIT)
PROC_ALIAS(K8, "athlon64")
PROC_ALIAS(K8, "athlon-fx")
PROC_ALIAS(K8, "opteron")

PROC(K8SSE3, "k8-sse3", PROC_64_BIT)
PROC_ALIAS(K8SSE3, "athlon64-sse3")
PROC_ALIAS(K8SSE3, "opteron-sse3")

PROC(AMDFAM10, "amdfam10", PROC_64_BIT)
PROC_ALIAS(AMDFAM10, "barcelona")
//@}

/// \name Bobcat
/// Bobcat architecture processors.
//@{
PROC(BTVER1, "btver1", PROC_64_BIT)
PROC(BTVER2, "btver2", PROC_64_BIT)
//@}

/// \name Bulldozer
/// Bulldozer architecture processors.
//@{
PROC(BDVER1, "bdver1", PROC_64_BIT)
PROC(BDVER2, "bdver2", PROC_64_BIT)
PROC(BDVER3, "bdver3", PROC_64_BIT)
PROC(BDVER4, "bdver4", PROC_64_BIT)
//@}

/// \name zen
/// Zen architecture processors.
//@{
PROC(ZNVER1, "znver1", PROC_64_BIT)
//@}

/// This specification is deprecated and will be removed in the future.
/// Users should prefer K8.
// FIXME: Warn on this when the CPU is set to it.
//@{
PROC(x86_64, "x86-64", PROC_64_BIT)
//@}

/// \name Geode
/// Geode processors.
//@{
PROC(Geode, "geode", PROC_32_BIT)
//@}


#undef PROC_64_BIT
#undef PROC_32_BIT
#undef PROC
#undef PROC_ALIAS
