summaryrefslogtreecommitdiff
path: root/numpy/distutils/checks/cpu_avx512_skx.c
diff options
context:
space:
mode:
authorSayed Adel <seiko@imavr.com>2021-05-09 21:33:37 +0200
committerSayed Adel <seiko@imavr.com>2021-05-09 21:53:35 +0200
commit7aee0fa0805c55d0aed2d26dec8e1153757c69ff (patch)
treeebbc3a88e9b1cbbda12e0be1c11fdc728b13259d /numpy/distutils/checks/cpu_avx512_skx.c
parente3583316cab5e71f2b361c32a3eee748905f40c5 (diff)
downloadnumpy-7aee0fa0805c55d0aed2d26dec8e1153757c69ff.tar.gz
MAINT, SIMD: Hardened the AVX compile-time tests
To avoid optimizing it out by the compiler so we make sure that the assembler is getting involved.
Diffstat (limited to 'numpy/distutils/checks/cpu_avx512_skx.c')
-rw-r--r--numpy/distutils/checks/cpu_avx512_skx.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/numpy/distutils/checks/cpu_avx512_skx.c b/numpy/distutils/checks/cpu_avx512_skx.c
index 1d5e15b5e..047618762 100644
--- a/numpy/distutils/checks/cpu_avx512_skx.c
+++ b/numpy/distutils/checks/cpu_avx512_skx.c
@@ -1,9 +1,10 @@
#include <immintrin.h>
-int main(void)
+int main(int argc, char **argv)
{
+ __m512i aa = _mm512_abs_epi32(_mm512_loadu_si512((const __m512i*)argv[argc-1]));
/* VL */
- __m256i a = _mm256_abs_epi64(_mm256_setzero_si256());
+ __m256i a = _mm256_abs_epi64(_mm512_extracti64x4_epi64(aa, 1));
/* DQ */
__m512i b = _mm512_broadcast_i32x8(a);
/* BW */