diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2018-06-11 18:06:49 +0200 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2018-06-11 18:06:49 +0200 |
commit | 8436701337b39e287fc1a1278bd1a8a6f4e6c095 (patch) | |
tree | b64e73d6a32f5d1a14a33a2be5bb9f8d06ba655c | |
parent | 8173229f04b6cf7f4d489372223939a2d8ba26d3 (diff) | |
download | gcc-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/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 24 |
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) |