summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Bergner <bergner@linux.ibm.com>2020-02-29 16:38:12 -0600
committerPeter Bergner <bergner@linux.ibm.com>2020-02-29 16:38:12 -0600
commitcb7565c841d6058fc2c696902fe7e85dd526111f (patch)
tree77f9e0a16dce4bacdacec1c0775a67eb6174c80b
parent14eab35ebefe92a3b4592a3c035abc1294b9bd4d (diff)
downloadgcc-cb7565c841d6058fc2c696902fe7e85dd526111f.tar.gz
Revert "Fix bad code of vector extract of PC-relative address with variable element #."
This reverts commit 7f85c982a20c54397cf8b3a1b172f65de89c4c1d. See PR93974.
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config/rs6000/vsx.md8
2 files changed, 4 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f22d4472eac..57429efe767 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -93,20 +93,6 @@
* symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
non-zero address even if weak and not yet defined.
-2020-02-23 Peter Bergner <bergner@linux.ibm.com>
-
- Backport from master
- 2020-01-06 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
- Use 'Q' for doing vector extract from memory.
- (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
- memory.
- (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
- doing vector extract from memory.
- (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
- extract from memory.
-
2020-02-21 John David Anglin <danglin@gcc.gnu.org>
* gcc/config/pa/pa.c (pa_function_value): Fix check for word and
diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index 76370447143..17c24551306 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -3312,7 +3312,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")
- (unspec:<VS_scalar> [(match_operand:VSX_D 1 "input_operand" "v,Q,Q")
+ (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))
(clobber (match_scratch:DI 3 "=r,&b,&b"))
@@ -3381,7 +3381,7 @@
;; Variable V4SF extract
(define_insn_and_split "vsx_extract_v4sf_var"
[(set (match_operand:SF 0 "gpc_reg_operand" "=ww,ww,?r")
- (unspec:SF [(match_operand:V4SF 1 "input_operand" "v,Q,Q")
+ (unspec:SF [(match_operand:V4SF 1 "input_operand" "v,m,m")
(match_operand:DI 2 "gpc_reg_operand" "r,r,r")]
UNSPEC_VSX_EXTRACT))
(clobber (match_scratch:DI 3 "=r,&b,&b"))
@@ -3741,7 +3741,7 @@
(define_insn_and_split "vsx_extract_<mode>_var"
[(set (match_operand:<VS_scalar> 0 "gpc_reg_operand" "=r,r,r")
(unspec:<VS_scalar>
- [(match_operand:VSX_EXTRACT_I 1 "input_operand" "wK,v,Q")
+ [(match_operand:VSX_EXTRACT_I 1 "input_operand" "wK,v,m")
(match_operand:DI 2 "gpc_reg_operand" "r,r,r")]
UNSPEC_VSX_EXTRACT))
(clobber (match_scratch:DI 3 "=r,r,&b"))
@@ -3760,7 +3760,7 @@
[(set (match_operand:<VS_scalar> 0 "gpc_reg_operand" "=r,r,r")
(zero_extend:<VS_scalar>
(unspec:<VSX_EXTRACT_I:VS_scalar>
- [(match_operand:VSX_EXTRACT_I 1 "input_operand" "wK,v,Q")
+ [(match_operand:VSX_EXTRACT_I 1 "input_operand" "wK,v,m")
(match_operand:DI 2 "gpc_reg_operand" "r,r,r")]
UNSPEC_VSX_EXTRACT)))
(clobber (match_scratch:DI 3 "=r,r,&b"))