diff --git a/builtins.cpp b/builtins.cpp index 2ad10fe8..c719718a 100644 --- a/builtins.cpp +++ b/builtins.cpp @@ -1332,6 +1332,7 @@ DefineStdlib(SymbolTable *symbolTable, llvm::LLVMContext *ctx, llvm::Module *mod } break; } +#if ISPC_LLVM_VERSION >= ISPC_LLVM_3_7 // LLVM 3.7+ case Target::KNL_AVX512: { switch (g->target->getVectorWidth()) { case 16: @@ -1347,6 +1348,7 @@ DefineStdlib(SymbolTable *symbolTable, llvm::LLVMContext *ctx, llvm::Module *mod } break; } +#endif case Target::GENERIC: { switch (g->target->getVectorWidth()) { case 4: diff --git a/builtins/target-knl.ll b/builtins/target-knl.ll index bba27edc..2272e658 100644 --- a/builtins/target-knl.ll +++ b/builtins/target-knl.ll @@ -30,5 +30,13 @@ ;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. define(`WIDTH',`16') -include(`target-avx512-common.ll') + + +ifelse(LLVM_VERSION, LLVM_3_7, + `include(`target-avx512-common.ll')', + LLVM_VERSION, LLVM_3_8, + `include(`target-avx512-common.ll')' + ) + + ;;saturation_arithmetic_novec()