From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id D47CB3858D20 for ; Thu, 18 Apr 2024 03:14:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D47CB3858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D47CB3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713410096; cv=none; b=u3Q1jqjvtF1q2Z2M7InPBMcMOj3QwAdb22vC2hzYl/U46UJhluxQ6YbHm2Plyl4nPjI6PedfKTLPu7WDRZt8SnIBWlXDKXCB+fi7iLIzeuNckaXjfMA3sH+TCFd6xQ1o+32DsfoRN+ZOg+AkuqRL6Kb5iYChl51Y1ADYdvJz3hg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713410096; c=relaxed/simple; bh=lVvxaX90LStw6LZeYyf89ANjPYPdcrdc7CkErebPL+I=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=r99MJ/F3I1ilWRC+Jmww1r7ErmIm4uGooheiJLdAWjb7lCa3zDKC7P2G2n2bj6N3AXLrrmDl95p1vQG0t1bhxAAObDOu2eAijsBRbimphyOGd2BLWHPQcE2Z/5oU7cfe9sLvmDjhEHNz0bVJnCzmJjibieYOprnTNy4M31FoOqY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 43I37cgO005533; Thu, 18 Apr 2024 03:14:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=pnioSNs77A6tFgjfAvjUaMJyvt3PcU1LvjTXiAcb60Y=; b=BRlFd2sHY7uUUqkJJoYU1FnFgu+YkraWxJ8HPjrCB0//O+AJntE63rfTRiAVulc+xf+m OPP+TKxHzU6/+mIHQMRLHiP48luwXlYhwl5sLDyUX5MMlkJaW2g/iZooXIe5RW4gLTlG A8sTq82KLIPrvzXlKMyEZdxetFwUpv0MZbIP9E4WbewMoq9wX0pvhjxvqDUWzWUDcA/R m1EwOtKhDNikuBB/sO9Jtg89miBW6Byoe/WP9iLehaz8WYutYQjaVyJMRD3m2eqK9Sun smGS/iWgc6eaWL3G2TD3TBAKfoJQjoyqh9A21L30aup8QYoUVoMeBdv4HXHNnY5aJoFu tg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3xjub600bn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Apr 2024 03:14:52 +0000 Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 43I3EqAE023695; Thu, 18 Apr 2024 03:14:52 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3xjub600bk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Apr 2024 03:14:52 +0000 Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 43I0ECXj018162; Thu, 18 Apr 2024 03:14:51 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 3xg4ctghuc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Apr 2024 03:14:51 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 43I3Ejvu33358236 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Apr 2024 03:14:47 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CC83D20043; Thu, 18 Apr 2024 03:14:45 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EBA1E20040; Thu, 18 Apr 2024 03:14:43 +0000 (GMT) Received: from [9.197.246.203] (unknown [9.197.246.203]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 18 Apr 2024 03:14:43 +0000 (GMT) Message-ID: Date: Thu, 18 Apr 2024 11:14:42 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH, rs6000] Use bcdsub. instead of bcdadd. for bcd invalid number checking Content-Language: en-US To: HAO CHEN GUI Cc: Segher Boessenkool , David , Peter Bergner , gcc-patches References: From: "Kewen.Lin" In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: ImyhNK4B3XRmEcdE1-WTZMAGZ7aRTKRz X-Proofpoint-GUID: J0ME8USolN0qTjYwgfAAj2QBCohQ9jis X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-04-18_02,2024-04-17_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 bulkscore=0 lowpriorityscore=0 mlxscore=0 spamscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2404010000 definitions=main-2404180021 X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi, on 2024/4/18 10:01, HAO CHEN GUI wrote: > Hi, > This patch replace bcdadd. with bcdsub. for bcd invalid number checking. > bcdadd on two same numbers might cause overflow which also set > overflow/invalid bit so that we can't distinguish it's invalid or overflow. > The bcdsub doesn't have the problem as subtracting on two same number never > causes overflow. > > Bootstrapped and tested on powerpc64-linux BE and LE with no > regressions. Is it OK for the trunk? Considering that this issue affects some basic functionality of bcd bifs and the fix itself is simple and very safe, OK for trunk, thanks for fixing! BR, Kewen > > Thanks > Gui Haochen > > ChangeLog > rs6000: Use bcdsub. instead of bcdadd. for bcd invalid number checking > > bcdadd. might causes overflow which also set the overflow/invalid bit. > bcdsub. doesn't have the issue when do subtracting on two same bcd number. > > gcc/ > * config/rs6000/altivec.md (*bcdinvalid_): Replace bcdadd > with bcdsub. > (bcdinvalid_): Likewise. > > gcc/testsuite/ > * gcc.target/powerpc/bcd-4.c: Adjust the number of bcdadd and > bcdsub. > > patch.diff > diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md > index 4d4c94ff0a0..bb20441c096 100644 > --- a/gcc/config/rs6000/altivec.md > +++ b/gcc/config/rs6000/altivec.md > @@ -4586,18 +4586,18 @@ (define_insn "*bcdinvalid_" > [(set (reg:CCFP CR6_REGNO) > (compare:CCFP > (unspec:V2DF [(match_operand:VBCD 1 "register_operand" "v")] > - UNSPEC_BCDADD) > + UNSPEC_BCDSUB) > (match_operand:V2DF 2 "zero_constant" "j"))) > (clobber (match_scratch:VBCD 0 "=v"))] > "TARGET_P8_VECTOR" > - "bcdadd. %0,%1,%1,0" > + "bcdsub. %0,%1,%1,0" > [(set_attr "type" "vecsimple")]) > > (define_expand "bcdinvalid_" > [(parallel [(set (reg:CCFP CR6_REGNO) > (compare:CCFP > (unspec:V2DF [(match_operand:VBCD 1 "register_operand")] > - UNSPEC_BCDADD) > + UNSPEC_BCDSUB) > (match_dup 2))) > (clobber (match_scratch:VBCD 3))]) > (set (match_operand:SI 0 "register_operand") > diff --git a/gcc/testsuite/gcc.target/powerpc/bcd-4.c b/gcc/testsuite/gcc.target/powerpc/bcd-4.c > index 2c7041c4d32..6d2c59ef792 100644 > --- a/gcc/testsuite/gcc.target/powerpc/bcd-4.c > +++ b/gcc/testsuite/gcc.target/powerpc/bcd-4.c > @@ -2,8 +2,8 @@ > /* { dg-require-effective-target int128 } */ > /* { dg-require-effective-target p9vector_hw } */ > /* { dg-options "-mdejagnu-cpu=power9 -O2 -save-temps" } */ > -/* { dg-final { scan-assembler-times {\mbcdadd\M} 7 } } */ > -/* { dg-final { scan-assembler-times {\mbcdsub\M} 18 } } */ > +/* { dg-final { scan-assembler-times {\mbcdadd\M} 5 } } */ > +/* { dg-final { scan-assembler-times {\mbcdsub\M} 20 } } */ > /* { dg-final { scan-assembler-times {\mbcds\M} 2 } } */ > /* { dg-final { scan-assembler-times {\mdenbcdq\M} 1 } } */ >