re PR target/32413 (internal compiler error: in reload_cse_simplify_operands, at...
authorUros Bizjak <ubizjak@gmail.com>
Wed, 4 Sep 2019 18:25:05 +0000 (20:25 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 4 Sep 2019 18:25:05 +0000 (20:25 +0200)
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
gcc/config/i386/i386.c

index fc187665099ac716d441d5a9dbda154c0013761e..be92d37455ed1fe54d5bc04e398439d4bd681ba8 100644 (file)
@@ -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
index 1c9c719f22a337e2debd87156431744685d5990c..50571a080e59dafab3bbcc7d09ab22e28ee57ac0 100644 (file)
@@ -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;