https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102230
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Hongyu Wang <hong...@gcc.gnu.org>: https://gcc.gnu.org/g:eea10afef71e1947e3a3fde2a44839054ab91967 commit r12-3914-geea10afef71e1947e3a3fde2a44839054ab91967 Author: Hongyu Wang <hongyu.w...@intel.com> Date: Thu Jul 15 13:31:24 2021 +0800 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.