aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2019-06-05 01:33:18 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2019-06-05 01:33:18 +0200
commitf78c2209532f9943c5b3aab7464a5e54ae2a2bc0 (patch)
tree26ed67571ae4ca7629454cb8e11e0603edd240f7
parentcd9346a157c48d3fc5a059ca763ecb74178abeb8 (diff)
downloadgcc-f78c2209532f9943c5b3aab7464a5e54ae2a2bc0.zip
gcc-f78c2209532f9943c5b3aab7464a5e54ae2a2bc0.tar.gz
gcc-f78c2209532f9943c5b3aab7464a5e54ae2a2bc0.tar.bz2
rs6000: VSa->wa for some more cases
* config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>. (vsx_extract_<mode>_var): Ditto. From-SVN: r271934
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/vsx.md6
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 213132f..55463f0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
+ * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
+ (vsx_extract_<mode>_var): Ditto.
+
+2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
+
* config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
with just "wa".
diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index 6255823..519f1a0 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -2164,8 +2164,8 @@
;; scalar single precision instructions internally use the double format.
;; Prefer the altivec registers, since we likely will need to do a vperm
(define_insn "vsx_<VS_spdp_insn>"
- [(set (match_operand:<VS_spdp_res> 0 "vsx_register_operand" "=<VSr4>,?<VSa>")
- (unspec:<VS_spdp_res> [(match_operand:VSX_SPDP 1 "vsx_register_operand" "<VSr5>,<VSa>")]
+ [(set (match_operand:<VS_spdp_res> 0 "vsx_register_operand" "=<VSr4>,?wa")
+ (unspec:<VS_spdp_res> [(match_operand:VSX_SPDP 1 "vsx_register_operand" "<VSr5>,wa")]
UNSPEC_VSX_CVSPDP))]
"VECTOR_UNIT_VSX_P (<MODE>mode)"
"<VS_spdp_insn> %x0,%x1"
@@ -3269,7 +3269,7 @@
;; Variable V2DI/V2DF extract
(define_insn_and_split "vsx_extract_<mode>_var"
- [(set (match_operand:<VS_scalar> 0 "gpc_reg_operand" "=v,<VSa>,r")
+ [(set (match_operand:<VS_scalar> 0 "gpc_reg_operand" "=v,wa,r")
(unspec:<VS_scalar> [(match_operand:VSX_D 1 "input_operand" "v,m,m")
(match_operand:DI 2 "gpc_reg_operand" "r,r,r")]
UNSPEC_VSX_EXTRACT))