diff options
Diffstat (limited to 'gcc')
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 } |