Re: [PATCH] vec_merge + vec_duplicate + vec_concat simplification

2017-07-24 Thread James Greenhalgh
On Tue, Jun 06, 2017 at 09:35:10AM +0100, Kyrill Tkachov wrote: > Hi all, > > Another vec_merge simplification that's missing is transforming: > (vec_merge (vec_duplicate x) (vec_concat (y) (z)) (const_int N)) > into > (vec_concat x z) if N == 1 (0b01) or > (vec_concat y x) if N == 2 (0b10) > >

Re: [PATCH] vec_merge + vec_duplicate + vec_concat simplification

2017-07-18 Thread Kyrill Tkachov
On 05/07/17 16:14, Kyrill Tkachov wrote: On 27/06/17 23:28, Jeff Law wrote: On 06/06/2017 02:35 AM, Kyrill Tkachov wrote: Hi all, Another vec_merge simplification that's missing is transforming: (vec_merge (vec_duplicate x) (vec_concat (y) (z)) (const_int N)) into (vec_concat x z) if N == 1

Re: [PATCH] vec_merge + vec_duplicate + vec_concat simplification

2017-07-05 Thread Kyrill Tkachov
On 27/06/17 23:28, Jeff Law wrote: On 06/06/2017 02:35 AM, Kyrill Tkachov wrote: Hi all, Another vec_merge simplification that's missing is transforming: (vec_merge (vec_duplicate x) (vec_concat (y) (z)) (const_int N)) into (vec_concat x z) if N == 1 (0b01) or (vec_concat y x) if N == 2

Re: [PATCH] vec_merge + vec_duplicate + vec_concat simplification

2017-06-27 Thread Jeff Law
On 06/06/2017 02:35 AM, Kyrill Tkachov wrote: > Hi all, > > Another vec_merge simplification that's missing is transforming: > (vec_merge (vec_duplicate x) (vec_concat (y) (z)) (const_int N)) > into > (vec_concat x z) if N == 1 (0b01) or > (vec_concat y x) if N == 2 (0b10) > > For the testcase

Re: [PATCH] vec_merge + vec_duplicate + vec_concat simplification

2017-06-06 Thread Marc Glisse
On Tue, 6 Jun 2017, Kyrill Tkachov wrote: Another vec_merge simplification that's missing is transforming: (vec_merge (vec_duplicate x) (vec_concat (y) (z)) (const_int N)) into (vec_concat x z) if N == 1 (0b01) or (vec_concat y x) if N == 2 (0b10) Do we have a canonicalization somewhere that

[PATCH] vec_merge + vec_duplicate + vec_concat simplification

2017-06-06 Thread Kyrill Tkachov
Hi all, Another vec_merge simplification that's missing is transforming: (vec_merge (vec_duplicate x) (vec_concat (y) (z)) (const_int N)) into (vec_concat x z) if N == 1 (0b01) or (vec_concat y x) if N == 2 (0b10) For the testcase in this patch on aarch64 this allows us to try matching during