From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2046.outbound.protection.outlook.com [40.107.223.46]) by sourceware.org (Postfix) with ESMTPS id 90C7A3959C99 for ; Wed, 16 Nov 2022 11:53:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 90C7A3959C99 Authentication-Results: sourceware.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=amd.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xk5jRcNxibsh3+A+LS5ufCgY0k9IUxmr71Pu73iCPzG9NwsSqOGsqsETIJNBx8mZUp2hoLKFOaofZ3rLKAnPxObo5TXJ3abPHrMWoEoO923bqBECQspgvNo/TOGXxxu80iYFYf4G3EAeLC4zYiUtXi1o5MtLOarhtfLZRgBvcNX1xtydRXBrTDPxtvDEajwx2R7nh70io4mtzeBAD56LO6uc+WWI0ncMBE5LMsdhDYcz1J1U2Hbwc1Bh1TlVyKRXvXBVIQ8IT9M44DbMef7wW+q9L0qf91MLxsMNuZQEoo7JL6B4XJ5lIe5N9a/mE2W8W+lLW9PS3iUg+kcKrf+OmA== 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=k7R5R2Hm3yvugokbfMz0yRViFO1MMzdrs9sTSm4IRUQ=; b=li6rbmJpPikphppjiyNHkTgEO020zvjg2VG4PvA2QoGgjmOKco9ieN6dxE4e21OE/LEX/osr9A9FuNThxTwB4WqRXmLhSd5EmgPuggNl5vQ8/lvHprAT8iasxhWaSjccBtVyDj2D+38aE2AAwiCz9WlA9bhvpGnGNI1G1U9a/qiEflGQPnz7CE7vlxAleVpqv1gL99urTkLCRsDY4+wfcwRV0LOj4tbWnlDG5FBGzxruqycLlGOl8rR2E5i2TgTv0yyE1YK7JvAaDts3l1M6aEtU1+72KRM6E4OU0XeFFF1u/qmcLgW/jTj9tDQ4Oo+oawdHE4FxAKgFeaH5jCocbg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k7R5R2Hm3yvugokbfMz0yRViFO1MMzdrs9sTSm4IRUQ=; b=srMH7a6D9IeKHuHcqSXGDqiKHtwGpVvL76goZDpXJoxjTiHwt7cc0xtaA9+FKY7MN3l/C68blmmZ4P2AnUUnblX6gw3W/B7o0kwqfAe/MLtSwVEcvDJfAtyGF4FC65fXmZ1+FtqHuLMNxYkg+fSu0ua8llnTtp5kuYOuHDin5pY= Received: from DM6PR12MB3081.namprd12.prod.outlook.com (2603:10b6:5:38::27) by DS7PR12MB5742.namprd12.prod.outlook.com (2603:10b6:8:71::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.18; Wed, 16 Nov 2022 11:53:43 +0000 Received: from DM6PR12MB3081.namprd12.prod.outlook.com ([fe80::6cbb:9c35:956c:f72d]) by DM6PR12MB3081.namprd12.prod.outlook.com ([fe80::6cbb:9c35:956c:f72d%4]) with mapi id 15.20.5813.019; Wed, 16 Nov 2022 11:53:41 +0000 From: "Kumar, Venkataramanan" To: Alexander Monakov , "gcc-patches@gcc.gnu.org" CC: =?iso-8859-2?Q?Jan_Hubi=E8ka?= , "Joshi, Tejas Sanjay" Subject: RE: [PATCH 2/2] i386: correct x87&SSE multiplication modeling in znver.md Thread-Topic: [PATCH 2/2] i386: correct x87&SSE multiplication modeling in znver.md Thread-Index: AQHY7g7HAw0eX/POU0iik9Zy9aaEra5Bgmyg Date: Wed, 16 Nov 2022 11:53:41 +0000 Message-ID: References: <20221101162637.14238-1-amonakov@ispras.ru> <20221101162637.14238-3-amonakov@ispras.ru> In-Reply-To: <20221101162637.14238-3-amonakov@ispras.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=12602888-33a2-4da3-b20d-4a3975d796e2;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2022-11-16T11:33:37Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR12MB3081:EE_|DS7PR12MB5742:EE_ x-ms-office365-filtering-correlation-id: 94796265-ea14-4784-0c86-08dac7c934d1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CCGvoyOIdj/DfEm/eLwH/V5ZVdpYiWf+zowGWafN8nD97NR+VY19SSLSqd/eZZmFojy7zIaS6qUhfAgkceA4nGEOpkEl38J39JtlNsDJb0Nd0G3nJ0bY3LdtEzGKPZAKkYGv8NEgIpbY6Yqcs3XbeMJf49qnjEDWpu78v5vx5ALP/XChUHBvOWXG+kLj1cENF7eHdlBKpDhBNP92NSxfyEKSUWH/hLYZECmOD5qttdsrd20KKxOEqDkZ6rrm9XgNT2cdwhmRI7TlGOU5iLWsdmvHQelAaT49rWyLCJY/veFvaYERQMEHGDLTqx9cBELbD/qRWqqaOOfOF0/FqKyrBM0zn8O6ELF2MPU+8Kms2u3YA91kFqmrsfBSmNq3lga5U/bB0/fbZLVE4PP3rMrxArWAKLsd7Yr4t4TECyjfoeVG/L3+HdEI7gMZ1GUINBMV6tRZz0Gw7SmJisNrSD4fzuT807s+1VwQDdDZ7mXs/hLBS5TuUhsVSHHKnyaEjvx5DN3iAG0S046x5NDGkdATJ1YPZWIQLu7sGUxxSJKq9wyceGcJOfvrSHClkSZbwRO6iI/M0RRGkjr+35/Goeb6LEwCNAykea0BIv8H5NYvProPJCEQtsbm5WRaHuBZkmXOtCbqrKotgeOxA9zsTdizoO6ztKmO4tcT+jARxNG1NrvnY0udch0ELeUDoyRD76N/nnMwSLmhRmO53YSGkIeeJDx79cM73O2dbSsLTvz0pt/dcXPgrlWmfW3CYFf50DjuaXR11CX+MPtCIpt5bfvOZg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3081.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(396003)(346002)(376002)(136003)(39860400002)(451199015)(38100700002)(2906002)(5660300002)(38070700005)(8936002)(55016003)(122000001)(52536014)(33656002)(186003)(53546011)(86362001)(71200400001)(66574015)(9686003)(41300700001)(8676002)(66946007)(66556008)(66476007)(76116006)(64756008)(66446008)(4326008)(83380400001)(6506007)(26005)(7696005)(478600001)(54906003)(110136005)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-2?Q?3iagYkzHCjR9qqmuRJA7iI/GADn3LmjCrWt+jN19/h2ivgZ768C7PA7iWz?= =?iso-8859-2?Q?5/hrLO1Mm0A0wbyJTmF306hcpOkXraOAcK36FF64hAhTnnsnLShzA4mCsw?= =?iso-8859-2?Q?qJ/Avqln8JEm3hnQktjPBj30Ed7YgBMDzCfgtpWCMAJxQFePbkC1OAmau2?= =?iso-8859-2?Q?neAyiaDP8Q8sRelbZCxvxE6ZiCtiaH4BgI1P+Ja8kpnaE1XRjS4DitsXF+?= =?iso-8859-2?Q?qlLAZNHaMUmPEGMp3LbM+mMpU2WCwvfnSQb2zEvTBDqxXgTk+Kifopg8RI?= =?iso-8859-2?Q?jFgZfBywzeTkmADxSKFMD01+pgR2+oEUTCsTUNxahLW0JdmXPROYN3A9/n?= =?iso-8859-2?Q?yJK+8bcrAv/Guy0XDF9MnriS41TMFsvC2BKT+IELYWTxmNJU40Xb/6UGBq?= =?iso-8859-2?Q?flUL7DCNVrDHA/1nCG4Ig6Kqi1Vi6rqDOz5CSYljZdg3lpNqEDDhg+cRiv?= =?iso-8859-2?Q?HzVZPggSWpEm8To7A+hY7MK4sDjd6BIxd9akIAL1xZYNrmuCWzrcsgDLpC?= =?iso-8859-2?Q?p5IBZ+Y6ZaLEj+KLn0b0lI2MzeFmhPoCD+vzjGSB7C7edKRhzRbfwfnTZC?= =?iso-8859-2?Q?BABgqper9KyJ2tkohCrE/bmIU8/1rzvo941MuoiVtp8t3kPE/TGq4taxwU?= =?iso-8859-2?Q?vqKi0dLkJFYZhkwhmBSlvjL0wt4ceZvH7gsHmPYs2Ekidxb7h4vA+hVXb3?= =?iso-8859-2?Q?ui3D7Q2PxzPbuAS0T/7IVkz+UYMBFwEXoG8+n9xWuKFE6WxSJl3P4DjRNE?= =?iso-8859-2?Q?yarKbj7e+1UifUO/SpeceVgpezwk6QCkuOkeUvYAngwfHdUli4xiZKdH0D?= =?iso-8859-2?Q?sSD1NcNYqlQuPmTmqAtowYe1TWBR6c6vgtBW36uwUhepeqhE7cL9XxwD9n?= =?iso-8859-2?Q?6pj/7H9bxP2icVaWq8wgEz0nsAybvv9F7ZnfufD7KLUT3fd53++7/AnB0T?= =?iso-8859-2?Q?WwPhg1Yn8i3SHOwiAV6egbML++B6MxHspnBqNYW7nKFzruXiMgA/ugXrum?= =?iso-8859-2?Q?o6T2/J5HnlO3csvvC+Ey4RCP4h9sI4drOVTbBOMHIVA48V5ynbmlkZODtv?= =?iso-8859-2?Q?ZxjOGu0UqwEXBhG2aAlCJTNj1M04enkoj859lHqEGANhlRbQXdlhOda2iQ?= =?iso-8859-2?Q?N+H/ZJDG00ttBtQirjyJvnxV5tc3G0PCzDHGj6zc7q7Z6VqGhzZp9khLxu?= =?iso-8859-2?Q?ewhHd55LNDSnMr+Lvsw3/L15d/gvUYJ2gW6Ok1gVxAc3Yg+mr/kei3Jqm5?= =?iso-8859-2?Q?MFfpsaLw9kiLn0/bSM0yKvyza4MvB9sFKwg1q22rf70h3ReIYe1vvFFg+x?= =?iso-8859-2?Q?Js5Q+Vz0HWTSQ+D+ep1ZaWFMTlvt1lS62ZlzYgP0P1jdWMIuE/Og4W0mwA?= =?iso-8859-2?Q?tu4spsANTkKeanB1ivuY0l5mTGYIMAHseK4g7GGWBRw0Ikst4vbVc/Wbtd?= =?iso-8859-2?Q?zQSbmfA/iNU1FtEalCTLJtjODY2bX3lxMaS3sf+qYkp5TMKtoOwEc9bSXk?= =?iso-8859-2?Q?xy9w7nzCiChdl6/8YTyHRA4U/M3mNdibQfE6+tRnQIMKkM3yBgC64t1+YT?= =?iso-8859-2?Q?U2AV6DsEo1fLU7p/KMF6Wv1BuTMFFY9MdzUbcuV9TdktEXErPymtQWdjVY?= =?iso-8859-2?Q?8arg2h6ZgY+BM=3D?= Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3081.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94796265-ea14-4784-0c86-08dac7c934d1 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2022 11:53:41.4347 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hhQXIYAnVSWm4yY/EQK2uFDCa22o5BIZrBb2Q1tB92Ml1SgxQcpJ2+1RKX5ptCni X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5742 X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,MEDICAL_SUBJECT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,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: [AMD Official Use Only - General] Hi, Thank you for fixing this. > -----Original Message----- > From: Alexander Monakov > Sent: Tuesday, November 1, 2022 9:57 PM > To: gcc-patches@gcc.gnu.org > Cc: Jan Hubi=E8ka ; Joshi, Tejas Sanjay > ; Kumar, Venkataramanan > ; Alexander Monakov > > Subject: [PATCH 2/2] i386: correct x87&SSE multiplication modeling in > znver.md > > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. > > > All multiplication instructions are fully pipelined, except AVX256 > instructions on Zen 1, which issue over two cycles on a 128-bit unit. > Correct the model accordingly to reduce combinatorial explosion in > automaton tables. > > Top znver table sizes in insn-automata.o: > > Before: > > 30056 r znver1_fp_min_issue_delay > 120224 r znver1_fp_transitions > > After: > > 6720 r znver1_fp_min_issue_delay > 53760 r znver1_fp_transitions > > gcc/ChangeLog: > > PR target/87832 > * config/i386/znver.md: (znver1_fp_op_mul): Correct cycles in > the reservation. > (znver1_fp_op_mul_load): Ditto. > (znver1_mmx_mul): Ditto. > (znver1_mmx_load): Ditto. > (znver1_ssemul_ss_ps): Ditto. > (znver1_ssemul_ss_ps_load): Ditto. > (znver1_ssemul_avx256_ps): Ditto. > (znver1_ssemul_avx256_ps_load): Ditto. > (znver1_ssemul_sd_pd): Ditto. > (znver1_ssemul_sd_pd_load): Ditto. > (znver2_ssemul_sd_pd): Ditto. > (znver2_ssemul_sd_pd_load): Ditto. > (znver1_ssemul_avx256_pd): Ditto. > (znver1_ssemul_avx256_pd_load): Ditto. > (znver1_sseimul): Ditto. > (znver1_sseimul_avx256): Ditto. > (znver1_sseimul_load): Ditto. > (znver1_sseimul_avx256_load): Ditto. > (znver1_sseimul_di): Ditto. > (znver1_sseimul_load_di): Ditto. > --- > gcc/config/i386/znver.md | 40 ++++++++++++++++++++-------------------- > 1 file changed, 20 insertions(+), 20 deletions(-) > > diff --git a/gcc/config/i386/znver.md b/gcc/config/i386/znver.md index > c52f8b532..882f250f1 100644 > --- a/gcc/config/i386/znver.md > +++ b/gcc/config/i386/znver.md > @@ -573,13 +573,13 @@ (define_insn_reservation "znver1_fp_op_mul" 5 > (and (eq_attr "cpu" "znver1,znver2,znver3") > (and (eq_attr "type" "fop,fmul") > (eq_attr "memory" "none"))) > - "znver1-direct,znver1-fp0*5") > + "znver1-direct,znver1-fp0") > > (define_insn_reservation "znver1_fp_op_mul_load" 12 > (and (eq_attr "cpu" "znver1,znver2,znver3") > (and (eq_attr "type" "fop,fmul") > (eq_attr "memory" "load"))) > - "znver1-direct,znver1-load,znver1-fp0*5") > + "znver1-direct,znver1-load,znver1-fp0") > > (define_insn_reservation "znver1_fp_op_imul_load" 16 > (and (eq_attr "cpu" "znver1,znver2,znver3") @@ -= 684,13 > +684,13 @@ (define_insn_reservation "znver1_mmx_mul" 3 > (and (eq_attr "cpu" "znver1,znver2,znver3") > (and (eq_attr "type" "mmxmul") > (eq_attr "memory" "none"))) > - "znver1-direct,znver1-fp0*3") > + "znver1-direct,znver1-fp0") > > (define_insn_reservation "znver1_mmx_load" 10 > (and (eq_attr "cpu" "znver1,znver2,znver3") > (and (eq_attr "type" "mmxmul") > (eq_attr "memory" "load"))) > - "znver1-direct,znver1-load,znver1-fp0*3") > + "znver1-direct,znver1-load,znver1-fp0") > > ;; TODO > (define_insn_reservation "znver1_avx256_log" 1 @@ -1161,7 +1161,7 > @@ (define_insn_reservation "znver1_ssemul_ss_ps" 3 > (eq_attr "mode" > "V8SF,V4SF,SF,V4DF,V2DF,DF"))) > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "none"))) > - "znver1-direct,(znver1-fp0|znver1-fp1)*3") > + "znver1-direct,znver1-fp0|znver1-fp1") > > (define_insn_reservation "znver1_ssemul_ss_ps_load" 10 > (and (ior (and (eq_attr "cpu" "znver1") @@ -1172= ,47 > +1172,47 @@ (define_insn_reservation "znver1_ssemul_ss_ps_load" 10 > (eq_attr "mode" "V8SF,V4SF,= SF"))) > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "load"))) > - "znver1-direct,znver1-load,(znver1-fp0|znver1-fp= 1)*3") > + > + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") > > (define_insn_reservation "znver1_ssemul_avx256_ps" 3 > (and (eq_attr "cpu" "znver1") > (and (eq_attr "mode" "V8SF") > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "none")))) > - "znver1-double,(znver1-fp0|znver1-fp1)*3") > + "znver1-double,znver1-fp0*2|znver1-fp1*2") > > (define_insn_reservation "znver1_ssemul_avx256_ps_load" 10 > (and (eq_attr "cpu" "znver1") > (and (eq_attr "mode" "V8SF") > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "load")))) > - "znver1-double,znver1-load,(znver1-fp0|znver1-fp= 1)*3") > + > + "znver1-double,znver1-load,znver1-fp0*2|znver1-fp1*2") > > (define_insn_reservation "znver1_ssemul_sd_pd" 4 > (and (eq_attr "cpu" "znver1") > (and (eq_attr "mode" "V2DF,DF") > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "none")))) > - "znver1-direct,(znver1-fp0|znver1-fp1)*4") > + "znver1-direct,znver1-fp0|znver1-fp1") > > (define_insn_reservation "znver1_ssemul_sd_pd_load" 11 > (and (eq_attr "cpu" "znver1") > (and (eq_attr "mode" "V2DF,DF") > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "load")))) > - "znver1-direct,znver1-load,(znver1-fp0|znver1-fp= 1)*4") > + > + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") > > (define_insn_reservation "znver2_ssemul_sd_pd" 3 > (and (eq_attr "cpu" "znver2,znver3") > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "none"))) > - "znver1-direct,(znver1-fp0|znver1-fp1)*3") > + "znver1-direct,znver1-fp0|znver1-fp1") > > (define_insn_reservation "znver2_ssemul_sd_pd_load" 10 > (and (eq_attr "cpu" "znver2,znver3") > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "load"))) > - "znver1-direct,znver1-load,(znver1-fp0|znver1-fp= 1)*3") > + > + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") > > > (define_insn_reservation "znver1_ssemul_avx256_pd" 5 @@ -1220,14 > +1220,14 @@ (define_insn_reservation "znver1_ssemul_avx256_pd" 5 > (and (eq_attr "mode" "V4DF") > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "none")))) > - "znver1-double,(znver1-fp0|znver1-fp1)*4") > + "znver1-double,znver1-fp0*2|znver1-fp1*2") Do we need to include "znver1" check here? > > (define_insn_reservation "znver1_ssemul_avx256_pd_load" 12 > (and (eq_attr "cpu" "znver1") > (and (eq_attr "mode" "V4DF") > (and (eq_attr "type" "ssemul") > (eq_attr "memory" "load")))) > - "znver1-double,znver1-load,(znver1-fp0|znver1-fp= 1)*4") > + > + "znver1-double,znver1-load,znver1-fp0*2|znver1-fp1*2") > > ;;SSE imul > (define_insn_reservation "znver1_sseimul" 3 @@ -1239,14 +1239,14 @@ > (define_insn_reservation "znver1_sseimul" 3 > (eq_attr "mode" "TI,OI"))) > (and (eq_attr "type" "sseimul") > (eq_attr "memory" "none"))) > - "znver1-direct,znver1-fp0*3") > + "znver1-direct,znver1-fp0") > > (define_insn_reservation "znver1_sseimul_avx256" 4 > (and (eq_attr "cpu" "znver1,znver2,znver3") > (and (eq_attr "mode" "OI") > (and (eq_attr "type" "sseimul") > (eq_attr "memory" "none")))) > - "znver1-double,znver1-fp0*4") > + "znver1-double,znver1-fp0*2") znver1 native path is 128 and znver2/3 has 256 bit paths. We need to split this into two reservations. One for znver1 and the other f= or znver2/3. > > (define_insn_reservation "znver1_sseimul_load" 10 > (and (ior (and (eq_attr "cpu" "znver1") @@ -1257= ,28 > +1257,28 @@ (define_insn_reservation "znver1_sseimul_load" 10 > (eq_attr "mode" "TI,OI"))) > (and (eq_attr "type" "sseimul") > (eq_attr "memory" "load"))) > - "znver1-direct,znver1-load,znver1-fp0*3") > + "znver1-direct,znver1-load,znver1-fp0") > > (define_insn_reservation "znver1_sseimul_avx256_load" 11 > (and (eq_attr "cpu" "znver1,znver2,znver3") > (and (eq_attr "mode" "OI") > (and (eq_attr "type" "sseimul") > (eq_attr "memory" "load")))) > - "znver1-double,znver1-load,znver1-fp0*4") > + "znver1-double,znver1-load,znver1-fp0*2") We need to split this into two reservations. One for znver1 and the other f= or znver2/3. > > (define_insn_reservation "znver1_sseimul_di" 3 > (and (eq_attr "cpu" "znver1,znver2,znver3") > (and (eq_attr "mode" "DI") > (and (eq_attr "memory" "none") > (eq_attr "type" "sseimul")))) > - "znver1-direct,znver1-fp0*3") > + "znver1-direct,znver1-fp0") > > (define_insn_reservation "znver1_sseimul_load_di" 10 > (and (eq_attr "cpu" "znver1,znver2,znver3") > (and (eq_attr "mode" "DI") > (and (eq_attr "type" "sseimul") > (eq_attr "memory" "load")))) > - "znver1-direct,znver1-load,znver1-fp0*3") > + "znver1-direct,znver1-load,znver1-fp0") > > ;; SSE compares > (define_insn_reservation "znver1_sse_cmp" 1 > -- > 2.37.2 The patch looks good. Regards, Venkat.