diff options
author | Mo, Zewei <zewei.mo@intel.com> | 2024-08-26 10:53:50 +0800 |
---|---|---|
committer | Haochen Jiang <haochen.jiang@intel.com> | 2024-08-26 13:20:14 +0800 |
commit | 889f6dd0d8c7317f62578c900c0f662e919786a2 (patch) | |
tree | d8a304aef30244b285cc97818f4b74c8308db249 /gcc/config.gcc | |
parent | 3a97ce179f75ec32b7f591422ba254c814567e4d (diff) | |
download | gcc-889f6dd0d8c7317f62578c900c0f662e919786a2.zip gcc-889f6dd0d8c7317f62578c900c0f662e919786a2.tar.gz gcc-889f6dd0d8c7317f62578c900c0f662e919786a2.tar.bz2 |
AVX10.2: Support minmax instructions
gcc/ChangeLog:
* config.gcc: Add avx10_2-512minmaxintrin.h and
avx10_2minmaxintrin.h.
* config/i386/i386-builtin-types.def:
Add DEF_FUNCTION_TYPE (V8BF, V8BF, V8BF, INT, V8BF, UQI),
(V16BF, V16BF, V16BF, INT, V16BF, UHI),
(V32BF, V32BF, V32BF, INT, V32BF, USI),
(V8HF, V8HF, V8HF, INT, V8HF, UQI),
(V8DF, V8DF, V8DF, INT, V8DF, UQI, INT),
(V32HF, V32HF, V32HF, INT, V32HF, USI, INT),
(V16HF, V16HF, V16HF, INT, V16HF, UHI, INT),
(V16SF, V16SF, V16SF, INT, V16SF, UHI, INT).
* config/i386/i386-builtin.def (BDESC): Add new builtins.
* config/i386/i386-expand.cc
(ix86_expand_args_builtin): Handle V8BF_FTYPE_V8BF_V8BF_INT_V8BF_UQI,
V16BF_FTYPE_V16BF_V16BF_INT_V16BF_UHI,
V32BF_FTYPE_V32BF_V32BF_INT_V32BF_USI,
V8HF_FTYPE_V8HF_V8HF_INT_V8HF_UQI,
(ix86_expand_round_builtin): Handle V8DF_FTYPE_V8DF_V8DF_INT_V8DF_UQI_INT,
V32HF_FTYPE_V32HF_V32HF_INT_V32HF_USI_INT,
V16HF_FTYPE_V16HF_V16HF_INT_V16HF_UHI_INT.
V16SF_FTYPE_V16SF_V16SF_INT_V16SF_UHI_INT.
* config/i386/immintrin.h: Include avx10_2-512mixmaxintrin.h and
avx10_2minmaxintrin.h.
* config/i386/sse.md (VFH_AVX10_2): New.
(avx10_2_vminmaxnepbf16_<mode><mask_name>): New define_insn.
(avx10_2_minmaxp<mode><mask_name><round_saeonly_name>): Ditto.
(avx10_2_minmaxs<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto.
* config/i386/avx10_2-512minmaxintrin.h: New file.
* config/i386/avx10_2minmaxintrin.h: 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/avx512f-helper.h: Add helper function.
* gcc.target/i386/avx10-minmax-helper.h: New helper file.
* gcc.target/i386/avx10_2-512-minmax-1.c: New test.
* gcc.target/i386/avx10_2-512-vminmaxnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vminmaxpd-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vminmaxph-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vminmaxps-2.c: Ditto.
* gcc.target/i386/avx10_2-minmax-1.c: Ditto.
* gcc.target/i386/avx10_2-vminmaxnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vminmaxsd-2.c: Ditto.
* gcc.target/i386/avx10_2-vminmaxsh-2.c: Ditto.
* gcc.target/i386/avx10_2-vminmaxss-2.c: Ditto.
* gcc.target/i386/avx10_2-vminmaxpd-2.c: Ditto.
* gcc.target/i386/avx10_2-vminmaxph-2.c: Ditto.
* gcc.target/i386/avx10_2-vminmaxps-2.c: Ditto.
Co-authored-by: Hu, Lin1 <lin1.hu@intel.com>
Co-authored-by: Haochen Jiang <haochen.jiang@intel.com>
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r-- | gcc/config.gcc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index 4bcb461..cd8a34b 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -456,7 +456,8 @@ i[34567]86-*-* | x86_64-*-*) avx10_2mediaintrin.h avx10_2-512mediaintrin.h avx10_2convertintrin.h avx10_2-512convertintrin.h avx10_2bf16intrin.h avx10_2-512bf16intrin.h - avx10_2satcvtintrin.h avx10_2-512satcvtintrin.h" + avx10_2satcvtintrin.h avx10_2-512satcvtintrin.h + avx10_2minmaxintrin.h avx10_2-512minmaxintrin.h" ;; ia64-*-*) extra_headers=ia64intrin.h |