From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 190833846078 for ; Fri, 16 Apr 2021 18:23:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 190833846078 Received: from pps.filterd (m0127361.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 13GI6M4G125872 for ; Fri, 16 Apr 2021 14:23:04 -0400 Received: from ppma04fra.de.ibm.com (6a.4a.5195.ip4.static.sl-reverse.com [149.81.74.106]) by mx0a-001b2d01.pphosted.com with ESMTP id 37xbq5a328-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 16 Apr 2021 14:23:04 -0400 Received: from pps.filterd (ppma04fra.de.ibm.com [127.0.0.1]) by ppma04fra.de.ibm.com (8.16.0.43/8.16.0.43) with SMTP id 13GIDW6V002198 for ; Fri, 16 Apr 2021 18:23:02 GMT Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by ppma04fra.de.ibm.com with ESMTP id 37u3n8afme-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 16 Apr 2021 18:23:02 +0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 13GIMxoN12386650 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Apr 2021 18:22:59 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 86827A4051; Fri, 16 Apr 2021 18:22:59 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 59F83A4055; Fri, 16 Apr 2021 18:22:59 +0000 (GMT) Received: from li-23497a81-5215-11cb-9bae-a81330ecc14b.ibm.com (unknown [9.171.8.51]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 16 Apr 2021 18:22:59 +0000 (GMT) Subject: Re: [PATCH] IBM Z: Add alternative to *movdi_{31, 64} in order to load a DFP zero To: Stefan Schulze Frielinghaus , gcc-patches@gcc.gnu.org References: <20210412134029.789314-1-stefansf@linux.ibm.com> From: Andreas Krebbel Message-ID: <52f4163d-cf8d-0b46-6ab7-0aec2a8bce8e@linux.ibm.com> Date: Fri, 16 Apr 2021 20:22:58 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <20210412134029.789314-1-stefansf@linux.ibm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: ZPMzwu9dMpEduihnwsgnu0VsO-t9DGwQ X-Proofpoint-GUID: ZPMzwu9dMpEduihnwsgnu0VsO-t9DGwQ X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-04-16_09:2021-04-16, 2021-04-16 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 bulkscore=0 priorityscore=1501 adultscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104160129 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 18:23:08 -0000 On 4/12/21 3:40 PM, Stefan Schulze Frielinghaus wrote: > Bootstraped and regtested on IBM Z. Ok for mainline? > > gcc/ChangeLog: > > * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add > alternative in order to load a DFP zero. Ok, thanks! Andreas > --- > gcc/config/s390/s390.md | 25 ++++++++++++++----------- > 1 file changed, 14 insertions(+), 11 deletions(-) > > diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md > index c10f25b2472..7faf775fbf2 100644 > --- a/gcc/config/s390/s390.md > +++ b/gcc/config/s390/s390.md > @@ -1868,9 +1868,9 @@ > > (define_insn "*movdi_64" > [(set (match_operand:DI 0 "nonimmediate_operand" > - "=d, d, d, d, d, d, d, d,f,d,d,d,d,d,T,!*f,!*f,!*f,!R,!T,b,Q,d,t,Q,t,v,v,v,d,v,R,d") > + "=d, d, d, d, d, d, d, d,f,d,!*f,d,d,d,d,T,!*f,!*f,!*f,!R,!T,b,Q,d,t,Q,t,v,v,v,d,v,R,d") > (match_operand:DI 1 "general_operand" > - " K,N0HD0,N1HD0,N2HD0,N3HD0,Os,N0SD0,N1SD0,d,f,L,b,d,T,d, *f, R, T,*f,*f,d,K,t,d,t,Q,K,v,d,v,R,v,ZL"))] > + " K,N0HD0,N1HD0,N2HD0,N3HD0,Os,N0SD0,N1SD0,d,f,j00,L,b,d,T,d, *f, R, T,*f,*f,d,K,t,d,t,Q,K,v,d,v,R,v,ZL"))] > "TARGET_ZARCH" > "@ > lghi\t%0,%h1 > @@ -1883,6 +1883,7 @@ > llilf\t%0,%k1 > ldgr\t%0,%1 > lgdr\t%0,%1 > + lzdr\t%0 > lay\t%0,%a1 > lgrl\t%0,%1 > lgr\t%0,%1 > @@ -1906,13 +1907,13 @@ > vleg\t%v0,%1,0 > vsteg\t%v1,%0,0 > larl\t%0,%1" > - [(set_attr "op_type" "RI,RI,RI,RI,RI,RIL,RIL,RIL,RRE,RRE,RXY,RIL,RRE,RXY, > + [(set_attr "op_type" "RI,RI,RI,RI,RI,RIL,RIL,RIL,RRE,RRE,RRE,RXY,RIL,RRE,RXY, > RXY,RR,RX,RXY,RX,RXY,RIL,SIL,*,*,RS,RS,VRI,VRR,VRS,VRS, > VRX,VRX,RIL") > - (set_attr "type" "*,*,*,*,*,*,*,*,floaddf,floaddf,la,larl,lr,load,store, > + (set_attr "type" "*,*,*,*,*,*,*,*,floaddf,floaddf,fsimpdf,la,larl,lr,load,store, > floaddf,floaddf,floaddf,fstoredf,fstoredf,larl,*,*,*,*, > *,*,*,*,*,*,*,larl") > - (set_attr "cpu_facility" "*,*,*,*,*,extimm,extimm,extimm,dfp,dfp,longdisp, > + (set_attr "cpu_facility" "*,*,*,*,*,extimm,extimm,extimm,dfp,dfp,*,longdisp, > z10,*,*,*,*,*,longdisp,*,longdisp, > z10,z10,*,*,*,*,vx,vx,vx,vx,vx,vx,*") > (set_attr "z10prop" "z10_fwd_A1, > @@ -1925,6 +1926,7 @@ > z10_fwd_E1, > *, > *, > + *, > z10_fwd_A1, > z10_fwd_A3, > z10_fr_E1, > @@ -1942,7 +1944,7 @@ > *, > *,*,*,*,*,*,*, > z10_super_A1") > - (set_attr "relative_long" "*,*,*,*,*,*,*,*,*,*, > + (set_attr "relative_long" "*,*,*,*,*,*,*,*,*,*,*, > *,yes,*,*,*,*,*,*,*,*, > yes,*,*,*,*,*,*,*,*,*, > *,*,yes") > @@ -2002,9 +2004,9 @@ > > (define_insn "*movdi_31" > [(set (match_operand:DI 0 "nonimmediate_operand" > - "=d,d,Q,S,d ,o,!*f,!*f,!*f,!R,!T,d") > + "=d,d,Q,S,d ,o,!*f,!*f,!*f,!*f,!R,!T,d") > (match_operand:DI 1 "general_operand" > - " Q,S,d,d,dPT,d, *f, R, T,*f,*f,b"))] > + " Q,S,d,d,dPT,d, *f, R, T,j00,*f,*f,b"))] > "!TARGET_ZARCH" > "@ > lm\t%0,%N0,%S1 > @@ -2016,12 +2018,13 @@ > ldr\t%0,%1 > ld\t%0,%1 > ldy\t%0,%1 > + lzdr\t%0 > std\t%1,%0 > stdy\t%1,%0 > #" > - [(set_attr "op_type" "RS,RSY,RS,RSY,*,*,RR,RX,RXY,RX,RXY,*") > - (set_attr "type" "lm,lm,stm,stm,*,*,floaddf,floaddf,floaddf,fstoredf,fstoredf,*") > - (set_attr "cpu_facility" "*,longdisp,*,longdisp,*,*,*,*,longdisp,*,longdisp,z10")]) > + [(set_attr "op_type" "RS,RSY,RS,RSY,*,*,RR,RX,RXY,RRE,RX,RXY,*") > + (set_attr "type" "lm,lm,stm,stm,*,*,floaddf,floaddf,floaddf,fsimpdf,fstoredf,fstoredf,*") > + (set_attr "cpu_facility" "*,longdisp,*,longdisp,*,*,*,*,longdisp,*,*,longdisp,z10")]) > > ; For a load from a symbol ref we can use one of the target registers > ; together with larl to load the address. >