aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Yukhin <kirill.yukhin@gmail.com>2017-12-01 06:25:26 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2017-12-01 06:25:26 +0000
commitbddb9bb1c7c4b7c7973ddde13c4f52121db923ea (patch)
tree19b089df05ba01e17c93f14dab2795170cdee6ef
parent1d1e69e934d629a1cf0cfa728cd13bd9a43b7ffe (diff)
downloadgcc-bddb9bb1c7c4b7c7973ddde13c4f52121db923ea.zip
gcc-bddb9bb1c7c4b7c7973ddde13c4f52121db923ea.tar.gz
gcc-bddb9bb1c7c4b7c7973ddde13c4f52121db923ea.tar.bz2
Replace __popcntq with two _popcnt32.
gcc/testsuite/ * gcc.target/i386/avx512f-vpcompressb-2.c: Fix popcnt for 64b case. From-SVN: r255292
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7421118..66ca1d2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-11-17 Kirill Yukhin <kirill.yukhin@gmail.com>
+
+ * gcc.target/i386/avx512f-vpcompressb-2.c: Fix popcnt for 32-bit mode.
+
2017-12-01 Jakub Jelinek <jakub@redhat.com>
PR c/83222
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c
index bd1fb45..4f15963 100644
--- a/gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c
@@ -4,7 +4,7 @@
/* { dg-require-effective-target avx512vbmi2 } */
#define AVX512F
-
+#include <stdio.h>
#define AVX512VBMI2
#include "avx512f-helper.h"
@@ -47,7 +47,8 @@ TEST (void)
// Swt
if (AVX512F_LEN == 512)
- mask_bit_count = __popcntq(mask);
+ mask_bit_count = _popcnt32((int)(mask & (((long long)1 << 32) - 1)))
+ + _popcnt32((int)((long long)mask >> 32));
else
mask_bit_count = __popcntd(mask);
compressed_mask = ((long long)1 << mask_bit_count) - 1;