diff --git a/setup.py b/setup.py index 84a4fd56..6d82cd10 100644 --- a/setup.py +++ b/setup.py @@ -39,10 +39,6 @@ extra_compile_args = [] extra_link_args = [] -if os.environ.get('TRAVIS') == 'true': - # Resolving some annoying issue - extra_compile_args += ['-mno-avx'] - # Not all CPUs have march as a tuning parameter cputune = ['-march=native',] if platform.machine() == 'ppc64le': diff --git a/src/annoylib.h b/src/annoylib.h index 11793f81..ff087810 100644 --- a/src/annoylib.h +++ b/src/annoylib.h @@ -74,12 +74,14 @@ typedef unsigned __int64 uint64_t; #define popcount cole_popcount #endif -#ifndef NO_MANUAL_VECTORIZATION -#if defined(__AVX512F__) +#if !defined(NO_MANUAL_VECTORIZATION) && defined(__GNUC__) && (__GNUC__ >6) && defined(__AVX512F__) // See #402 +#pragma message "Using 512-bit AVX instructions" #define USE_AVX512 -#elif defined(__AVX__) && defined (__SSE__) && defined(__SSE2__) && defined(__SSE3__) +#elif !defined(NO_MANUAL_VECTORIZATION) && defined(__AVX__) && defined (__SSE__) && defined(__SSE2__) && defined(__SSE3__) +#pragma message "Using 128-bit AVX instructions" #define USE_AVX -#endif +#else +#pragma message "Using no AVX instructions" #endif #if defined(USE_AVX) || defined(USE_AVX512) @@ -989,6 +991,8 @@ template // Delete file if it already exists (See issue #335) unlink(filename); + printf("path: %s\n", filename); + FILE *f = fopen(filename, "wb"); if (f == NULL) { showUpdate("Unable to open: %s\n", strerror(errno));