Added Broadwell architecture
This commit is contained in:
22
ispc.cpp
22
ispc.cpp
@@ -191,6 +191,11 @@ typedef enum {
|
|||||||
// Haswell. Supports AVX 2.
|
// Haswell. Supports AVX 2.
|
||||||
CPU_Haswell,
|
CPU_Haswell,
|
||||||
|
|
||||||
|
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5) // LLVM 3.6+
|
||||||
|
// Broadwell. Supports AVX 2 + ADX/RDSEED/SMAP.
|
||||||
|
CPU_Broadwell,
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) // LLVM 3.4+
|
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) // LLVM 3.4+
|
||||||
// Late Atom-like design. Supports SSE 4.2 + POPCNT/LZCNT.
|
// Late Atom-like design. Supports SSE 4.2 + POPCNT/LZCNT.
|
||||||
CPU_Silvermont,
|
CPU_Silvermont,
|
||||||
@@ -266,6 +271,10 @@ public:
|
|||||||
names[CPU_Haswell].push_back("core-avx2");
|
names[CPU_Haswell].push_back("core-avx2");
|
||||||
names[CPU_Haswell].push_back("haswell");
|
names[CPU_Haswell].push_back("haswell");
|
||||||
|
|
||||||
|
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5) // LLVM 3.6+
|
||||||
|
names[CPU_Broadwell].push_back("broadwell");
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ISPC_ARM_ENABLED
|
#ifdef ISPC_ARM_ENABLED
|
||||||
names[CPU_CortexA15].push_back("cortex-a15");
|
names[CPU_CortexA15].push_back("cortex-a15");
|
||||||
|
|
||||||
@@ -283,11 +292,19 @@ public:
|
|||||||
compat[CPU_Silvermont] = Set(CPU_Generic, CPU_Bonnell, CPU_Penryn,
|
compat[CPU_Silvermont] = Set(CPU_Generic, CPU_Bonnell, CPU_Penryn,
|
||||||
CPU_Core2, CPU_Nehalem, CPU_Silvermont,
|
CPU_Core2, CPU_Nehalem, CPU_Silvermont,
|
||||||
CPU_None);
|
CPU_None);
|
||||||
|
#endif
|
||||||
|
#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) // LLVM 3.6+
|
||||||
|
#define CPU_Broadwell CPU_Haswell
|
||||||
|
#else
|
||||||
|
compat[CPU_Broadwell] = Set(CPU_Generic, CPU_Bonnell, CPU_Penryn,
|
||||||
|
CPU_Core2, CPU_Nehalem, CPU_Silvermont,
|
||||||
|
CPU_SandyBridge, CPU_IvyBridge,
|
||||||
|
CPU_Haswell, CPU_Broadwell, CPU_None);
|
||||||
#endif
|
#endif
|
||||||
compat[CPU_Haswell] = Set(CPU_Generic, CPU_Bonnell, CPU_Penryn,
|
compat[CPU_Haswell] = Set(CPU_Generic, CPU_Bonnell, CPU_Penryn,
|
||||||
CPU_Core2, CPU_Nehalem, CPU_Silvermont,
|
CPU_Core2, CPU_Nehalem, CPU_Silvermont,
|
||||||
CPU_SandyBridge, CPU_IvyBridge,
|
CPU_SandyBridge, CPU_IvyBridge,
|
||||||
CPU_Haswell, CPU_None);
|
CPU_Haswell, CPU_Broadwell, CPU_None);
|
||||||
compat[CPU_IvyBridge] = Set(CPU_Generic, CPU_Bonnell, CPU_Penryn,
|
compat[CPU_IvyBridge] = Set(CPU_Generic, CPU_Bonnell, CPU_Penryn,
|
||||||
CPU_Core2, CPU_Nehalem, CPU_Silvermont,
|
CPU_Core2, CPU_Nehalem, CPU_Silvermont,
|
||||||
CPU_SandyBridge, CPU_IvyBridge,
|
CPU_SandyBridge, CPU_IvyBridge,
|
||||||
@@ -429,6 +446,9 @@ Target::Target(const char *arch, const char *cpu, const char *isa, bool pic) :
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5)
|
||||||
|
case CPU_Broadwell:
|
||||||
|
#endif
|
||||||
case CPU_Haswell:
|
case CPU_Haswell:
|
||||||
isa = "avx2-i32x8";
|
isa = "avx2-i32x8";
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user