Re: [PATCH][2/2] More abstraction penalty removal for PR92645

2019-12-03 Thread Richard Biener
On Tue, 3 Dec 2019, Richard Biener wrote: > On Mon, 2 Dec 2019, Richard Biener wrote: > > > On December 2, 2019 4:27:47 PM GMT+01:00, Alexander Monakov > > wrote: > > >On Mon, 2 Dec 2019, Richard Biener wrote: > > > > > >> +typedef long long v4di __attribute__((vector_size(32))); > > >> +struct

Re: [PATCH][2/2] More abstraction penalty removal for PR92645

2019-12-02 Thread Richard Biener
On Mon, 2 Dec 2019, Richard Biener wrote: > On December 2, 2019 4:27:47 PM GMT+01:00, Alexander Monakov > wrote: > >On Mon, 2 Dec 2019, Richard Biener wrote: > > > >> +typedef long long v4di __attribute__((vector_size(32))); > >> +struct Vec > >> +{ > >> + unsigned int v[8]; > >> +}; > >> + > >

Re: [PATCH][2/2] More abstraction penalty removal for PR92645

2019-12-02 Thread Richard Biener
On December 2, 2019 4:27:47 PM GMT+01:00, Alexander Monakov wrote: >On Mon, 2 Dec 2019, Richard Biener wrote: > >> +typedef long long v4di __attribute__((vector_size(32))); >> +struct Vec >> +{ >> + unsigned int v[8]; >> +}; >> + >> +v4di pun (struct Vec *s) >> +{ >> + v4di tem; >> + __builtin

Re: [PATCH][2/2] More abstraction penalty removal for PR92645

2019-12-02 Thread Alexander Monakov
On Mon, 2 Dec 2019, Richard Biener wrote: > +typedef long long v4di __attribute__((vector_size(32))); > +struct Vec > +{ > + unsigned int v[8]; > +}; > + > +v4di pun (struct Vec *s) > +{ > + v4di tem; > + __builtin_memcpy (&tem, s, 32); > + return tem; > +} > + > +/* We're expecting exactly tw

[PATCH][2/2] More abstraction penalty removal for PR92645

2019-12-02 Thread Richard Biener
This recovers some of the nearly dead code in gimple_fold_builtin_memory_op by allowing a rewrite of memcpy with a properly aligned source or destination decl. In particular this handles register typed vars to be tranformed (and later rewritten into SSA form). Together with 1/2 the testcase th