From patchwork Fri Dec 1 02:42:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: HAO CHEN GUI X-Patchwork-Id: 81067 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 71CCB3857B81 for ; Fri, 1 Dec 2023 02:42:39 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 5826E3858CDA for ; Fri, 1 Dec 2023 02:42:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5826E3858CDA 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 5826E3858CDA Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701398544; cv=none; b=VwkmJP+//1MHUsIkh2DQ3YJHYTwqgXsokZTcfiROcN6NGfrYiM+g7HGUn6uUxL4pqCrkiEBt8LNZTyWYA5iZYxpqVHGKvJYzCgZeKeqPJRmmV3+ZvBvsddcQKX352RQ3NQcmQ7wYwWKsIPzH8KJ20r56qyEXK3K0/hRsLuPx2iE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701398544; c=relaxed/simple; bh=W0yy4wrXqjpAgxfoxcZRXe9bYI5les2qsZjR7z4ZyKk=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=umvKv067JPtBQNaapdtIos9FiqiTmgWDM5RY3wwRxSHm0bChcyhfY6cJfA9y6v2GfpwOIFo0EUAIgU3hJ1lSKi3WVSSs/gUynqMwbe2afWV7gFPKFcJClc4lVGn4pZZwvsBr/9vjq8dXIgc5tmXWWM0wndputhhsOUKSZ7z4FK8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0353724.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3B12VA5X004226; Fri, 1 Dec 2023 02:42:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : to : cc : from : subject : content-type : content-transfer-encoding; s=pp1; bh=iosxjnRs91QdrWPCSgkb34BibcnvQOb9vNdr4yH6mPU=; b=KaancIalHsKWlbInCb5oDmZyDmZLGvv6ni986gJF4Ea1wQGCB9kPLcD0ZX7yQyI+tIzn OYOfrARHtDV3l4SQizSVJSkNML/NsbR/qqJtDnJc084NND6DrkP6NNK+lfFKqLZ4hNS7 JnJjd0Ksfoi0rOVFHgL7duR11rtIoZAscN7sXL1b5m/JZzKT8mJvv1Uc6TkRdaF0iA0H TOn9qM1OLJUDKJw5ZbK8rQXMKBgKrVuQRGRoGostEFtgs/YiLEOvySm2sJHix04itqlA tCH1gFL+Fgiz2r3BErR5WfjlHuFj9TtAwZ3bYEc+rUBsCN8VEmysij/0e4qbhLceTQmC xQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uq6gm8m3b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 Dec 2023 02:42:18 +0000 Received: from m0353724.ppops.net (m0353724.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3B12EXsA022743; Fri, 1 Dec 2023 02:42:17 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 3uq6gm8m0p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 Dec 2023 02:42:17 +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 3B12JNeK004268; Fri, 1 Dec 2023 02:42:09 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 3ukwfkj0y7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 Dec 2023 02:42:08 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3B12g6Vj11600558 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 1 Dec 2023 02:42:06 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 204D420043; Fri, 1 Dec 2023 02:42:06 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6097520040; Fri, 1 Dec 2023 02:42:04 +0000 (GMT) Received: from [9.197.251.248] (unknown [9.197.251.248]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Fri, 1 Dec 2023 02:42:04 +0000 (GMT) Message-ID: <85055699-d7d4-4bfb-90e1-3fdcc82b714a@linux.ibm.com> Date: Fri, 1 Dec 2023 10:42:03 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gcc-patches Cc: Segher Boessenkool , David , "Kewen.Lin" , Peter Bergner From: HAO CHEN GUI Subject: [patch-2, rs6000] guard fctid on PPC64 and powerpc 476 [PR112707] X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: Za_iZ1gB0NgnP4M6_LnyR8mqIgQ9RpB3 X-Proofpoint-GUID: uifnZs1s5A3nYw48BivU-HDDg6Stw6oQ 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-11-30_25,2023-11-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 mlxscore=0 malwarescore=0 adultscore=0 suspectscore=0 priorityscore=1501 clxscore=1011 bulkscore=0 mlxlogscore=999 lowpriorityscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2312010015 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org 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) #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 } } } */ +/* { dg-options "-O2 -mdejagnu-cpu=7450 -m32 -fno-math-errno" } */ +/* { 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" } */ +/* { 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); +} +