diff options
author | Peter Bergner <bergner@linux.ibm.com> | 2020-02-29 16:38:12 -0600 |
---|---|---|
committer | Peter Bergner <bergner@linux.ibm.com> | 2020-02-29 16:38:12 -0600 |
commit | cb7565c841d6058fc2c696902fe7e85dd526111f (patch) | |
tree | 77f9e0a16dce4bacdacec1c0775a67eb6174c80b | |
parent | 14eab35ebefe92a3b4592a3c035abc1294b9bd4d (diff) | |
download | gcc-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/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/config/rs6000/vsx.md | 8 |
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")) |