From patchwork Thu Jan 13 14:56:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Lyon X-Patchwork-Id: 49990 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 CDF663951C8C for ; Thu, 13 Jan 2022 15:14:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CDF663951C8C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1642086891; bh=tnOKj6Xw5694xKUlyw8zYD34IZ1MbOOCd5D3wj4hP4Y=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=Lzz+PJ15s4RfgLyLhDhD/q5GGK0zWO/mpRQjUnO/bzAEOHWSpzS+zJAw8IEGD4Oj/ RfMNJPj0TdxxWDuVvCdYLim2Npa0nozlaK+4croz2eGnyuUlUzB3eU0D43aCaZOUaR K0VFtPVB3OduvXc0OIvt+CQY6ynnrPVDqoqX8spc= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [185.132.182.106]) by sourceware.org (Postfix) with ESMTPS id A1AEE3951C2D for ; Thu, 13 Jan 2022 15:02:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A1AEE3951C2D Received: from pps.filterd (m0288072.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 20DEqMhL010057 for ; Thu, 13 Jan 2022 16:02:18 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3djhec9n91-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 13 Jan 2022 16:02:18 +0100 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id A6A5A10002A for ; Thu, 13 Jan 2022 16:02:17 +0100 (CET) Received: from Webmail-eu.st.com (sfhdag2node2.st.com [10.75.127.5]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 883A5214D0A for ; Thu, 13 Jan 2022 16:02:17 +0100 (CET) Received: from gnx2104.gnb.st.com (10.75.127.47) by SFHDAG2NODE2.st.com (10.75.127.5) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Thu, 13 Jan 2022 16:02:17 +0100 To: Subject: [PATCH v3 15/15] arm: Fix constraint check for V8HI in mve_vector_mem_operand Date: Thu, 13 Jan 2022 15:56:25 +0100 Message-ID: <20220113145645.4077141-16-christophe.lyon@foss.st.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220113145645.4077141-1-christophe.lyon@foss.st.com> References: <20220113145645.4077141-1-christophe.lyon@foss.st.com> MIME-Version: 1.0 X-Originating-IP: [10.75.127.47] X-ClientProxiedBy: SFHDAG2NODE2.st.com (10.75.127.5) To SFHDAG2NODE2.st.com (10.75.127.5) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2022-01-13_07,2022-01-13_01,2021-12-02_01 X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-Patchwork-Original-From: Christophe Lyon via Gcc-patches From: Christophe Lyon Reply-To: Christophe Lyon Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" When compiling gcc.target/arm/mve/intrinsics/mve_immediates_1_n.c with -mthumb -mfloat-abi=hard -march=armv8.1-m.main+mve.fp+fp.dp, the compiler crashes because: error: insn does not satisfy its constraints: (insn 28 14 17 2 (set (reg:V8HI 16 s0 [orig:249 u16 ] [249]) (mem/c:V8HI (pre_modify:SI (reg/f:SI 12 ip [248]) (plus:SI (reg/f:SI 12 ip [248]) (const_int 32 [0x20]))) [1 u16+0 S16 A64])) "arm_mve.h":17113:10 3011 {*mve_movv8hi} (expr_list:REG_INC (reg/f:SI 12 ip [248]) (nil))) during RTL pass: reload We are trying to generate: vldrh.16 q3, [ip], #14 but the constraint check fails because ip is not a low reg. This patch replaces LAST_LO_REGNUM by LAST_ARM_REGNUM in mve_vector_mem_operand and avoids the ICE. 2022-01-13 Christophe Lyon gcc/ * config/arm/arm.c (mve_vector_mem_operand): Fix handling of V8HI. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 7d56fa71806..5edca248fb7 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -13479,7 +13479,7 @@ mve_vector_mem_operand (machine_mode mode, rtx op, bool strict) case E_V4HImode: case E_V4HFmode: if (val % 2 == 0 && abs (val) <= 254) - return reg_no <= LAST_LO_REGNUM + return reg_no <= LAST_ARM_REGNUM || reg_no >= FIRST_PSEUDO_REGISTER; return FALSE; case E_V4SImode: