-
- Downloads
[PATCH 1/2] AVX10.2: Support saturating convert instructions
gcc/ChangeLog: * config.gcc: Add avx10_2satcvtintrin.h and avx10_2-512satcvtintrin.h. * config/i386/i386-builtin-types.def: Add DEF_FUNCTION_TYPE (V8HI, V8BF, V8HI, UQI), (V16HI, V16BF, V16HI, UHI), (V32HI, V32BF, V32HI, USI), (V16SI, V16SF, V16SI, UHI, INT), (V16HI, V16BF, V16HI, UHI, INT), (V32HI, V32BF, V32HI, USI, INT). * config/i386/i386-builtin.def (BDESC): Add new builtins. * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle V32HI_FTYPE_V32BF_V32HI_USI, V16HI_FTYPE_V16BF_V16HI_UHI, V8HI_FTYPE_V8BF_V8HI_UQI. (ix86_expand_round_builtin): Handle V32HI_FTYPE_V32BF_V32HI_USI_INT, V16SI_FTYPE_V16SF_V16SI_UHI_INT, V16HI_FTYPE_V16BF_V16HI_UHI_INT. * config/i386/immintrin.h: Include avx10_2satcvtintrin.h and avx10_2-512savcvtintrin.h. * config/i386/sse.md: (UNSPEC_CVTNE_BF16_IBS_ITER): New iterator. (sat_cvt_sign_prefix): Ditto. (sat_cvt_trunc_prefix): Ditto. (UNSPEC_CVT_PH_IBS_ITER): Ditto. (UNSPEC_CVTT_PH_IBS_ITER): Ditto. (UNSPEC_CVT_PS_IBS_ITER): Ditto. (UNSPEC_CVTT_PS_IBS_ITER): Ditto. (avx10_2_cvt<sat_cvt_trunc_prefix>nebf162i<sat_cvt_sign_prefix>bs<mode><mask_name>): New define_insn. (avx10_2_cvtph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>): Ditto. (avx10_2_cvttph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>): Ditto. (avx10_2_cvtps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>): Ditto. (avx10_2_cvttps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>): Ditto. * config/i386/avx10_2-512satcvtintrin.h: New file. * config/i386/avx10_2satcvtintrin.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 new test macro. * gcc.target/i386/m512-check.h: Add new type. * gcc.target/i386/avx10_2-512-satcvt-1.c: New test. * gcc.target/i386/avx10_2-512-vcvtnebf162ibs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvtnebf162iubs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvttnebf162ibs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvttnebf162iubs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvttps2ibs-2.c: Ditto. * gcc.target/i386/avx10_2-512-vcvttps2iubs-2.c: Ditto. * gcc.target/i386/avx10_2-satcvt-1.c: Ditto. * gcc.target/i386/avx10_2-vcvtnebf162ibs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvtnebf162iubs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvtph2ibs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvtph2iubs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvtps2ibs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvttnebf162ibs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvttnebf162iubs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvttph2ibs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvttph2iubs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvttps2ibs-2.c: Ditto. * gcc.target/i386/avx10_2-vcvttps2iubs-2.c: Ditto.
Showing
- gcc/config.gcc 3 additions, 1 deletiongcc/config.gcc
- gcc/config/i386/avx10_2-512satcvtintrin.h 624 additions, 0 deletionsgcc/config/i386/avx10_2-512satcvtintrin.h
- gcc/config/i386/avx10_2satcvtintrin.h 1022 additions, 0 deletionsgcc/config/i386/avx10_2satcvtintrin.h
- gcc/config/i386/i386-builtin-types.def 6 additions, 0 deletionsgcc/config/i386/i386-builtin-types.def
- gcc/config/i386/i386-builtin.def 36 additions, 0 deletionsgcc/config/i386/i386-builtin.def
- gcc/config/i386/i386-expand.cc 6 additions, 0 deletionsgcc/config/i386/i386-expand.cc
- gcc/config/i386/immintrin.h 3 additions, 0 deletionsgcc/config/i386/immintrin.h
- gcc/config/i386/sse.md 109 additions, 0 deletionsgcc/config/i386/sse.md
- gcc/testsuite/gcc.target/i386/avx-1.c 20 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx-1.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c 100 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx10_2-512-satcvt-1.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtnebf162ibs-2.c 69 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx10_2-512-vcvtnebf162ibs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtnebf162iubs-2.c 69 additions, 0 deletions...testsuite/gcc.target/i386/avx10_2-512-vcvtnebf162iubs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c 74 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2ibs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c 74 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx10_2-512-vcvtph2iubs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c 75 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2ibs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c 73 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx10_2-512-vcvtps2iubs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttnebf162ibs-2.c 69 additions, 0 deletions...testsuite/gcc.target/i386/avx10_2-512-vcvttnebf162ibs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttnebf162iubs-2.c 69 additions, 0 deletions...estsuite/gcc.target/i386/avx10_2-512-vcvttnebf162iubs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c 74 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2ibs-2.c
- gcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c 74 additions, 0 deletionsgcc/testsuite/gcc.target/i386/avx10_2-512-vcvttph2iubs-2.c
Loading
Please register or sign in to comment