aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2018-06-11 18:06:49 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2018-06-11 18:06:49 +0200
commit8436701337b39e287fc1a1278bd1a8a6f4e6c095 (patch)
treeb64e73d6a32f5d1a14a33a2be5bb9f8d06ba655c
parent8173229f04b6cf7f4d489372223939a2d8ba26d3 (diff)
downloadgcc-8436701337b39e287fc1a1278bd1a8a6f4e6c095.zip
gcc-8436701337b39e287fc1a1278bd1a8a6f4e6c095.tar.gz
gcc-8436701337b39e287fc1a1278bd1a8a6f4e6c095.tar.bz2
backport: re PR target/85755 (PowerPC Gcc's -mupdate produces inefficient code on power8/power9 machines)
Backport from trunk 2018-06-11 Segher Boessenkool <segher@kernel.crashing.org> PR target/85755 * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers on the correct operand. (*movdi_internal64): Ditto. From-SVN: r261436
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/rs6000/rs6000.md24
2 files changed, 22 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27fef33..60638d1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2018-06-11 Segher Boessenkool <segher@kernel.crashing.org>
+
+ Backport from trunk
+ 2018-06-11 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/85755
+ * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers
+ on the correct operand.
+ (*movdi_internal64): Ditto.
+
2018-06-08 Carl Love <cel@us.ibm.com>
Backport from mainline
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 2b15cca..f857b77 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -8465,16 +8465,16 @@
(define_insn "*movdi_internal32"
[(set (match_operand:DI 0 "nonimmediate_operand"
- "=Y, r, r, ^m, ^d, ^d,
- r, ^wY, $Z, ^wb, $wv, ^wi,
+ "=Y, r, r, m, ^d, ^d,
+ r, wY, Z, ^wb, $wv, ^wi,
*wo, *wo, *wv, *wi, *wi, *wv,
*wv")
(match_operand:DI 1 "input_operand"
- "r, Y, r, d, m, d,
- IJKnGHF, wb, wv, wY, Z, wi,
- Oj, wM, OjwM, Oj, wM, wS,
- wB"))]
+ "r, Y, r, ^d, m, ^d,
+ IJKnGHF, ^wb, $wv, wY, Z, ^wi,
+ Oj, wM, OjwM, Oj, wM, wS,
+ wB"))]
"! TARGET_POWERPC64
&& (gpc_reg_operand (operands[0], DImode)
@@ -8541,17 +8541,17 @@
(define_insn "*movdi_internal64"
[(set (match_operand:DI 0 "nonimmediate_operand"
"=YZ, r, r, r, r, r,
- ^m, ^d, ^d, ^wY, $Z, $wb,
+ m, ^d, ^d, wY, Z, $wb,
$wv, ^wi, *wo, *wo, *wv, *wi,
*wi, *wv, *wv, r, *h, *h,
?*r, ?*wg, ?*r, ?*wj")
(match_operand:DI 1 "input_operand"
- "r, YZ, r, I, L, nF,
- d, m, d, wb, wv, wY,
- Z, wi, Oj, wM, OjwM, Oj,
- wM, wS, wB, *h, r, 0,
- wg, r, wj, r"))]
+ "r, YZ, r, I, L, nF,
+ ^d, m, ^d, ^wb, $wv, wY,
+ Z, ^wi, Oj, wM, OjwM, Oj,
+ wM, wS, wB, *h, r, 0,
+ wg, r, wj, r"))]
"TARGET_POWERPC64
&& (gpc_reg_operand (operands[0], DImode)