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 ADE4F386480B; Wed, 30 Jun 2021 01:44:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ADE4F386480B Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 15U1XqOb037033; Tue, 29 Jun 2021 21:44:17 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 39gf0c88pp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 29 Jun 2021 21:44:17 -0400 Received: from m0098396.ppops.net (m0098396.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 15U1ZAZu043230; Tue, 29 Jun 2021 21:44:17 -0400 Received: from ppma02fra.de.ibm.com (47.49.7a9f.ip4.static.sl-reverse.com [159.122.73.71]) by mx0a-001b2d01.pphosted.com with ESMTP id 39gf0c88nf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 29 Jun 2021 21:44:17 -0400 Received: from pps.filterd (ppma02fra.de.ibm.com [127.0.0.1]) by ppma02fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 15U1hxE0027066; Wed, 30 Jun 2021 01:44:14 GMT Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by ppma02fra.de.ibm.com with ESMTP id 39duv8gsu4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 30 Jun 2021 01:44:14 +0000 Received: from b06wcsmtp001.portsmouth.uk.ibm.com (b06wcsmtp001.portsmouth.uk.ibm.com [9.149.105.160]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 15U1iCvI29360492 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Jun 2021 01:44:12 GMT Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5CC38A4054; Wed, 30 Jun 2021 01:44:12 +0000 (GMT) Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CC969A405B; Wed, 30 Jun 2021 01:44:10 +0000 (GMT) Received: from luoxhus-MacBook-Pro.local (unknown [9.200.155.117]) by b06wcsmtp001.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Wed, 30 Jun 2021 01:44:10 +0000 (GMT) Subject: Ping ^ 2: [PATCH] rs6000: Expand fmod and remainder when built with fast-math [PR97142] To: gcc-patches@gcc.gnu.org Cc: wschmidt@linux.ibm.com, segher@kernel.crashing.org, dje.gcc@gmail.com, linkw@gcc.gnu.org References: <20210416071007.78812-1-luoxhu@linux.ibm.com> <6d438971-4778-91cf-451c-a493b0cf9bdf@linux.ibm.com> <4ead69cf-daac-31bb-ddb5-d7b41cf298e2@linux.ibm.com> From: Xionghu Luo Message-ID: Date: Wed, 30 Jun 2021 09:44:08 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.0; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 In-Reply-To: <4ead69cf-daac-31bb-ddb5-d7b41cf298e2@linux.ibm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: cxazmD0w01EHwG88rSIRuh-ifJosTSvo X-Proofpoint-GUID: 5WX9K_2Fs7UyE2Y9uWy93MSGelOeRMMV Content-Transfer-Encoding: 8bit X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-06-29_14:2021-06-29, 2021-06-29 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 mlxscore=0 clxscore=1015 priorityscore=1501 adultscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106300009 X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_MSPIKE_H2, 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: Wed, 30 Jun 2021 01:44:20 -0000 Gentle ping ^2, thanks. https://gcc.gnu.org/pipermail/gcc-patches/2021-April/568143.html On 2021/5/14 15:13, Xionghu Luo via Gcc-patches wrote: > Test SPEC2017 Ofast P8LE for this patch : 511.povray_r +1.14%, > 526.blender_r +1.72%, no obvious changes to others. > > > On 2021/5/6 10:36, Xionghu Luo via Gcc-patches wrote: >> Gentle ping, thanks. >> >> >> On 2021/4/16 15:10, Xiong Hu Luo wrote: >>> fmod/fmodf and remainder/remainderf could be expanded instead of library >>> call when fast-math build, which is much faster. >>> >>> fmodf: >>>       fdivs   f0,f1,f2 >>>       friz    f0,f0 >>>       fnmsubs f1,f2,f0,f1 >>> >>> remainderf: >>>       fdivs   f0,f1,f2 >>>       frin    f0,f0 >>>       fnmsubs f1,f2,f0,f1 >>> >>> gcc/ChangeLog: >>> >>> 2021-04-16  Xionghu Luo  >>> >>>     PR target/97142 >>>     * config/rs6000/rs6000.md (fmod3): New define_expand. >>>     (remainder3): Likewise. >>> >>> gcc/testsuite/ChangeLog: >>> >>> 2021-04-16  Xionghu Luo  >>> >>>     PR target/97142 >>>     * gcc.target/powerpc/pr97142.c: New test. >>> --- >>>   gcc/config/rs6000/rs6000.md                | 36 ++++++++++++++++++++++ >>>   gcc/testsuite/gcc.target/powerpc/pr97142.c | 30 ++++++++++++++++++ >>>   2 files changed, 66 insertions(+) >>>   create mode 100644 gcc/testsuite/gcc.target/powerpc/pr97142.c >>> >>> diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md >>> index a1315523fec..7e0e94e6ba4 100644 >>> --- a/gcc/config/rs6000/rs6000.md >>> +++ b/gcc/config/rs6000/rs6000.md >>> @@ -4902,6 +4902,42 @@ (define_insn "fre" >>>     [(set_attr "type" "fp") >>>      (set_attr "isa" "*,")]) >>> +(define_expand "fmod3" >>> +  [(use (match_operand:SFDF 0 "gpc_reg_operand")) >>> +    (use (match_operand:SFDF 1 "gpc_reg_operand")) >>> +    (use (match_operand:SFDF 2 "gpc_reg_operand"))] >>> +  "TARGET_HARD_FLOAT >>> +  && TARGET_FPRND >>> +  && flag_unsafe_math_optimizations" >>> +{ >>> +  rtx div = gen_reg_rtx (mode); >>> +  emit_insn (gen_div3 (div, operands[1], operands[2])); >>> + >>> +  rtx friz = gen_reg_rtx (mode); >>> +  emit_insn (gen_btrunc2 (friz, div)); >>> + >>> +  emit_insn (gen_nfms4 (operands[0], operands[2], friz, >>> operands[1])); >>> +  DONE; >>> + }) >>> + >>> +(define_expand "remainder3" >>> +  [(use (match_operand:SFDF 0 "gpc_reg_operand")) >>> +    (use (match_operand:SFDF 1 "gpc_reg_operand")) >>> +    (use (match_operand:SFDF 2 "gpc_reg_operand"))] >>> +  "TARGET_HARD_FLOAT >>> +  && TARGET_FPRND >>> +  && flag_unsafe_math_optimizations" >>> +{ >>> +  rtx div = gen_reg_rtx (mode); >>> +  emit_insn (gen_div3 (div, operands[1], operands[2])); >>> + >>> +  rtx frin = gen_reg_rtx (mode); >>> +  emit_insn (gen_round2 (frin, div)); >>> + >>> +  emit_insn (gen_nfms4 (operands[0], operands[2], frin, >>> operands[1])); >>> +  DONE; >>> + }) >>> + >>>   (define_insn "*rsqrt2" >>>     [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") >>>       (unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" ",wa")] >>> diff --git a/gcc/testsuite/gcc.target/powerpc/pr97142.c >>> b/gcc/testsuite/gcc.target/powerpc/pr97142.c >>> new file mode 100644 >>> index 00000000000..48f25ca5b5b >>> --- /dev/null >>> +++ b/gcc/testsuite/gcc.target/powerpc/pr97142.c >>> @@ -0,0 +1,30 @@ >>> +/* { dg-do compile } */ >>> +/* { dg-options "-Ofast" } */ >>> + >>> +#include >>> + >>> +float test1 (float x, float y) >>> +{ >>> +  return fmodf (x, y); >>> +} >>> + >>> +double test2 (double x, double y) >>> +{ >>> +  return fmod (x, y); >>> +} >>> + >>> +float test3 (float x, float y) >>> +{ >>> +  return remainderf (x, y); >>> +} >>> + >>> +double test4 (double x, double y) >>> +{ >>> +  return remainder (x, y); >>> +} >>> + >>> +/* { dg-final { scan-assembler-not {\mbl fmod\M} } } */ >>> +/* { dg-final { scan-assembler-not {\mbl fmodf\M} } } */ >>> +/* { dg-final { scan-assembler-not {\mbl remainder\M} } } */ >>> +/* { dg-final { scan-assembler-not {\mbl remainderf\M} } } */ >>> + >>> >> > -- Thanks, Xionghu