From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 76565 invoked by alias); 21 Jun 2017 11:13:49 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 76521 invoked by uid 89); 21 Jun 2017 11:13:47 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR02-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr00086.outbound.protection.outlook.com (HELO EUR02-AM5-obe.outbound.protection.outlook.com) (40.107.0.86) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 21 Jun 2017 11:13:45 +0000 Received: from DB5PR08CA0076.eurprd08.prod.outlook.com (2a01:111:e400:c576::44) by VI1PR0802MB2528.eurprd08.prod.outlook.com (2603:10a6:800:b0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Wed, 21 Jun 2017 11:13:41 +0000 Received: from VE1EUR03FT041.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::203) by DB5PR08CA0076.outlook.office365.com (2a01:111:e400:c576::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15 via Frontend Transport; Wed, 21 Jun 2017 11:13:41 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by VE1EUR03FT041.mail.protection.outlook.com (10.152.19.163) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1178.14 via Frontend Transport; Wed, 21 Jun 2017 11:13:40 +0000 Received: from arm.com (10.1.2.79) by mail.arm.com (10.1.106.66) with Microsoft SMTP Server id 14.3.294.0; Wed, 21 Jun 2017 12:13:13 +0100 Date: Wed, 21 Jun 2017 11:13:00 -0000 From: James Greenhalgh To: Andrew Pinski CC: GCC Patches , nd Subject: Re: [PATCH/AARCH64] Improve/correct ThunderX 1 cost model for Arith_shift Message-ID: <20170621111312.GE35273@arm.com> References: <20170607171603.GA36988@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140;IPV:CAL;SCL:-1;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(39450400003)(39840400002)(39860400002)(39850400002)(39400400002)(39410400002)(2980300002)(438002)(24454002)(189002)(199003)(377454003)(72206003)(36756003)(110136004)(38730400002)(77096006)(478600001)(46406003)(356003)(26826003)(86362001)(39060400002)(47776003)(55016002)(54906002)(6286002)(2906002)(6246003)(104016004)(97756001)(53546010)(1076002)(4326008)(23726003)(83506001)(8676002)(33656002)(4001350100001)(305945005)(1411001)(8936002)(50466002)(5660300001)(2950100002)(6916009)(189998001)(7696004)(93886004)(106466001)(50986999)(229853002)(54356999)(76176999)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0802MB2528;H:nebula.arm.com;FPR:;SPF:Pass;MLV:ovrnspm;MX:1;A:1;PTR:fw-tnat.cambridge.arm.com;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;VE1EUR03FT041;1:L5dCV9c37FxwpqQ7hmJjmoWd1d/rveO1cjnXYC6tkKlfFy02nXtddbK6j/9cQRU2TvBu+uMaL6kkqQjYnbI1EUZSqC28kFOgFtKlfXjlJz00Syn150ffSFIvmUnmN8MmXCaWofS4iIcAwzdZoC2sajJfkdaGFMAV8m8t9r+zuerptnDKEbDYtrgSEaQAW1zpqs88qC6dm7zdbaD43bpIS2LPYm2tPEtsK3SicRzC6VTmkz7LuqOOL0YemHsY45SbVBCSDYn/3oOGHiKkNoRZCQN4Jy2SueLr4+51o6tvKDiICIghXtx6jreNfIksaVDYgbZ60poDEEHyy1x+mI1KxJZGsKjdF69RhRR8yAZrRHJaTV60Jcf2EcdLjy6Eq+9z2/gEOdiQi+k/FpEdd+q0nI02N1T0EezvpY8Ys1wVT8CaQmhDbnxyoKW17E+PfBZwYE3BDQ4RXT6GQPG6usfmP4zWN591jEf8j1Zxk/iDv/sdcYHLf7ZE0u0y/h/j0BZZe1j6gGg/OQC4+QRRY/+O/kJcKncytxf4oEZ4LnUnOKz96oknXegnwzrUrnw7Y6fTdQ8W6x8MNqN+DgtEJAKco6L7nRbf8ta0iooC1w/yh64= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c2c721aa-21bf-4724-f5be-08d4b89692a9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081)(201702281549075);SRVR:VI1PR0802MB2528; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2528;3:OB5UoroM5fIgnPNch0glygFoKIjXywuEIhQS7TmrTd4Alw2ePFzZtc5aX5qccUC6dSLDYJaf/8WgO+GNKLcy2BirXyshw6I6nN9lcKx8apDSB6VXlWMT9Z7ux/LeZllg++whCEDUd3SJD6YUPLvToiIodfUcRWrRcM17stjXaHoxiwiS69YfXi98B4yduWKioc4LEGSM3/lfKnv44+9T/eyjr0lw+z6TSQbugvX0nh3uN7pzYJAOjbovGSM3hw1aDyccN1WuZTbmnXP1fvB3y/ADZT75TXvAImT5dD0AAciDIgdvzjYwyBQq1pziZSbaE2ur89MF1Kv1gsKP1NQ7f5yeduuDeOkFpsmikHYewvClrAGddlDc58gx4QdaxQMdOjc/Qn+3lSqHRY/mA5gXRE0dZoHiDtWYhThjph0rdoXtHbAsg244U3USegZOO6fbPgKeqjFn+yQhOGZFprfTL4xNuREYIobdwaDTfabbmFTCipZiuCaDYt/DCVpIAjxYdT5SHARi/E4y9AE3UyC0wQ== X-MS-TrafficTypeDiagnostic: VI1PR0802MB2528: X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2528;25:YI7ZmA1mAxGRwy8cc+fCY4ylw9lEK1Tj0qgVvmHMGDx5HIRfK104sRUvMtmJBP3ot9Q9z2d4ACcOhLZXTfvsa6HcnILOIwzd+quHiLfSe/fn+lG1oDHgJcetW+m+Z2lNkgsUe/jvY9UcQVUgEEsZ5n1T/7CRv2iV0HUTLH17YaKwmQDq6xvB9Kn8jrGRLIb/6TZAvpdYqTREzhVcCwBQNX8M+vkFFchE04n4jtAxFaY50B5WbPoxt8O97Fm4fNnOwZGk+1j43zTdaVjO6pTzFmdBtKjBUybjwLN9Wl0qhrjm4S8reNAiLGL7LAZ7LAb4SeSJNSO8V2SAf0tw/NVUdwrc5zYLAmRycOozkni6RWs1EX6ddsIpSseZYJx+DvGbA5mo1dqFSFr2ws7a/y6JDu4dul8mLyR4ZPH9IkIYJCIEAvCDkoq4/rZ1vdfKZXAVJY30IzfqKVlCo8jY6Vc8f6hKtWxpOYKcH/+JGLy0abiCuOxMsMzW1efscQ1VfxnWu51BJwgqNPtfKzgfMD++Ca9fGz+vP8/Nm8aIKaOzQ3+OtMJlfQ9vpjEfiFvfGtAJ1iOnSYUhF1kytZGBVwVHvDTtZ3GNjcHezJ6bUCd84ZBtDe6+xqMBDnO/L63eYbQyfDlCivlrMyrrcZhl7zwYVH/7Ww4ATFsNRIqExfbBZjjeRTIFw23vJN3I3NzA1590Tfh7NjrJor9HG2Yoivd0kgBkIIC67tMnzavjj2mcWGfpHslInot3rDK/l5D+5drVtHF7tJf7OSl2odIv73wqDXg5Zlnjrv16wsRGz6V+YZKBBvTCbGKeKeFeQuktZFq0sDLr+Cf5PeY64KHkV9Ckx63KkSNcL665xWulfUplTDgxOcuXpFryoyIesYR4vhYkHK8j6C2aDL8rR4zsFwqvceUtMPQbOJuxJsCmYk0CyB0= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2528;31:HVT7t1tqShhTkgWUe7jzmY1rHhvvRdW5eJEX6Kjig5f2pviBIb5pT1FwC5dO1cX58wriFRCuAYOt6TnBnFrdk+ZAEKNW/DXKgtG7F2EhSJQvcFk1eHU4T/Rz4a3vAlFx3wGkyHG2KdGxmX+JIJxt72fqclgoWFMi6+LhlJq39P46Mw4PmW15wSdDqIn43FQ6CozSL9qa0UWXsHMhUWg2JKNTjiA9Li6LZ68ufjQSRlzsrF7dwDmnYCmxrlCpthN1kReq7bNqFcDXkK/aoItLzaGJHB//U/bgEbxYwRpIwtw5awrZPouWvNWNmIW76CroyKXk8P1UCfN4f66M9rIc72iyyx6HQqPEHAYwVsRZhuRKOxzX2kRwdL720N6SmJ1Kvi3y7Szd1VrND7yVj69/Oqw8zogiQEgS7qd+uiRJeGrXkZYc3hIAdgmzBUCksNZZ3GVv2hWarbgCrRx21yw5G8PQQpfe5l4NrazWGdT6JqvSp5e6qglGsVX2N/cIH3I3j6ghAa/8DD4YAl0D9WRKkzAfgj9zopxcwP05mNYO1BNHeKWmZF3vziaE+4ami5igB72+Qy8X04HV7Vq4ozKKpHOC7V4TMXYU0RM/JMqxfVICjLV47b1aDc5hyGAoiQ2S4cTSsfNzA840YsJyhngE7/vxV8r41ZVAjU0dQlY4y6enEuDfcNGxXcA5YfVg3tG9n+MUC5PIGHkFlTe5EWzlAg== NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2528;20:b7SvlnNT1FeI3EyMXSg71krsFVmRrrRPD1b9LNXUs9Tb9sx0ngClZF3VabFOHFtMOa01a+t7AxonVwyFFmJWBvSmf7PgOU2Q2XcFL57IGmYUrF/7Dk4B2VbaP+mra8MUUy/v7Xk2RlIMHzkGEZYXHUzNegz0Y2BcEedzN7Cjje3hRgGKr8GlxjqKo5uuZp6/oOrE0dHuuun/a7OyibPHpmyDjpXLDJ5NJgrK3OVGAGOBojxWgpLV8t3pCpep33Zg X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(13013025)(13021025)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93004095)(6055026)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0802MB2528;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0802MB2528; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0802MB2528;4:lIlAE3rI124aiGKXywLIyN1xW4233+3Ku2I7VOKR?= =?us-ascii?Q?FDTbo3bjYv3U4fN5LNEkEjjkmT3HuJGEVn7DGFwDJsLpgyWgT6MBuAqD50vj?= =?us-ascii?Q?MGIA0GMlxHWAR6m0mnXSPPhNItilBNxjcqcYEojbP3VVLO1EUYpPgmPXux9E?= =?us-ascii?Q?rAURr2QzkfdQk/TGCqtWmlv47L737SuOmSFvNmfY7ns6TW1hrd2ee8/shV7Z?= =?us-ascii?Q?y7hN7AsnlOK10o9Knwvk0+y1bVDbgGhgCDwLOIlFcZuHC+OLOSlXdxUnj7dD?= =?us-ascii?Q?OAqPeUXdcyQrVMzD4/2FuuAvP5BUCIBV73eM/xjveYKwFxbCxMstP/8LX5sP?= =?us-ascii?Q?IAAPa61VYWExRbeXYhIz2G/00LIqaW0BfcBLiE2PvGu6SlNgxdjuwPgJ9YYz?= =?us-ascii?Q?CYyCfESE46jwfuAetnAVG3bQxOg/Z2m5373GCl7KPHq+B60E0If5hXE/fh3X?= =?us-ascii?Q?lhb7/UCIhAmTMdiunNBvRnwHnkfOJTDJL4AZY3Ree9Hi/5F9QR6tcItpW4b9?= =?us-ascii?Q?YkCV1lO8sSQPmvnxkXUa8f+6KKHL9tDsMmeUfi7lfcKf+QlAw2wRqgFoTXtD?= =?us-ascii?Q?AS8co3w0UamY/LsW5CjNdYHVC60Uy4F0zoyHJbi5Eoe6A2xZ8aXDJDvuRo2l?= =?us-ascii?Q?T5x6zCPNsSLOBr7006vUfR0aPH0dZJ+t9Tw6kHj773FJzCR6CP/x++TdT+5f?= =?us-ascii?Q?QPHAJNkgg9jgo9jDbJx6vfb1GCuBTJtdHuF5KUxqPQjfmNq2ngz4lge3Gw1E?= =?us-ascii?Q?JNRuUPKvTd9uKSfJybsCjqYSchPj/zyIdtkcNr6KDBFwMO9MQ6sTWZRsRfkV?= =?us-ascii?Q?b7vHcUYTgxqRdds5o/uIxFuy9kkM8a8EYthgpLe82bbSUQOcgva5z/txJ2YX?= =?us-ascii?Q?VxOCUDsTnv7mOS42Nym19TPnri8U9ygVN+/9kj/Ph/OKRk5iDSCCXsm+fDgL?= =?us-ascii?Q?z7bUjptMDcXwfh6PfmiwgCwAjrYHW5PTDMK7InBkJ2v2Wl24jIpTJeslCC0G?= =?us-ascii?Q?pXqkRu8Z/HSUEEW+KOMIxjwVvURin8RDUTvR09nLFGqqUf5CuvMXnJjHB3o/?= =?us-ascii?Q?v6ySUIZSoTSQS0S/xF/vyp/U3w1UXGWp83XOYjhnadX5QUTk7IOg9aCF61TC?= =?us-ascii?Q?zX/V7kljjny0Q2FcAWFCKh3F0kGBlg93lcsqFCgOpHsCETiY9RMaENtwj5O0?= =?us-ascii?Q?fnQDm2ZvHR5H8k9O0xWG7n4YTxE7asiXnpShel1DO0v5C6fg/8DCB8eYMTiy?= =?us-ascii?Q?rfYRz+RhlQn7jEj4pAA=3D?= X-Forefront-PRVS: 0345CFD558 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0802MB2528;23:Cf3c2U21qromD4sp+viK+0i7OI6LnwKDJV+gRh6?= =?us-ascii?Q?xYTNF2NM8C+uPtEieDM2mIUpNMcc9DSwUDDn37aLURw8VISzhdMxQX3/Wbi0?= =?us-ascii?Q?LoDgl2iw9rXguNecV/RgHSMsedzcV0+tSLuulJo3W2DR1p4VzoYRe2aBEk76?= =?us-ascii?Q?bPkfJKRmeGLtEnLkR2qNOIJLnQfJR0M0j+dDkqRfuJDCiOUYT7zBlLbrH14+?= =?us-ascii?Q?9FuETKX6tVe29Tfs5OfFVUohtFDBgzwnc4bzzyQXvS1cosoLu3iG5nG+8NLs?= =?us-ascii?Q?oUEdST7SU6X42OC3ZE68sG4vVPa2pxMsjH82YpAljn5TstAgnACEC+06xPa0?= =?us-ascii?Q?ba1ETjyAePQXACFiDqg3RNMB6xUAWtOonia/Q7FyjBVRuLUjzsyPZObDwUjh?= =?us-ascii?Q?D0ojhzTmBALenaEq3WtQUfeoU5JKkNxhH5QJ56pheb77ug20zUddAcA+HARi?= =?us-ascii?Q?PB1Vt9I7br2t9zyLn+2lTI0F+N0FEek8hsfVggS+Es12q1qGmCQmihIfcYQ2?= =?us-ascii?Q?MbnuaCCAGivrg/0x1YmzQ6QhV+TTCS5nv6v+aZHVSLLJzTl8bSfflbsWBLcb?= =?us-ascii?Q?Lr5qMGBjonbEpWDWFjNMe7YVF/ORySfonlj/x9eDujaFIBX2Fxb3L/tShjGH?= =?us-ascii?Q?q02aDFu5HtLzshI/z1BmBgnjtgaYck6xTMviFygTHwkDm3OCPugfKo61ZdFa?= =?us-ascii?Q?JJJumjDL3e4A9cQr+Xw06paBOxzQrKevopuepu0xDBNh3MxMyF1w6p3LZwDr?= =?us-ascii?Q?u90K+790g5xjjjL7U3KbW/ApItjM1ZGyXjzq5Bn5louloESOd3pGheiEm9uT?= =?us-ascii?Q?9r7ENUOmgaTtRVeZqFP19vdeMoPAb9ahzTJsuUWvM/EVLGZsp+m5t03C1jdE?= =?us-ascii?Q?6X/Xi9OMgK1ujcHVyr9NnZ5EgsjCr7aFl7u0toDKXM1hqJDpIRbbsnCzdaaC?= =?us-ascii?Q?IC4f8Q41t85EAMWlAoSIvnu0YSVzcg2GWcf4gj2s/joHcoduqNG2GNGUuPZ9?= =?us-ascii?Q?1+HY9/DT82OnWzzz2iwCenQsGJ/wZrlTTjGnMSM/ZrHA/7s7kt8h04tEsus2?= =?us-ascii?Q?IwjZ4S5n+gVZcJHEa4biPTQejVDuBRfGiqqv4uHroFmjz5uoke51AULPWEiK?= =?us-ascii?Q?Gm3CTeQynk863nPxERp8/y5XclKnRDS6EAYZHpyURp/UtHhT9nDAe6GG1iaR?= =?us-ascii?Q?/oRI30Jryfwbp2cUyL+9ueMF2G4Hx6XLt5nViZ2ukc3OSs7eDXaTQrsGytCQ?= =?us-ascii?Q?QkQ+uuMpcoQMUXb5i2fqO6mLC0fPYYsHnfrjXRa7JsEjAnVLKN9GGtb7t9XR?= =?us-ascii?Q?E8iiL/HkBNWHB38MiROgm3TTzPV7JPqi6qzlOYT8yNr32zmUK7qF3p1eFviT?= =?us-ascii?Q?TaoRJ3NJ+7lfXQ+JWi9mKpJVnuhs=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0802MB2528;6:pnyRbeVGzGpon6b0PwBNXKpyaDpNk0xK+UdC86KA?= =?us-ascii?Q?BCYsJZgWmj/Phqmhw1wBB+Q6lcCXnuwN3gV4qJRmfakBc0VDpeQ+czKZ5gvp?= =?us-ascii?Q?LcxHw5xJsMPu6a6XD/hRetHf7dPrCDhnFCnrMBURL68AqpdCjJ7gdJFR5Dq6?= =?us-ascii?Q?tDibPcZGIJzGf4indKWU3TICPFsjAlDUiRa4CUg/cHyYZzz5FvLOfHLuf6fx?= =?us-ascii?Q?F28TWVGIeZDhKUqjp6h1qKBASSs3a7s3qDeaZMtMZz01tyv/6VZCM5Un8Tal?= =?us-ascii?Q?Av9ssukt3ltG5ITFiWljYvhu2NHaDCf832jTQa/zMpV2Fs4twjjzozoY48sv?= =?us-ascii?Q?0sbEwFt6bRf6IWesibinL+5h1V0z2aQ+I52EVDBOTRegFz2MxromMkQf58A3?= =?us-ascii?Q?m+rXkXoyuPEV0+KZZiiPK63I5s/JU4gEo9m0LOrfXQpd1M5hdMe/uxWCJDka?= =?us-ascii?Q?j56HbcoGFMjBB8ZyauFm4JcZNlu+du65nHT004okVHKij4vnb5ZXlqKFfzHo?= =?us-ascii?Q?fPSaU0AoyRwWnO8EUxDGxYy3cRwY0u656yHMd438bXssHF6q9GJZMk6oe1cw?= =?us-ascii?Q?8/PFQ6xR42Ll5NxG9fmA+6RxNW+MkxqPuT/CjyfuYUa16ut4aF3LHyLpNMTG?= =?us-ascii?Q?z2z6mkE9e6G+EkwfXOb6agRUCfQcMkZ6KOQrOI7nODfOFkTOn4O4vBMzoqFB?= =?us-ascii?Q?cuvzfoMMKozLEIOGYTqaQ7MGnbtSF9eV18BGoow2BhBFVmXh4DktTU27UDmV?= =?us-ascii?Q?yxXGamXy+Vic5YZsKYkbYvdbTojztGgvGFsIAwApszSBZNv49vv2RIWDueDv?= =?us-ascii?Q?DasB9L0rYiufeeCVMgZH4xKEvCG4uMj8kYlwxnicQpMC572EKAt6l8oodzrB?= =?us-ascii?Q?fIgUr+RDx2/XICs5njXrLeAVNdVu8qZIaA94o90g7LypSo+Ww4pEAu7vgbVo?= =?us-ascii?Q?1E5J5wHRkI1rLtM27Q4M6BzWJ6FJCH9u6NNjxoNIegsR6l3gIis4Zjn0869J?= =?us-ascii?Q?GA7axTLj/++Eq6zZxfittG4X?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2528;5:iRurHYQUQQjUN5gtKTvpABdhpSkGpXvX/lvVo8GvKDTSEwZykMT/KANzZzRA2PPBSke0B6npM5hO7NWWvXqLWmn26bV1WZzX1X7LI62R1Cy6uzxUGcgjfnKPdvywqcoCk4zjsYXPQRtXZsO4XX4omZIGTpWssFy2lgbjiEmJf0/kI01DWaNLYGOLmHd3SCpL3tXc1vFnQ0/O1Z3Ku+s03yVCTT3DtveaoA1mNZFLMn7yxNR4qEkgN5R1b/WHGdlNwc9QD106L7oi2ZLp+ODwPfqsrXNMMzuLJ6i3Nf2kwwtKuMYIKztABdOQiocC5/Sukpa+iW9o8EdOHveVZQ0EUQTuvanGtOgk1Ps0xA63USzcaJIR/HoOPd6OUG6RU48KIQpDs3eFdSXWS8VajeyntX/kuqWmwv0vQNwCtXoEofCQWIeOd+xBJnQEg2IQbd71RSVTcjLtIfyb3NcFEWsF+nSmAg/gFnfBx5O6JFf2f34vsaozrc9i7DRo9pRxh1vH;24:NuZa+Jphpr6j3bAp6Phry1N1L/9DwYUlgDtlep2qZzXm8yoVqzp/GXYvxg4lb+gvc5/AGK9rkA90HaW2y0Ju8VSDmWlSxMraeuaDCVHi8Dg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2528;7:JqR9caLBauRmXjB1WC1ApuhrVtFOLFw6e/jiPYXjURX2JQeHiRv/tOA+cs9iNHLrfO9WXqWgvSbPX6K6rEzqyZy0SbR2oduF7mUzLjPdDBOPXPH0wVbr8gBhwCYmzBjjo+F2WuYexCEpFUbYq0fh2XyhgQvHSXUgHL7WcnL2mAfqKmUTsrvt0CYeviVtVzL2ba6mh8xhm7W2Tbrzh+qu1z72mueYbssgK9ArXjRsRlHYif/+CRmHSNFUa/yn/vd08DHK/QZ2TBh8ODVC4PLfFsa9PaC6f2x8NLfi9RqeqMBib0IuHfniKifs5oGgTFo1RcWSbkk/rGQuHkB60E0buNJeL4C/aK4LzHahOi4J7MFuTxGyH3SOzSMPK1Y6sa2NxGtQGzRAeLbluKzkPI92sy7pnCBJFcjGbsE27iEjOY+hcpDfLatuyCBVGzjgH5jKReKaMHS/LMjOXRVjrReTefc3mcYoXbbjgVm/zxncbxynvlQYrw8EqKV3ZZRGiMxJXnywSbr+Z8viZQJ1DF3MVsM9HTTAqJLK/6LlqWTo3f+qaoGPZp8CHSQN6+KenAXX3wZeWQcNQKjbO4SYpDrwmQsWGErqHp402vGHXBMpId390QUlI7V6uq+VHc+6guqwleVI6KFwLFLwtwVP/l79uPyuu85WxgOJVk5iIfFSe1hEHlbNm6RnySWcDdGWF0jBuvdCGTQhMZZaTsqkmA5C89ZvIeBWfRKOmA1RnEddBgEH0fW0BHBvrMXotB0R/TCj3PaszuFhepj8cO/7QKLsbmDtBU4MmvgF8hCiooWvdHk= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2017 11:13:40.8487 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[217.140.96.140];Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2528 X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg01568.txt.bz2 On Tue, Jun 20, 2017 at 02:07:22PM -0700, Andrew Pinski wrote: > On Mon, Jun 19, 2017 at 2:00 PM, Andrew Pinski wrote: > > On Wed, Jun 7, 2017 at 10:16 AM, James Greenhalgh > > wrote: > >> On Fri, Dec 30, 2016 at 10:05:26PM -0800, Andrew Pinski wrote: > >>> Hi, > >>> Currently for the following function: > >>> int f(int a, int b) > >>> { > >>> return a + (b <<7); > >>> } > >>> > >>> GCC produces: > >>> add w0, w0, w1, lsl 7 > >>> But for ThunderX 1, it is better if the instruction was split allowing > >>> better scheduling to happen in most cases, the latency is the same. I > >>> get a small improvement in coremarks, ~1%. > >>> > >>> Currently the code does not take into account Arith_shift even though > >>> the comment: > >>> /* Strip any extend, leave shifts behind as we will > >>> cost them through mult_cost. */ > >>> Say it does not strip out the shift, aarch64_strip_extend does and has > >>> always has since the back-end was added to GCC. > >>> > >>> Once I fixed the code around aarch64_strip_extend, I got a regression > >>> for ThunderX 1 as some shifts/extends (left shifts <=4 and/or zero > >>> extends) are considered free so I needed to add a new tuning flag. > >>> > >>> Note I will get an even more improvement for ThunderX 2 CN99XX, but I > >>> have not measured it yet as I have not made the change to > >>> aarch64-cost-tables.h yet as I am waiting for approval of the renaming > >>> patch first before submitting any of the cost table changes. Also I > >>> noticed this problem with this tuning first and then looked back at > >>> what I needed to do for ThunderX 1. > >>> > >>> OK? Bootstrapped and tested on aarch64-linux-gnu without any > >>> regressions (both with and without --with-cpu=thunderx). > >> > >> This is mostly OK, but I don't like the name "easy"_shift_extend. Cheap > >> or free seems better. I have some other minor points below. > > > > > > Ok, that seems like a good idea. I used easy since that was the > > wording our hardware folks had came up with. I am changing the > > comments to make clearer when this flag should be used. > > I should a new patch out by the end of today. > > Due to the LSE ICE which I reported in the other thread, it took me > longer to send out a new patch. > Anyways here is the updated patch with the changes requested. > > > OK? Bootstrapped and tested on aarch64-linux-gnu with no regressions. One grammar fix inline below, otherwise this is OK. Thanks, James > * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs): > Increment Arith_shift and Arith_shift_reg by 1. > * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend): New tuning flag. > * config/aarch64/aarch64.c (thunderx_tunings): Enable > AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. > (aarch64_strip_extend): Add new argument and test for it. > (aarch64_cheap_mult_shift_p): New function. > (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't add > a cost if it is true. > Update calls to aarch64_strip_extend. > (aarch64_rtx_costs): Update calls to aarch64_strip_extend. > > + > +/* Return true iff X is an cheap shift without a sign extend. */ s/an cheap/a cheap/ > + > +static bool > +aarch64_cheap_mult_shift_p (rtx x) > +{ > + rtx op0, op1; > + > + op0 = XEXP (x, 0); > + op1 = XEXP (x, 1); > + > + if (!(aarch64_tune_params.extra_tuning_flags > + & AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND)) > + return false; > + > + if (GET_CODE (op0) == SIGN_EXTEND) > + return false; > + > + if (GET_CODE (x) == ASHIFT && CONST_INT_P (op1) > + && UINTVAL (op1) <= 4) > + return true; > + > + if (GET_CODE (x) != MULT || !CONST_INT_P (op1)) > + return false; > + > + HOST_WIDE_INT l2 = exact_log2 (INTVAL (op1)); > + > + if (l2 > 0 && l2 <= 4) > + return true; > + > + return false; > +} > + > /* Helper function for rtx cost calculation. Calculate the cost of > a MULT or ASHIFT, which may be part of a compound PLUS/MINUS rtx. > Return the calculated cost of the expression, recursing manually in to > @@ -6164,7 +6200,11 @@ aarch64_rtx_mult_cost (rtx x, enum rtx_c > { > if (compound_p) > { > - if (REG_P (op1)) > + /* If the shift is considered cheap, > + then don't add any cost. */ > + if (aarch64_cheap_mult_shift_p (x)) > + ; > + else if (REG_P (op1)) > /* ARITH + shift-by-register. */ > cost += extra_cost->alu.arith_shift_reg; > else if (is_extend) > @@ -6182,7 +6222,7 @@ aarch64_rtx_mult_cost (rtx x, enum rtx_c > } > /* Strip extends as we will have costed them in the case above. */ > if (is_extend) > - op0 = aarch64_strip_extend (op0); > + op0 = aarch64_strip_extend (op0, true); > > cost += rtx_cost (op0, VOIDmode, code, 0, speed); > > @@ -7026,13 +7066,13 @@ cost_minus: > if (speed) > *cost += extra_cost->alu.extend_arith; > > - op1 = aarch64_strip_extend (op1); > + op1 = aarch64_strip_extend (op1, true); > *cost += rtx_cost (op1, VOIDmode, > (enum rtx_code) GET_CODE (op1), 0, speed); > return true; > } > > - rtx new_op1 = aarch64_strip_extend (op1); > + rtx new_op1 = aarch64_strip_extend (op1, false); > > /* Cost this as an FMA-alike operation. */ > if ((GET_CODE (new_op1) == MULT > @@ -7105,7 +7145,7 @@ cost_plus: > if (speed) > *cost += extra_cost->alu.extend_arith; > > - op0 = aarch64_strip_extend (op0); > + op0 = aarch64_strip_extend (op0, true); > *cost += rtx_cost (op0, VOIDmode, > (enum rtx_code) GET_CODE (op0), 0, speed); > return true; > @@ -7113,7 +7153,7 @@ cost_plus: > > /* Strip any extend, leave shifts behind as we will > cost them through mult_cost. */ > - new_op0 = aarch64_strip_extend (op0); > + new_op0 = aarch64_strip_extend (op0, false); > > if (GET_CODE (new_op0) == MULT > || aarch64_shift_p (GET_CODE (new_op0)))