summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Taylor <jtaylor.debian@googlemail.com>2013-10-16 19:56:12 +0200
committerJulian Taylor <jtaylor.debian@googlemail.com>2013-10-16 20:03:24 +0200
commite31729bb9c7abd08b1815100abab6ca63f71b8bf (patch)
treededf659df74cb8d17e6d5a63ad8dac2443c6f1b6
parent16236e27f93b3a1b3bf6a58750fdaec68b224420 (diff)
downloadnumpy-e31729bb9c7abd08b1815100abab6ca63f71b8bf.tar.gz
MAINT: add NPY_CPU_HAVE_UNALIGNED_ACCESS macro
currently only i386 and amd64, must be used carefully as the compiler may still be allowed to assume alignment and try to vectorize based on type size alignment.
-rw-r--r--numpy/core/include/numpy/npy_cpu.h4
-rw-r--r--numpy/core/src/multiarray/lowlevel_strided_loops.c.src2
2 files changed, 5 insertions, 1 deletions
diff --git a/numpy/core/include/numpy/npy_cpu.h b/numpy/core/include/numpy/npy_cpu.h
index ab14731b8..6773d3258 100644
--- a/numpy/core/include/numpy/npy_cpu.h
+++ b/numpy/core/include/numpy/npy_cpu.h
@@ -108,4 +108,8 @@
#endif
#endif
+#if (defined(NPY_CPU_X86) || defined(NPY_CPU_AMD64))
+#define NPY_CPU_HAVE_UNALIGNED_ACCESS
+#endif
+
#endif
diff --git a/numpy/core/src/multiarray/lowlevel_strided_loops.c.src b/numpy/core/src/multiarray/lowlevel_strided_loops.c.src
index e9820a5e4..759b36c20 100644
--- a/numpy/core/src/multiarray/lowlevel_strided_loops.c.src
+++ b/numpy/core/src/multiarray/lowlevel_strided_loops.c.src
@@ -39,7 +39,7 @@
* instructions (16 byte).
* So this flag can only be enabled if autovectorization is disabled.
*/
-#if (defined(NPY_CPU_X86) || defined(NPY_CPU_AMD64))
+#ifdef NPY_CPU_HAVE_UNALIGNED_ACCESS
# define NPY_USE_UNALIGNED_ACCESS 0
#else
# define NPY_USE_UNALIGNED_ACCESS 0