]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
powerpc: Fix vsx_splat_v4si_di breakage on Power8.
authorDavid Edelsohn <dje.gcc@gmail.com>
Mon, 8 Nov 2021 16:46:47 +0000 (11:46 -0500)
committerDavid Edelsohn <dje.gcc@gmail.com>
Mon, 8 Nov 2021 16:46:47 +0000 (11:46 -0500)
The vsx_splat_v4si_di pattern uses a Power8 and a Power9 instruction.
The final condition of TARGET_DIRECT_MODE_64BIT implicitly requires Power8.
The "we" constraint requires Power9, but also requires 64 bit. Because
the DImode pattern already requires 64 bit mode, this isn't horrible,
but it would be best to remove all uses of "we" constraint.  The
mtvsrws instruction itself does not require 64 bit mode.

This patch reverts the previous change to fix the breakage.

gcc/ChangeLog:

* config/rs6000/vsx.md (vsx_splat_v4si_di): Revert "wa"
constraint to "we".

gcc/config/rs6000/vsx.md

index a97f7f2a680bf128f112a63fdf6a26a02879b240..83d6c7b76f386e75880ef764361b3fe3e21c7193 100644 (file)
 ;; allows us to use direct move to get the value in a vector register
 ;; so that we can use XXSPLTW
 (define_insn "vsx_splat_v4si_di"
-  [(set (match_operand:V4SI 0 "vsx_register_operand" "=wa,wa")
+  [(set (match_operand:V4SI 0 "vsx_register_operand" "=wa,we")
        (vec_duplicate:V4SI
         (truncate:SI
          (match_operand:DI 1 "gpc_reg_operand" "wa,r"))))]