On Mon, 2 Dec 2019, Richard Biener wrote:

> On December 2, 2019 4:27:47 PM GMT+01:00, Alexander Monakov 
> <amona...@ispras.ru> 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_memcpy (&tem, s, 32);
> >> +  return tem;
> >> +}
> >> +
> >> +/* We're expecting exactly two stmts, in particular no
> >BIT_INSERT_EXPR
> >> +   and no memcpy call.
> >> +    _3 = MEM <vector(4) long long int> [(char * {ref-all})s_2(D)];
> >> +    return _3;  */
> >
> >So just to make sure I understand correctly: the type in angle brackets
> >does
> >not imply 256-bit alignment, and this access has implied alignment of
> >just 
> >32 bits, which is deduced from the type of s_2, right?
> 
> Yes. I should have quoted the more obvious -gimple IL dump instead. 

  _3 = __MEM <vector(4) long long int, 8> ((char * {ref-all})s_2(D));

so it's actually only 8 bits alignment.

Richard.

Reply via email to