summaryrefslogtreecommitdiff
path: root/numpy/core/setup_common.py
diff options
context:
space:
mode:
authorJulian Taylor <jtaylor.debian@googlemail.com>2013-05-06 19:24:10 +0200
committerJulian Taylor <jtaylor.debian@googlemail.com>2013-05-15 18:53:12 +0200
commit99cb95f7379a95f978fd04d183fde2d262b262a6 (patch)
tree0e08c6a2d07b3032f8ce5609093aad3214ca1a50 /numpy/core/setup_common.py
parent0337cf2f8cf555912dd39a2767a0f7f9e6398257 (diff)
downloadnumpy-99cb95f7379a95f978fd04d183fde2d262b262a6.tar.gz
ENH: optimize byteswapping via intrinsics
Byteswapping is implemented in hardware on x86 cpus which is more than double as fast than the existing implementation. The masked version used for 32bit plays better with compiler pattern matching so it can be optimized also by non-gcc/clang compilers.
Diffstat (limited to 'numpy/core/setup_common.py')
-rw-r--r--numpy/core/setup_common.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/numpy/core/setup_common.py b/numpy/core/setup_common.py
index a1a9ac9af..e778e507b 100644
--- a/numpy/core/setup_common.py
+++ b/numpy/core/setup_common.py
@@ -101,7 +101,10 @@ OPTIONAL_STDFUNCS = ["expm1", "log1p", "acosh", "asinh", "atanh",
# call arguments are required as the compiler will do strict signature checking
OPTIONAL_INTRINSICS = [("__builtin_isnan", '5.'),
("__builtin_isinf", '5.'),
- ("__builtin_isfinite", '5.')]
+ ("__builtin_isfinite", '5.'),
+ ("__builtin_bswap32", '5u'),
+ ("__builtin_bswap64", '5u'),
+ ]
# Subset of OPTIONAL_STDFUNCS which may alreay have HAVE_* defined by Python.h
OPTIONAL_STDFUNCS_MAYBE = ["expm1", "log1p", "acosh", "atanh", "asinh", "hypot",