From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 95D7B3AA88CA for ; Tue, 30 Aug 2022 17:22:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 95D7B3AA88CA 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 Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27UHGY25010298; Tue, 30 Aug 2022 17:22:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : to : cc : from : subject : content-type : content-transfer-encoding : mime-version; s=pp1; bh=1fioYPWWcligXkgZWZzZXecg2n/grIwQ6vkOMFpfPFQ=; b=S13KZTrbb2/uk4ec2yErTiiBJdk4H3Ag6KMN8bJFFsFt5qVK6+Q2unLyJoRXj4/E+26K CaK6RZclhwMPWrtWNeqiDGkjJCYWKoL/25E+xEu8T+ryH+ng5nUkP9tsqsf5jZjmJSO9 S3Ev9q73UB4QDHWDRpbAznFAsjSC6xEo6ZfGD7D9JDZWjZVtEGiyXgzIDfb+xFSVSZK/ tTlnMwq+9abqAyTITkatU43JhCZx0l96C4Kz1BqU2hFWpSamhfoY2MySHwHDaZpVmzju hC1S2k9Swj1dqfn8vRskL199+oEgODYubkbfYRa0ncf4LbaPe7MT1Tj1YPx4dXeWpay9 ag== Received: from ppma01dal.us.ibm.com (83.d6.3fa9.ip4.static.sl-reverse.com [169.63.214.131]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3j9ptbg3dw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Aug 2022 17:22:36 +0000 Received: from pps.filterd (ppma01dal.us.ibm.com [127.0.0.1]) by ppma01dal.us.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 27UHKuRj008093; Tue, 30 Aug 2022 17:22:36 GMT Received: from b03cxnp07029.gho.boulder.ibm.com (b03cxnp07029.gho.boulder.ibm.com [9.17.130.16]) by ppma01dal.us.ibm.com with ESMTP id 3j7aw9teyc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Aug 2022 17:22:35 +0000 Received: from b03ledav005.gho.boulder.ibm.com (b03ledav005.gho.boulder.ibm.com [9.17.130.236]) by b03cxnp07029.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 27UHMYuw45482426 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 30 Aug 2022 17:22:34 GMT Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AC47CBE051; Tue, 30 Aug 2022 17:27:24 +0000 (GMT) Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 461AEBE04F; Tue, 30 Aug 2022 17:27:24 +0000 (GMT) Received: from [9.160.4.32] (unknown [9.160.4.32]) by b03ledav005.gho.boulder.ibm.com (Postfix) with ESMTP; Tue, 30 Aug 2022 17:27:24 +0000 (GMT) Message-ID: <13c36a04-bb77-9474-d91f-1e71547e5081@linux.ibm.com> Date: Tue, 30 Aug 2022 12:22:33 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Content-Language: en-US To: Segher Boessenkool Cc: GCC Patches From: Peter Bergner Subject: [PING][PATCH] rs6000: Don't ICE when we disassemble an MMA variable [PR101322] Content-Type: text/plain; charset=UTF-8 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: m5q-Xg0dRtPwXEAyxQ4oA_4pEnDIhWxH X-Proofpoint-ORIG-GUID: m5q-Xg0dRtPwXEAyxQ4oA_4pEnDIhWxH Content-Transfer-Encoding: 7bit X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-30_10,2022-08-30_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 spamscore=0 priorityscore=1501 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2207270000 definitions=main-2208300078 X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_MSPIKE_H2,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: I'd like to ping the following patch. Peter https://gcc.gnu.org/pipermail/gcc-patches/2022-August/600451.html Message-ID: >When we expand an MMA disassemble built-in with C++ using a pointer that >is casted to a valid MMA type, the type isn't passed down to the expand >machinery and we end up using the base type of the pointer which leads to >an ICE. This patch enforces we always use the correct MMA type regardless >of the pointer type being used. > >This passed bootstrap and regtesting on powerpc64le-linux with no regressions. >Ok for trunk and backports after some burn-in time? > >Peter > >gcc/ > PR target/101322 > * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): > Enforce the use of a valid MMA pointer type. > >gcc/testsuite/ > PR target/101322 > * g++.target/powerpc/pr101322.C: New test. > >diff --git a/gcc/config/rs6000/rs6000-builtin.cc b/gcc/config/rs6000/rs6000-builtin.cc >index 12afa86854c..e796e74f072 100644 >--- a/gcc/config/rs6000/rs6000-builtin.cc >+++ b/gcc/config/rs6000/rs6000-builtin.cc >@@ -1085,7 +1085,12 @@ rs6000_gimple_fold_mma_builtin (gimple_stmt_iterator *gsi, > unsigned nvec = (fncode == RS6000_BIF_DISASSEMBLE_ACC) ? 4 : 2; > tree dst_ptr = gimple_call_arg (stmt, 0); > tree src_ptr = gimple_call_arg (stmt, 1); >- tree src_type = TREE_TYPE (src_ptr); >+ tree src_type = (fncode == RS6000_BIF_DISASSEMBLE_ACC) >+ ? build_pointer_type (vector_quad_type_node) >+ : build_pointer_type (vector_pair_type_node); >+ if (TREE_TYPE (TREE_TYPE (src_ptr)) != src_type) >+ src_ptr = build1 (VIEW_CONVERT_EXPR, src_type, src_ptr); >+ > tree src = create_tmp_reg_or_ssa_name (TREE_TYPE (src_type)); > gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq); > >diff --git a/gcc/testsuite/g++.target/powerpc/pr101322.C b/gcc/testsuite/g++.target/powerpc/pr101322.C >new file mode 100644 >index 00000000000..59e71e8eb89 >--- /dev/null >+++ b/gcc/testsuite/g++.target/powerpc/pr101322.C >@@ -0,0 +1,17 @@ >+/* PR target/101322 */ >+/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ >+/* { dg-require-effective-target power10_ok } */ >+ >+/* Verify we don't ICE on the following test cases. */ >+ >+void >+foo (char *resp, char *vpp) >+{ >+ __builtin_vsx_disassemble_pair (resp, (__vector_pair *) vpp); >+} >+ >+void >+bar (char *resp, char *vpp) >+{ >+ __builtin_mma_disassemble_acc (resp, (__vector_quad *)vpp); >+}