From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id 1B281385AC09 for ; Wed, 25 Oct 2023 08:47:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1B281385AC09 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1B281385AC09 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.55.52.43 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698223652; cv=pass; b=IcAR+XBTSiZd8acN5LGW4bVKHAGm3ni9AMyInwgKlLk8P+Lj/SJh+EZFjeCaXqnk2zjaIT7H7xX5QrHLXIDf7CjhzlprWjsHGL1onQ3bGG3yFjR2IpwaAPqMBkPLXYUoZ/86dKug0QAKcEo+Q+9j76Hn3O4rEVxXSeNh0OHAr5k= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698223652; c=relaxed/simple; bh=9gGS+M1ooXLBJBZqarCF3o2GQij5cD1Rv9rSS2UPeSw=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Uu+WWiP+ssnVdTUTYGXf0IUaeA2ufVfNfkFFP0gJNQ5bzttQwnVCiirstzh+g7cvuYc3BjVJ1QKMsQZz51TMfGa9tllLZsue7nqJzK4g8suVFfYZOlMoEme1ewWY8OJXBr6ESFoSZJzX3kH01h8Pqti7oJbbhGieZ9yKmqwSvmU= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698223650; x=1729759650; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=9gGS+M1ooXLBJBZqarCF3o2GQij5cD1Rv9rSS2UPeSw=; b=CBBMNYHOhdGdCprXhvehCFxF+HRfvFf/vm1QMw/Nx949D7OlpT9KpCZ0 y6x9qjKeWWyvxpbaIlLjmb5I4rfFI0gNXrxK3ZQDOSYC+J7sjmIOrzZ9a 66I/AV7wNKpqDYEdbXAe3RVN1d8GyRRX7mP1O3YWKOlwd/8H2TZEtpz/a ozsuyN9Ilth2fUhTJUcEMV1o48u0phfU18INRdGD/yc+K+cIF3AO9ozOJ KH7i0PMWXTWTKgtrCcqVNL/4olXx+wTGlHlfQrxTdJEQTdd1BfsTPbYn/ MJKIXCra8HNEFtamaonRkRE6f70AlTInTwNRdfbVPw4cqMUUwGd4hEVab Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10873"; a="473502215" X-IronPort-AV: E=Sophos;i="6.03,250,1694761200"; d="scan'208";a="473502215" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Oct 2023 01:47:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.03,250,1694761200"; d="scan'208";a="6771346" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmviesa001.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Oct 2023 01:47:20 -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.32; Wed, 25 Oct 2023 01:47:28 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) 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.34; Wed, 25 Oct 2023 01:47:27 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Wed, 25 Oct 2023 01:47:27 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) 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.32; Wed, 25 Oct 2023 01:47:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UXmx9QpNeCqShbgMHShZrwp7TJk6xD/eyr5ZgfuZ+PNd4bBcWvd4MZJ5YQHOXaG6O3AOTRbP/m3hM0PrJNVCi2OKlBwqtrVGBkcKXAU18VemRHrVQWTNPvwrPVXyzED4UOFFD48g1SOWNYRvc7j5eajwo5Azff9SJ7WAxTr2R+pwyydM/CnSNMKottZufn5bjFIt9vSo2W6qmj5j3h7LmylpvK9iGxen4/k38neXRkLhRDD8GyxintmlKAtSS2n9/EL7+w5GeG26Pk6OnQL5cdrVxFjMwZUOKSk2UOxHXDQ0l0bJYe6uY/p92C0p9/VQHXJ+u5eJ2hH+Y20yM5K+ZA== 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=x/qMutyOIUc1NK4BGJQXcKevICHcoczOiZDxR32qLQE=; b=KBjMPwnFRkQvwMqa06g44Ur3mSFBQWhiBUmMmioPQOROa7WKq1vp2PtWxG0couEaiOxkb3qzvHKBgUhKotWlT4X+ppjFKUQniq5PeOv8HPbN3gU3IdDHi4vAgoTpKrAuhb4HIljfDr5WesmE4qhAhI2UJYdhHyEYNyD9Ev5GPLXwrTj3OeNhslXKld72Yy2vmD+iHuclp8FpCOsd44ZcXPJ9p9DKzFVxCq9fIEii8VnIMLA2Do1QpGpz3MgrqOYdgvkGx01bAk4a15jVVY3F74nN9KLTZqVvUdy7RNfZ3rrFGL1SyhJl3erhnDVtwp7eAzsaBrDu8dwOk54HIAg+sA== 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 SA1PR11MB5946.namprd11.prod.outlook.com (2603:10b6:806:23a::9) by SA0PR11MB4717.namprd11.prod.outlook.com (2603:10b6:806:9f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Wed, 25 Oct 2023 08:47:20 +0000 Received: from SA1PR11MB5946.namprd11.prod.outlook.com ([fe80::1d44:4c7e:a53d:91e0]) by SA1PR11MB5946.namprd11.prod.outlook.com ([fe80::1d44:4c7e:a53d:91e0%6]) with mapi id 15.20.6933.019; Wed, 25 Oct 2023 08:47:20 +0000 From: "Jiang, Haochen" To: Richard Sandiford , HAO CHEN GUI CC: gcc-patches Subject: RE: [PATCH-1v4, expand] Enable vector mode for compare_by_pieces [PR111449] Thread-Topic: [PATCH-1v4, expand] Enable vector mode for compare_by_pieces [PR111449] Thread-Index: AQHaAyZN3bOrCOc6aEaqk5N2gqjbh7BSXoJlgAQ7/ACAAgoHUIAAAwNggAGNy4CAAAJGyIAAAYuw Date: Wed, 25 Oct 2023 08:47:20 +0000 Message-ID: References: <992fc509-51d6-3dbd-ee9d-393378227fc5@linux.ibm.com> <236f3854-2b52-10d9-08d4-df2d36bcfff2@linux.ibm.com> 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: SA1PR11MB5946:EE_|SA0PR11MB4717:EE_ x-ms-office365-filtering-correlation-id: dc4e1d79-568f-4e39-7653-08dbd5370010 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xtQ/NJBWWrJri35ojtACCxE2iPCkKZe4w5aAz6mCnrInA9mVqvemIjQ1RPbtlwvwAnC0vavzTRDUW5xfZJ70nRbWBR1s9KhFiRYXyNyXyaqp0R5AHN8rMY3ItQ+CupOMvlcA4ucvHkmuRH6X4wG1tVB0YVdsnaFb7Yec9eCKWiJs0gG4GqRwYQzDl0gYjjYKTD2hsAr+c6/3xtmV5ZcGIvitwwDkT8m4uFMK+XGgFAO40i2yboY0uHP1VjVzlq8uVfOjTDHDy518nhHOePF91vJZ66H7f/DJpPwEy+/Md8GISgVhJodEvnEIvPPbI5bPb2pWS9MwBhmezEU7xfL8xv4wsQTx9FmJErSPcscyq56ut3/nqwt/Lfq3pd8rVf9dZ1muOEs78qgRaaObjpBW85nD6ZDQSSt+BWTmzgaaA/ARFAGPwYOolNNncu4aZCLa1jtD6YbwjnpI+IgPe1dPYCV4AOvfVZhtgHaV597oIwQEO/Sac/j1YzPMCnHwdL0y40dh8HRfIa/lx4GWotqEKQDVFvFoEEGK3HUPNR7u0sMj4HUsYkSYgKOGZAINsbAk/c05rWgcxjDSSQDSgS/SO9z/gCEjI2X+gGZ7vwRl4hhl0bzHW3aypqAaJwoHCIb4 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB5946.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(39860400002)(366004)(136003)(396003)(346002)(230922051799003)(186009)(451199024)(64100799003)(1800799009)(38070700009)(41300700001)(55016003)(33656002)(2906002)(52536014)(4326008)(8936002)(8676002)(5660300002)(53546011)(83380400001)(122000001)(66556008)(66446008)(66476007)(478600001)(66946007)(76116006)(110136005)(316002)(86362001)(7696005)(6506007)(9686003)(26005)(71200400001)(82960400001)(64756008)(38100700002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?AhF7BFyphNVMOoRz6hyQLMRSXqkBwGJQAZ9u0q1ucgTNMZ8qUOvL8zzLpehL?= =?us-ascii?Q?L6d7s/THQ+D9tW4QIm9rUavSSUaVwLxqJiGRI5pHWLe74cLDeqKoX3HMtkDE?= =?us-ascii?Q?cIlhT/mFxqrahjpVo/3pUOeBS8XVEVL0Z2krPaFDSKgXTbMdR/vdJ/nqyJo/?= =?us-ascii?Q?0gRfhAr1MHfqZtO3aEBgYW40+VR65KmSloyJdtg4HW+n/XjEWu6qFLXzVbC3?= =?us-ascii?Q?NfPZHazfgY/5/AiaCo4VgUy/2enEiu1fKaGzhYD7YcDIQFy6K5Dr3H/kBt06?= =?us-ascii?Q?GCWbwEQ8Blojl744mP978gLEIBFAXp/vS5uiOJA/x9zVcU9ag2TwgZJIfP6o?= =?us-ascii?Q?E/U0uydz17QvHKsIuZJKH2NGMMfO6kC4Q99MGPUHiStlcmqSeAKL3T4LeKSB?= =?us-ascii?Q?tJRe3jPOcJj43vQXizF78hYANwMIhI/HTEB7C53UHhcsha5Ef72Oi0r/v2ps?= =?us-ascii?Q?c4G6mj7/j/NHqcpuIkgmVYiHKT4eFUetvoFuCFWEoeYKXVJXYlZ7/MFCf87r?= =?us-ascii?Q?qAfuglvpe3clDXWWbz4W9VOZsck1iyjcyLncuXuQkQLwsSlOl0GrxDzRW4eX?= =?us-ascii?Q?K5Or4ckDmxhcwBlvTJSf9syxHmToBU+ZktWtsQE7e/oWggwl1oeYpQDpftGl?= =?us-ascii?Q?phOpeUEXSXUn39mcvfBkbytnVZJMHY0td52hH+/9DdHreXE/K2QI7lobRSuj?= =?us-ascii?Q?ny7bYw+DAi4vVrEybBAAHqxhHqr4AXGL1SkuTddxI2GCNKaYCzYyrSXqLsKS?= =?us-ascii?Q?2oJ3x0noIgXXjsLtwoJ6QqxQfkLrpxKXFF+a14BgvN/1m99a3AEh3quwTR0P?= =?us-ascii?Q?8Ztynacn1kaj+xl/Dil3Qi1qN7RQ4rQbr4VnmIkZt6smfHfmu/bGH6GwumXo?= =?us-ascii?Q?mV+HpiBLEtEO3THVwkLVVwJWTUFcGhepUW7wJhNcZZdL7iXt3Qcz4TaC8Gu7?= =?us-ascii?Q?2xnTYggfGKtMaBFeQflVxGrmpRZpeXm5RTrSmrsot8WO81KJtV3wh8cqWSK4?= =?us-ascii?Q?xqppWa0lgxMngqCZ/Al2sQfAdK/M1EKnFGjQH15jHrIfxhvvC1TDQdnezxTP?= =?us-ascii?Q?XOGuXYvzBQHRpXtejUIvJMu0/WGuYHir33uAsTyszsQw6bA9Ru6ScZuNea5k?= =?us-ascii?Q?H13zQ90C9v8Uc2ghACdsuOZVygTvkRDK74q2/8Y1CPIfU0ADJyMBSsDFtWi6?= =?us-ascii?Q?szf+ijEtrMPcLMLOc7mvw1L/NPlB/vgas7enIVHlWumEwB2LevAjboBEGmd7?= =?us-ascii?Q?JlPzog81PMwSwfW5Aok098Ig+1MB/bhn6QoygfgU5qkAxkSVoNaBEUMlZxY/?= =?us-ascii?Q?n9iZWAVSN+aS3Yd4AqUjB79OhUzDDvO9qA49yClzJ89Z5y4BMjwWRENRJcbN?= =?us-ascii?Q?Si302LDKCAqNIYgebzvu5NLmEnlILZFUVSpg5dt9xCokeCBTuEzlPX/H3I1a?= =?us-ascii?Q?3yMoFSffSJGuXORLEtRLSKCualurL1khUHOSsWUAQarNUKNdQpfXzmJyIYJp?= =?us-ascii?Q?F9I4EWcIzV30dcZxfYWGsiKnIt9hVlhCkzW3NaBvVDRwxaIiPbCxTkt06x/X?= =?us-ascii?Q?IAk2RlpE5D4vxujR6NG+dtRF1zW02/W1B8kYAcQf?= 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: SA1PR11MB5946.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc4e1d79-568f-4e39-7653-08dbd5370010 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2023 08:47:20.4008 (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: HV8ahNslefGIuhBsDTC3A0j3q5oS0bWV4d3HfP7FUgOUJ0CXC1j1arINeTv8nRi0fU2gJbfQQe1hBT0K++te5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4717 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-10.7 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 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: > -----Original Message----- > From: Richard Sandiford > Sent: Wednesday, October 25, 2023 4:40 PM > To: HAO CHEN GUI > Cc: Jiang, Haochen ; gcc-patches patches@gcc.gnu.org> > Subject: Re: [PATCH-1v4, expand] Enable vector mode for compare_by_pieces > [PR111449] >=20 > HAO CHEN GUI writes: > > Hi Haochen, > > The regression cases are caused by "targetm.scalar_mode_supported_p" > > I added for scalar mode checking. XImode, OImode and TImode (with > > -m32) are not enabled in ix86_scalar_mode_supported_p. So they're > > excluded from by pieces operations on i386. > > > > The original code doesn't do a check for scalar modes. I think it > > might be incorrect as not all scalar modes support move and compare opt= abs. (e.g. > > TImode with -m32 on rs6000). > > > > I drafted a new patch to manually check optabs for scalar mode. Now > > both vector and scalar modes are checked for optabs. > > > > I did a simple test. All former regression cases are back. Could you > > help do a full regression test? I am worry about the coverage of my CI = system. Thanks for that. I am running the regression test now. Thx, Haochen >=20 > Thanks for the quick fix. The patch LGTM FWIW. Just a small suggestion = for > the function name: >=20 > > > > Thanks > > Gui Haochen > > > > patch.diff > > diff --git a/gcc/expr.cc b/gcc/expr.cc index 7aac575eff8..2af9fcbed18 > > 100644 > > --- a/gcc/expr.cc > > +++ b/gcc/expr.cc > > @@ -1000,18 +1000,21 @@ can_use_qi_vectors (by_pieces_operation op) > > /* Return true if optabs exists for the mode and certain by pieces > > operations. */ > > static bool > > -qi_vector_mode_supported_p (fixed_size_mode mode, > by_pieces_operation > > op) > > +mode_supported_p (fixed_size_mode mode, by_pieces_operation op) >=20 > Might be worth calling this something more specific, such as > by_pieces_mode_supported_p. >=20 > Otherwise the patch is OK for trunk if it passes the x86 testing. >=20 > Thanks, > Richard >=20 > > { > > + if (optab_handler (mov_optab, mode) =3D=3D CODE_FOR_nothing) > > + return false; > > + > > if ((op =3D=3D SET_BY_PIECES || op =3D=3D CLEAR_BY_PIECES) > > - && optab_handler (vec_duplicate_optab, mode) !=3D CODE_FOR_nothi= ng) > > - return true; > > + && VECTOR_MODE_P (mode) > > + && optab_handler (vec_duplicate_optab, mode) =3D=3D > CODE_FOR_nothing) > > + return false; > > > > if (op =3D=3D COMPARE_BY_PIECES > > - && optab_handler (mov_optab, mode) !=3D CODE_FOR_nothing > > - && can_compare_p (EQ, mode, ccp_jump)) > > - return true; > > + && !can_compare_p (EQ, mode, ccp_jump)) > > + return false; > > > > - return false; > > + return true; > > } > > > > /* Return the widest mode that can be used to perform part of an @@ > > -1035,7 +1038,7 @@ widest_fixed_size_mode_for_size (unsigned int size, > by_pieces_operation op) > > { > > if (GET_MODE_SIZE (candidate) >=3D size) > > break; > > - if (qi_vector_mode_supported_p (candidate, op)) > > + if (mode_supported_p (candidate, op)) > > result =3D candidate; > > } > > > > @@ -1049,7 +1052,7 @@ widest_fixed_size_mode_for_size (unsigned int > size, by_pieces_operation op) > > { > > mode =3D tmode.require (); > > if (GET_MODE_SIZE (mode) < size > > - && targetm.scalar_mode_supported_p (mode)) > > + && mode_supported_p (mode, op)) > > result =3D mode; > > } > > > > @@ -1454,7 +1457,7 @@ > op_by_pieces_d::smallest_fixed_size_mode_for_size (unsigned int size) > > break; > > > > if (GET_MODE_SIZE (candidate) >=3D size > > - && qi_vector_mode_supported_p (candidate, m_op)) > > + && mode_supported_p (candidate, m_op)) > > return candidate; > > } > > }