]> git.ipfire.org Git - thirdparty/gcc.git/commit
Enable V4BFmode and V2BFmode.
authorliuhongt <hongtao.liu@intel.com>
Tue, 25 Oct 2022 05:31:54 +0000 (13:31 +0800)
committerliuhongt <hongtao.liu@intel.com>
Mon, 31 Oct 2022 01:50:07 +0000 (09:50 +0800)
commit6913cad2a38bc406b137b06d579b650f6fe9a2e6
tree160fcedc12fd05945ecb4498483368395ec2d7c9
parentda5e884411903f82cb665476a0e8df3fe51a84ae
Enable V4BFmode and V2BFmode.

Enable V4BFmode and V2BFmode with the same ABI as V4HFmode and
V2HFmode. No real operation is supported for them except for movement.
This should solve PR target/107261.

Also I notice there's redundancy in VALID_AVX512FP16_REG_MODE, and
remove V2BFmode remove it.

gcc/ChangeLog:

PR target/107261
* config/i386/i386-modes.def (VECTOR_MODE): Support V2BFmode.
* config/i386/i386.cc (classify_argument): Handle V4BFmode and
V2BFmode.
(ix86_convert_const_vector_to_integer): Ditto.
* config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Remove
V2BFmode.
(VALID_SSE2_REG_MODE): Add V4BFmode and V2BFmode.
(VALID_MMX_REG_MODE): Add V4BFmode.
* config/i386/i386.md (mode): Add V4BF and V2BF.
(MODE_SIZE): Ditto.
* config/i386/mmx.md (MMXMODE) Add V4BF.
(V_32): Add V2BF.
(V_16_32_64): Add V4BF and V2BF.
(mmxinsnmode): Add V4BF and V2BF.
(*mov<mode>_internal): Hanlde V4BFmode and V2BFmode.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr107261.c: New test.
gcc/config/i386/i386-modes.def
gcc/config/i386/i386.cc
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/mmx.md
gcc/testsuite/gcc.target/i386/pr107261.c [new file with mode: 0644]