[gcc/devel/omp/gcc-9] Revert "Fix bad code of vector extract of PC-relative address with variable element #."

Tobias Burnus burnus@gcc.gnu.org
Thu Mar 5 14:56:00 GMT 2020


https://gcc.gnu.org/g:a0e22367235f5cd092f9d7800f17081ca4dc79e8

commit a0e22367235f5cd092f9d7800f17081ca4dc79e8
Author: Peter Bergner <bergner@linux.ibm.com>
Date:   Sat Feb 29 16:30:48 2020 -0600

    Revert "Fix bad code of vector extract of PC-relative address with variable element #."
    
    This reverts commit 48558cdf49373ba508cf8d7fcaaafb383316f644.
    See PR93974.

Diff:
---
 gcc/ChangeLog            | 14 --------------
 gcc/config/rs6000/vsx.md |  8 ++++----
 2 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 86825b1..2ed1f2e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -116,20 +116,6 @@
 	(maybe_run_lto_and_relink): Avoid possible signal handler
 	access to unintialzed memory (lto_o_files).
 
-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 5973e0a..607c0cd 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -3295,7 +3295,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"))
@@ -3364,7 +3364,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"))
@@ -3724,7 +3724,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"))
@@ -3743,7 +3743,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"))



More information about the Gcc-cvs mailing list