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 42C3D3858D28 for ; Mon, 27 May 2024 03:18:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 42C3D3858D28 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 42C3D3858D28 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=1716779938; cv=none; b=R+OOma77HchrQuWfu0ESXxpJe2St2ilPg0TpxSMdM9OCfrw2mPPzrkDtNxLcgugkjw4ETFyFF6/KgVAkuyFa8v9aNgZqBWQq811LavIs9xm9NjPPSQMDq67HMm604feRdGhZnPvgeBGu+YqSJV+w2wXChzg5nhtdtnPDBcwWCCg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716779938; c=relaxed/simple; bh=7w/6NmicQcfrMw0/9sUv1Xb7mO6lTfFIJ3yYyFyDa+M=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=ArVn+Gs9ZgM/V2CFFoEJBcAdaKEM0ozrmzAsXEmHJjE45YOf1kmLpLIJAxoO7P8a5wmVWPtiSF9jsYJ1fRJuT6ohIuPT6IG3Oz/TGvbexQUnq+Xa7AhLAnJJgV7tqbsJsX+t72iwGq/C1v44KD2Uey+ckXUn5wEhbS4jGX8itZk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 44R0f0A9012361; Mon, 27 May 2024 03:18:55 GMT DKIM-Signature: =?UTF-8?Q?v=3D1;_a=3Drsa-sha256;_c=3Drelaxed/relaxed;_d=3Dibm.com;_h=3Dcc?= =?UTF-8?Q?:content-transfer-encoding:content-type:date:from:in-reply-to:m?= =?UTF-8?Q?essage-id:mime-version:references:subject:to;_s=3Dpp1;_bh=3DDdL?= =?UTF-8?Q?bJ7OpllwQePBBiuAf4aW+Rye6zmVzvSJ19ZUbQ+A=3D;_b=3DPTaSXjj7lnAteX?= =?UTF-8?Q?xTd7f8uEm1xUzwaXUF0njp88LRAo/m0s1wVaVQQQm2tSZr5AJ99geh_CCPIRuGI?= =?UTF-8?Q?zxEjk15G40sUozAYNa5lg2PLlDBGMjS0E8F8RknV69CCMGToeKNSBk6OcCh/_gZ?= =?UTF-8?Q?WxeRZviTChXTYTcmQGNknzrxAUlxZVoi0z7/lCVwzUxE1hk8i4VqrtxyYkUHmCM?= =?UTF-8?Q?vES_EtsUK3Wq+Cth2LVJ96Ue9qDrsy5/VuwBnn2ydyAh0bgrJjxZOCbFXCVnFxI?= =?UTF-8?Q?cnv6KqYLW_rIVD5yUeF60dXc0ixEPZyeKZsQxNb2MUDC5pRKVMw/y9yLWBtnkBn?= =?UTF-8?Q?tNJ9mEuAuFaG9Ut_mA=3D=3D_?= Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3yce668dr0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 May 2024 03:18:54 +0000 Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 44R3IsMT012616; Mon, 27 May 2024 03:18:54 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3yce668dqw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 May 2024 03:18:54 +0000 Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 44R2PEiJ032263; Mon, 27 May 2024 03:18:53 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3ybutkxbtk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 May 2024 03:18:52 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 44R3IlxA45285784 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 27 May 2024 03:18:49 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 148032004B; Mon, 27 May 2024 03:18:47 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7DE0C20043; Mon, 27 May 2024 03:18:44 +0000 (GMT) Received: from [9.197.249.127] (unknown [9.197.249.127]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 27 May 2024 03:18:44 +0000 (GMT) Message-ID: <4be1faa8-35e8-0281-a79e-5188c98f2105@linux.ibm.com> Date: Mon, 27 May 2024 11:18:43 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCHv2] Optab: add isfinite_optab for __builtin_isfinite Content-Language: en-US To: HAO CHEN GUI Cc: Segher Boessenkool , David , Peter Bergner , Andrew Pinski , Richard Biener , gcc-patches References: <37f328b1-ad76-4083-a85c-3fc0df574c72@linux.ibm.com> From: "Kewen.Lin" In-Reply-To: <37f328b1-ad76-4083-a85c-3fc0df574c72@linux.ibm.com> Content-Type: text/plain; charset=UTF-8 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: DsrqAmxsj-TyaWOQ-y-MXAET5ad6oem_ X-Proofpoint-ORIG-GUID: RCqabrh5tBTBOR8nraS_wp4jVfKnjg-f Content-Transfer-Encoding: 7bit X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.12.28.16 definitions=2024-05-26_09,2024-05-24_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 mlxlogscore=873 mlxscore=0 impostorscore=0 spamscore=0 phishscore=0 bulkscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2405010000 definitions=main-2405270025 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIM_INVALID,DKIM_SIGNED,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,NICE_REPLY_A,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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/5/20 16:15, HAO CHEN GUI wrote: > Hi, > This patch adds an optab for __builtin_isfinite. The finite check can be > implemented on rs6000 by a single instruction. It needs an optab to be > expanded to the certain sequence of instructions. > > The subsequent patches will implement the expand on rs6000. > > Compared to previous version, the main change is to document isfinite > in md.texi. > https://gcc.gnu.org/pipermail/gcc-patches/2024-April/649339.html > > Bootstrapped and tested on x86 and powerpc64-linux BE and LE with no > regressions. Is this OK for trunk? > > Thanks > Gui Haochen > > ChangeLog > optab: Add isfinite_optab for isfinite builtin > > gcc/ > * builtins.cc (interclass_mathfn_icode): Set optab to isfinite_optab > for isfinite builtin. > * optabs.def (isfinite_optab): New. > * doc/md.texi (isfinite): Document. > > > patch.diff > diff --git a/gcc/builtins.cc b/gcc/builtins.cc > index f8d94c4b435..b8432f84020 100644 > --- a/gcc/builtins.cc > +++ b/gcc/builtins.cc > @@ -2459,8 +2459,9 @@ interclass_mathfn_icode (tree arg, tree fndecl) > errno_set = true; builtin_optab = ilogb_optab; break; > CASE_FLT_FN (BUILT_IN_ISINF): > builtin_optab = isinf_optab; break; > - case BUILT_IN_ISNORMAL: > case BUILT_IN_ISFINITE: > + builtin_optab = isfinite_optab; break; > + case BUILT_IN_ISNORMAL: > CASE_FLT_FN (BUILT_IN_FINITE): > case BUILT_IN_FINITED32: > case BUILT_IN_FINITED64: > diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi > index 5730bda80dc..8ed70b3feea 100644 > --- a/gcc/doc/md.texi > +++ b/gcc/doc/md.texi > @@ -8557,6 +8557,11 @@ operand 2, greater than operand 2 or is unordered with operand 2. > > This pattern is not allowed to @code{FAIL}. > > +@cindex @code{isfinite@var{m}2} instruction pattern > +@item @samp{isfinite@var{m}2} > +Set operand 0 to nonzero if operand 1 is a finite floating-point > +number and to 0 otherwise. > + Does this require "This pattern is not allowed to FAIL."? I guess yes? Since if it's decided to go with this pattern expanding, there is no fall back? BR, Kewen > @end table > > @end ifset > diff --git a/gcc/optabs.def b/gcc/optabs.def > index ad14f9328b9..dcd77315c2a 100644 > --- a/gcc/optabs.def > +++ b/gcc/optabs.def > @@ -352,6 +352,7 @@ OPTAB_D (fmod_optab, "fmod$a3") > OPTAB_D (hypot_optab, "hypot$a3") > OPTAB_D (ilogb_optab, "ilogb$a2") > OPTAB_D (isinf_optab, "isinf$a2") > +OPTAB_D (isfinite_optab, "isfinite$a2") > OPTAB_D (issignaling_optab, "issignaling$a2") > OPTAB_D (ldexp_optab, "ldexp$a3") > OPTAB_D (log10_optab, "log10$a2")