diff options
author | konglin1 <lingling.kong@intel.com> | 2024-08-26 10:53:43 +0800 |
---|---|---|
committer | Haochen Jiang <haochen.jiang@intel.com> | 2024-08-26 11:23:45 +0800 |
commit | 9023662464ac7a0bbac72d94078ea0845bf99c86 (patch) | |
tree | 0fc07c11efadfe42e4b7a8b1a029908697a76233 /gcc/config.gcc | |
parent | 2a046117a8376578337dc385f171e908155782b7 (diff) | |
download | gcc-9023662464ac7a0bbac72d94078ea0845bf99c86.zip gcc-9023662464ac7a0bbac72d94078ea0845bf99c86.tar.gz gcc-9023662464ac7a0bbac72d94078ea0845bf99c86.tar.bz2 |
[PATCH 1/2] AVX10.2: Support BF16 instructions
gcc/ChangeLog:
* config.gcc: Add avx10_2-512bf16intrin.h and avx10_2bf16intrin.h.
* config/i386/i386-builtin-types.def : Add new
DEF_FUNCTION_TYPE for V32BF_FTYPE_V32BF_V32BF,
V16BF_FTYPE_V16BF_V16BF, V8BF_FTYPE_V8BF_V8BF,
V8BF_FTYPE_V8BF_V8BF_UQI, V16BF_FTYPE_V16BF_V16BF_UHI,
V32BF_FTYPE_V32BF_V32BF_USI, V32BF_FTYPE_V32BF_V32BF_V32BF_USI,
V8BF_FTYPE_V8BF_V8BF_V8BF_UQI and V16BF_FTYPE_V16BF_V16BF_V16BF_UHI.
* config/i386/i386-builtin.def (BDESC): Add new builtins.
* config/i386/i386-expand.cc (ix86_expand_args_builtin):
Handle new DEF_FUNCTION_TYPE.
* config/i386/immintrin.h: Include avx10_2-512bf16intrin.h and
avx10_2bf16intrin.h.
* config/i386/sse.md
(VBF_AVX10_2): New iterator.
(avx10_2_scalefpbf16_<mode><mask_name>): New define_insn.
(avx10_2_<code>nepbf16_<mode><mask_name>): Ditto.
(avx10_2_<insn>nepbf16_<mode><mask_name>): Ditto.
(avx10_2_fmaddnepbf16_<mode>_maskz): New expander.
(avx10_2_fnmaddnepbf16_<mode>_maskz): Ditto.
(avx10_2_fmsubnepbf16_<mode>_maskz): Ditto.
(avx10_2_fnmsubnepbf16_<mode>_maskz): Ditto.
(avx10_2_fmaddnepbf16_<mode><sd_maskz_name>): New define_insn.
(avx10_2_fmaddnepbf16_<mode>_mask): Ditto.
(avx10_2_fmaddnepbf16_<mode>_mask3): Ditto.
(avx10_2_fnmaddnepbf16_<mode><sd_maskz_name>): Ditto.
(avx10_2_fnmaddnepbf16_<mode>_mask): Ditto.
(avx10_2_fnmaddnepbf16_<mode>_mask3): Ditto.
(avx10_2_fmsubnepbf16_<mode><sd_maskz_name>): Ditto.
(avx10_2_fmsubnepbf16_<mode>_mask): Ditto.
(avx10_2_fmsubnepbf16_<mode>_mask3): Ditto.
(avx10_2_fnmsubnepbf16_<mode><sd_maskz_name>): Ditto.
(avx10_2_fnmsubnepbf16_<mode>_mask): Ditto.
(avx10_2_fnmsubnepbf16_<mode>_mask3): Ditto.
* config/i386/avx10_2-512bf16intrin.h: New file.
* config/i386/avx10_2bf16intrin.h: Ditto.
gcc/testsuite/ChangeLog:
* gcc.target/i386/avx512f-helper.h: Add MAKE_MASK_MERGE and MAKE_MASK_ZERO
for bf16_uw.
* gcc.target/i386/m512-check.h: Add union512bf16_uw, union256bf16_uw,
union128bf16_uw and CHECK_EXP for them.
* gcc.target/i386/avx10-helper.h: New file.
* gcc.target/i386/avx10_2-512-bf16-1.c: New test.
* gcc.target/i386/avx10_2-512-vaddnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vdivnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vfmaddXXXnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vfmsubXXXnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vfnmaddXXXnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vfnmsubXXXnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vmaxpbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vminpbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vscalefpbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-512-vsubnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-bf16-1.c: Ditto.
* gcc.target/i386/avx10_2-vaddnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vdivnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vfmaddXXXnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vfmsubXXXnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vfnmaddXXXnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vfnmsubXXXnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vmaxpbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vminpbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vmulnepbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vscalefpbf16-2.c: Ditto.
* gcc.target/i386/avx10_2-vsubnepbf16-2.c: Ditto.
Co-authored-by: Levy Hsu <admin@levyhsu.com>
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r-- | gcc/config.gcc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index 5e9c36a..7d761b2 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -454,7 +454,7 @@ i[34567]86-*-* | x86_64-*-*) sm3intrin.h sha512intrin.h sm4intrin.h usermsrintrin.h avx10_2roundingintrin.h avx10_2mediaintrin.h avx10_2-512mediaintrin.h - avx10_2convertintrin.h avx10_2-512convertintrin.h" + avx10_2bf16intrin.h avx10_2-512bf16intrin.h" ;; ia64-*-*) extra_headers=ia64intrin.h |