aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2022-08-26 10:26:06 -0700
committerH.J. Lu <hjl.tools@gmail.com>2022-08-29 07:45:39 -0700
commit60d1d296b42b22b08d4eaa38bea02100c07261ac (patch)
tree4acb0ed8deaf36d019c59b7dfacee29fcd1faef2 /gcc/config
parentfeeb9314002a5e304dc552781ed93f06d7f51c93 (diff)
downloadgcc-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.cc4
-rw-r--r--gcc/config/i386/sse.md4
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