This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][ARM] Remove Thumb-2 iordi_not patterns
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: nd <nd at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>
- Date: Mon, 4 Sep 2017 19:56:30 +0000
- Subject: Re: [PATCH][ARM] Remove Thumb-2 iordi_not patterns
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco dot Dijkstra at arm dot com;
- Nodisclaimer: True
- References: <AM5PR0802MB2610DE3C18DF721DDC683376837C0@AM5PR0802MB2610.eurprd08.prod.outlook.com>,<AM5PR0802MB2610B76853C756967EDB8983831B0@AM5PR0802MB2610.eurprd08.prod.outlook.com>,<VI1PR0802MB262186A584318BD30106F7DE83C20@VI1PR0802MB2621.eurprd08.prod.outlook.com> <AM5PR0802MB26108F8651F610246862D09083DC0@AM5PR0802MB2610.eurprd08.prod.outlook.com>,<59AD828C.4060801@foss.arm.com> <DB6PR0801MB2053D3487CA3AF8BA0CE048B83910@DB6PR0801MB2053.eurprd08.prod.outlook.com>,<59AD8987.6070302@foss.arm.com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Kyrill Tkachov wrote:
> > After Bernd's change almost all DI mode instructions are split before register
> > allocation. So instructions using DI mode no longer exist and thus these
> > extend variants can never be matched and are thus redundant.
>
> Bernd's patch splits them when we don't have NEON. When NEON is
> available though
> they still maintain the DImode so we'd still benefit from these
> transformations, no?
While you're right it may be possible to trigger these instructions, ORN is already
so rare that it is hardly beneficial to have an instruction for it, and ORN of an extended
value never ever happens. So there is absolutely no benefit in keeping these versions
temporarily until we fix Neon too.
For the Neon case my proposal is to use the VFP early expansion (so you get an efficient
expansion by default in all cases). You can then use -mneon-for-64bits to enable the use
of Neon instructions (which may be even better in some cases). There are quite a few
patches in this series already and more to come soon!
Wilco