From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by sourceware.org (Postfix) with ESMTPS id 9CFA23858CDB for ; Thu, 20 Jul 2023 13:55:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9CFA23858CDB 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=1689861324; x=1721397324; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=sAgkCmVuL4m9WdNh9u81FBsBdbMMYmaDDaWMALmAWHQ=; b=gONkWAq2AEJe/U10y1gCf3L5mmxzCL0G5mN3UtisDk4f01bSb18Jk/6D hKHrwsv43M3X87RAyF1XiNUYR+/WvMVm8YFx21w4ZaAmPPIiw2Pl/i7/V Pibg0DA7PbPEIwHQZLyFCllCh+7Ng71bUs1Cth5gy8CUTrxHHCnMHKl02 vdsjejC/Ud6fhtGOvIa/KlYuBd/zpU+DOZEWIQbxzl1todVHvyUDjD0Cx za+LQOogffYdEa9LhU8xXWH5gLAV4HlYN7onFT90Ex4inIALXa8D1yysz DrlCrt22v85g0yumO15FCTH7qmR3KuGklniBhoaWzJdHvQpv/Xq/MzbJ4 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10777"; a="365625505" X-IronPort-AV: E=Sophos;i="6.01,218,1684825200"; d="scan'208";a="365625505" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jul 2023 06:55:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10777"; a="724398629" X-IronPort-AV: E=Sophos;i="6.01,218,1684825200"; d="scan'208";a="724398629" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga002.jf.intel.com with ESMTP; 20 Jul 2023 06:55:22 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 20 Jul 2023 06:55:22 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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; Thu, 20 Jul 2023 06:55:21 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Thu, 20 Jul 2023 06:55:21 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Thu, 20 Jul 2023 06:55:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K0PBkgNmy/T5081ll+D3fWKFGdcxVmL1+Eni+V8QXVRWK26/y1aaEGCAgUu2duUZ/vBLhPI9Il+GwDqMCP3o8hUSZIRU3WbPKDoaskEB1Rs0fc5GjsJdnf6qTJZ7JQTsb2vza8riIEZykioSF8PTD9AgcGlwQLb/5bHHFYOCRUMus3jWUQVL7VpiqwA0bsD5++cmgwtWD1+shJmqPh08M81wAVdjuFpd6c13eGQtwOC0pH60AYCahvcA66bj7f17tAe5ArhUfWt7hup5MeUoN9OqCg1mGzcXarB0dPep6BjAhvI4CUeajMXKaweSTARuHLhZ0/insfl5G+Zr8tM5Iw== 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=+HxDFPYbGiM9uvp58ciZPzSY56Pmz3B6MxiaziAf0ck=; b=ZNej8RPHGKDjAcljE38ZQ7ss4vmZs0BSFyPiy74T1RiU8U3p/fYPj7HLGMTOBHlexuypvgMGIqClczsv62+oP/LB6i8p6G2tflLk4fudAn5uET6IdYKjOWAaAlQhPi5oDJd7xqtjotuMRFPbArnRzmhXFNnlm0hPTUBP7nno9gHR/B69SFwqBIqyNYPNSKhVO9wq1I/fhILuZzh0qdlEebCq1e7gxthMpndppjl1rjuP8o93yPAx2+6ix8N26QcKgKV7yHLKit/e8mvWbgrikCEtEgV2vycz7yFlLE26t9muB70XEufT+AenfWotEwtQpLWu5PM7g5ghz19pQgeHwA== 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 IA1PR11MB7773.namprd11.prod.outlook.com (2603:10b6:208:3f0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.32; Thu, 20 Jul 2023 13:55:19 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::21a9:85fa:b8a8:8052]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::21a9:85fa:b8a8:8052%3]) with mapi id 15.20.6609.025; Thu, 20 Jul 2023 13:55:19 +0000 From: "Li, Pan2" To: Richard Biener , "juzhe.zhong@rivai.ai" CC: gcc-patches , richard.sandiford Subject: RE: [PATCH] CODE STRUCTURE: Refine codes in Vectorizer Thread-Topic: [PATCH] CODE STRUCTURE: Refine codes in Vectorizer Thread-Index: AQHZuuE/OIOyTu2xI0WHSlSRNi2QcK/Cmp9egAACQoCAABDsgA== Date: Thu, 20 Jul 2023 13:55:19 +0000 Message-ID: References: <20230720080629.1060969-1-juzhe.zhong@rivai.ai> <17D1D233544F89AE+2023072020451277703933@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_|IA1PR11MB7773:EE_ x-ms-office365-filtering-correlation-id: 47583a89-c152-4a25-25e9-08db8928f459 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8HEaQAlOgUPs8dmlfn1VDwL5ecXHH//5u6dNavnOOp6wxkfsA2uzCjcYP6WzS6+oH60OxABuGWfB96y1+Ls9vrk81b1x6LbzD8p399b6PeTnM0glkx/gDObDmByX00nEBp7P+sFjXfXqvkrxNfgpCD2XnLor/ppiuMDmqCCOiqROhUwRfCqsQOJNksbtiCy5Kl79vGzg2/U0LbLCBg3baX/P6EHK7fFSScp1XrMq+gUVHgj/sx5FtGpOo1a8xINjjFoWzh4gAV3oExKQLyYG/mZnAgAXooRwWd1cLFWYt5Or7shMSLQrKXsueRLkjiTLihGDnS4vooAIVTXNwRwrNeNzWcWmWEePdn5FABSLLxElbvX7pd/B0bEFSfeJye9uJz6Z2bdmMUiLl6TPCXWNr9KfWoZuqGvJBInbXAe3C4w+EF2rq+vvpYMQpT4tfI/ki7dcA4pHQziBFXHN7bBpp0en6Fz0NdTb/BRfIZsOMrbS5jnMS7WoSK8VQCLIFX3tSATeAEKEk/kacMnrdLh2tbVu0aop2m7z/4X2ITBhXVPArWynsVcnnv4cy1rtik3RgyTGJutweAIbI3pHOxzAW7CkV5/2oeX1lJWCyzMeuSk= 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)(346002)(39860400002)(376002)(396003)(136003)(366004)(451199021)(53546011)(33656002)(82960400001)(71200400001)(6506007)(38100700002)(186003)(26005)(83380400001)(110136005)(55016003)(478600001)(38070700005)(54906003)(8936002)(7696005)(41300700001)(8676002)(66446008)(66556008)(2906002)(66946007)(966005)(52536014)(4326008)(5660300002)(9686003)(64756008)(316002)(122000001)(66476007)(76116006)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?OMdlivYEnUAoka6MThRcjvLbR8z+pVCnP3CfdUzjTmdINvmwEcxiAg7cZdMw?= =?us-ascii?Q?oWp4KuTUzsyDzmXg77xQ1f7X85rakHpiGJwT04IJL4LCKK4YqnI7sSg1rtBo?= =?us-ascii?Q?sQBt3ro+0WJrMB8tVhEEoa+ZHmreWO6pM6tw63+HUICh91SruPP5fIisshNZ?= =?us-ascii?Q?tJr84kZZJNAon9aVH9OtM4Ub6t96wWVhp5JaOVsV1oDaWfHJ3q0+JHtgdvH2?= =?us-ascii?Q?j6/FxKHL8pf1xGjwZfK//eBWR86HkbLzWhPStgPbhDWTIRPWJ9/Kli/0Qdqy?= =?us-ascii?Q?ji6+4XJudCur1eeoDGfmwl5N0xODpd1s+fHpN/wgRoJWt3LBFOxPutlEtfxy?= =?us-ascii?Q?McgrDxvdFubqchLy8AtNwMpy+gQ0uo2tyyMADODw3U4EkwP51PXCu9FoOi8E?= =?us-ascii?Q?czitxXC9dGFmToGwWQTQHZG48E5csc1/PPHLlT0sIdVAxsOKrKu1Ex3ya/99?= =?us-ascii?Q?obXBTUBbGoDyImL/wTkEQ5AQtRkaale/xnObA9nVwY0/xHIZ61FMG0JZKfiq?= =?us-ascii?Q?NmHZkOOS2I3uDjUwsKKBx0ULc75S9P9VpaFit4VOMoIv7LZQzCP8R2cWgJZL?= =?us-ascii?Q?OgkLhN6kG+y7ASUngYH0cHflOL2WXmQoqhPtavzDz+PjBePnrdMDqgYSKIkg?= =?us-ascii?Q?PxLxVe7DTipCLy+SY9DxtGuSF1BEXq909wJawh5v1fUGY9GIDOSXMaQOlKPW?= =?us-ascii?Q?Ap+s7YKbSFB+g4/m10mNwuMCrjkQWuLdy3xZt53iWvCPoltOlP3Gx+Y9h2nS?= =?us-ascii?Q?L9z/HN143CZ8rktpwdmJFaLf6XUgXdUq0d8LRAGOHvVKTeQ8xA4MKYm7nb82?= =?us-ascii?Q?XZJtPrOt1R7wSksNK0CccL5nH4OBZ6BmDWKg6slUP7no2DvbSZvifKba2XQ1?= =?us-ascii?Q?NfikDrh1s+81MX9ayzpaGf5dZuJm6fC7ft1S6ml7kJ4c+BWVD8g4xgt20ojh?= =?us-ascii?Q?+QhlT3ZvY1cxkc2CmqU9cqmDmVXLO9uWYipi486ekaQnnd/Y6VGAAflj8gNC?= =?us-ascii?Q?pw50gMvs8yZx4cqSItyCZvRkKNbqjNVcMZ5N/3EEwwgCbXyo5cERXlEXS37W?= =?us-ascii?Q?hm6U84afOTZbn9gvyW3XNjk1WckzBZgquzufM84klj/iJUYjh1k0eKWmMf4i?= =?us-ascii?Q?YMUETz5IEWzdGT0wMQgHO8dy7s7peyEpiljrX9rE3JhO0J2scqFRiUgFIHHb?= =?us-ascii?Q?H7+dY43EXWGPBHLYy1DAKgixCcEFNtyHSo8SEdcn1mkzRE/FOKVX9ocXmnWH?= =?us-ascii?Q?N/WEq5/p9dcmT6PL+HQ6RGzwjY8p351hYyarp3ySUIHqnLqcfrUVy7nfTr+I?= =?us-ascii?Q?9cLh4JXyu3bGGG6yQk0NLIEKs1lKLMfzYoCiR3aVHWR96mBRkq12LzS5tO7N?= =?us-ascii?Q?nV8obWbj3Y2CN9LSzdWGltQo9ssXxlWXr1l/PVgjn7QsAzr7k2UWr+4hA6Tr?= =?us-ascii?Q?ExN5v9nLjVIhQq+9ZFRyONxb2yi0qSodj9bx6S4niPwyjqABfF4/FJma2lI5?= =?us-ascii?Q?dr/dsXNpyFLLzm1wUeoBoqrg+nFnz1xJaFmWMFX8T3QLrORWnE0RCSM/k40m?= =?us-ascii?Q?S1p9tKDGmJTWkoOXPiw=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: 47583a89-c152-4a25-25e9-08db8928f459 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jul 2023 13:55:19.3691 (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: 1wAT4p06ac3TVHMLNlk+qU/ZRCJoR1EywP8C4QGYGgmtGrDwp2oIYCjOL6b5jn2T4GhD/V0rrxHfn5jptaUKXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7773 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,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, thanks Richard. Pan -----Original Message----- From: Gcc-patches On = Behalf Of Richard Biener via Gcc-patches Sent: Thursday, July 20, 2023 8:54 PM To: juzhe.zhong@rivai.ai Cc: gcc-patches ; richard.sandiford Subject: Re: [PATCH] CODE STRUCTURE: Refine codes in Vectorizer On Thu, 20 Jul 2023, juzhe.zhong@rivai.ai wrote: > Just finish Bootstrap and regression on X86. >=20 > Ok for trunk ? OK. Not an issue currently but I think LEN_MASK should be checked before MASK. Richard. >=20 > juzhe.zhong@rivai.ai > =20 > From: juzhe.zhong > Date: 2023-07-20 16:06 > To: gcc-patches > CC: richard.sandiford; rguenther; Ju-Zhe Zhong > Subject: [PATCH] CODE STRUCTURE: Refine codes in Vectorizer > From: Ju-Zhe Zhong > =20 > Hi, Richard and Richi. > =20 > I plan to refine the codes that I recently support for RVV auto-vectoriza= tion. > This patch is inspired last review comments from Richard: > https://patchwork.sourceware.org/project/gcc/patch/20230712042124.111818-= 1-juzhe.zhong@rivai.ai/ > =20 > Richard said he prefer the the code structure as follows: > =20 > Please instead switch the if condition so that the structure is: > =20 > if (...) > vect_record_loop_mask (...) > else if (...) > vect_record_loop_len (...) > else > can't use partial vectors > =20 > This is his last comments. > =20 > So, I come back to refine this piece of codes. > =20 > Does it look reasonable ? > =20 > This next refine patch is change all names of "LEN_MASK" into "MASK_LEN" = but should come after this > patch. > =20 > gcc/ChangeLog: > =20 > * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Refine code = structure. > =20 > --- > gcc/tree-vect-stmts.cc | 38 +++++++++++++++++--------------------- > 1 file changed, 17 insertions(+), 21 deletions(-) > =20 > diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc > index cb86d544313..b86e159ae4c 100644 > --- a/gcc/tree-vect-stmts.cc > +++ b/gcc/tree-vect-stmts.cc > @@ -1605,6 +1605,7 @@ check_load_store_for_partial_vectors (loop_vec_info= loop_vinfo, tree vectype, > nvectors =3D vect_get_num_copies (loop_vinfo, vectype); > vec_loop_masks *masks =3D &LOOP_VINFO_MASKS (loop_vinfo); > + vec_loop_lens *lens =3D &LOOP_VINFO_LENS (loop_vinfo); > machine_mode vecmode =3D TYPE_MODE (vectype); > bool is_load =3D (vls_type =3D=3D VLS_LOAD); > if (memory_access_type =3D=3D VMAT_LOAD_STORE_LANES) > @@ -1631,33 +1632,29 @@ check_load_store_for_partial_vectors (loop_vec_in= fo loop_vinfo, tree vectype, > internal_fn ifn =3D (is_load > ? IFN_MASK_GATHER_LOAD > : IFN_MASK_SCATTER_STORE); > - if (!internal_gather_scatter_fn_supported_p (ifn, vectype, > - gs_info->memory_type, > - gs_info->offset_vectype, > - gs_info->scale)) > - { > - ifn =3D (is_load > - ? IFN_LEN_MASK_GATHER_LOAD > - : IFN_LEN_MASK_SCATTER_STORE); > - if (internal_gather_scatter_fn_supported_p (ifn, vectype, > - gs_info->memory_type, > - gs_info->offset_vectype, > - gs_info->scale)) > - { > - vec_loop_lens *lens =3D &LOOP_VINFO_LENS (loop_vinfo); > - vect_record_loop_len (loop_vinfo, lens, nvectors, vectype, 1); > - return; > - } > + internal_fn len_ifn =3D (is_load > + ? IFN_LEN_MASK_GATHER_LOAD > + : IFN_LEN_MASK_SCATTER_STORE); > + if (internal_gather_scatter_fn_supported_p (ifn, vectype, > + gs_info->memory_type, > + gs_info->offset_vectype, > + gs_info->scale)) > + vect_record_loop_mask (loop_vinfo, masks, nvectors, vectype, > + scalar_mask); > + else if (internal_gather_scatter_fn_supported_p (len_ifn, vectype, > + gs_info->memory_type, > + gs_info->offset_vectype, > + gs_info->scale)) > + vect_record_loop_len (loop_vinfo, lens, nvectors, vectype, 1); > + else > + { > if (dump_enabled_p ()) > dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, > "can't operate on partial vectors because" > " the target doesn't have an appropriate" > " gather load or scatter store instruction.\n"); > LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (loop_vinfo) =3D false; > - return; > } > - vect_record_loop_mask (loop_vinfo, masks, nvectors, vectype, > - scalar_mask); > return; > } > @@ -1703,7 +1700,6 @@ check_load_store_for_partial_vectors (loop_vec_info= loop_vinfo, tree vectype, > if (get_len_load_store_mode (vecmode, is_load).exists (&vmode)) > { > nvectors =3D group_memory_nvectors (group_size * vf, nunits); > - vec_loop_lens *lens =3D &LOOP_VINFO_LENS (loop_vinfo); > unsigned factor =3D (vecmode =3D=3D vmode) ? 1 : GET_MODE_UNIT_SIZ= E (vecmode); > vect_record_loop_len (loop_vinfo, lens, nvectors, vectype, factor)= ; > using_partial_vectors_p =3D true; >=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)