From 0c7800b29bd48cc0f7685f3c0da2db6fd87ef52c Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Wed, 4 Sep 2019 20:25:05 +0200 Subject: [PATCH] re PR target/32413 (internal compiler error: in reload_cse_simplify_operands, at postreload.c:396) PR target/32413 * config/i386/i386.c (inline_secondary_memory_needed): Return true for QI and HImode moves between SSE and general registers. From-SVN: r275377 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.c | 1 + 2 files changed, 7 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc187665099..be92d37455e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-09-04 Uroš Bizjak + + 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 PR c/78736 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 1c9c719f22a..50571a080e5 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; -- 2.30.2