[1/3] rs6000: Remove "wD" from *vsx_extract_<mode>_store

Message ID 19d1d25b1a819a74e01314e6f14b91a847656d4e.1664994970.git.segher@kernel.crashing.org
State New, archived
Headers
Series rs6000: Get rid of wD |

Commit Message

Segher Boessenkool Oct. 5, 2022, 7:08 p.m. UTC
  We can use "n" instead of "wD" if we simply test the value of the
integer constant directly.

2022-10-05  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/vsx.md (*vsx_extract_<mode>_store): Use "n" instead of
	"wD" constraint.

---
 gcc/config/rs6000/vsx.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
  

Patch

diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index e226a93bbe55..79a759b1ccf3 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -3466,8 +3466,9 @@  (define_insn "*vsx_extract_<mode>_store"
   [(set (match_operand:<VEC_base> 0 "memory_operand" "=m,Z,wY")
 	(vec_select:<VEC_base>
 	 (match_operand:VSX_D 1 "register_operand" "d,v,v")
-	 (parallel [(match_operand:QI 2 "vsx_scalar_64bit" "wD,wD,wD")])))]
-  "VECTOR_MEM_VSX_P (<MODE>mode)"
+	 (parallel [(match_operand:QI 2 "vsx_scalar_64bit" "n,n,n")])))]
+  "VECTOR_MEM_VSX_P (<MODE>mode)
+   && INTVAL (operands[2]) == (BYTES_BIG_ENDIAN ? 0 : 1)"
   "@
    stfd%U0%X0 %1,%0
    stxsdx %x1,%y0