i386.c (inline_memory_move_cost): Correctly compute number of TFmode GPR moves.
authorUros Bizjak <uros@gcc.gnu.org>
Sun, 2 Dec 2018 22:21:37 +0000 (23:21 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 2 Dec 2018 22:21:37 +0000 (23:21 +0100)
* config/i386/i386.c (inline_memory_move_cost): Correctly
compute number of TFmode GPR moves.

From-SVN: r266729

gcc/ChangeLog
gcc/config/i386/i386.c

index d74c1a990248a8e70ff1934a0dcd54fa3ee33d5c..109566e37034c97e091cf11344d64d8731435e57 100644 (file)
@@ -1,3 +1,8 @@
+2018-12-02  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (inline_memory_move_cost): Correctly
+       compute number of TFmode GPR moves.
+
 2018-12-02  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/88278
@@ -5,7 +10,7 @@
 
 2018-12-02  Jeff Law  <law@redhat.com>
 
-       * config/h8300/h8300.md (call, call_value): Drop mode from 
+       * config/h8300/h8300.md (call, call_value): Drop mode from
        operand containing number of bytes pushed.
        (call_insn, call_value_insn): Use mode iterator for number
        of bytes pushed operand.  Make pattern name vary appropriately.
index 653d7204d5a6b8c6e0dd0e9333c71eef3888dbd6..3e2fdfa86ffcd768b51ad800f1412209d881399f 100644 (file)
@@ -39598,15 +39598,13 @@ inline_memory_move_cost (machine_mode mode, enum reg_class regclass, int in)
          return MAX (ix86_cost->int_load[1], ix86_cost->int_store[1]);
        return in ? ix86_cost->int_load[1] : ix86_cost->int_store[1];
       default:
-       /* Compute number of 32bit moves needed.  TFmode is moved as XFmode.  */
-       if (mode == TFmode)
-         mode = XFmode;
        if (in == 2)
          cost = MAX (ix86_cost->int_load[2], ix86_cost->int_store[2]);
        else if (in)
          cost = ix86_cost->int_load[2];
        else
          cost = ix86_cost->int_store[2];
+       /* Multiply with the number of GPR moves needed.  */
        return cost * CEIL ((int) GET_MODE_SIZE (mode), UNITS_PER_WORD);
     }
 }