diff options
author | Hongyu Wang <hongyu.wang@intel.com> | 2021-07-15 13:31:24 +0800 |
---|---|---|
committer | Hongyu Wang <hongyu.wang@intel.com> | 2021-09-28 16:39:32 +0800 |
commit | eea10afef71e1947e3a3fde2a44839054ab91967 (patch) | |
tree | afd7e449fa6e097abacd0c9303df0cab63e61eef /gcc/gimple-range-path.cc | |
parent | 1dadd5110f8b9ac65c53207c9bda612c3309f96b (diff) | |
download | gcc-eea10afef71e1947e3a3fde2a44839054ab91967.zip gcc-eea10afef71e1947e3a3fde2a44839054ab91967.tar.gz gcc-eea10afef71e1947e3a3fde2a44839054ab91967.tar.bz2 |
AVX512FP16: Support basic 64/32bit vector type and operation.
For 32bit target, V4HF vector is parsed same as __m64 type, V2HF
is parsed by stack and returned from GPR since it is not specified
by ABI.
gcc/ChangeLog:
PR target/102230
* config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Add
V2HF mode check.
(VALID_SSE2_REG_VHF_MODE): Add V4HFmode and V2HFmode.
(VALID_MMX_REG_MODE): Add V4HFmode.
(SSE_REG_MODE_P): Replace VALID_AVX512FP16_REG_MODE with
vector mode condition.
* config/i386/i386.c (classify_argument): Parse V4HF/V2HF
via sse regs.
(function_arg_32): Add V4HFmode.
(function_arg_advance_32): Likewise.
* config/i386/i386.md (mode): Add V4HF/V2HF.
(MODE_SIZE): Likewise.
* config/i386/mmx.md (MMXMODE): Add V4HF mode.
(V_32): Add V2HF mode.
(VHF_32_64): New mode iterator.
(*mov<mode>_internal): Adjust sse alternatives to support
V4HF mode move.
(*mov<mode>_internal): Adjust sse alternatives to support
V2HF mode move.
(<insn><mode>3): New define_insn for add/sub/mul/div.
gcc/testsuite/ChangeLog:
PR target/102230
* gcc.target/i386/avx512fp16-floatvnhf.c: Remove xfail.
* gcc.target/i386/avx512fp16-trunc-extendvnhf.c: Ditto.
* gcc.target/i386/avx512fp16-truncvnhf.c: Ditto.
* gcc.target/i386/avx512fp16-64-32-vecop-1.c: New test.
* gcc.target/i386/avx512fp16-64-32-vecop-2.c: Ditto.
* gcc.target/i386/pr102230.c: Ditto.
Diffstat (limited to 'gcc/gimple-range-path.cc')
0 files changed, 0 insertions, 0 deletions