]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Revert "Fix bad code of vector extract of PC-relative address with variable element #."
authorPeter Bergner <bergner@linux.ibm.com>
Sat, 29 Feb 2020 22:30:48 +0000 (16:30 -0600)
committerPeter Bergner <bergner@linux.ibm.com>
Sat, 29 Feb 2020 22:31:45 +0000 (16:31 -0600)
This reverts commit 48558cdf49373ba508cf8d7fcaaafb383316f644.
See PR93974.

gcc/ChangeLog
gcc/config/rs6000/vsx.md

index 86825b16a992dae27c3e041c8fae279d935b6ce7..2ed1f2ea20c22d73eace9a6c9fb12a8052d2df66 100644 (file)
        (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
index 5973e0a399da4c0cb291ed5dc332c0803f09e5c5..607c0cd33f214bbaa05565c7401b219627f0d29c 100644 (file)
 ;; 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"))
 ;; 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"))
 (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"))
   [(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"))