]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000: Remove "wD" from *vsx_extract_<mode>_store
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 3 Oct 2022 22:43:48 +0000 (22:43 +0000)
committerSegher Boessenkool <segher@kernel.crashing.org>
Wed, 5 Oct 2022 19:12:14 +0000 (19:12 +0000)
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

index e226a93bbe551564d6872551b1b5cb4c6c7bc017..79a759b1ccf343fa48253a47703128d6e150f697 100644 (file)
   [(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