S/390: movsf/sd pattern fixes.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Fri, 24 Mar 2017 13:55:41 +0000 (13:55 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Fri, 24 Mar 2017 13:55:41 +0000 (13:55 +0000)
The SD/SFmode move pattern used a wrong mnemonic for vector load
element.
On the vector load element instruction was an operand missing.

Regression tested on s390x.

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
vlef/vstef.  Add missing operand to vleif.

From-SVN: r246447

gcc/ChangeLog
gcc/config/s390/s390.md

index 7098da9ca3af6547fc4ef9cef5d4ab489e87377d..0b76aa4ea6cd82149d0873b9dd7f293e8fb29bc8 100644 (file)
@@ -1,3 +1,8 @@
+2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
+       vlef/vstef.  Add missing operand to vleif.
+
 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
 
        * config/s390/s390.c (s390_expand_vec_init): Enable vector load
index 555a779d16e825d85e234818037bd9ac0bdf0df2..75b15df418bcbc35e48dd44e318d0f93fd35202c 100644 (file)
    st\t%1,%0
    sty\t%1,%0
    vlr\t%v0,%v1
-   vleif\t%v0,0
+   vleif\t%v0,0,0
    vlvgf\t%v0,%1,0
    vlgvf\t%0,%v1,0
-   vleg\t%0,%1,0
-   vsteg\t%1,%0,0"
+   vlef\t%0,%1,0
+   vstef\t%1,%0,0"
   [(set_attr "op_type" "RRE,RR,RR,RXE,RX,RXY,RX,RXY,RI,RR,RIL,RX,RXY,RIL,RX,RXY,VRR,VRI,VRS,VRS,VRX,VRX")
    (set_attr "type"    "fsimpsf,fsimpsf,fload<mode>,fload<mode>,fload<mode>,fload<mode>,
                         fstore<mode>,fstore<mode>,*,lr,load,load,load,store,store,store,*,*,*,*,load,store")