From edadc7e0510b703d9727cf5ff68d55d84bb95def Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Sat, 12 Feb 2022 10:53:49 +0100 Subject: i386: Skip decimal float vector modes in type_natural_mode [PR79754] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2022-02-12 Uroš Bizjak gcc/ChangeLog: PR target/79754 * config/i386/i386.cc (type_natural_mode): Skip decimal float vector modes. gcc/testsuite/ChangeLog: PR target/79754 * gcc.target/i386/pr79754.c: New test. --- gcc/config/i386/i386.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gcc/config/i386/i386.cc') diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index 6b97a2b..cf246e7 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -1876,10 +1876,14 @@ type_natural_mode (const_tree type, const CUMULATIVE_ARGS *cum, { machine_mode innermode = TYPE_MODE (TREE_TYPE (type)); - /* There are no XFmode vector modes. */ + /* There are no XFmode vector modes ... */ if (innermode == XFmode) return mode; + /* ... and no decimal float vector modes. */ + if (DECIMAL_FLOAT_MODE_P (innermode)) + return mode; + if (TREE_CODE (TREE_TYPE (type)) == REAL_TYPE) mode = MIN_MODE_VECTOR_FLOAT; else -- cgit v1.1