From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 100093 invoked by alias); 31 Oct 2017 18:00:36 -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 99982 invoked by uid 89); 31 Oct 2017 18:00:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=HAuthentication-Results:bestguesspass X-HELO: EUR03-DB5-obe.outbound.protection.outlook.com Received: from mail-eopbgr40079.outbound.protection.outlook.com (HELO EUR03-DB5-obe.outbound.protection.outlook.com) (40.107.4.79) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 31 Oct 2017 18:00:14 +0000 Received: from AM4PR08CA0002.eurprd08.prod.outlook.com (2603:10a6:200:1a::12) by AM3PR08MB0136.eurprd08.prod.outlook.com (2a01:111:e400:884b::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.178.6; Tue, 31 Oct 2017 18:00:00 +0000 Received: from VE1EUR03FT010.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::208) by AM4PR08CA0002.outlook.office365.com (2603:10a6:200:1a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.178.6 via Frontend Transport; Tue, 31 Oct 2017 18:00:00 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; linaro.org; dkim=none (message not signed) header.d=none;linaro.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 VE1EUR03FT010.mail.protection.outlook.com (10.152.18.113) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.178.5 via Frontend Transport; Tue, 31 Oct 2017 18:00:00 +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; Tue, 31 Oct 2017 17:59:58 +0000 Date: Tue, 31 Oct 2017 18:02:00 -0000 From: James Greenhalgh To: , , , CC: Subject: Re: [01/nn] [AArch64] Generate permute patterns using rtx builders Message-ID: <20171031175952.GB34758@arm.com> References: <873764d8y3.fsf@linaro.org> <87y3nwbu8w.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <87y3nwbu8w.fsf@linaro.org> 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)(39860400002)(346002)(376002)(2980300002)(438002)(24454002)(377424004)(199003)(189002)(16586007)(6246003)(33656002)(106002)(189998001)(50466002)(4326008)(106466001)(7696004)(83506002)(23726003)(5660300001)(77096006)(6286002)(246002)(1076002)(104016004)(47776003)(2950100002)(2906002)(8676002)(6666003)(229853002)(305945005)(55016002)(4001150100001)(478600001)(86362001)(97756001)(8936002)(356003)(316002)(46406003)(26826003)(110136005)(2201001)(58126008)(36756003)(72206003)(50986999)(76176999)(54356999)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR08MB0136;H:nebula.arm.com;FPR:;SPF:Pass;PTR:fw-tnat.cambridge.arm.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;VE1EUR03FT010;1:cuwa762KkFkfDguCe+DvUQfUjoQlg7Z3AHk281KV9MxbLGmsxFgkSkPCm5fWLWJPePDrJzEoZXdkFDhuBMnurs2RA+WdFy0FUVT9j/NgvVyqi2gxrXmg463579Gec09O X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8f59e31-0fc9-4b17-e2ca-08d520893478 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002)(4534020)(4602075)(2017052603199);SRVR:AM3PR08MB0136; X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0136;3:Y5e1VWD14cINlk71oomibzB3ubK2oY4MNojadHCIZbjkATQEZgZEVAZZNfuUIgyPmsoJc/Nm0UqDIZQkJH062JxnF/UFGN4Ajnn5DNAIfjeRxSYocvcfo4EbRVCqnusmrbc05WhXnNF9wcCgt8f5qij21RLhoi9f1ZROej1zv6PoU10QBFtcJIWzf0VdORt7LCsICTopgY1uJipXY8MecL7MyM5FD+SSRgw3gC8+mwdD/r0jgTvdSsHg1wPS2eH9XsJQkeIpzj6zfcOW1Wx+z7HudFegwvw+cmpXSk6jaxcZlN0SGvefSTZyX8HsVVWYdXUOYmmDJUJDLcWOpuDHNXgcKsOokklVTrtWir9OG0Q=;25:SJHmHwMEHbNYoRxhas6CiMWQQ5bqJ0aLFdVJxbmbZHMrbAJ0wXiwaSbKz+FGw3jI08kUIbRDgRnAz5anSUwkboK/qT5pZCZ7PiVzkh9GEFIXLffKRkZYpLjHHYyzqnkl4wwYERyqOhkrZOnN4ThKDUxDtau46Mu575YAjMxHxWCmAWln+GP51req99+AjdTw80UFRulH5E38dLVHya796ZvL1w+9JHOkQaBdQFTSf9emSLKYax4xXmB3k3GF1Y/oBWW4z+C2W6ZUlGf877qzJ9J2lwDZBaGE9+C6vn9P55hpYYHDNdxbI6+8AqVwdYRPWc1o+MDCgMp3zNUZNOHaWIImR9dQ3HhmzQG0lzU+wN4= X-MS-TrafficTypeDiagnostic: AM3PR08MB0136: X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0136;31:B/G0JAkP/Tx+ib/SJQgcO/ys4o2ZVljRUenhjXphE4rh0gUcLGJg5ByjH2xsuuvUAXJ7+hwAWQVMGbIhe7hm/5gmgTQB/rg18qJmunn2khUKyVYLp4oz/t5kMEkKfmnQUqgR4NzETLULne6opNElNbRp1qz9Gg9agTM2rKPcy/D4EHztyuubBXUAx1BzJs1ieQmEGhYT8Ff9wgriHKW3GWEna8rEWztxk7e9bv4JxBY=;20:mmviyM2a393Ub1ApzAa7hVILXxtdR7DHzjIuEg8DoueLn+AHVhVKMZehRFki7IbxLog3zKCp2jvE3vvOuw+9BzvfDIUEOk6Sc7rXI8li20KviukSiCwfn6btDJlVoZRbEM2bLGNMetC98gQITx40/qjUWqvATxH0Nzi7Qn1D5YjD6fZCD7/tRwsQLmZTn7ZAwSxyv4Haj76+/yxSQ0WJpFKvMhzE1yYebQYQ/sWIbRum4DK5MInWLTyT2djZ45/A;4:ktheC/2q1g76bMI85ajayU5iJaefxUz9ZIO6maagvMpI6PGBlniVUD3hcfmALRsCd3VJf1QcGRby4NUXTs1HQCHc9SX1GmZWP2UJqFbXqFjpuEScTPz3PMGzqoqHCMmxND+9br3Pqya5X9Mr/vK4wIev+R1YC4wbzHO2BLu7V5+VHrI84MLQg5mw/JRHORISW0n0NBfaZlblaRQeELwRFcPFaZ3XGEmYDTgeUUVguwhEbDtsbJvEZphAKqzwCovcbtaEWhmVBuQ/7iypFUhVPYfz2NmKc/Zdfl+N2w8WuF6tpHTDWWXx6mH2ClRQNKDC NoDisclaimer: True X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(3231020)(10201501046)(93006095)(93004095)(6055026)(6041248)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(20161123560025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM3PR08MB0136;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM3PR08MB0136; X-Forefront-PRVS: 04772EA191 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM3PR08MB0136;23:WqKUHwnQdse0zlTmBqOiUDX9eRdar/OAfkxZVujjf?= =?us-ascii?Q?la7MeKXVg93jORNT0ExPYdnZ4YwfNnwURfmG/8dpw/mz0bhphaROGH3hXFr2?= =?us-ascii?Q?HYyyil3YSacUy5zgkp9WEXYmVPswD+6HZu2jK9kWZNzEpmrfgRmtARBgVhmr?= =?us-ascii?Q?ck6W35TUC4YrwHoxzwQuYNNaeJrcx+lZ/jrenWhtbaX4xYVbnqqP2eBnwipw?= =?us-ascii?Q?DFcg7EeHIMVJHRgW3SYB75kutuNh6yuZBjwxKFmwdsvhTW4Nv+xJJkzHXh4Y?= =?us-ascii?Q?+ZsuPZ1sk952HRrY6Go+OSOvQ83hTV+F47Z8I/lqiX+ePAREHNrCCIY5rE84?= =?us-ascii?Q?x1cz+EJuprpGPuY91aveJDPAFgzUpeGcdL6O9JmNKwBeZsx3bGMnxv8/52wu?= =?us-ascii?Q?Kh7wOI9vWu6gJsd2iypzPSQiFif8C+C/6Q5CiUifxf4HNhBb1WapF2tf2Mor?= =?us-ascii?Q?aqh8Aboej7YkTkSzdVjYUSY7AwVnhHeJgG8ZO1oFZpUPA7n1a3fRfdle8Lq2?= =?us-ascii?Q?yw6jiE7w1Sj9OZaa/8S1Hr3gbO4yE0YjUg6pftgLs9RrwqEUG6FTTxKZ5hKC?= =?us-ascii?Q?2q2AT1pzs+qLOmDt1muhhezPk5tVagE/XqcnVJk5zV16IzUtLJKlhAzmzN6P?= =?us-ascii?Q?cdACH60dV/wSynqnPHfKsoWjGhg9zXv//CSWcA0j++HGdRVj7ioEsc15u6KQ?= =?us-ascii?Q?jmGXWAdSrFclO5sDJN+MXId+nu+dqAoPO80+rryFfH/gm4KRgxPMx7xucTES?= =?us-ascii?Q?JdbH3CU12IvV6A+HNcoMe8mbioO8b1N55/v7InPHelOUOzSkJDvl9BZA2Tyy?= =?us-ascii?Q?bxi4MAmSnVW0Jg1hvxQAKZfmfOX/3NHp6A3nHop1k7HgjWmisVJM494oaw3L?= =?us-ascii?Q?nCxcga6egW3HQ40tRZUCzkSpIMytbDzJuZmKwvoMCA+dItAMB8OZ5kp98jtT?= =?us-ascii?Q?MAgKJTRIItmeYGa4ocYb6jhPM3VaKKnATxyoP3qB4at58qw+ppTt7Xs5IMFN?= =?us-ascii?Q?yo3KU4DUKMm1YSjWj9e6HdxTcvssNV4M0Tio/zT1RTiC9CRX08r0ZBfgv/sY?= =?us-ascii?Q?lsiP5Nw5oZ8SkTHbXFUNYw64kLbCNBpmiSnpkvA8kU8rnsIy4LEe/RTQ+yIC?= =?us-ascii?Q?tkWsWGShbOGmpUFa6ZCecVlZsMB3emEXsMxxZRCCzXxuuYilCodhhFzrl11j?= =?us-ascii?Q?3U59WJJm8mAn10AZKJ6rFVyky0T5awlcBrEIaElUmo0QBHMkW+msHpv8Q=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM3PR08MB0136;6:wZtub0LhQQV3O4IOogI0Nn1cXP3HBIzNOdANIeOznEiZWzh51wXZNiSmfTg3jRkFhqAqO6egJrir0Vlp+2LKrQocHEmITxoX6UrYR5RtM69tkLISG1YWr8v4I2D5m5XXQLblxGFGggEiaaUBQtxNSYCABRIOAuk3bI5SU9LPCxXgYgtpgak+6JWbAn0k1X1LPMvrxcr+E1lWlZfOB+DOZNMwmh3bpaV3xieJ3neLweprKIPKEJWHpUYgRJA694mcG4DYEf40V9kRM82VMQS5+eBqkzeepOiofvkiWKwX8ktEMT4C/aOUf6RnvIH9znuJlYkyNGYp5E21lfWAYoc2SqGwIUbU/r9bk/hTH3TxYYA=;5:CAMwn9Nr/h5G9DeEncHwvnxrL+AlaRFU6LyYLL3MPGeiMyuvBifHhYlcPyyCjp26v2dfWzh0vxBbbr+Y+zK2WCUEi5ztp8HL5cBOCuqjNEnCoasBdflMo4hr0GJ6doKjc9N0JYU/9LumZJnR/pnmFdBSDQq0H9Ojz3e97SvlYac=;24:kfNz3KrqJ/eRI6AYxtxct3+T/PsiVdS4HY2KfpzyD9sqLo5GBOaYkiqSnycQNuCd6g9+7/MUn+nFYY0yXCSMEyhUVhQXkh//6Jkrt/2KD3Y=;7:3VZRb2qUl+3mA2NhaQXh1r96DnMvDJQ/mYPZTSnbiPN3vWOZRimRP5HeayrQkxmLKK3Iyz2HCAYAcdoALBQZYP/AiWF4ivA123vMtXyoTYsr27TJfpKljaCSE7hhvloKS7ORYl7158PM9oLi5a2EO3sgP+1JJEkIliAZ57CGZKum99538+n5rLQGa4Iwu9C97UwI4CNeG4XYHfOj0eDofSkU/CRPzJyA3Bsu8GxDdPao0Umbno9UUepp2zwo1WYh SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2017 18:00:00.2926 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b8f59e31-0fc9-4b17-e2ca-08d520893478 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: AM3PR08MB0136 X-IsSubscribed: yes X-SW-Source: 2017-10/txt/msg02355.txt.bz2 On Fri, Oct 27, 2017 at 02:22:39PM +0100, Richard Sandiford wrote: > This patch replaces switch statements that call specific generator > functions with code that constructs the rtl pattern directly. > This seemed to scale better to SVE and also seems less error-prone. > > As a side-effect, the patch fixes the REV handling for diff==1, > vmode==E_V4HFmode and adds missing support for diff==3, > vmode==E_V4HFmode. > > To compensate for the lack of switches that check for specific modes, > the patch makes aarch64_expand_vec_perm_const_1 reject permutes on > single-element vectors (specifically V1DImode). OK. Would you mind placing a comment somewhere near both the unspecs, and the patterns using these unspecs to warn that the calls constructing the RTX here *MUST* be kept in sync? Some of these patterns are probably used rarely enough that we could easily miss an unreconizable insn. Reviewed-by: James Greenhalgh Thanks, James > > > 2017-10-27 Richard Sandiford > Alan Hayward > David Sherwood > > gcc/ > * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp) > (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev) > (aarch64_evpc_dup): Generate rtl direcly, rather than using > named expanders. > (aarch64_expand_vec_perm_const_1): Explicitly check for permutes > of a single element. >