From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id C448F3858C98 for ; Tue, 27 Feb 2024 01:55:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C448F3858C98 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 C448F3858C98 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=1708998929; cv=none; b=UZ0QZqvByuRMZwXJ4etPGFN3GPyaJqSt02MYaVwOa0sef+N8Prpo1jLH2CBYlTTlmR2R3FYKmgXRM88fgUGDwcv7yqCKuRfyqd8AtAnCmMI0XsiChSmJjOfzVSi8Sq39dOWq/n3qd+s123UPbOA9Az1Yplin92YnuG5d+0phuK8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708998929; c=relaxed/simple; bh=TEhgYl8XtVSzSJKowEABWXk/cEP6Qu2N2h96sO8/K+I=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=XsN0bWDDjUP0gQHomUQ7YlxOcGj4suyIKEXMN6tkcdMGU9o6osfkA3jTC+PLV0SWxYdo+w3gdc94gnOTYYvwVQscWBR+Aykb/+7eSruRYUkVZln42UWAfnSCE9z6HQFEP3BguTRr93Bv2GMZDkIC91xS8OHfd2r4B+YWJXRfyEc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41R1VlI2012736; Tue, 27 Feb 2024 01:55:26 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=Y5M6i417YguQ4dOWi4H5lFTO3z7smpo7m6BrIk4jKtA=; b=T8EJk1GmZL1qxsF1ha+iAnibSZlgh5F10MeiMIMFS8ytpbXIvibxv3r3LD5OKj7tbC7j 1HKD1wSfroETuvWygjhQY8rU36QiyQoQgUN/iaQ8Gq7S6pqShf+qXXo+7ODnBmLxrVuU myXI1+DJjtinUy53a0nVo211ZqllXNyolUJhgMP3z6NHmHRPnChQgHepMe1kfxm4mr0p Oc/rND7jvY8CXG62szyYLrzehmJOSpTf8c7hivLUxiMUhYIO9HDlcikEkaGd41C2Ao4Y d92FAbwZAvrIjuMpi51ht0yqG8wQxoUbuWvWuWzLMb+n3nJFdo+9VIezrZU+j/0TxDfV aA== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3wh6120h50-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 27 Feb 2024 01:55:25 +0000 Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 41QMqU07021363; Tue, 27 Feb 2024 01:55:25 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3wfusnvw3v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 27 Feb 2024 01:55:25 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 41R1tJPe24707830 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 27 Feb 2024 01:55:21 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 23B942004B; Tue, 27 Feb 2024 01:55:19 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 295A620040; Tue, 27 Feb 2024 01:55:17 +0000 (GMT) Received: from [9.200.50.114] (unknown [9.200.50.114]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 27 Feb 2024 01:55:16 +0000 (GMT) Message-ID: <8eb339bb-ea2a-e311-956f-d6cbcb5c86a2@linux.ibm.com> Date: Tue, 27 Feb 2024 09:55:15 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH] rs6000: Don't allow immediate value in the vsx_splat pattern [PR113950] Content-Language: en-US To: Peter Bergner , jeevitha Cc: GCC Patches , Segher Boessenkool , Michael Meissner References: <7faaa8f2-d706-4f6a-811f-103b74f2de8a@linux.vnet.ibm.com> <97e31ecb-6c99-4302-957c-ac45d106f15d@linux.ibm.com> From: "Kewen.Lin" In-Reply-To: <97e31ecb-6c99-4302-957c-ac45d106f15d@linux.ibm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: OJd0PvtQALMUbL6poKYUF8ohAcjXMgc7 X-Proofpoint-ORIG-GUID: OJd0PvtQALMUbL6poKYUF8ohAcjXMgc7 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_11,2024-02-26_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 spamscore=0 phishscore=0 mlxscore=0 adultscore=0 impostorscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402270013 X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_MSPIKE_H3,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: on 2024/2/26 23:07, Peter Bergner wrote: > On 2/26/24 4:49 AM, Kewen.Lin wrote: >> on 2024/2/26 14:18, jeevitha wrote: >>> Hi All, >>> diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md >>> index 6111cc90eb7..e5688ff972a 100644 >>> --- a/gcc/config/rs6000/vsx.md >>> +++ b/gcc/config/rs6000/vsx.md >>> @@ -4660,7 +4660,7 @@ >>> (define_expand "vsx_splat_" >>> [(set (match_operand:VSX_D 0 "vsx_register_operand") >>> (vec_duplicate:VSX_D >>> - (match_operand: 1 "input_operand")))] >>> + (match_operand: 1 "splat_input_operand")))] >>> "VECTOR_MEM_VSX_P (mode)" >>> { >>> rtx op1 = operands[1]; >> >> This hunk actually does force_reg already: >> >> ... >> else if (!REG_P (op1)) >> op1 = force_reg (mode, op1); >> >> but it's assigning to op1 unexpectedly (an omission IMHO), so just >> simply fix it with: >> >> else if (!REG_P (op1)) >> - op1 = force_reg (mode, op1); >> + operands[1] = force_reg (mode, op1); > > I agree op1 was an oversight and it should be operands[1]. > That said, I think using more precise predicates is a good thing, Agreed. > so I think we should use both Jeevitha's predicate change and > your operands[1] change. Since either the original predicate change or operands[1] change can fix this issue, I think it's implied that only either of them is enough, so we can remove "else if (!REG_P (op1))" arm (or even replaced with one else arm to assert REG_P (op1))? > > I'll note that Jeevitha originally had the operands[1] change, but I > didn't look closely enough at the issue or the pattern and mentioned > that these kinds of bugs can be caused by too loose constraints and > predicates, which is when she found the updated predicate to use. > I believe she already even bootstrapped and regtested the operands[1] > only change. Jeevitha??? > Good to know that. :) > > > >>> +/* PR target/113950 */ >>> +/* { dg-do compile } */ >> >> We need an effective target to ensure vsx support, for now it's powerpc_vsx_ok. >> ie: /* { dg-require-effective-target powerpc_vsx_ok } */ > > Agreed. > > >>> +/* { dg-options "-O1" } */ > > I think we should also use a -mcpu=XXX option to ensure VSX is enabled > when compiling these VSX built-in functions. I'm fine using any CPU > (power7 or later) where the ICE exists with an unpatched compiler. > Otherwise, testing will be limited to our server systems that have > VSX enabled by default. Good point, or maybe just an explicit -mvsx like some existing ones, which can avoid to only test some fixed cpu type. BR, Kewen