]> git.ipfire.org Git - thirdparty/gcc.git/commit
[PATCH 2/2] AVX10.2: Support saturating convert instructions
authorHu, Lin1 <lin1.hu@intel.com>
Mon, 26 Aug 2024 02:53:49 +0000 (10:53 +0800)
committerHaochen Jiang <haochen.jiang@intel.com>
Mon, 26 Aug 2024 03:48:36 +0000 (11:48 +0800)
commit3a97ce179f75ec32b7f591422ba254c814567e4d
tree54e64ca468401bc0d306ba66f7609c72aedf1c7a
parente2c80d237223f8524c2bd930b681aa891a13db99
[PATCH 2/2] AVX10.2: Support saturating convert instructions

gcc/ChangeLog:

* config/i386/avx10_2-512satcvtintrin.h: Add new intrin.
* config/i386/avx10_2satcvtintrin.h: Ditto.
* config/i386/i386-builtin.def (BDESC): Add new builtins.
* config/i386/sse.md (VF1_VF2_AVX10_2): New iterator.
(VF2_AVX10_2): Ditto.
(VI8_AVX10_2): Ditto.
(sat_cvt_sign_prefix): Add new UNSPEC.
(UNSPEC_SAT_CVT_DS_SIGN_ITER): New iterator.
(pd2dqssuff): Ditto.
(avx10_2_vcvtt<castmode>2<sat_cvt_sign_prefix>dqs<mode><mask_name><round_saeonly_name>):
New.
(avx10_2_vcvttpd2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
Ditto.
(avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
Ditto.
(avx10_2_vcvttsd2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
Ditto.
(avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/i386/avx-1.c: Add macros.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* gcc.target/i386/avx10_2-satcvt-1.c: Add test.
* gcc.target/i386/avx10_2-512-satcvt-1.c: Ditto.
* gcc.target/i386/avx10_2-512-vcvttpd2dqs-2.c: New test.
* gcc.target/i386/avx10_2-512-vcvttpd2qqs-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vcvttpd2udqs-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vcvttpd2uqqs-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vcvttps2dqs-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vcvttps2qqs-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vcvttps2udqs-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vcvttps2uqqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttpd2dqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttpd2qqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttpd2udqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttpd2uqqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttps2dqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttps2qqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttps2udqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttps2uqqs-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttsd2sis-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttsd2usis-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttss2sis-2.c: Ditto.
* gcc.target/i386/avx10_2-vcvttss2usis-2.c: Ditto.
31 files changed:
gcc/config/i386/avx10_2-512satcvtintrin.h
gcc/config/i386/avx10_2satcvtintrin.h
gcc/config/i386/i386-builtin.def
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/avx-1.c
gcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c
gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2dqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2qqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2udqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttpd2uqqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2dqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2qqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2udqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttps2uqqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c
gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2dqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2qqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2udqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2uqqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2dqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2qqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2udqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2uqqs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2sis-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttsd2usis-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2sis-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse-13.c
gcc/testsuite/gcc.target/i386/sse-14.c
gcc/testsuite/gcc.target/i386/sse-22.c
gcc/testsuite/gcc.target/i386/sse-23.c