rs6000: Implement insn_cost for mfcr, mfcrf
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 6 Nov 2017 09:04:23 +0000 (10:04 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 6 Nov 2017 09:04:23 +0000 (10:04 +0100)
This gives mfcrf a cost of three integer insns, just like we do for sync
and load-with-reservation already.

* config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
TYPE_MFCRF.

From-SVN: r254439

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 5556e296bd6eebe42b26628ac4b0668825368ad8..c4a360fe4343633beb053fef85b1a8845f1617dd 100644 (file)
@@ -1,3 +1,8 @@
+2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
+       TYPE_MFCRF.
+
 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
 
        * tree-vrp.c (vrp_int_const_binop): Return true on success and
index 0eabd5f108cc882c66622af853537c3979cd550f..e3636dc68314fcc4d305e18db0d068ba3c5f9da2 100644 (file)
@@ -35038,6 +35038,8 @@ rs6000_insn_cost (rtx_insn *insn, bool speed)
 
     case TYPE_SYNC:
     case TYPE_LOAD_L:
+    case TYPE_MFCR:
+    case TYPE_MFCRF:
       cost = COSTS_N_INSNS (n + 2);
       break;