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 8F8C93858C5E for ; Mon, 4 Dec 2023 09:11:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8F8C93858C5E 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 8F8C93858C5E 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=1701681062; cv=none; b=gT9Dn3c7Yzud9PUmoqbENMmQuodO5rR9BBBQPF49O3CeRRCbI+28Wc6YIA/ZMCAoA9CQufOKUN2RQj4TX2x76jfLzzee8E1/greqYRlUFgSF7X/eMzjYKquFR/m0rFKR/YaY6KZQx5Dp0cX1a24xfki+EJv8SgYQnNKT493waYI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701681062; c=relaxed/simple; bh=oCCikTRsGJNXuXuH/9k8iW//rbfRczA6JrKaf/aUvpk=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=Nqda3F1Qfhg9XnzgKVnOZzjQiUxMcqs9ZtJQvkAGDl9+XEha+tFh3wi+Dxkwiy/69FEP5W+dQJA4dbWacHqIo0/D66UB92SvTmJSjmI67qjz5SWvGBqBk28Xckuc9/ravU8w7Ww+IvcsDGtl2hqkqOsxQ/8AGFEb9YYk4NZhtkE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3B48r4Rs029015; Mon, 4 Dec 2023 09:10:59 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=zsmsDeJC1gmwsiwI2FBudwvvWL7cJaR5myN5FkWtlO8=; b=D9Dnotatl+xQ+/buEyBA4x1EWD+EukN+CkoRmRh7mIAV4QbC7P/rzFjjOjmQVFVRziIB CBI7TdbJMq8nRbJSCWlk0pdG2Wk/A4LiwjKe8V6YhRbTzBO8j6aIk4OBUwbTwBWVgeii mTmJ8vTEeH6lz5DlEOKEIqsBuF2814NEufamBgyUBRUtChyHi2X8SuoboZWk2Qlh644T fXHDlXVXhWYc0Sn3sR1EuaanK/bSYlmEQnmQDGXfO8pb9SA8/8Q7mX7mGsxpcHtak6om NOV9A3NNacOlBtzkVgqvKIoaaTO1Tx+Wp5xZGBX6ML6hJzaaEQW0pW5g8ZPmmqhZ8PAn TA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3usbn10kta-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Dec 2023 09:10:59 +0000 Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3B48r7aP029122; Mon, 4 Dec 2023 09:10:58 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3usbn10ksr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Dec 2023 09:10:58 +0000 Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3B474Z7h008638; Mon, 4 Dec 2023 09:10:57 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 3urh4k6ssb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Dec 2023 09:10:57 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3B49AtL344433922 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 Dec 2023 09:10:55 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F0E3B20043; Mon, 4 Dec 2023 09:10:54 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A3D2120040; Mon, 4 Dec 2023 09:10:52 +0000 (GMT) Received: from [9.177.13.229] (unknown [9.177.13.229]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 Dec 2023 09:10:52 +0000 (GMT) Message-ID: <58cf6e33-b670-e9f3-45d8-1c783e19f7d6@linux.ibm.com> Date: Mon, 4 Dec 2023 17:10:50 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [patch-2, rs6000] guard fctid on PPC64 and powerpc 476 [PR112707] Content-Language: en-US To: HAO CHEN GUI Cc: Segher Boessenkool , David , Peter Bergner , gcc-patches References: <85055699-d7d4-4bfb-90e1-3fdcc82b714a@linux.ibm.com> From: "Kewen.Lin" In-Reply-To: <85055699-d7d4-4bfb-90e1-3fdcc82b714a@linux.ibm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: -IoIzyvj0Ft2jOzAHt7jkbrIZuWLKdlY X-Proofpoint-ORIG-GUID: yFX4OOauk2aXEGqChn6S9ngIFtt3q8kB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-04_06,2023-11-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 mlxlogscore=999 impostorscore=0 phishscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2312040069 X-Spam-Status: No, score=-13.6 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,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 Haochen, on 2023/12/1 10:42, HAO CHEN GUI wrote: > Hi, > The "fctid" is supported on 64-bit Power processors and powerpc 476. It > need a guard to check it. The patch fixes the issue. > > Bootstrapped and tested on x86 and powerpc64-linux BE and LE with > no regressions. Is this OK for trunk? > > Thanks > Gui Haochen > > ChangeLog > rs6000: guard fctid on PPC64 and powerpc 476 > > fctid is supported on 64-bit Power processors and powerpc 476. It should > be guarded by this condition. The patch fixes the issue. > > gcc/ > PR target/112707 > * config/rs6000/rs6000.h (TARGET_FCTID): Define. > * config/rs6000/rs6000.md (lrintdi2): Add guard TARGET_FCTID. > > gcc/testsuite/ > PR target/112707 > * gcc.target/powerpc/pr112707.h: New. > * gcc.target/powerpc/pr112707-2.c: New. > * gcc.target/powerpc/pr112707-3.c: New. > > > patch.diff > diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h > index 22595f6..497ae3d 100644 > --- a/gcc/config/rs6000/rs6000.h > +++ b/gcc/config/rs6000/rs6000.h > @@ -467,6 +467,8 @@ extern int rs6000_vector_align[]; > #define TARGET_FCFIDUS TARGET_POPCNTD > #define TARGET_FCTIDUZ TARGET_POPCNTD > #define TARGET_FCTIWUZ TARGET_POPCNTD > +/* Enable fctid on ppc64 and powerpc476. */ > +#define TARGET_FCTID (TARGET_POWERPC64 | TARGET_FPRND) Like some existing macros which are checking rs6000_cpu, I think it's more specific to check with PROCESSOR_PPC476, that is: rs6000_cpu == PROCESSOR_PPC476. And say something like: "Only powerpc64 and powerpc476 support fctid." instead? > #define TARGET_CTZ TARGET_MODULO > #define TARGET_EXTSWSLI (TARGET_MODULO && TARGET_POWERPC64) > #define TARGET_MADDLD TARGET_MODULO > diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md > index d4337ce..4a5e63c 100644 > --- a/gcc/config/rs6000/rs6000.md > +++ b/gcc/config/rs6000/rs6000.md > @@ -6718,7 +6718,7 @@ (define_insn "lrintdi2" > [(set (match_operand:DI 0 "gpc_reg_operand" "=d") > (unspec:DI [(match_operand:SFDF 1 "gpc_reg_operand" "")] > UNSPEC_FCTID))] > - "TARGET_HARD_FLOAT" > + "TARGET_HARD_FLOAT && TARGET_FCTID" > "fctid %0,%1" > [(set_attr "type" "fp")]) > > diff --git a/gcc/testsuite/gcc.target/powerpc/pr112707-2.c b/gcc/testsuite/gcc.target/powerpc/pr112707-2.c > new file mode 100644 > index 0000000..ae91913 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr112707-2.c > @@ -0,0 +1,6 @@ > +/* { dg-do compile { target { powerpc*-*-* && be } } } */ Nit: powerpc*-*-* && be checks are useless as ilp32 excludes le. > +/* { dg-options "-O2 -mdejagnu-cpu=7450 -m32 -fno-math-errno" } */ Nit: -m32 isn't required. > +/* { dg-require-effective-target ilp32 } */> +/* { dg-final { scan-assembler-not {\mfctid\M} } } */ > + > +#include "pr112707.h" > diff --git a/gcc/testsuite/gcc.target/powerpc/pr112707-3.c b/gcc/testsuite/gcc.target/powerpc/pr112707-3.c > new file mode 100644 > index 0000000..e47ce20 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr112707-3.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile { target { powerpc*-*-* && be } } } */ > +/* { dg-options "-O2 -m32 -fno-math-errno -mdejagnu-cpu=476fp" } */ Likewise. The others look good to me, thanks! BR, Kewen > +/* { dg-require-effective-target ilp32 } */ > + > +/* powerpc 476fp has hard float enabled which is required by fctid */ > + > +#include "pr112707.h" > + > +/* { dg-final { scan-assembler-times {\mfctid\M} 2 } } */ > diff --git a/gcc/testsuite/gcc.target/powerpc/pr112707.h b/gcc/testsuite/gcc.target/powerpc/pr112707.h > new file mode 100644 > index 0000000..e427dc6 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr112707.h > @@ -0,0 +1,10 @@ > +long long test1 (double a) > +{ > + return __builtin_llrint (a); > +} > + > +long long test2 (float a) > +{ > + return __builtin_llrint (a); > +} > +