From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id 9B3623858D38 for ; Wed, 14 Jun 2023 07:31:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9B3623858D38 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=1686727866; x=1718263866; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=ZhKkiD6RuWKhJ3ZQQFLJw10AqMlMfBJLEcC3zsvYyaE=; b=Kd3sNy3Lx5agSITCGieUmJfSkJ6tqeyvUNgRdMgTOn9OZ/H0rV5D5h/j /CuHppHbeXTjYBM2/PmNHTm6T8+yT3m7BDb7NlKOIUfWFxET8JkNT2p/+ BGhaaEbY6qxJCoyYVqzzPdbmPi9CAkZk4du6anPieJ6stUTB+ceJbO9aJ kHFBT0H/TfD+gAtzPXMTQGkjoGyPCK/q9cqRbQy5VwicXzWnNc0DJ1Ouc xb+unfT9FTMU2HlW3kFBGWf3dQZr410Ho2CUFcA7TGsfcdOQDWr9BOTzd 0Z4ZRjJMwNcitDY9iSZqEMHFANXibQb27QWxD8oz62GDC0Jsb2z5sbOKw Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10740"; a="444916836" X-IronPort-AV: E=Sophos;i="6.00,242,1681196400"; d="scan'208,217";a="444916836" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2023 00:31:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10740"; a="781994891" X-IronPort-AV: E=Sophos;i="6.00,242,1681196400"; d="scan'208,217";a="781994891" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga004.fm.intel.com with ESMTP; 14 Jun 2023 00:31:04 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 14 Jun 2023 00:31:04 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 14 Jun 2023 00:31:03 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 14 Jun 2023 00:31:03 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 14 Jun 2023 00:31:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZxLsQm5mLHfYeVYb844vXLFbdE/p7Y07E1r0jlXhcYukEElVcd7wyUuX2nuAqfc+3FfSsVgAYur6YjS0HHifnW2ITtegagII2P8x9y+Tr4/HkSWyjLJ7iT3uBn3R6jkR/BgjPP5iIJ8e2E+FXvwUb4yEqS5+BfwhURPqt/sToOG7Bs1REgKAiYCvVLTT7ebjIZYG99KO0dDxG6CFZob3wxcOl2lDSJ1bU7KEVcPUS+4XXUGCoQXpQoAKbxOxsq8BZAlpUUePjbRgPh70OzdnsyGB40v2WLplwofYzuqfcoKZGs5NPiS4829PkKAnIdmEeSKiHEApvd70ABlDsjJh7A== 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=dlLaAB+xQSejSp1T3vJsT/AR/NWi1XY6EesDbQKIkBc=; b=WRXGlEDe1mRXu/8zx/5o7nSHz6kFWEfmpUyCBJajbrz3uXk/pisglxQL050ePrw2NIZvZN4pCGETkAaFfyzwHjTO1KYAKrWMph+H9Sbu8hZhwodQ9ivBAWisKcE6gbzxiAG5xB8oezUC1f9+yNMsx7l/KBOudqbt7z4+clpzKN0BxQATu1xi4l/jJmBW6Gt4I4Pl2KzevMjviIc/ZC6fYB/Uxd2JepXRRNvcQrKaUvG/RWT0ya4NVDOJcWik0CVgdLd4uClZJlVMwA2t2FkiiG5t4OwOg56yvgphEGIqCg0OE2uYInf6UfGBWvgpNv2gxetivJvYNSgEEyRxfFRfdQ== 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 IA1PR11MB6268.namprd11.prod.outlook.com (2603:10b6:208:3e4::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.46; Wed, 14 Jun 2023 07:30:55 +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.6477.037; Wed, 14 Jun 2023 07:30:55 +0000 From: "Li, Pan2" To: "juzhe.zhong@rivai.ai" , gcc-patches CC: Robin Dapp , jeffreyalaw , "Wang, Yanzhang" , kito.cheng Subject: RE: [PATCH v1] RISC-V: Bugfix for vec_init repeating auto vectorization in RV32 Thread-Topic: [PATCH v1] RISC-V: Bugfix for vec_init repeating auto vectorization in RV32 Thread-Index: AQHZnltx4joMWlrMUkCgFvhvFuQxPK+JfLY7gABqxAA= Date: Wed, 14 Jun 2023 07:30:55 +0000 Message-ID: References: <20230614005859.960040-1-pan2.li@intel.com> <02CB434ED7448A11+202306140907145933344@rivai.ai> In-Reply-To: <02CB434ED7448A11+202306140907145933344@rivai.ai> 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_|IA1PR11MB6268:EE_ x-ms-office365-filtering-correlation-id: 47059ef1-c241-4a33-931f-08db6ca94a82 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: d7sqP9d5UllkP3pGM6dFsbPjMInnnf/ycqHjrexdwXvB1gcOrpIDBiR/lTh/5HuLVMuPx+f94oFgkqSaLQtx79NFhvHQTTIf2r0B9WAb9JMVyqjW4t/I7amsEX/WAVNWBc/oNkA2BtBg2LreWx1XnGhwQ/6CuI1EfdtS8abOfV3waRR6o5wC+zZcCzZLsR8otvgDUc1GFs0rk3FBEjkEwmjjb145X7VJmhOnz2fmyoOGrgZGlmyq6fjVZx/flEcshVJA4z33+eim4B5Foo+sgB+Nf2Pm37kgNNBhU69DS1aBAc6AsEScRn426JPQ30IG0qGus/NwLgG/lpsaSkq/pvV908ElayyO4OvFkMVYRRZSlUZU6hcQfGi7KcS9rrycj09SjmEJ/uFDRLpWMzObopP8fSaEss2aojwGTauMyX8vcLYjlw+AdBvYbBaH89auJqVqELn5QlsSYBBXYEp1nY7HCyjWmJ9qES8ncep1lC0Dh8JeNnScegN6heIa4PHZ4Ne7ZDdA/uxLrCHMkgSXf4adwCL5+OBwR9zN+V9HU+Vgpz7B2KolPPRzHHFmE2T9VITHp1/IB7biIgsvYG8qGw37SfMVc5cxz9sNQdSoUFk= 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)(136003)(346002)(376002)(396003)(39860400002)(366004)(451199021)(71200400001)(966005)(7696005)(478600001)(9686003)(186003)(6506007)(53546011)(83380400001)(33656002)(38070700005)(38100700002)(166002)(86362001)(26005)(82960400001)(55016003)(122000001)(4326008)(66556008)(66946007)(76116006)(64756008)(66476007)(66446008)(316002)(8936002)(21615005)(5660300002)(52536014)(8676002)(41300700001)(2906002)(110136005)(54906003)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Kxk7IY82RxHlVrguYX4PGGXDKzRVthneXQC5jvqAnL3E2xHUWIXJUZ0cHVkM?= =?us-ascii?Q?BHKW18RgEfQT5Nscw5w9HRdUsx1RxzqfBtIdfBHOiQGJUuayw+nCWMzTA1HG?= =?us-ascii?Q?KbPiRWM+L4GUPc00kNfTsSN2j11SwTAbeW503wI8m+czyUO1D/fWu/r91OL+?= =?us-ascii?Q?MQda5OZ9rZ7USXw7S+u41TLly2q6ap4EJhkW2PCOg/+TLJMdDsMZst5cJYlm?= =?us-ascii?Q?zwFrxnZSkzXReFg3eftiE/eV6u0jXoMb7pCMMZSwzfTduzNh9HtmBEtM6vdp?= =?us-ascii?Q?5h5JGmNnmmsRVC6C3hIFgtTTobfcK2hfqsmspka4PknZBeHQlxXdypj3xTI8?= =?us-ascii?Q?CV+fmr9UWLIi3tmju/8IHp7EYStuQ2JX1vGJqgs9jBzZeRzFgWU6gG+AshsV?= =?us-ascii?Q?3hqCBqHOwUeI2EJ12dOUsS91qLMNwlArkoR1v+dCJRwIlmAzlHnEYlT3GCiZ?= =?us-ascii?Q?APSiI736DO+3BHqSSWHIScUjiOrLzWQHLV2QLSCT0E07QkBl9yrMsYrCwG7r?= =?us-ascii?Q?EauRZRlwTXZ6fjMdnp37C14wSXZnta6vmGjk6cOQnYjlSVdLkCApD8gYLegc?= =?us-ascii?Q?JP5ZG+5ld35VQsLIqjTVfrGeV0uCps8vq0gicsnXaKjkf/By8pRJ8cuTPdhi?= =?us-ascii?Q?EWwL1QneEYENKJreiLxJv6lB7scMmSHhirDZmt382quX+DYgybObjWqnJToY?= =?us-ascii?Q?rWI9A6PLQ2rbXaOLWIpr4a6i6pC9DkTUTKGDtZOkykoZDuuMpql0s3eZhsRe?= =?us-ascii?Q?9Nodh0O1jZo38S7wP0kzqDtFKsnE4YCZQYOc76qvIXICz4SqfGe4gyw77Ztk?= =?us-ascii?Q?w1XsGz0MBadILRnv4EVn+EdE9E9gj4gq5bylyCKt1R1cTsQo/X3ObuInhO6I?= =?us-ascii?Q?ITVGWY5EHNTRCPhlDtGE7q8zesV0DupRvEtfRVF1lE9laDovKFOCHZ4ldzpO?= =?us-ascii?Q?VvVFvgXpdqKDg4S9HhXs9pBKeAI7RDjIg+AKPRZIVhILxZMPTZJQfTdJft6M?= =?us-ascii?Q?AbSz0gTc4TDx/3Yi/582BQdG8jtShiB+xA+57BSA2XGlXyE4dqyDnwnzLFkF?= =?us-ascii?Q?HI98MTleGGdzKNVEO5K1YqfHZ3JPwzKxxFiRtQfuAndJddgFan5PZmbc+Gxb?= =?us-ascii?Q?Wyf1Yhvpm0I1mRgb14c4aNa4+xdycCKK30jKMFC6RQizfjFXN6L8sv4RRaGq?= =?us-ascii?Q?et+68etTM8cA4bxT2lIeAAEDIOc/sq3a0zWLQO+4rlloDuzsKVpnRW5kANnX?= =?us-ascii?Q?U4hjHYa5udkPTsEgnNslUFVRl8zJqWvbbWUqCxeOBVluR1dSFW++VQMXHeUQ?= =?us-ascii?Q?FF/6MYc0I1ZHhpSkTuImq0iYg1v2RUQe8gFEYXAYu2q4qfAvBaHeO+idv57d?= =?us-ascii?Q?0VKhSh+wi0FawmtFpiWy+l0gz9s3SA4VQg6zzwpoxw2l35z/gMWUs9VTruBL?= =?us-ascii?Q?UugO0Ez/7NxED4gS+ROUoU17htFwDINy10tkE6ykTJD5HrxzSjqBflKilhYu?= =?us-ascii?Q?z5oCBE7iuMrLTLmDAsX1GGMj2fELRoHOwVdV6VTxhG8L869LmKbgjbtQ024+?= =?us-ascii?Q?JNrd1yrGrOVuNwSO+a8=3D?= Content-Type: multipart/alternative; boundary="_000_MW5PR11MB590814CEA2D45AD9CB068CA2A95AAMW5PR11MB5908namp_" 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: 47059ef1-c241-4a33-931f-08db6ca94a82 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2023 07:30:55.7930 (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: VvZzOul49vPxkGWQSnC/tP+cDDFKD3r3zqQ/bVx04UKGB7KUlw9pHc6PMgpUixjnpnXSF3EEdFNWE1QHORbAEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6268 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,HTML_MESSAGE,KAM_NUMSUBJECT,KAM_SHORT,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: --_000_MW5PR11MB590814CEA2D45AD9CB068CA2A95AAMW5PR11MB5908namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks Juzhe for reviewing, update the PATCH v2 as below. https://gcc.gnu.org/pipermail/gcc-patches/2023-June/621645.html Pan From: juzhe.zhong@rivai.ai Sent: Wednesday, June 14, 2023 9:07 AM To: Li, Pan2 ; gcc-patches Cc: Robin Dapp ; jeffreyalaw ; = Li, Pan2 ; Wang, Yanzhang ; kit= o.cheng Subject: Re: [PATCH v1] RISC-V: Bugfix for vec_init repeating auto vectoriz= ation in RV32 >> unsigned int elen =3D TARGET_VECTOR_ELEN_64 ? 64 : 32; Add comment here to demonstrate why you pick up elen to set the LIMIT. I understand: 1. -march=3Dzve32* =3D=3D=3D> ELEN =3D 32 -march=3Dzve64* =3D=3D=3D> ELEN =3D 64 2. both vmv.v.x/vmv.s.x is restrict to the ELEN For example, When ELEN=3D32 (-march=3Dzve32*) vsetvli ...e64,m1 vmv.v.x/vmv.s.x We can't support such code sequence. You should demonstrate it clearly in the comments. Otherwise, this patch LGTM. ________________________________ juzhe.zhong@rivai.ai From: pan2.li Date: 2023-06-14 08:58 To: gcc-patches CC: juzhe.zhong; rdapp.gcc; jeffreyalaw; pan2.li; yanzhang.wang; kito.cheng Subject: [PATCH v1] RISC-V: Bugfix for vec_init repeating auto vectorizatio= n in RV32 From: Pan Li > This patch would like to fix one bug exported by RV32 test case multiple_rgroup_run-2.c. The mask should be restricted by elen in vector, and the condition between the vmv.s.x and the vmv.v.x should take inner_bits_size rather than constants. Passed both the rv32 and rv64 riscv/rvv tests. Signed-off-by: Pan Li > gcc/ChangeLog: * config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask): Take elen instead of scalar BITS_PER_WORD. (expand_vector_init_merge_repeating_sequence): Use inner_bits_size instead of scaler BITS_PER_WORD. --- gcc/config/riscv/riscv-v.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc index fb970344521..9270e258ca3 100644 --- a/gcc/config/riscv/riscv-v.cc +++ b/gcc/config/riscv/riscv-v.cc @@ -399,10 +399,11 @@ rvv_builder::get_merge_scalar_mask (unsigned int inde= x_in_pattern) const { unsigned HOST_WIDE_INT mask =3D 0; unsigned HOST_WIDE_INT base_mask =3D (1ULL << index_in_pattern); + unsigned int elen =3D TARGET_VECTOR_ELEN_64 ? 64 : 32; - gcc_assert (BITS_PER_WORD % npatterns () =3D=3D 0); + gcc_assert (elen % npatterns () =3D=3D 0); - int limit =3D BITS_PER_WORD / npatterns (); + int limit =3D elen / npatterns (); for (int i =3D 0; i < limit; i++) mask |=3D base_mask << (i * npatterns ()); @@ -1923,7 +1924,7 @@ expand_vector_init_merge_repeating_sequence (rtx targ= et, rtx mask =3D gen_reg_rtx (mask_mode); rtx dup =3D gen_reg_rtx (dup_mode); - if (full_nelts <=3D BITS_PER_WORD) /* vmv.s.x. */ + if (full_nelts <=3D builder.inner_bits_size ()) /* vmv.s.x. */ { rtx ops[] =3D {dup, gen_scalar_move_mask (dup_mask_mode), RVV_VUNDEF (dup_mode), merge_mask}; @@ -1933,7 +1934,8 @@ expand_vector_init_merge_repeating_sequence (rtx targ= et, else /* vmv.v.x. */ { rtx ops[] =3D {dup, force_reg (GET_MODE_INNER (dup_mode), merge_mask)}; - rtx vl =3D gen_int_mode (CEIL (full_nelts, BITS_PER_WORD), Pmode); + rtx vl =3D gen_int_mode (CEIL (full_nelts, builder.inner_bits_size ()), + Pmode); emit_nonvlmax_integer_move_insn (code_for_pred_broadcast (dup_mode), ops, vl); } -- 2.34.1 --_000_MW5PR11MB590814CEA2D45AD9CB068CA2A95AAMW5PR11MB5908namp_--