From patchwork Mon Sep 4 05:33:28 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: 137440 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp904869vqo; Sun, 3 Sep 2023 22:39:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHvWO9ls8vBedalbmY0pHgHdPlUy2o0dSem98z+z5xjBUF3BkMJ9y1qO9Je4b374yTueVko X-Received: by 2002:a17:907:2ce7:b0:9a1:fa4e:ca83 with SMTP id hz7-20020a1709072ce700b009a1fa4eca83mr7629792ejc.65.1693805964053; Sun, 03 Sep 2023 22:39:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693805964; cv=none; d=google.com; s=arc-20160816; b=LS/4TS/zJyR2v+0csw0eb8Eur0uyGHIzXtHw2PC26eWIxf+jDfEfUKdcp3lu1EGB9W 9/Q99NTXkdSVe7fUIUGhYRRNxj0KIS6y/nRLSBdnrIDD/PJN4AKrnZcPU34Tw7C3oApO c0G1iISb6HPsdD0gW4WhWjE85tInSHvAEEJOunNShgGzmibVX8hMPhpL8pZvj8+zBN/q Lj3OIvQyUXdU+9OE9VYi7xgOvdiR+4AVpQXAUzIF8bd/T75FPLjdklcBRVClBg7hAsGP B7EZIN92RxznPjeyDkZEAG2llTR1XW2FNHSBpsXdN21Wbg8v+zOBYjMOn8mZiHHVbM8B Rqiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:reply-to:from:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence :mime-version:content-transfer-encoding:subject:to:content-language :user-agent:date:message-id:dmarc-filter:delivered-to:dkim-signature :dkim-filter; bh=uEveKLx7myBPKtBEh69a03zppMeairOu779usbDn0Z0=; fh=N5xeAcoHiHemsNOe+rgC7MoBrkuY8gvPzSL77/KkM4I=; b=GZ7CZWQkkAaJAe6r7SHFy4pR61X/SFYxATYumq4v4J9zvQE/zqtV5KxzDdgk6WQiYa 6U6/XiWvLkfnXhkOb/pIZJnDBLh0kJY/wizL7VAXhFxSgOw95IMzciqrhSGcN8yhggVG mPbJEu8Oi32PBGuMcGIc33xGIqVxnRo/4QUV+HlKeJE6C/bGQegG0bUo4H6b2Aa6MDHn vToo5rc4/vCtvpISgFQE8nrhKPUKxJZOFkfNFCtbTPwH+PnsEchl401zQYCdL/RwZ86T gcQYKU5UQEaLRklv+u4SLN9eLGreCSzvz5DUcDBxr9Jpe52/Mq1duhjefPkVxojAvT8s ROZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=LLvAAfYm; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id x24-20020a170906299800b0098e2aa0bb92si5860750eje.137.2023.09.03.22.39.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Sep 2023 22:39:24 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=LLvAAfYm; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 036D13858C50 for ; Mon, 4 Sep 2023 05:39:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 036D13858C50 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1693805963; bh=uEveKLx7myBPKtBEh69a03zppMeairOu779usbDn0Z0=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=LLvAAfYm09ZZMHmFnsrZVcBy+rIEr31ptaGQcLrzW17i+3GO7XIvRaiCcxuu/9RIh uvbgebvzBI09LIWXrZ5T9xmIgCgvdpWSNjTmRI9FPqLBcV/OmkxKzY6SbUD4o1cS2w OU1XlciQZ/6HNdS5+/x+dwg5uaXyZtL0o7uM18hE= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id E91983858D33 for ; Mon, 4 Sep 2023 05:38:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E91983858D33 Received: from pps.filterd (m0353727.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 384579DT023850; Mon, 4 Sep 2023 05:38:37 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3sw84esgqp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Sep 2023 05:38:36 +0000 Received: from m0353727.ppops.net (m0353727.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 38457GQb024736; Mon, 4 Sep 2023 05:38:36 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3sw84esgq4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Sep 2023 05:38:36 +0000 Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3843vQKt011145; Mon, 4 Sep 2023 05:33:34 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 3svj317f6j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Sep 2023 05:33:34 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3845XUME45809964 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 Sep 2023 05:33:31 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8F04520063; Mon, 4 Sep 2023 05:33:30 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BDF892007E; Mon, 4 Sep 2023 05:33:28 +0000 (GMT) Received: from [9.200.56.60] (unknown [9.200.56.60]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 Sep 2023 05:33:28 +0000 (GMT) Message-ID: <9d7a1744-a01c-b54f-5818-7772f0c06b9b@linux.ibm.com> Date: Mon, 4 Sep 2023 13:33:28 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0 Content-Language: en-US To: gcc-patches Subject: [PATCH-1v2, rs6000] Enable SImode in FP registers on P7 [PR88558] X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 7IQr-rQFYNreLMKdytg9EP39zjuJYoJc X-Proofpoint-GUID: H-5Ei9dxIkm1Nuv-sWW8pmn8lR78Belm X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-04_03,2023-08-31_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=916 phishscore=0 malwarescore=0 clxscore=1015 impostorscore=0 bulkscore=0 priorityscore=1501 spamscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309040049 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 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: , X-Patchwork-Original-From: HAO CHEN GUI via Gcc-patches From: HAO CHEN GUI Reply-To: HAO CHEN GUI Cc: Peter Bergner , David , Segher Boessenkool Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776084282314039402 X-GMAIL-MSGID: 1776084282314039402 Hi, This patch enables SImode in FP registers on P7. Instruction "fctiw" stores its integer output in an FP register. So SImode in FP register needs be enabled on P7 if we want support "fctiw" on P7. The test case is in the second patch which implements 32bit inline lrint. Compared to the last version, the main change it to remove disparaging on the alternatives of "fmr". Test shows it doesn't cause regression. https://gcc.gnu.org/pipermail/gcc-patches/2023-August/628435.html Bootstrapped and tested on powerpc64-linux BE and LE with no regressions. ChangeLog rs6000: enable SImode in FP register on P7 gcc/ PR target/88558 * config/rs6000/rs6000.cc (rs6000_hard_regno_mode_ok_uncached): Enable SImode in FP registers on P7. * config/rs6000/rs6000.md (*movsi_internal1): Add fmr for SImode move between FP registers. Set attribute isa of stfiwx to "*" and attribute of stxsiwx to "p7". patch.diff diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc index 44b448d2ba6..99085c2cdd7 100644 --- a/gcc/config/rs6000/rs6000.cc +++ b/gcc/config/rs6000/rs6000.cc @@ -1903,7 +1903,7 @@ rs6000_hard_regno_mode_ok_uncached (int regno, machine_mode mode) if(GET_MODE_SIZE (mode) == UNITS_PER_FP_WORD) return 1; - if (TARGET_P8_VECTOR && (mode == SImode)) + if (TARGET_POPCNTD && mode == SImode) return 1; if (TARGET_P9_VECTOR && (mode == QImode || mode == HImode)) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index cdab49fbb91..edf49bd74e3 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -7566,7 +7566,7 @@ (define_split (define_insn "*movsi_internal1" [(set (match_operand:SI 0 "nonimmediate_operand" - "=r, r, + "=r, r, d, r, d, v, m, ?Z, ?Z, r, r, r, r, @@ -7575,7 +7575,7 @@ (define_insn "*movsi_internal1" wa, r, r, *h, *h") (match_operand:SI 1 "input_operand" - "r, U, + "r, U, d, m, ?Z, ?Z, r, d, v, I, L, eI, n, @@ -7588,6 +7588,7 @@ (define_insn "*movsi_internal1" "@ mr %0,%1 la %0,%a1 + fmr %0,%1 lwz%U1%X1 %0,%1 lfiwzx %0,%y1 lxsiwzx %x0,%y1 @@ -7611,7 +7612,7 @@ (define_insn "*movsi_internal1" mt%0 %1 nop" [(set_attr "type" - "*, *, + "*, *, fpsimple, load, fpload, fpload, store, fpstore, fpstore, *, *, *, *, @@ -7620,7 +7621,7 @@ (define_insn "*movsi_internal1" mtvsr, mfvsr, *, *, *") (set_attr "length" - "*, *, + "*, *, *, *, *, *, *, *, *, *, *, *, 8, @@ -7629,9 +7630,9 @@ (define_insn "*movsi_internal1" *, *, *, *, *") (set_attr "isa" - "*, *, - *, p8v, p8v, - *, p8v, p8v, + "*, *, *, + *, p7, p8v, + *, *, p8v, *, *, p10, *, p8v, p9v, p9v, p8v, p9v, p8v, p9v,