From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) by sourceware.org (Postfix) with ESMTPS id 142D23882662 for ; Wed, 15 May 2024 07:43:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 142D23882662 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 142D23882662 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=198.175.65.11 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1715759011; cv=pass; b=AlVfTr9KnnSnDu1+Ss2/JHLppazcgVjnqvoSlhYHQI3RefRgw1A3B+OEizP3yhmZJj3nUg0hTHf1TQwuup77evcE/Wcj32nD/+h2U77hcgb3tqhXwhTe53P3buqJZaO049CHMOXhRTWmp2ZJEalR1L9ivT4xlvxmAUnVWq/V5EI= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1715759011; c=relaxed/simple; bh=8gRqtQZNMF1CJjPXMez3wamz8HKTe46zt9YMuDQ041M=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=xYGrq9IrN4EA8lBM/xMYME9PqF6YuAIcuW52fQWiXHr4kTuJgoOTlXZ51MAKcF80XouBKSKjcYXnJe+k7tcrcKn8Ei+O7wah4fR01Ra7nmQ2iDT9cFwzEJT77aK+hmvVGm/zdTt7vsUbVF4KIK4NOImQ2K1JRneKLCzJyswIghA= 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=1715759009; x=1747295009; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=8gRqtQZNMF1CJjPXMez3wamz8HKTe46zt9YMuDQ041M=; b=B0VyikBLT9+/Jj6KXao4h55kliX29c60JUnxUEYDbjKlJbSo3zlTHw34 qKN3kafTRjIsEfyQR3ZUlOxxhG8LUmrbQHVI/rreXqGKZVf5MdrL1mjT3 e3oplsI5rmeUEfyVhGBpeiET7MvZtW4+iYgAwah5N8jmih/k22A24A6sS C9mH5RnKwwXf4Pw7uLy/NpPpU8Zvn3eNcowVATvco9+l5a8YYguLM8+G0 uzlxZ5dZz+quPtKLydeMzqYr5M7wYmnf16MLcH5LKYwbVAx3N6rmebbjb R/HjfeCGeHhF1ZOPkeOgbMd4LnPAj5miOLUxuiA7cccEaWoZz7dJRjS3+ g==; X-CSE-ConnectionGUID: hP/RheAIRS6TsfrcHX59Sg== X-CSE-MsgGUID: JXmaaweVS46jbvPx54cafA== X-IronPort-AV: E=McAfee;i="6600,9927,11073"; a="22376136" X-IronPort-AV: E=Sophos;i="6.08,161,1712646000"; d="scan'208";a="22376136" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 00:43:28 -0700 X-CSE-ConnectionGUID: wrKGjlNjTo+vL8dod98v5A== X-CSE-MsgGUID: CA9l70EpSpuvwlx+RxQTYQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,161,1712646000"; d="scan'208";a="35507759" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 15 May 2024 00:43:27 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.35; Wed, 15 May 2024 00:43:27 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.35; Wed, 15 May 2024 00:43:27 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Wed, 15 May 2024 00:43:27 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.40) 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.35; Wed, 15 May 2024 00:43:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S6gGGTWShf0Jm2f8pH+xSZf/ISK+DOeFRRxxkAmaNoIu40OileF5IJpOBzrfpheM/YIsFUcaqn3DCZt8VYGNbVeTbJ+ZRpk0w2HzFd3VXla/GsuljwW3tLmCvDZ3RwvrRWQWzMrZfUL0obydO1UYf+wI6NWusa+o9pd/9uJq/8J+Z6cFu9ns/R/FDb9Uu8cfkrtlt11VraN4hXwP3ucF/E7rYfDvk27aVhMZNO0RACnO/GAMEjdPh1VumHvuGCwpnf4f26Z0Gzg4gIi6WvHgEpQbLeYher7tdTqGHdYV1TcAfa144I5QFwwYcXunfJDBePqDLLtCLUbo+V/8Coe+Aw== 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=QuQR5lOIq7Fw5KtAOPcc7zwoW0jhyGRLMlY0q6JjEwE=; b=K0umwe4vowqZPyqz/OhBLYdIyfmoUUMRyB+AdGVCKyV+RY4EwMe2eWWGVDY9ElX8x0Ec+VyNBsMTPUkgKatbIeqOxgnbwgRkvko7X55066G6ZauVTFd98D6PXyCgce8XWfNTrJmEkP5DcuYQUWWcRcBqvl2v8aHWhbExmULUKK5721F4zPNwxUEeHNz30E3+52FZlcDhb3irX5UesDg1wi1djc/jU+O6qUArtnR8TBCABWIij4P+1xK4JZeqC4hw73OXVyCcIEZO18jOVQptugWbAX2ullGfRQIlG+gfsXOb89wg/TWF22z3z9oRMVJfRjx8YPC+0umwkGYOLu4kzQ== 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 DM4PR11MB5487.namprd11.prod.outlook.com (2603:10b6:5:39f::22) by IA1PR11MB7944.namprd11.prod.outlook.com (2603:10b6:208:3d8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.55; Wed, 15 May 2024 07:43:24 +0000 Received: from DM4PR11MB5487.namprd11.prod.outlook.com ([fe80::6150:d792:f331:4e3f]) by DM4PR11MB5487.namprd11.prod.outlook.com ([fe80::6150:d792:f331:4e3f%5]) with mapi id 15.20.7587.026; Wed, 15 May 2024 07:43:24 +0000 From: "Kong, Lingling" To: "gcc-patches@gcc.gnu.org" CC: "Liu, Hongtao" , Uros Bizjak , "Kong, Lingling" , "Wang, Hongyu" Subject: [PATCH 1/8] [APX NF]: Support APX NF add Thread-Topic: [PATCH 1/8] [APX NF]: Support APX NF add Thread-Index: AQHappYoj0pJvfjtdU2PHgXAZ1HA9rGX5ogw Date: Wed, 15 May 2024 07:43:24 +0000 Message-ID: References: <20240515070226.3760873-1-lingling.kong@intel.com> In-Reply-To: <20240515070226.3760873-1-lingling.kong@intel.com> 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: DM4PR11MB5487:EE_|IA1PR11MB7944:EE_ x-ms-office365-filtering-correlation-id: efd5bb48-e94c-40cc-b6b9-08dc74b2b36c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?us-ascii?Q?xhLoDTIK1UWYlUzV6ljpKmPhEyUrmhB8rscOd8TQ2LrKdXd8nr1d/0VXUT1m?= =?us-ascii?Q?ZbA1DURjNHA3wSADQFOiVU4Aets/Z0DwR14S89w06TMUvzOjV5kBxmhDihnV?= =?us-ascii?Q?BoVWp/HxIH6bWLvI7Z75yYJhyt8KfUrPCcBZC5kM5E/7M8VpJ2lcQ71UjfrX?= =?us-ascii?Q?aP9/qMTIRbvAED1F0nGgDSIpXZT1K9c9CXac1b2r++E+BjLfROiN4Lu82yLK?= =?us-ascii?Q?A1lE1G6XlFd1deYGs1z+UB7vpQvwSLZAS+Cyo1ODWDhoXOeY+c9Hjj1/tgSx?= =?us-ascii?Q?1b3OyzAqOndPHnGdTjYgXkU7+Sk+NnR/eRXEX/3P34TStHirRFIYgd9KZZzU?= =?us-ascii?Q?8orCJBcP2AwTXX/glIihTtOmLrly3YfqLQh4Fgkri9xhJXlAL143biatHvHK?= =?us-ascii?Q?bl4GvDoMXPb+RCDyOHzD2c49CmaHhb7P2rXpDOK2xogXoMaGPTJs1yQdsyRk?= =?us-ascii?Q?22ElOXRTmKPxKhnPJZZ5940yBsvCaP3V6Fi7fpuV8n3NAKJAu171vmlNRWww?= =?us-ascii?Q?p98EjqwHP79aGzFVTa9mvOypKMiM0zwcAyH+9p6Ek7/nkgMeusBXNL9wFvyX?= =?us-ascii?Q?v8HD1lR4D7YxWOcwvQpV9iSHZdhWwoEIesHU4WMXPV5VaO5CtloL1V1CnRvK?= =?us-ascii?Q?5sQ+TtSek+eiH/Jac0L8vDSSoAxZfqRaS+bLnhJKzug6mLcOKJ4YkmmUPkcq?= =?us-ascii?Q?mJZXWzldDm8rFXQETvQHha3U1pmvYPAq/mZH/gRX8Kei81+u0fcmQU1Ycvua?= =?us-ascii?Q?YAZPEmYKWaiLkiwonwVr3XllXTqL4npIcSJ+v88ZnYAxL89swYUoPv1r0FX0?= =?us-ascii?Q?EoX+jmxDr3csJTVRidkrz6OnqX9XQ2CVksC1whILQ6PJ+vMTkBWgHPAKMCqx?= =?us-ascii?Q?giyZh/IkQfKkHy0fCsegY3n71cFShilSJZXIjEIOGDMNrcb4XDCzDFbvKFVN?= =?us-ascii?Q?f1Mlvw/tf21ccaFIc2/gT1WKsKCVeIqpy5c2nj7yaV+4noJy3L61KJyuMCW+?= =?us-ascii?Q?PV6f3q90v2QK0m8VzPjyauARi8JQFKo6odI3BfAptmuXhyxAdta6qUgYcJg4?= =?us-ascii?Q?MRjex4JQ7IAy0oYdNGgISmwRabs0NWXsJbIeAXZrMnYEheQkcnBqjvU/G1bw?= =?us-ascii?Q?kKjoMu/T7jn4z4VL5WjOHrG5WjrckI/bq4GdHjNgCKN9t+oGIpJ7SaY7Wb8l?= =?us-ascii?Q?MqCmngasgULsV3EI+uciIA07nxCmdFkJkYOxVD5vW/dVHmo32+3Gus4WO8E+?= =?us-ascii?Q?027f8II0R5EaMEi77Z+kfmCmytbuT0GW/hrYWvxvkz4ajTBNea+rIwpucMqy?= =?us-ascii?Q?cPs=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5487.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?HqF0+v0crrkM32ITd7H7+2zdXJWXKvBs2cJlzIAHudhLjlc3fu1a6Q3gvp0c?= =?us-ascii?Q?PAB2W0+RA/0cm6REQRl9O0yEbC4mtiYD3kPIrJzGjripf8m7FThaTc/862v/?= =?us-ascii?Q?uQo8htv6LDPuIMiWHjyD3D6t2+0J5MKTyl+MdvoYs+9GDOXpdP6Nr1zWFCoT?= =?us-ascii?Q?1D7cXPHLVP1I0HXwQu7zXUegTxm+r9FoCqDSk1vy0D9KblvmYyRgVzq2Bmfh?= =?us-ascii?Q?vCF2jsa/q8lW8ObZ3s0b4aImgWxMq8i9024y1AMV+ZVEXm5wsvi/ZfGMyYgG?= =?us-ascii?Q?DxHMM6ZKO3F90YGrpsl1fSnCwViJq5SFduu8VnvYYFa0e2VBQdBmtEVnqAiz?= =?us-ascii?Q?WuBCfGLxRwNJ8SuAfpDzVjhPiO4abZm6rTu+lliHd1hHiaZJgXuwNeM+tIJ3?= =?us-ascii?Q?jeQo0vUHOfkYI6gM50tGVYbNNCZZ9OEXKAkU6PKqAGwxwe4Qyr4U3A8hjW/i?= =?us-ascii?Q?LTEvhkxSSFKLR1WtQeMQPmjOAWbw4ewhs1koburZxibLOcAuotrzrt6iOW67?= =?us-ascii?Q?nakKyHWzZsein6HxpIJyvBNbv9A6HQ2aasWg+KnToclmOXcnavLH8EyfXJlq?= =?us-ascii?Q?FnKk/3f2z4zU6/3IsIZq7TXKRxlSusjNYLfmfQQNse+ZRH1Yk0WsBoSh8b35?= =?us-ascii?Q?gm6z6yfOOwky6t9wGm12WDl//zjmHeuiQQIA3jKm94LPLSMPf0FV4SOnjeDd?= =?us-ascii?Q?HbYmRAQCpybnrNqpoCePUTvSnk2XyaLaL+9ri/C+/5EmRV9N1MYXwkgbUPEP?= =?us-ascii?Q?PtNczmPYHjK42oQiD8ywe6L8T7JTP5jYwwxbWO7MlbNtVFXe4LzI9IJkF7+g?= =?us-ascii?Q?P4DYze9PdtKyeydTtfiBmW+hKESiItR8AL0O1opULxlNa+MDssShhINKy+r2?= =?us-ascii?Q?zIdIgzt5i8Szu0jj/PxxxP1M2BZlzUckF8KmKPdDtCjsUuqTdTu/AL52qn5S?= =?us-ascii?Q?6VkJc5vQRN0/BulIEcDHBd3M2WFf6jjiLpPgFpp3Mqxu4FN1Spmdhcn/sWgV?= =?us-ascii?Q?o1uExfDbbcXsb4D73BGYJY5l1qaLg63RunzJZxP5NHuBYXC3cwg1K2iXAAIt?= =?us-ascii?Q?G5npQoOrJK8itOyJZPnsEFYvkoO4CcbwA4+sT+h06Vf4YCgsmljQCmmQDPoI?= =?us-ascii?Q?Hs+MO60rIJX+1rHj8nxcMhzvgntkgAOqbDaBiZaE1h9NFKywkLlt0b9JRFmD?= =?us-ascii?Q?18wcxPV587NTljLZ4Xy/Bjzb9gWXCqzS4C22CuQj7qXuC6EHjixl7xydDUd2?= =?us-ascii?Q?wDcFh9bvxpY5fPkpQz7QlKgfxhqFl5RI12rcx9oX3LCqe4NfAnLwmOnw1oVB?= =?us-ascii?Q?sPVTfUACc+Wj7GJ9XRQ6HeNT3/mHapdrMUwZj9TiFKpB00+kp/OMogcNoc1t?= =?us-ascii?Q?IWAoGJGjfbRkHB+278gfE4boe6BvRnWm8HwexOYXH79ROnt8T6oB7Dco0dpC?= =?us-ascii?Q?SyYqh5e7GRWLNGkIgKflnO6O8qL4dsE9zFjE7Q0xQtuwbDUGFRypzDJTnUfU?= =?us-ascii?Q?UqPYK5ANkmR55qDWsT4oGI/wPliYvwi10QIQF3Q+5mlgbuhlrgaCmD/qex5m?= =?us-ascii?Q?G3gBHkQeXhj99h0or1/vndzwV5T4XgZH24q8Ft44?= 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: DM4PR11MB5487.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: efd5bb48-e94c-40cc-b6b9-08dc74b2b36c X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:43:24.2431 (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: hjkOCzm0v+0FQRdf9xULnt+5wlY42R35NFcJ3vOKTFw/VaH9XexsmW/8gmoJq6HqJBIpHEoJZSUM+S45y46JYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7944 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,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: From: Hongyu Wang APX NF(no flags) feature implements suppresses the update of status flags f= or arithmetic operations. For NF add, it is not clear whether NF add can be faster than lea. If so, t= he pattern needs to be adjusted to prefer LEA generation. gcc/ChangeLog: * config/i386/i386-opts.h (enum apx_features): Add nf enumeration. * config/i386/i386.h (TARGET_APX_NF): New. * config/i386/i386.md (*add_1_nf): New define_insn. * config/i386/i386.opt: Add apx_nf enumeration. gcc/testsuite/ChangeLog: * gcc.target/i386/apx-ndd.c: Fixed test. * gcc.target/i386/apx-nf.c: New test. Co-authored-by: Lingling Kong Bootstrapped and regtested on x86_64-linux-gnu. And Supported SPEC 2017 run= normally on Intel software development emulator. Ok for trunk? --- gcc/config/i386/i386-opts.h | 3 +- gcc/config/i386/i386.h | 1 + gcc/config/i386/i386.md | 42 +++++++++++++++++++++++++ gcc/config/i386/i386.opt | 3 ++ gcc/testsuite/gcc.target/i386/apx-ndd.c | 2 +- gcc/testsuite/gcc.target/i386/apx-nf.c | 6 ++++ 6 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 gcc/= testsuite/gcc.target/i386/apx-nf.c diff --git a/gcc/config/i386/i386-opts.h b/gcc/config/i386/i386-opts.h inde= x ef2825803b3..60176ce609f 100644 --- a/gcc/config/i386/i386-opts.h +++ b/gcc/config/i386/i386-opts.h @@ -140,7 +140,8 @@ enum apx_features { apx_push2pop2 =3D 1 << 1, apx_ndd =3D 1 << 2, apx_ppx =3D 1 << 3, - apx_all =3D apx_egpr | apx_push2pop2 | apx_ndd | apx_ppx, + apx_nf =3D 1<< 4, + apx_all =3D apx_egpr | apx_push2pop2 | apx_ndd | apx_ppx | apx_nf, }; =20 #endif diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 529edff9= 3a4..f20ae4726da 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -55,6 +55,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. = If not, see #define TARGET_APX_PUSH2POP2 (ix86_apx_features & apx_push2po= p2) #define TARGET_APX_NDD (ix86_apx_features & apx_ndd) #define TARGET_A= PX_PPX (ix86_apx_features & apx_ppx) +#define TARGET_APX_NF (ix86_apx_features & apx_nf) =20 #include "config/vxworks-dummy.h" =20 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 764bfe= 20ff2..4a9e35c4990 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -6233,6 +6233,48 @@ } }) =20 +;; NF instructions. + +(define_insn "*add_1_nf" + [(set (match_operand:SWI 0 "nonimmediate_operand" "=3Drm,rje,r,r,r,r,r,r= ") + (plus:SWI + (match_operand:SWI 1 "nonimmediate_operand" "%0,0,0,r,r,rje,jM,r") + (match_operand:SWI 2 "x86_64_general_operand"=20 +"r,e,BM,0,le,r,e,BM")))] + "TARGET_APX_NF && + ix86_binary_operator_ok (PLUS, mode, operands, + TARGET_APX_NDD)" +{ + bool use_ndd =3D get_attr_isa (insn) =3D=3D ISA_APX_NDD; + if (which_alternative =3D=3D 3) + std::swap (operands[1], operands[2]); + + if (operands[2] =3D=3D const1_rtx) + return use_ndd + ? "%{nf%} inc{}\t{%1, %0|%0, %1}" + : "%{nf%} inc{}\t{%0|%0}"; + + if (operands[2] =3D=3D constm1_rtx) + return use_ndd + ? "%{nf%} dec{}\t{%1, %0|%0, %1}" + : "%{nf%} dec{}\t{%0|%0}"; + + return use_ndd + ? "%{nf%} add{}\t{%2, %1, %0|%0, %1, %2}" + : "%{nf%} add{}\t{%2, %0|%0, %2}"; } + [(set_attr "isa" "*,*,*,*,apx_ndd,apx_ndd,apx_ndd,apx_ndd") + (set (attr "type") + (cond [(eq_attr "alternative" "4") + (const_string "lea") + ] + (const_string "alu"))) + (set (attr "length_immediate") + (if_then_else + (and (eq_attr "type" "alu") (match_operand 2 "const128_operand")) + (const_string "1") + (const_string "*"))) + (set_attr "mode" "")]) + ;; Load effective address instructions =20 (define_insn "*lea" diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index d5f7= 93a9e8b..66021d59d4e 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -1356,6 +1356,9 @@ Enum(apx_features) String(ndd) Value(apx_ndd) Set(4) = EnumValue Enum(apx_features) String(ppx) Value(apx_ppx) Set(5) =20 +EnumValue +Enum(apx_features) String(nf) Value(apx_nf) Set(6) + EnumValue Enum(apx_features) String(all) Value(apx_all) Set(1) =20 diff --git a/gcc/testsuite/gcc.target/i386/apx-ndd.c b/gcc/testsuite/gcc.ta= rget/i386/apx-ndd.c index 0eb751ad225..0ff4df0780c 100644 --- a/gcc/testsuite/gcc.target/i386/apx-ndd.c +++ b/gcc/testsuite/gcc.target/i386/apx-ndd.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-mapxf -march=3Dx86-64 -O2" } */ +/* { dg-options "-mapx-features=3Degpr,push2pop2,ndd,ppx -march=3Dx86-64=20 +-O2" } */ /* { dg-final { scan-assembler-not "movl"} } */ =20 #include diff --git a/gcc/testsuite/gcc.target/i386/apx-nf.c b/gcc/testsuite/gcc.tar= get/i386/apx-nf.c new file mode 100644 index 00000000000..3adc7a27902 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/apx-nf.c @@ -0,0 +1,6 @@ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-mapx-features=3Degpr,push2pop2,ndd,ppx,nf -march=3Dx86-6= 4=20 +-O2" } */ +/* { dg-final { scan-assembler-times "\{nf\} add" 4 } } */ + +#include "apx-ndd.c" + -- 2.31.1