summaryrefslogtreecommitdiff
path: root/numpy/core/setup_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core/setup_common.py')
-rw-r--r--numpy/core/setup_common.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/numpy/core/setup_common.py b/numpy/core/setup_common.py
index cc2047b45..a97b02645 100644
--- a/numpy/core/setup_common.py
+++ b/numpy/core/setup_common.py
@@ -116,7 +116,7 @@ OPTIONAL_HEADERS = [
]
# optional gcc compiler builtins and their call arguments and optional a
-# required header
+# required header and definition name (HAVE_ prepended)
# call arguments are required as the compiler will do strict signature checking
OPTIONAL_INTRINSICS = [("__builtin_isnan", '5.'),
("__builtin_isinf", '5.'),
@@ -125,12 +125,19 @@ OPTIONAL_INTRINSICS = [("__builtin_isnan", '5.'),
("__builtin_bswap64", '5u'),
("__builtin_expect", '5, 0'),
("__builtin_mul_overflow", '5, 5, (int*)5'),
- ("__builtin_cpu_supports", '"sse"'),
+ # broken on OSX 10.11, make sure its not optimized away
+ ("volatile int r = __builtin_cpu_supports", '"sse"',
+ "stdio.h", "__BUILTIN_CPU_SUPPORTS"),
("_mm_load_ps", '(float*)0', "xmmintrin.h"), # SSE
("_mm_prefetch", '(float*)0, _MM_HINT_NTA',
"xmmintrin.h"), # SSE
("_mm_load_pd", '(double*)0', "emmintrin.h"), # SSE2
("__builtin_prefetch", "(float*)0, 0, 3"),
+ # check that the linker can handle avx
+ ("__asm__ volatile", '"vpand %xmm1, %xmm2, %xmm3"',
+ "stdio.h", "LINK_AVX"),
+ ("__asm__ volatile", '"vpand %ymm1, %ymm2, %ymm3"',
+ "stdio.h", "LINK_AVX2"),
]
# function attributes