aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2022-10-03 22:43:48 +0000
committerSegher Boessenkool <segher@kernel.crashing.org>2022-10-05 19:12:14 +0000
commitc3d131531a23c71e09c032d6222d0b5ff0eb8162 (patch)
tree2e79628aac37eb4de950d547c06eec70be7fd419
parent59110467908baf11d3c2100e29bdbf7090e11940 (diff)
downloadgcc-c3d131531a23c71e09c032d6222d0b5ff0eb8162.zip
gcc-c3d131531a23c71e09c032d6222d0b5ff0eb8162.tar.gz
gcc-c3d131531a23c71e09c032d6222d0b5ff0eb8162.tar.bz2
rs6000: Remove "wD" from *vsx_extract_<mode>_store
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.
-rw-r--r--gcc/config/rs6000/vsx.md5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index e226a93..79a759b 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -3466,8 +3466,9 @@
[(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