diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2022-08-26 10:26:06 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2022-08-29 07:45:39 -0700 |
commit | 60d1d296b42b22b08d4eaa38bea02100c07261ac (patch) | |
tree | 4acb0ed8deaf36d019c59b7dfacee29fcd1faef2 /gcc/config | |
parent | feeb9314002a5e304dc552781ed93f06d7f51c93 (diff) | |
download | gcc-60d1d296b42b22b08d4eaa38bea02100c07261ac.zip gcc-60d1d296b42b22b08d4eaa38bea02100c07261ac.tar.gz gcc-60d1d296b42b22b08d4eaa38bea02100c07261ac.tar.bz2 |
x86: Handle V16BF in ix86_avx256_split_vector_move_misalign
Handle E_V16BFmode in ix86_avx256_split_vector_move_misalign and add
V16BF to V_256H iterator.
gcc/
PR target/106748
* config/i386/i386-expand.cc
(ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
* config/i386/sse.md (V_256H): Add V16BF.
gcc/testsuite/
PR target/106748
* gcc.target/i386/pr106748.c: New test.
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386-expand.cc | 4 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index 4b21630..836ebc8 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -745,6 +745,10 @@ ix86_avx256_split_vector_move_misalign (rtx op0, rtx op1) extract = gen_avx_vextractf128v32qi; mode = V16QImode; break; + case E_V16BFmode: + extract = gen_avx_vextractf128v16bf; + mode = V8BFmode; + break; case E_V16HFmode: extract = gen_avx_vextractf128v16hf; mode = V8HFmode; diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index e6ab3c9..2590484 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -297,9 +297,9 @@ (define_mode_iterator V_256 [V32QI V16HI V8SI V4DI V8SF V4DF]) -;; All 256bit vector modes including HF vector mode +;; All 256bit vector modes including HF/BF vector modes (define_mode_iterator V_256H - [V32QI V16HI V8SI V4DI V8SF V4DF V16HF]) + [V32QI V16HI V8SI V4DI V8SF V4DF V16HF V16BF]) ;; All 128bit and 256bit vector modes (define_mode_iterator V_128_256 |