]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000: lxsdux / stxsdux do not exist
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 3 Sep 2018 15:51:37 +0000 (17:51 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 3 Sep 2018 15:51:37 +0000 (17:51 +0200)
Our md files refer to {l,st}xsd%U<n>x, but no {l,st}xsdux insns exist.
This patch removes the update forms.  All these use  constraint "Z"
which does not allow update form, so there is no practical difference.

* config/rs6000/rs6000.md (*mov<mode>_hardfloat32): Remove %U from the
lxsdx and stxsdx alternatives.
(*mov<mode>_hardfloat64): Ditto.
* config/rs6000/vsx.md (*vsx_extract_<mode>_store): Ditto.

From-SVN: r264064

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

index 981e7063f971b906e4e1680cd2dc7987c1a88311..4b5669c88e9313a5a20147927c763de2e32df2cd 100644 (file)
@@ -1,3 +1,10 @@
+2018-09-03  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.md (*mov<mode>_hardfloat32): Remove %U from the
+       lxsdx and stxsdx alternatives.
+       (*mov<mode>_hardfloat64): Ditto.
+       * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Ditto.
+
 2018-09-03  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/87200
index c4ef8785c39978f5c9bf33f5ab6e05ee6048e537..e40dc4240733ff1d78aec6c2dccac5a90524a02a 100644 (file)
    fmr %0,%1
    lxsd %0,%1
    stxsd %1,%0
-   lxsd%U1x %x0,%y1
-   stxsd%U0x %x1,%y0
+   lxsdx %x0,%y1
+   stxsdx %x1,%y0
    xxlor %x0,%x1,%x1
    xxlxor %x0,%x0,%x0
    #
    fmr %0,%1
    lxsd %0,%1
    stxsd %1,%0
-   lxsd%U1x %x0,%y1
-   stxsd%U0x %x1,%y0
+   lxsdx %x0,%y1
+   stxsdx %x1,%y0
    xxlor %x0,%x1,%x1
    xxlxor %x0,%x0,%x0
    li %0,0
index 89e193a282210b9d54e6904d88c088046e27529f..e296be96ff1df44acbe9ac1f11109e29e4f4cd1c 100644 (file)
   "VECTOR_MEM_VSX_P (<MODE>mode)"
   "@
    stfd%U0%X0 %1,%0
-   stxsd%U0x %x1,%y0
+   stxsdx %x1,%y0
    stxsd %1,%0"
   [(set_attr "type" "fpstore")])