From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by sourceware.org (Postfix) with ESMTPS id F35D53858D1E for ; Mon, 26 Jun 2023 14:07:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F35D53858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687788434; x=1719324434; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=u7oG3u7HaFb7x6V6f9zmh7fpLd/yxlZ8DmiCAmspeS0=; b=nAeClsXkLlMJIQ1F/aCclgL3Ndi5AytnEgScCCTxJZdfmwH7/ZtraVEE 4g/U/ugujGe/kIO5au4EpS7NE02HX9H/lSy5mQEVGjr1RNF52rQP+WIhO 8pBJm4BuooejhObu/Z67LSkmJqWXqNU9m56IXNuf5s+Q2ybNnVaSL5Qrb XluX7xH5BODw3jfg33jGekQaAMqDzOVQxg3QJ7ZxDQbTjQdHmXerH9QUj 8EAYGuzvyL/baWmc0G1dkk6Vtlewciy9+tBqENbU/n+maflytUefeCP5K kl9ZDBoDlhGQyuN/+GH8I02gQh+fhA/gr5ompvGAmBTzpiSAgFJtW4Lf7 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10753"; a="351053008" X-IronPort-AV: E=Sophos;i="6.01,159,1684825200"; d="scan'208";a="351053008" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jun 2023 07:07:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10753"; a="840286951" X-IronPort-AV: E=Sophos;i="6.01,159,1684825200"; d="scan'208";a="840286951" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga004.jf.intel.com with ESMTP; 26 Jun 2023 07:07:12 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 26 Jun 2023 07:07:12 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Mon, 26 Jun 2023 07:07:12 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Mon, 26 Jun 2023 07:07:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y1082VWMEnNxUOgFeT602s7dUVTfqpq4fc5iKlF9r4rNUqrTrSMvUdgvAktUJuu3Fglge5Orx5FiVVAgjFcff1Rn0vM5QSU3EI3W9pAY0dQHs4QgbUbB9ZvcjEjYL4x072GdV2yChxPcpLHU9hKIM8Af7BO7twxVId3L+UkYiRhecZV2f16mWx1Zr/C0Hna1JBKyP9dUKdgP7xviTazTGrz0WfuDs0QZ2joPepGGQcoCVE7x2D5u3GcrVWoNEyX36NE0sZn4XZODwQs0X5f4ud9hWvKmXuWg0xtpRz0DxYRxGYcY709nmj7TTQBWp5UhPcM2Nd2LOXJNNqp8pUFlmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hm8zG8LEweUSsX+cHTww/guAkrjnQLBu4RKgOWcet+o=; b=jkMui/2DfD4vha2yhbRmL/eePVggOps4BOBj7rhLdbCV0B+2vha07itI40/LklEKCjwXHlX5jnQ78NhFRVNt0ChI5i9oW6wQdIe4Up0fLHZG8a5A/3FA9o8+fg1Hr0Gv9squZKD2py2G3xjZl2vXtklKk86j0ozeR/y8rySsZx8X03ILTjw3nVggiMSEs2fJySAcI3mVxLJ130rj+PxjF5BP83wb8o5Ug+TsXPNzxVM9DAlSB1MMut4rvT5PyN2lBB0x+B7iA1E3vi10dLO03zn6lmskMQchBDQuEcxcL8h5Qo4taK9OGw+987TBHMCL9bf+ClSarXeBtvL6ELposg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by DM4PR11MB5552.namprd11.prod.outlook.com (2603:10b6:5:399::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Mon, 26 Jun 2023 14:07:10 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::127c:f4cc:e699:8f73]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::127c:f4cc:e699:8f73%6]) with mapi id 15.20.6521.023; Mon, 26 Jun 2023 14:07:10 +0000 From: "Li, Pan2" To: Richard Biener , Ju-Zhe Zhong CC: "gcc-patches@gcc.gnu.org" , "richard.sandiford@arm.com" Subject: RE: [PATCH V2] GIMPLE_FOLD: Fix gimple fold for LEN_{MASK}_{LOAD,STORE} Thread-Topic: [PATCH V2] GIMPLE_FOLD: Fix gimple fold for LEN_{MASK}_{LOAD,STORE} Thread-Index: AQHZqAX4W8JLbdTxnUyIGFfz/O4m56+cvTuAgABhlrA= Date: Mon, 26 Jun 2023 14:07:10 +0000 Message-ID: References: <20230626081155.2865595-1-juzhe.zhong@rivai.ai> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW5PR11MB5908:EE_|DM4PR11MB5552:EE_ x-ms-office365-filtering-correlation-id: 9c98cbd5-9783-4924-ede6-08db764ea22a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hMlViCtKtCDEbVFPaISgfwFXJhE4791cw+Uvm/MA1egDHDnat3dqU7slUPxdQfR42qCk2KlAKPeTXv3hoyVZGPjtFCfEhLoHiTCYMHmcI22jfjuk9gzikhL2T9XDPpWA9lhDlvvilhvHA6iR2PI6mO86qF5D2bOjZn2s0E279JLA3WoAHZkUwlvdToseCKJU+JZb+FzSSzE5BP5T0XcOwRMzx4YU5+5l+Qitr4GaSj/zTj7gJJtqupdY0TjcxEoEbwx5jL1ITeOSMbPhASfTZrs5K6ZpFFyelXL0XmudzWK3snJjVMbCvtzM4xS7BxIzWJa7Z4BLisYSwD6dl2WLs/CqW9r2lLVVxnEHzkvxe9MB5ECHRSBHXLgXVYOynnl2KowiwEWOenoAeW7/mHElsjZ4ewiBvS9TdQ5oKcwUd6qAHEGXwJB+Ay90r9FpytLPTmbnsCWujroV6Pi1Jznmh3nH+GbRNQOkpD0h9HkJxbwbTE9FIoepJCZrvEbAmNrruB3dYffyWzTxrShzvQvsvMzAobMTJeNz0qc5IoMLNgveMG38s2Yuv+wd09jooKsnGlmbssytRp10mb4bDbhPWFMIoRxzNBKL776tS/wNHQs= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(39860400002)(346002)(366004)(136003)(376002)(451199021)(84970400001)(6506007)(33656002)(52536014)(5660300002)(316002)(86362001)(66476007)(8936002)(8676002)(55016003)(4326008)(41300700001)(66446008)(38070700005)(64756008)(66556008)(38100700002)(122000001)(76116006)(82960400001)(66946007)(26005)(53546011)(2906002)(9686003)(186003)(71200400001)(478600001)(7696005)(83380400001)(110136005)(54906003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?3i5BwCDD6jlPIwjJ2PQvgMT1Fj8EXiy5ZCHPZdu0TDdQz+9cxki3OY8ktbbq?= =?us-ascii?Q?zAorgkMGtsjWNrvFbHDy4Rg7gkMI0qHPPTiioXILfhveDPjqzuKZKyza/Sp/?= =?us-ascii?Q?3L2DUm5rxORUFZ4RWUq7wXApNgZ902voKD5BLIdTSqyWsIAtRCQY8CQp4qrQ?= =?us-ascii?Q?l/WS4MiuHlgdCOxCPWFrWMeKPzptmmDK5lJH+Px5nQZ8b9NhVSAlu/9+srrY?= =?us-ascii?Q?E69/880EnKEl5ds6AZ6osp7J/xzmFyLciLJv20Nh0MRSt3Zh9I9Uouh/OUzV?= =?us-ascii?Q?RGI3A4Vujle6mBTO1qfoVfGDM+Mp1pxv/RXqY/5PCchaXutsRgq5L5V12/d0?= =?us-ascii?Q?rDLnMeyNBqg3UE38AzN2Qk8uDA5Lycmr2Rg6eiiE2lMmOOGZOL7Wpd6PgYmo?= =?us-ascii?Q?Cvcow3evVXA0PCUJfhGNeQUl5s+cviY8B5WGKFB/UwEeXaoG12A8HUmvpBr1?= =?us-ascii?Q?aTh81yzFQUBbGtBBr4j1tkUK24f9RziJ+0bPpIsYcOndcwyOK59pl/k9MWBq?= =?us-ascii?Q?Nlh1Vj/1Wx74bSWchbX/9loPZKa5o9PYMnuHoVcoZ6PkHoDSpEPLaG1cHt7C?= =?us-ascii?Q?Gceq25layTAmRMkoCjKwouCUP3hj5SAhSATRkNi/sCdnVVq0LzR+gLFpT75x?= =?us-ascii?Q?EhYd4qlBQ4IBcRewmKsArbcGMUWGTuewhjSgzI2aTS1ziwb0XvtIqXTOnOvc?= =?us-ascii?Q?yavI8jBPhsnyQyqxxoVAgy5obl3gDMqf5SEzGvi7XbuGVaL88gfY7LbX3lHD?= =?us-ascii?Q?BAkQ8pLbzZodzCl6rmQx2u9+n00r2ENW4/YEJ7QJoDbv3Pn1AXPGAqIoxnBw?= =?us-ascii?Q?ZVGTQBQEbs0Ik2wb+HdOs8LHrtyRTIeN41G1QxcPbbrft3L5ZaI7diOBW49l?= =?us-ascii?Q?khfoEYJj943lMX2Vl+9UARklXj79pQWrRll6e8ZbcwHyZ/JOFMGJwDQwM3aY?= =?us-ascii?Q?o1DSVQSmFJdK38oXyQdu4G/b5GX4c4EKMxtLxtBBjZe0fT5GCunjGkKEQRx2?= =?us-ascii?Q?PhuUslHbxiZRVR4SHZHnBCZOPmaABisW1ihEIEWDxkiFo3f7cTMAunFXJitS?= =?us-ascii?Q?JmgJ6esEH6kbkojXJFy8mTPql2yQ0TEE193i1ngZ9QPwQNnI43l7HLj17WK3?= =?us-ascii?Q?IXjS1vpVQP9U6kNO+AgYdaKh+eBl2X5SIf1+H02SpALrWbXgp1Y9BYSEWcMm?= =?us-ascii?Q?dVP0vnP7w2pfK82wKnyQM3pO8ETXrJm6UY+w9pblL/jtXuwt5Gbs6d3uwDNl?= =?us-ascii?Q?rTdYuM9SXFCV+7Ie6cECaxR0iPq+Q8C4g+6mCXuYDH64BU7sEzYnDxWvhHkT?= =?us-ascii?Q?QAwgnlB11pOIY3foZQWoVKFnpa49Q8fjEgOl6Yx3wUYkho8srl7IK5STA7Hq?= =?us-ascii?Q?vnHARkzWvL1mn3t74GQWsQHsxBoBsV8nZngvV/JjatlqtCbNiMuOaQlOA89t?= =?us-ascii?Q?O9Rqh35yhaVpOW5YfgL6Mkpdeu9o4UZy1c8cjmxNvwvtOzD4DiHPSDZyQ77h?= =?us-ascii?Q?xiCn3Kspry9WqrkgDzeu8oxqeU6ywePJxqezsAYDEpjyeTrTZPirPDGO0rMG?= =?us-ascii?Q?Yv/mwwW+Dgz4GjwB8xI=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c98cbd5-9783-4924-ede6-08db764ea22a X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jun 2023 14:07:10.3178 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5nhavp+6QY809AzHUbPKHvI9M/qqS4dZr81OV48Erh8MR1wu9ArObwZQ9kG3y7GMIR7+Aj6TCjm6oWQzfqbJ7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5552 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,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 List-Id: Committed as passed both the bootstrap and regression test, thanks Richard. Pan -----Original Message----- From: Gcc-patches On = Behalf Of Richard Biener via Gcc-patches Sent: Monday, June 26, 2023 4:17 PM To: Ju-Zhe Zhong Cc: gcc-patches@gcc.gnu.org; richard.sandiford@arm.com Subject: Re: [PATCH V2] GIMPLE_FOLD: Fix gimple fold for LEN_{MASK}_{LOAD,S= TORE} On Mon, 26 Jun 2023, juzhe.zhong@rivai.ai wrote: > From: Ju-Zhe Zhong >=20 > Hi, previous I made a mistake on GIMPLE_FOLD of LEN_MASK_{LOAD,STORE}. >=20 > We should fold LEN_MASK_{LOAD,STORE} (bias+len) =3D=3D vf (nunits instead= of bytesize) && mask =3D all trues mask >=20 > into: > MEM_REF [...]. >=20 > This patch added testcase to test gimple fold of LEN_MASK_{LOAD,STORE}. >=20 > Also, I fix LEN_LOAD/LEN_STORE, to make them have the same behavior. >=20 > Ok for trunk ? OK > gcc/ChangeLog: >=20 > * gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Fix gi= mple fold of LOAD/STORE with length. >=20 > gcc/testsuite/ChangeLog: >=20 > * gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c: New test. >=20 > --- > gcc/gimple-fold.cc | 6 ++- > .../riscv/rvv/autovec/partial/gimple_fold-1.c | 43 +++++++++++++++++++ > 2 files changed, 47 insertions(+), 2 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gi= mple_fold-1.c >=20 > diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc > index 3d46b76edeb..6d167b116b9 100644 > --- a/gcc/gimple-fold.cc > +++ b/gcc/gimple-fold.cc > @@ -5397,8 +5397,10 @@ gimple_fold_partial_load_store_mem_ref (gcall *cal= l, tree vectype, bool mask_p) > unsigned int nargs =3D gimple_call_num_args (call); > tree bias =3D gimple_call_arg (call, nargs - 1); > gcc_assert (TREE_CODE (bias) =3D=3D INTEGER_CST); > - if (maybe_ne (wi::to_poly_widest (basic_len) - wi::to_widest (bias= ), > - GET_MODE_SIZE (TYPE_MODE (vectype)))) > + /* For LEN_LOAD/LEN_STORE/LEN_MASK_LOAD/LEN_MASK_STORE, > + we don't fold when (bias + len) !=3D VF. */ > + if (maybe_ne (wi::to_poly_widest (basic_len) + wi::to_widest (bias= ), > + GET_MODE_NUNITS (TYPE_MODE (vectype)))) > return NULL_TREE; > =20 > /* For LEN_MASK_{LOAD,STORE}, we should also check whether > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gimple_fo= ld-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c > new file mode 100644 > index 00000000000..23407a2d3f4 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c > @@ -0,0 +1,43 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=3Drv32gcv -mabi=3Dilp32d --param riscv-autovec-p= reference=3Dfixed-vlmax --param riscv-autovec-lmul=3Dm8 -O3 -fdump-tree-opt= imized-details" } */ > + > +#include > + > +#define SZ 255 > + > +#define DEF(TYPE) void fn_##TYPE (TYPE *__restrict a); > + > +#define RUN(TYPE) = \ > + TYPE a##TYPE[SZ]; = \ > + for (int i =3D 0; i < SZ; i++) = \ > + { = \ > + a##TYPE[i] =3D 127; = \ > + } = \ > + fn_##TYPE (a##TYPE); > + > +#define RUN_ALL() = \ > + RUN (int8_t) = \ > + RUN (int16_t) = \ > + RUN (int32_t) = \ > + RUN (int64_t) = \ > + RUN (uint8_t) = \ > + RUN (uint16_t) = \ > + RUN (uint32_t) = \ > + RUN (uint64_t) > + > +DEF (int8_t) > +DEF (int16_t) > +DEF (int32_t) > +DEF (int64_t) > +DEF (uint8_t) > +DEF (uint16_t) > +DEF (uint32_t) > +DEF (uint64_t) > + > +int > +main () > +{ > + RUN_ALL () > +} > + > +/* { dg-final { scan-tree-dump-times "\.LEN_MASK_STORE" 6 "optimized" } = } */ >=20 --=20 Richard Biener SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman; HRB 36809 (AG Nuernberg)