aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fc18766..be92d37 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-04 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/32413
+ * config/i386/i386.c (inline_secondary_memory_needed): Return true
+ for QI and HImode moves between SSE and general registers.
+
2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR c/78736
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 1c9c719..50571a0 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -18328,6 +18328,7 @@ inline_secondary_memory_needed (machine_mode mode, reg_class_t class1,
/* Between SSE and general, we have moves no larger than word size. */
if (!(INTEGER_CLASS_P (class1) || INTEGER_CLASS_P (class2))
+ || GET_MODE_SIZE (mode) < GET_MODE_SIZE (SImode)
|| GET_MODE_SIZE (mode) > UNITS_PER_WORD)
return true;