From patchwork Mon Feb 26 05:43:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jeevitha X-Patchwork-Id: 206264 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp1884947dyb; Sun, 25 Feb 2024 21:44:07 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXFqEsPXDarOIyhzYU7sHWS8RMQHSfPOzjkA7HdPr/QnHWCuFavfDHe4S5IEkHqaOx04DjuOElMBaCWFI9B1724iUsIVg== X-Google-Smtp-Source: AGHT+IFZWay/Z8Xu8Hg+zJ5SyAI+dferZaPBAWVrFnXr6XK+Gv4Z9juppnod9VmWnSse4TYdsMUS X-Received: by 2002:ac8:5887:0:b0:42e:874b:952d with SMTP id t7-20020ac85887000000b0042e874b952dmr1431383qta.18.1708926246772; Sun, 25 Feb 2024 21:44:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708926246; cv=pass; d=google.com; s=arc-20160816; b=r8Nwxo0zu/Kk7ZGIOklEyWzBbyMVnEtseDtcDllkr1IuvphjNZ2oSWzWwPoXPI0X/E ItvQHw5f9igCcR7AlnI0pTsuxA44F9pzwzI/qvLhvQsdvgJjlPZz8/YH9MOT30Hzz5Vk u5y+36YToKBqMJOGl056za1bYHTWrJG9rrPI9Go6ikqqlODpAAQVD+Expvx9d+sqi5Uh 7i7ERGNnbtqmqUuc2oyVZmLOG0hD+LzDWEgLXMSyS86puQdJfi168trPSn4tUYvd4eav +AsvUlenKamFO8Yy2u5TVWxkdVbGDnYF4stEFxgSMFsquv6aXVK26Txrwi4lkpCPXwMo l5pA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :in-reply-to:cc:to:from:references:content-language:subject :user-agent:mime-version:date:message-id:dkim-signature:arc-filter :dmarc-filter:delivered-to; bh=+quzylH8GHRTh56jpCgNo1/k4kgKD7D/vyvXLNcYlXI=; fh=HD+MneD8vFDNN371v1cBurqGt31RFdDgkLPD+6Wg6ms=; b=RMfCW+p7Ux0h3098QFXPy7kgp7JY37ozY67G8hprUkqiHO9+LuBRkvnGqIoGxd4FcG H0S8H9/f9SjFSf8Bt51Pl0ocGaOiKUstm2MmZOoI/QLG1VWRFdGqieXX9D3ASRwTs7Fj zn6sJyGJD+rPhiKUCs3gdB7fwJRjR3jjNPJZl14NBIYGcaGMgDpAV+9OmY+ZXEm3kTP9 /+A9YKn9gZ3hd6L6LP+7uPZgNCJa/7dfiUoJSH/ZHU7INZbkdp3UcfyVtIHnbCUf9LoP 45CTQe5xq1K+o/gwYP6R9x+RivytVtFzZNQo1xd3mbutwkoCh87f3xd3jAy10OU7fx6w NbrQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=KTas+gV5; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id l18-20020a05622a175200b0042e67d14d98si4796332qtk.680.2024.02.25.21.44.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 21:44:06 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=KTas+gV5; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 789853858C78 for ; Mon, 26 Feb 2024 05:44:06 +0000 (GMT) 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 C34213858D1E for ; Mon, 26 Feb 2024 05:43:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C34213858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=linux.vnet.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C34213858D1E 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=1708926208; cv=none; b=Awxn9siH0On3SsPMEfeoxJE6vtmswUPHP3RHh+fF8GE8b06+gd7dXBoDwV+GgkRgrOe/S0KqQ3iVfBYeg8orhu+9CZH6Slq/J9iF/Fn7yQBETJZwQdTT4MRjPiMqXUvxYxD42ITmMCA1DGxpWdU+EoomOf5s3+xJyUohj8f+ZhQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708926208; c=relaxed/simple; bh=R7oMCUwk0dw4caCeqIxrOBbD0o37bkc0uWx4DZNqjpI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=A8NXPB7ZgNEUwEXhdu67yqbzyZztNiKinre9W5YUt4RIL0zl4Mehq5tUkrx4HHtELIHXCijj6eGr017BQ+uLlqtGf8Mml/k/jW1+pc8l2c3zjQItZBBbajBHIcSWu4Mt0l9PRQCRUx1Kwbk6RrBrUdTK9jGuB0IRcHqDguDeso0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41Q1WZ1J018183; Mon, 26 Feb 2024 05:43:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : references : from : to : cc : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=+quzylH8GHRTh56jpCgNo1/k4kgKD7D/vyvXLNcYlXI=; b=KTas+gV5ggsN2a8V0lsN2l/bul2pOKQ8rRifAaRaRtDcPkYo1fTKiWF97A/lIExUCT6A HtM43jrMAevraTpkcLf/lol0CKvYBPLjdHKmfEZ5H35UvuftCAlfGGvt47IpVOMeZDsH Db1Cf/zCyCbfVVQRyMB4tQMxJKBVW+w4a/YtJDj4DmjDz/fRq6WWD3k2QkuGRCfyvlwd iNdSsTnoIzEqircyxB4I/16dK+Zq2KbVlYvCAotbE35H1LALymExz9zaJZccbv64vpjx Dodce8MHQghPbpV75iOspkVyOM1fUtCqUBkHY7enmARKQUwjoRWtB/+MXK4Spe3+uaRH hw== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3wgh2gukmg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 26 Feb 2024 05:43:25 +0000 Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 41Q2mAQH008178; Mon, 26 Feb 2024 05:43:23 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3wfv9kxvra-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 26 Feb 2024 05:43:23 +0000 Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com [10.241.53.105]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 41Q5hKGx18416340 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 26 Feb 2024 05:43:22 GMT Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CDDDE5805D; Mon, 26 Feb 2024 05:43:20 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3149158060; Mon, 26 Feb 2024 05:43:19 +0000 (GMT) Received: from [9.109.208.145] (unknown [9.109.208.145]) by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTP; Mon, 26 Feb 2024 05:43:18 +0000 (GMT) Message-ID: <1a62a215-98e2-4e3b-9059-681189157d0a@linux.vnet.ibm.com> Date: Mon, 26 Feb 2024 11:13:17 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH] rs6000: load high and low part of 128bit vector independently [PR110040] Content-Language: en-US References: From: jeevitha To: GCC Patches , "Kewen.Lin" , Segher Boessenkool Cc: Peter Bergner In-Reply-To: X-Forwarded-Message-Id: X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: sOYRX03CHEW3FRj3PlR-bVzjRd8mc3uo X-Proofpoint-GUID: sOYRX03CHEW3FRj3PlR-bVzjRd8mc3uo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-26_02,2024-02-23_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 suspectscore=0 impostorscore=0 mlxscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402260041 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, 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+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791939047950858588 X-GMAIL-MSGID: 1791939047950858588 Hi All, The following patch has been bootstrapped and regtested on powerpc64le-linux. PR110040 exposes an issue concerning moves from vector registers to GPRs. There are two moves, one for upper 64 bits and the other for the lower 64 bits. In the problematic test case, we are only interested in storing the lower 64 bits. However, the instruction for copying the upper 64 bits is still emitted and is dead code. This patch adds a splitter that splits apart the two move instructions so that DCE can remove the dead code after splitting. 2024-02-26 Jeevitha Palanisamy gcc/ PR target/110040 * config/rs6000/vsx.md (split pattern for V1TI to DI move): Defined. gcc/testsuite/ PR target/110040 * gcc.target/powerpc/pr110040-1.c: New testcase. * gcc.target/powerpc/pr110040-2.c: New testcase. diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md index 6111cc90eb7..78457f8fb14 100644 --- a/gcc/config/rs6000/vsx.md +++ b/gcc/config/rs6000/vsx.md @@ -6706,3 +6706,19 @@ "vmsumcud %0,%1,%2,%3" [(set_attr "type" "veccomplex")] ) + +(define_split + [(set (match_operand:V1TI 0 "int_reg_operand") + (match_operand:V1TI 1 "vsx_register_operand"))] + "reload_completed + && TARGET_DIRECT_MOVE_64BIT" + [(pc)] +{ + rtx op0 = gen_rtx_REG (DImode, REGNO (operands[0])); + rtx op1 = gen_rtx_REG (V2DImode, REGNO (operands[1])); + rtx op2 = gen_rtx_REG (DImode, REGNO (operands[0]) + 1); + rtx op3 = gen_rtx_REG (V2DImode, REGNO (operands[1])); + emit_insn (gen_vsx_extract_v2di (op0, op1, GEN_INT (0))); + emit_insn (gen_vsx_extract_v2di (op2, op3, GEN_INT (1))); + DONE; +}) diff --git a/gcc/testsuite/gcc.target/powerpc/pr110040-1.c b/gcc/testsuite/gcc.target/powerpc/pr110040-1.c new file mode 100644 index 00000000000..fb3bd254636 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr110040-1.c @@ -0,0 +1,14 @@ +/* PR target/110040 */ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_p9vector_ok } */ +/* { dg-options "-O2 -mdejagnu-cpu=power9" } */ +/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ + +#include + +void +foo (signed long *dst, vector signed __int128 src) +{ + *dst = (signed long) src[0]; +} + diff --git a/gcc/testsuite/gcc.target/powerpc/pr110040-2.c b/gcc/testsuite/gcc.target/powerpc/pr110040-2.c new file mode 100644 index 00000000000..f3aa22be4e8 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr110040-2.c @@ -0,0 +1,13 @@ +/* PR target/110040 */ +/* { dg-do compile } */ +/* { dg-require-effective-target power10_ok } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ + +#include + +void +foo (signed int *dst, vector signed __int128 src) +{ + __builtin_vec_xst_trunc (src, 0, dst); +}