RE: [PATCH][GCC][Aarch64]: Fix for PR94880: Failure to recognize andn pattern

2020-06-16 Thread Przemyslaw Wirkus
On 12 June 2020 20:55 Andrew Pinski wrote: > Subject: Re: [PATCH][GCC][Aarch64]: Fix for PR94880: Failure to recognize > andn pattern > > On Fri, Jun 12, 2020 at 7:50 AM Przemyslaw Wirkus > wrote: > > > > Hi all, > > > > Pattern "(x | y) - y" c

Re: [PATCH][GCC][Aarch64]: Fix for PR94880: Failure to recognize andn pattern

2020-06-12 Thread Andrew Pinski via Gcc-patches
On Fri, Jun 12, 2020 at 7:50 AM Przemyslaw Wirkus wrote: > > Hi all, > > Pattern "(x | y) - y" can be optimized to simple "(x & ~y)" andn pattern. Isn't it better to do this transformation on the gimple level and not in a target specific form? Or at least do it in the RTL level in a generic form

[PATCH][GCC][Aarch64]: Fix for PR94880: Failure to recognize andn pattern

2020-06-12 Thread Przemyslaw Wirkus
Hi all, Pattern "(x | y) - y" can be optimized to simple "(x & ~y)" andn pattern. So, for the example code: $ cat main.c int f_i(int x, int y) { return (x | y) - y; } long long f_l(long long x, long long y) { return (x | y) - y; } typedef int v4si __attribute__ ((vector_size (1