aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c104
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2dqs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2qqs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2udqs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2uqqs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c10
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2dqs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2ibs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2iubs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2qqs-2.c22
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2udqs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2uqqs-2.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c120
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2iubs-2.c16
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2sis-2.c24
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2usis-2.c24
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2sis-2.c24
-rw-r--r--gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c24
23 files changed, 565 insertions, 97 deletions
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c
index 7f2f7ca..bf10ac2 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c
@@ -1,27 +1,43 @@
/* { dg-do compile } */
/* { dg-options "-O2 -march=x86-64-v3 -mavx10.2-512" } */
-/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\{rn-sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\{rz-sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\{rn-sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\{rz-sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\{rn-sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\{rz-sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\{rn-sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\{rz-sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtbf162ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
@@ -36,27 +52,51 @@
/* { dg-final { scan-assembler-times "vcvttbf162iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttbf162iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttbf162iubs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2dqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2dqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2dqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2udqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2udqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2udqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
@@ -77,34 +117,58 @@ volatile __mmask32 m32;
void extern
avx10_2_test (void)
{
+ xi = _mm512_ipcvtph_epi8 (xh);
+ xi = _mm512_mask_ipcvtph_epi8 (xi, m32, xh);
+ xi = _mm512_maskz_ipcvtph_epi8 (m32, xh);
xi = _mm512_ipcvt_roundph_epi8 (xh, 4);
xi = _mm512_mask_ipcvt_roundph_epi8 (xi, m32, xh, 8);
xi = _mm512_maskz_ipcvt_roundph_epi8 (m32, xh, 11);
+ xi = _mm512_ipcvtph_epu8 (xh);
+ xi = _mm512_mask_ipcvtph_epu8 (xi, m32, xh);
+ xi = _mm512_maskz_ipcvtph_epu8 (m32, xh);
xi = _mm512_ipcvt_roundph_epu8 (xh, 4);
xi = _mm512_mask_ipcvt_roundph_epu8 (xi, m32, xh, 8);
xi = _mm512_maskz_ipcvt_roundph_epu8 (m32, xh, 11);
+ xi = _mm512_ipcvttph_epi8 (xh);
+ xi = _mm512_mask_ipcvttph_epi8 (xi, m32, xh);
+ xi = _mm512_maskz_ipcvttph_epi8 (m32, xh);
xi = _mm512_ipcvtt_roundph_epi8 (xh, 4);
xi = _mm512_mask_ipcvtt_roundph_epi8 (xi, m32, xh, 8);
xi = _mm512_maskz_ipcvtt_roundph_epi8 (m32, xh, 8);
+ xi = _mm512_ipcvttph_epu8 (xh);
+ xi = _mm512_mask_ipcvttph_epu8 (xi, m32, xh);
+ xi = _mm512_maskz_ipcvttph_epu8 (m32, xh);
xi = _mm512_ipcvtt_roundph_epu8 (xh, 4);
xi = _mm512_mask_ipcvtt_roundph_epu8 (xi, m32, xh, 8);
xi = _mm512_maskz_ipcvtt_roundph_epu8 (m32, xh, 8);
+ xi = _mm512_ipcvtps_epi8 (x);
+ xi = _mm512_mask_ipcvtps_epi8 (xi, m16, x);
+ xi = _mm512_maskz_ipcvtps_epi8 (m16, x);
xi = _mm512_ipcvt_roundps_epi8 (x, 4);
xi = _mm512_mask_ipcvt_roundps_epi8 (xi, m16, x, 8);
xi = _mm512_maskz_ipcvt_roundps_epi8 (m16, x, 11);
+ xi = _mm512_ipcvtps_epu8 (x);
+ xi = _mm512_mask_ipcvtps_epu8 (xi, m16, x);
+ xi = _mm512_maskz_ipcvtps_epu8 (m16, x);
xi = _mm512_ipcvt_roundps_epu8 (x, 4);
xi = _mm512_mask_ipcvt_roundps_epu8 (xi, m16, x, 8);
xi = _mm512_maskz_ipcvt_roundps_epu8 (m16, x, 11);
+ xi = _mm512_ipcvttps_epi8 (x);
+ xi = _mm512_mask_ipcvttps_epi8 (xi, m16, x);
+ xi = _mm512_maskz_ipcvttps_epi8 (m16, x);
xi = _mm512_ipcvtt_roundps_epi8 (x, 4);
xi = _mm512_mask_ipcvtt_roundps_epi8 (xi, m16, x, 8);
xi = _mm512_maskz_ipcvtt_roundps_epi8 (m16, x, 8);
+ xi = _mm512_ipcvttps_epu8 (x);
+ xi = _mm512_mask_ipcvttps_epu8 (xi, m16, x);
+ xi = _mm512_maskz_ipcvttps_epu8 (m16, x);
xi = _mm512_ipcvtt_roundps_epu8 (x, 4);
xi = _mm512_mask_ipcvtt_roundps_epu8 (xi, m16, x, 8);
xi = _mm512_maskz_ipcvtt_roundps_epu8 (m16, x, 8);
@@ -125,34 +189,58 @@ avx10_2_test (void)
xi = _mm512_mask_ipcvttbf16_epu8 (xi, m32, xbh);
xi = _mm512_maskz_ipcvttbf16_epu8 (m32, xbh);
+ hxi = _mm512_cvttspd_epi32 (xd);
+ hxi = _mm512_mask_cvttspd_epi32 (hxi, m8, xd);
+ hxi = _mm512_maskz_cvttspd_epi32 (m8, xd);
hxi = _mm512_cvtts_roundpd_epi32 (xd, 8);
hxi = _mm512_mask_cvtts_roundpd_epi32 (hxi, m8, xd, 8);
hxi = _mm512_maskz_cvtts_roundpd_epi32 (m8, xd, 8);
+ xi = _mm512_cvttspd_epi64 (xd);
+ xi = _mm512_mask_cvttspd_epi64 (xi, m8, xd);
+ xi = _mm512_maskz_cvttspd_epi64 (m8, xd);
xi = _mm512_cvtts_roundpd_epi64 (xd, 8);
xi = _mm512_mask_cvtts_roundpd_epi64 (xi, m8, xd, 8);
xi = _mm512_maskz_cvtts_roundpd_epi64 (m8, xd, 8);
+ hxi = _mm512_cvttspd_epu32 (xd);
+ hxi = _mm512_mask_cvttspd_epu32 (hxi, m8, xd);
+ hxi = _mm512_maskz_cvttspd_epu32 (m8, xd);
hxi = _mm512_cvtts_roundpd_epu32 (xd, 8);
hxi = _mm512_mask_cvtts_roundpd_epu32 (hxi, m8, xd, 8);
hxi = _mm512_maskz_cvtts_roundpd_epu32 (m8, xd, 8);
+ xi = _mm512_cvttspd_epu64 (xd);
+ xi = _mm512_mask_cvttspd_epu64 (xi, m8, xd);
+ xi = _mm512_maskz_cvttspd_epu64 (m8, xd);
xi = _mm512_cvtts_roundpd_epu64 (xd, 8);
xi = _mm512_mask_cvtts_roundpd_epu64 (xi, m8, xd, 8);
xi = _mm512_maskz_cvtts_roundpd_epu64 (m8, xd, 8);
+ xi = _mm512_cvttsps_epi32 (x);
+ xi = _mm512_mask_cvttsps_epi32 (xi, m16, x);
+ xi = _mm512_maskz_cvttsps_epi32 (m16, x);
xi = _mm512_cvtts_roundps_epi32 (x, 8);
xi = _mm512_mask_cvtts_roundps_epi32 (xi, m16, x, 8);
xi = _mm512_maskz_cvtts_roundps_epi32 (m16, x, 8);
+ xi = _mm512_cvttsps_epi64 (hx);
+ xi = _mm512_mask_cvttsps_epi64 (xi, m8, hx);
+ xi = _mm512_maskz_cvttsps_epi64 (m8, hx);
xi = _mm512_cvtts_roundps_epi64 (hx, 8);
xi = _mm512_mask_cvtts_roundps_epi64 (xi, m8, hx, 8);
xi = _mm512_maskz_cvtts_roundps_epi64 (m8, hx, 8);
+ xi = _mm512_cvttsps_epu32 (x);
+ xi = _mm512_mask_cvttsps_epu32 (xi, m16, x);
+ xi = _mm512_maskz_cvttsps_epu32 (m16, x);
xi = _mm512_cvtts_roundps_epu32 (x, 8);
xi = _mm512_mask_cvtts_roundps_epu32 (xi, m16, x, 8);
xi = _mm512_maskz_cvtts_roundps_epu32 (m16, x, 8);
+ xi = _mm512_cvttsps_epu64 (hx);
+ xi = _mm512_mask_cvttsps_epu64 (xi, m8, hx);
+ xi = _mm512_maskz_cvttsps_epu64 (m8, hx);
xi = _mm512_cvtts_roundps_epu64 (hx, 8);
xi = _mm512_mask_cvtts_roundps_epu64 (xi, m8, hx, 8);
xi = _mm512_maskz_cvtts_roundps_epu64 (m8, hx, 8);
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c
index d8819f7..d9ca3ef 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c
@@ -49,17 +49,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_ipcvtph_epi8) (s.x);
res2.x = INTRINSIC (_mask_ipcvtph_epi8) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_ipcvtph_epi8) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_w) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_w) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_ipcvt_roundph_epi8) (s.x, 8);
res2.x = INTRINSIC (_mask_ipcvt_roundph_epi8) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_ipcvt_roundph_epi8) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
abort ();
@@ -71,4 +81,5 @@ TEST (void)
MASK_ZERO (i_w) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c
index 877f6f5..cd6aaa4 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c
@@ -49,17 +49,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_ipcvtph_epu8) (s.x);
res2.x = INTRINSIC (_mask_ipcvtph_epu8) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_ipcvtph_epu8) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_w) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_w) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_ipcvt_roundph_epu8) (s.x, 8);
res2.x = INTRINSIC (_mask_ipcvt_roundph_epu8) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_ipcvt_roundph_epu8) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
abort ();
@@ -71,4 +81,5 @@ TEST (void)
MASK_ZERO (i_w) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c
index 3ebc9e7..aaa1a64 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c
@@ -50,17 +50,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_ipcvtps_epi8) (s.x);
res2.x = INTRINSIC (_mask_ipcvtps_epi8) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_ipcvtps_epi8) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_ipcvt_roundps_epi8) (s.x, 8);
res2.x = INTRINSIC (_mask_ipcvt_roundps_epi8) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_ipcvt_roundps_epi8) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
abort ();
@@ -72,4 +82,5 @@ TEST (void)
MASK_ZERO (i_d) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c
index 9e75076..274805a 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c
@@ -48,17 +48,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_ipcvtps_epu8) (s.x);
res2.x = INTRINSIC (_mask_ipcvtps_epu8) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_ipcvtps_epu8) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_ipcvt_roundps_epu8) (s.x, 8);
res2.x = INTRINSIC (_mask_ipcvt_roundps_epu8) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_ipcvt_roundps_epu8) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
abort ();
@@ -70,4 +80,5 @@ TEST (void)
MASK_ZERO (i_d) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2dqs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2dqs-2.c
index d885800..fd1a2b2 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2dqs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2dqs-2.c
@@ -48,17 +48,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_cvttspd_epi32) (s.x);
res2.x = INTRINSIC (_mask_cvttspd_epi32) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_cvttspd_epi32) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN_HALF, i_d) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_d) (res_ref, mask, SRC_SIZE);
+ if (UNION_CHECK (AVX512F_LEN_HALF, i_d) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_d) (res_ref, mask, SRC_SIZE);
+ if (UNION_CHECK (AVX512F_LEN_HALF, i_d) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_cvtts_roundpd_epi32) (s.x, 8);
res2.x = INTRINSIC (_mask_cvtts_roundpd_epi32) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_cvtts_roundpd_epi32) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN_HALF, i_d) (res1, res_ref))
abort ();
@@ -70,4 +80,5 @@ TEST (void)
MASK_ZERO (i_d) (res_ref, mask, SRC_SIZE);
if (UNION_CHECK (AVX512F_LEN_HALF, i_d) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2qqs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2qqs-2.c
index 3fa451b..a9943e4 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2qqs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2qqs-2.c
@@ -47,17 +47,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_cvttspd_epi64) (s.x);
res2.x = INTRINSIC (_mask_cvttspd_epi64) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_cvttspd_epi64) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_q) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_q) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_q) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_q) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_q) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_cvtts_roundpd_epi64) (s.x, 8);
res2.x = INTRINSIC (_mask_cvtts_roundpd_epi64) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_cvtts_roundpd_epi64) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_q) (res1, res_ref))
abort ();
@@ -69,4 +79,5 @@ TEST (void)
MASK_ZERO (i_q) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_q) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2udqs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2udqs-2.c
index 3d2f2ff..ac39288 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2udqs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2udqs-2.c
@@ -48,17 +48,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_cvttspd_epu32) (s.x);
res2.x = INTRINSIC (_mask_cvttspd_epu32) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_cvttspd_epu32) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN_HALF, i_ud) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_ud) (res_ref, mask, SRC_SIZE);
+ if (UNION_CHECK (AVX512F_LEN_HALF, i_ud) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_ud) (res_ref, mask, SRC_SIZE);
+ if (UNION_CHECK (AVX512F_LEN_HALF, i_ud) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_cvtts_roundpd_epu32) (s.x, 8);
res2.x = INTRINSIC (_mask_cvtts_roundpd_epu32) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_cvtts_roundpd_epu32) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN_HALF, i_ud) (res1, res_ref))
abort ();
@@ -70,4 +80,5 @@ TEST (void)
MASK_ZERO (i_ud) (res_ref, mask, SRC_SIZE);
if (UNION_CHECK (AVX512F_LEN_HALF, i_ud) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2uqqs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2uqqs-2.c
index 3000297..346978b 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2uqqs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2uqqs-2.c
@@ -47,17 +47,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_cvttspd_epu64) (s.x);
res2.x = INTRINSIC (_mask_cvttspd_epu64) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_cvttspd_epu64) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_uq) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_uq) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_uq) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_uq) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_uq) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_cvtts_roundpd_epu64) (s.x, 8);
res2.x = INTRINSIC (_mask_cvtts_roundpd_epu64) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_cvtts_roundpd_epu64) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_uq) (res1, res_ref))
abort ();
@@ -69,4 +79,5 @@ TEST (void)
MASK_ZERO (i_uq) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_uq) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c
index 6e91c75..e50de96 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c
@@ -49,17 +49,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_ipcvttph_epi8) (s.x);
res2.x = INTRINSIC (_mask_ipcvttph_epi8) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_ipcvttph_epi8) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_w) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_w) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_ipcvtt_roundph_epi8) (s.x, 8);
res2.x = INTRINSIC (_mask_ipcvtt_roundph_epi8) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_ipcvtt_roundph_epi8) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
abort ();
@@ -71,4 +81,5 @@ TEST (void)
MASK_ZERO (i_w) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c
index 07f9c12..0736356 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c
@@ -49,17 +49,16 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_ipcvttph_epu8) (s.x);
res2.x = INTRINSIC (_mask_ipcvttph_epu8) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_ipcvttph_epu8) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_ipcvtt_roundph_epu8) (s.x, 8);
res2.x = INTRINSIC (_mask_ipcvtt_roundph_epu8) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_ipcvtt_roundph_epu8) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_w) (res1, res_ref))
abort ();
@@ -71,4 +70,5 @@ TEST (void)
MASK_ZERO (i_w) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_w) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2dqs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2dqs-2.c
index 568f0a3..302457e 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2dqs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2dqs-2.c
@@ -47,17 +47,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_cvttsps_epi32) (s.x);
res2.x = INTRINSIC (_mask_cvttsps_epi32) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_cvttsps_epi32) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_cvtts_roundps_epi32) (s.x, 8);
res2.x = INTRINSIC (_mask_cvtts_roundps_epi32) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_cvtts_roundps_epi32) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
abort ();
@@ -69,4 +79,5 @@ TEST (void)
MASK_ZERO (i_d) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2ibs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2ibs-2.c
index b7b10303..61c5bde 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2ibs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2ibs-2.c
@@ -50,17 +50,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_ipcvttps_epi8) (s.x);
res2.x = INTRINSIC (_mask_ipcvttps_epi8) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_ipcvttps_epi8) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_ipcvtt_roundps_epi8) (s.x, 8);
res2.x = INTRINSIC (_mask_ipcvtt_roundps_epi8) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_ipcvtt_roundps_epi8) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
abort ();
@@ -72,4 +82,5 @@ TEST (void)
MASK_ZERO (i_d) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2iubs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2iubs-2.c
index f689ab7..0fb0d5f 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2iubs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2iubs-2.c
@@ -48,17 +48,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_ipcvttps_epu8) (s.x);
res2.x = INTRINSIC (_mask_ipcvttps_epu8) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_ipcvttps_epu8) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_d) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_ipcvtt_roundps_epu8) (s.x, 8);
res2.x = INTRINSIC (_mask_ipcvtt_roundps_epu8) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_ipcvtt_roundps_epu8) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
abort ();
@@ -70,4 +80,5 @@ TEST (void)
MASK_ZERO (i_d) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2qqs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2qqs-2.c
index 6d0ba5f..2ff250e 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2qqs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2qqs-2.c
@@ -48,18 +48,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_cvttsps_epi64) (s.x);
res2.x = INTRINSIC (_mask_cvttsps_epi64) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_cvttsps_epi64) (mask, s.x);
-#else
- res1.x = INTRINSIC (_cvtts_roundps_epi64) (s.x, 8);
- res2.x = INTRINSIC (_mask_cvtts_roundps_epi64) (res2.x, mask, s.x, 8);
- res3.x = INTRINSIC (_maskz_cvtts_roundps_epi64) (mask, s.x, 8);
-#endif
CALC (s.a, res_ref);
+ if (UNION_CHECK (AVX512F_LEN, i_q) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_q) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_q) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_q) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_q) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
+ res1.x = INTRINSIC (_cvtts_roundps_epi64) (s.x, 8);
+ res2.x = INTRINSIC (_mask_cvtts_roundps_epi64) (res2.x, mask, s.x, 8);
+ res3.x = INTRINSIC (_maskz_cvtts_roundps_epi64) (mask, s.x, 8);
if (UNION_CHECK (AVX512F_LEN, i_q) (res1, res_ref))
abort ();
@@ -71,4 +80,5 @@ TEST (void)
MASK_ZERO (i_q) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_q) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2udqs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2udqs-2.c
index 513f822..ff0d016 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2udqs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2udqs-2.c
@@ -47,17 +47,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_cvttsps_epu32) (s.x);
res2.x = INTRINSIC (_mask_cvttsps_epu32) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_cvttsps_epu32) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_ud) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_ud) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_ud) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_ud) (res_ref, mask, SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_ud) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_cvtts_roundps_epu32) (s.x, 8);
res2.x = INTRINSIC (_mask_cvtts_roundps_epu32) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_cvtts_roundps_epu32) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_ud) (res1, res_ref))
abort ();
@@ -69,4 +79,5 @@ TEST (void)
MASK_ZERO (i_ud) (res_ref, mask, SIZE);
if (UNION_CHECK (AVX512F_LEN, i_ud) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2uqqs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2uqqs-2.c
index 98d7ea8..ef3019b 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2uqqs-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2uqqs-2.c
@@ -48,17 +48,27 @@ TEST (void)
for (i = 0; i < SIZE; i++)
res2.a[i] = DEFAULT_VALUE;
-#if AVX512F_LEN == 128
res1.x = INTRINSIC (_cvttsps_epu64) (s.x);
res2.x = INTRINSIC (_mask_cvttsps_epu64) (res2.x, mask, s.x);
res3.x = INTRINSIC (_maskz_cvttsps_epu64) (mask, s.x);
-#else
+
+ CALC (s.a, res_ref);
+
+ if (UNION_CHECK (AVX512F_LEN, i_uq) (res1, res_ref))
+ abort ();
+
+ MASK_MERGE (i_uq) (res_ref, mask, SRC_SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_uq) (res2, res_ref))
+ abort ();
+
+ MASK_ZERO (i_uq) (res_ref, mask, SRC_SIZE);
+ if (UNION_CHECK (AVX512F_LEN, i_uq) (res3, res_ref))
+ abort ();
+
+#if AVX512F_LEN != 128
res1.x = INTRINSIC (_cvtts_roundps_epu64) (s.x, 8);
res2.x = INTRINSIC (_mask_cvtts_roundps_epu64) (res2.x, mask, s.x, 8);
res3.x = INTRINSIC (_maskz_cvtts_roundps_epu64) (mask, s.x, 8);
-#endif
-
- CALC (s.a, res_ref);
if (UNION_CHECK (AVX512F_LEN, i_uq) (res1, res_ref))
abort ();
@@ -70,4 +80,5 @@ TEST (void)
MASK_ZERO (i_uq) (res_ref, mask, SRC_SIZE);
if (UNION_CHECK (AVX512F_LEN, i_uq) (res3, res_ref))
abort ();
+#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c b/gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c
index 12649e6..e30f958 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c
@@ -1,27 +1,43 @@
/* { dg-do compile } */
/* { dg-options "-O2 -march=x86-64-v3 -mavx10.2-256" } */
-/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\{rn-sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\{rz-sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\{rn-sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtph2iubs\[ \\t\]+\{rz-sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttph2ibs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttph2iubs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\{rn-sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtps2ibs\[ \\t\]+\{rz-sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\{rn-sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtps2iubs\[ \\t\]+\{rz-sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2ibs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */
+/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2iubs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvtbf162ibs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
@@ -72,27 +88,51 @@
/* { dg-final { scan-assembler-times "vcvttbf162iubs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttbf162iubs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttbf162iubs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2dqsy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2dqsy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2dqsy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2dqsy\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2dqsy\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2dqsy\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2udqsy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2udqsy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2udqsy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2udqsy\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2udqsy\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2udqsy\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttpd2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2dqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2qqs\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2udqs\[ \\t\]+\{sae\}\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
@@ -120,10 +160,18 @@
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttps2uqqs\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttsd2sis\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%e.x+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttsd2usis\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%e.x+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttss2sis\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%e.x+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttss2usis\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%e.x+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttsd2sis\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%e.x+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttsd2usis\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%e.x+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttss2sis\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%e.x+(?:\n|\[ \\t\]+#)" 1 } } */
/* { dg-final { scan-assembler-times "vcvttss2usis\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%e.x+(?:\n|\[ \\t\]+#)" 1 } } */
+/* { dg-final { scan-assembler-times "vcvttsd2sis\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%r.x+(?:\n|\[ \\t\]+#)" 1 { target { ! ia32 } } } } */
+/* { dg-final { scan-assembler-times "vcvttsd2usis\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%r.x+(?:\n|\[ \\t\]+#)" 1 { target { ! ia32 } } } } */
+/* { dg-final { scan-assembler-times "vcvttss2sis\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%r.x+(?:\n|\[ \\t\]+#)" 1 { target { ! ia32 } } } } */
+/* { dg-final { scan-assembler-times "vcvttss2usis\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%r.x+(?:\n|\[ \\t\]+#)" 1 { target { ! ia32 } } } } */
/* { dg-final { scan-assembler-times "vcvttsd2sis\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%r.x+(?:\n|\[ \\t\]+#)" 1 { target { ! ia32 } } } } */
/* { dg-final { scan-assembler-times "vcvttsd2usis\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%r.x+(?:\n|\[ \\t\]+#)" 1 { target { ! ia32 } } } } */
/* { dg-final { scan-assembler-times "vcvttss2sis\[ \\t\]+\{sae\}\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%r.x+(?:\n|\[ \\t\]+#)" 1 { target { ! ia32 } } } } */
@@ -151,34 +199,58 @@ volatile unsigned long long ull;
void extern
avx10_2_test (void)
{
+ xi = _mm256_ipcvtph_epi8 (xh);
+ xi = _mm256_mask_ipcvtph_epi8 (xi, m16, xh);
+ xi = _mm256_maskz_ipcvtph_epi8 (m16, xh);
xi = _mm256_ipcvt_roundph_epi8 (xh, 4);
xi = _mm256_mask_ipcvt_roundph_epi8 (xi, m16, xh, 8);
xi = _mm256_maskz_ipcvt_roundph_epi8 (m16, xh, 11);
+ xi = _mm256_ipcvtph_epu8 (xh);
+ xi = _mm256_mask_ipcvtph_epu8 (xi, m16, xh);
+ xi = _mm256_maskz_ipcvtph_epu8 (m16, xh);
xi = _mm256_ipcvt_roundph_epu8 (xh, 4);
xi = _mm256_mask_ipcvt_roundph_epu8 (xi, m16, xh, 8);
xi = _mm256_maskz_ipcvt_roundph_epu8 (m16, xh, 11);
+ xi = _mm256_ipcvttph_epi8 (xh);
+ xi = _mm256_mask_ipcvttph_epi8 (xi, m16, xh);
+ xi = _mm256_maskz_ipcvttph_epi8 (m16, xh);
xi = _mm256_ipcvtt_roundph_epi8 (xh, 4);
xi = _mm256_mask_ipcvtt_roundph_epi8 (xi, m16, xh, 8);
xi = _mm256_maskz_ipcvtt_roundph_epi8 (m16, xh, 8);
+ xi = _mm256_ipcvttph_epu8 (xh);
+ xi = _mm256_mask_ipcvttph_epu8 (xi, m16, xh);
+ xi = _mm256_maskz_ipcvttph_epu8 (m16, xh);
xi = _mm256_ipcvtt_roundph_epu8 (xh, 4);
xi = _mm256_mask_ipcvtt_roundph_epu8 (xi, m16, xh, 8);
xi = _mm256_maskz_ipcvtt_roundph_epu8 (m16, xh, 8);
+ xi = _mm256_ipcvtps_epi8 (x);
+ xi = _mm256_mask_ipcvtps_epi8 (xi, m8, x);
+ xi = _mm256_maskz_ipcvtps_epi8 (m8, x);
xi = _mm256_ipcvt_roundps_epi8 (x, 4);
xi = _mm256_mask_ipcvt_roundps_epi8 (xi, m8, x, 8);
xi = _mm256_maskz_ipcvt_roundps_epi8 (m8, x, 11);
+ xi = _mm256_ipcvtps_epu8 (x);
+ xi = _mm256_mask_ipcvtps_epu8 (xi, m8, x);
+ xi = _mm256_maskz_ipcvtps_epu8 (m8, x);
xi = _mm256_ipcvt_roundps_epu8 (x, 4);
xi = _mm256_mask_ipcvt_roundps_epu8 (xi, m8, x, 8);
xi = _mm256_maskz_ipcvt_roundps_epu8 (m8, x, 11);
+ xi = _mm256_ipcvttps_epi8 (x);
+ xi = _mm256_mask_ipcvttps_epi8 (xi, m8, x);
+ xi = _mm256_maskz_ipcvttps_epi8 (m8, x);
xi = _mm256_ipcvtt_roundps_epi8 (x, 4);
xi = _mm256_mask_ipcvtt_roundps_epi8 (xi, m8, x, 8);
xi = _mm256_maskz_ipcvtt_roundps_epi8 (m8, x, 8);
+ xi = _mm256_ipcvttps_epu8 (x);
+ xi = _mm256_mask_ipcvttps_epu8 (xi, m8, x);
+ xi = _mm256_maskz_ipcvttps_epu8 (m8, x);
xi = _mm256_ipcvtt_roundps_epu8 (x, 4);
xi = _mm256_mask_ipcvtt_roundps_epu8 (xi, m8, x, 8);
xi = _mm256_maskz_ipcvtt_roundps_epu8 (m8, x, 8);
@@ -247,34 +319,58 @@ avx10_2_test (void)
hxi = _mm_mask_ipcvttbf16_epu8 (hxi, m8, hxbh);
hxi = _mm_maskz_ipcvttbf16_epu8 (m8, hxbh);
+ hxi = _mm256_cvttspd_epi32 (xd);
+ hxi = _mm256_mask_cvttspd_epi32 (hxi, m8, xd);
+ hxi = _mm256_maskz_cvttspd_epi32 (m8, xd);
hxi = _mm256_cvtts_roundpd_epi32 (xd, 8);
hxi = _mm256_mask_cvtts_roundpd_epi32 (hxi, m8, xd, 8);
hxi = _mm256_maskz_cvtts_roundpd_epi32 (m8, xd, 8);
+ xi = _mm256_cvttspd_epi64 (xd);
+ xi = _mm256_mask_cvttspd_epi64 (xi, m8, xd);
+ xi = _mm256_maskz_cvttspd_epi64 (m8, xd);
xi = _mm256_cvtts_roundpd_epi64 (xd, 8);
xi = _mm256_mask_cvtts_roundpd_epi64 (xi, m8, xd, 8);
xi = _mm256_maskz_cvtts_roundpd_epi64 (m8, xd, 8);
+ hxi = _mm256_cvttspd_epu32 (xd);
+ hxi = _mm256_mask_cvttspd_epu32 (hxi, m8, xd);
+ hxi = _mm256_maskz_cvttspd_epu32 (m8, xd);
hxi = _mm256_cvtts_roundpd_epu32 (xd, 8);
hxi = _mm256_mask_cvtts_roundpd_epu32 (hxi, m8, xd, 8);
hxi = _mm256_maskz_cvtts_roundpd_epu32 (m8, xd, 8);
+ xi = _mm256_cvttspd_epu64 (xd);
+ xi = _mm256_mask_cvttspd_epu64 (xi, m8, xd);
+ xi = _mm256_maskz_cvttspd_epu64 (m8, xd);
xi = _mm256_cvtts_roundpd_epu64 (xd, 8);
xi = _mm256_mask_cvtts_roundpd_epu64 (xi, m8, xd, 8);
xi = _mm256_maskz_cvtts_roundpd_epu64 (m8, xd, 8);
+ xi = _mm256_cvttsps_epi32 (x);
+ xi = _mm256_mask_cvttsps_epi32 (xi, m16, x);
+ xi = _mm256_maskz_cvttsps_epi32 (m16, x);
xi = _mm256_cvtts_roundps_epi32 (x, 8);
xi = _mm256_mask_cvtts_roundps_epi32 (xi, m16, x, 8);
xi = _mm256_maskz_cvtts_roundps_epi32 (m16, x, 8);
+ xi = _mm256_cvttsps_epi64 (hx);
+ xi = _mm256_mask_cvttsps_epi64 (xi, m8, hx);
+ xi = _mm256_maskz_cvttsps_epi64 (m8, hx);
xi = _mm256_cvtts_roundps_epi64 (hx, 8);
xi = _mm256_mask_cvtts_roundps_epi64 (xi, m8, hx, 8);
xi = _mm256_maskz_cvtts_roundps_epi64 (m8, hx, 8);
+ xi = _mm256_cvttsps_epu32 (x);
+ xi = _mm256_mask_cvttsps_epu32 (xi, m16, x);
+ xi = _mm256_maskz_cvttsps_epu32 (m16, x);
xi = _mm256_cvtts_roundps_epu32 (x, 8);
xi = _mm256_mask_cvtts_roundps_epu32 (xi, m16, x, 8);
xi = _mm256_maskz_cvtts_roundps_epu32 (m16, x, 8);
+ xi = _mm256_cvttsps_epu64 (hx);
+ xi = _mm256_mask_cvttsps_epu64 (xi, m8, hx);
+ xi = _mm256_maskz_cvttsps_epu64 (m8, hx);
xi = _mm256_cvtts_roundps_epu64 (hx, 8);
xi = _mm256_mask_cvtts_roundps_epu64 (xi, m8, hx, 8);
xi = _mm256_maskz_cvtts_roundps_epu64 (m8, hx, 8);
@@ -311,12 +407,20 @@ avx10_2_test (void)
hxi = _mm_mask_cvttsps_epu64 (hxi, m8, hx);
hxi = _mm_maskz_cvttsps_epu64 (m8, hx);
+ i = _mm_cvttssd_epi32 (hxd);
+ ui = _mm_cvttssd_epu32 (hxd);
+ i = _mm_cvttsss_epi32 (hx);
+ ui = _mm_cvttsss_epu32 (hx);
i = _mm_cvtts_roundsd_epi32 (hxd, 8);
ui = _mm_cvtts_roundsd_epu32 (hxd, 8);
i = _mm_cvtts_roundss_epi32 (hx, 8);
ui = _mm_cvtts_roundss_epu32 (hx, 8);
#ifdef __x86_64__
+ ll = _mm_cvttssd_epi64 (hxd);
+ ull = _mm_cvttssd_epu64 (hxd);
+ ll = _mm_cvttsss_epi64 (hx);
+ ull = _mm_cvttsss_epu64 (hx);
ll = _mm_cvtts_roundsd_epi64 (hxd, 8);
ull = _mm_cvtts_roundsd_epu64 (hxd, 8);
ll = _mm_cvtts_roundss_epi64 (hx, 8);
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2iubs-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2iubs-2.c
new file mode 100644
index 0000000..d58019e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2iubs-2.c
@@ -0,0 +1,16 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -march=x86-64-v3 -mavx10.2-256" } */
+/* { dg-require-effective-target avx10_2_256 } */
+
+#define AVX10_2
+#define AVX512VL
+#define AVX512F_LEN 256
+#define AVX512F_LEN_HALF 128
+#include "avx10_2-512-vcvtps2iubs-2.c"
+
+#undef AVX512F_LEN
+#undef AVX512F_LEN_HALF
+
+#define AVX512F_LEN 128
+#define AVX512F_LEN_HALF 128
+#include "avx10_2-512-vcvtps2iubs-2.c"
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2sis-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2sis-2.c
index cb6bd28..87f2c57 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2sis-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2sis-2.c
@@ -31,6 +31,18 @@ TEST (void)
if (res1 != res1_ref)
abort();
+ res1 = _mm_cvttssd_epi32 (s.x);
+
+ if (s.a[0] > INT_MAX)
+ res1_ref = INT_MAX;
+ else if (s.a[0] < INT_MIN)
+ res1_ref = INT_MIN;
+ else
+ res1_ref = s.a[0];
+
+ if (res1 != res1_ref)
+ abort();
+
#ifdef __x86_64__
res2 = _mm_cvtts_roundsd_epi64 (s.x, 8);
@@ -43,5 +55,17 @@ TEST (void)
if (res2 != res2_ref)
abort();
+
+ res2 = _mm_cvttssd_epi64 (s.x);
+
+ if (s.a[0] > LLONG_MAX)
+ res2_ref = LLONG_MAX;
+ else if (s.a[0] < LLONG_MIN)
+ res2_ref = LLONG_MIN;
+ else
+ res2_ref = s.a[0];
+
+ if (res2 != res2_ref)
+ abort();
#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2usis-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2usis-2.c
index 04328f4..1e46e25 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2usis-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2usis-2.c
@@ -31,6 +31,18 @@ TEST (void)
if (res1 != res1_ref)
abort();
+ res1 = _mm_cvttssd_epu32 (s.x);
+
+ if (s.a[0] > UINT_MAX)
+ res1_ref = UINT_MAX;
+ else if (s.a[0] < 0)
+ res1_ref = 0;
+ else
+ res1_ref = s.a[0];
+
+ if (res1 != res1_ref)
+ abort();
+
#ifdef __x86_64__
res2 = _mm_cvtts_roundsd_epu64 (s.x, 8);
@@ -43,5 +55,17 @@ TEST (void)
if (res2 != res2_ref)
abort();
+
+ res2 = _mm_cvttssd_epu64 (s.x);
+
+ if (s.a[0] > ULONG_MAX)
+ res2_ref = ULONG_MAX;
+ else if (s.a[0] < 0)
+ res2_ref = 0;
+ else
+ res2_ref = s.a[0];
+
+ if (res2 != res2_ref)
+ abort();
#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2sis-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2sis-2.c
index c495d22..5616ca5 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2sis-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2sis-2.c
@@ -31,6 +31,18 @@ TEST (void)
if (res1 != res1_ref)
abort();
+ res1 = _mm_cvttsss_epi32 (s.x);
+
+ if (s.a[0] > INT_MAX)
+ res1_ref = INT_MAX;
+ else if (s.a[0] < INT_MIN)
+ res1_ref = INT_MIN;
+ else
+ res1_ref = s.a[0];
+
+ if (res1 != res1_ref)
+ abort();
+
#ifdef __x86_64__
res2 = _mm_cvtts_roundss_epi64 (s.x, 8);
@@ -43,5 +55,17 @@ TEST (void)
if (res2 != res2_ref)
abort();
+
+ res2 = _mm_cvttsss_epi64 (s.x);
+
+ if (s.a[0] > LLONG_MAX)
+ res2_ref = LLONG_MAX;
+ else if (s.a[0] < LLONG_MIN)
+ res2_ref = LLONG_MIN;
+ else
+ res2_ref = s.a[0];
+
+ if (res2 != res2_ref)
+ abort();
#endif
}
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c
index 42c418b..286f2ef 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c
@@ -30,6 +30,18 @@ TEST (void)
if (res1 != res1_ref)
abort();
+ res1 = _mm_cvttsss_epu32 (s.x);
+
+ if (s.a[0] > UINT_MAX)
+ res1_ref = UINT_MAX;
+ else if (s.a[0] < 0)
+ res1_ref = 0;
+ else
+ res1_ref = s.a[0];
+
+ if (res1 != res1_ref)
+ abort();
+
#ifdef __x86_64__
res2 = _mm_cvtts_roundss_epu64 (s.x, 8);
@@ -42,5 +54,17 @@ TEST (void)
if (res2 != res2_ref)
abort();
+
+ res2 = _mm_cvttsss_epu64 (s.x);
+
+ if (s.a[0] > ULONG_MAX)
+ res2_ref = ULONG_MAX;
+ else if (s.a[0] < 0)
+ res2_ref = 0;
+ else
+ res2_ref = s.a[0];
+
+ if (res2 != res2_ref)
+ abort();
#endif
}