https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90204

--- Comment #12 from rguenther at suse dot de <rguenther at suse dot de> ---
On Thu, 25 Apr 2019, hjl.tools at gmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90204
> 
> --- Comment #11 from H.J. Lu <hjl.tools at gmail dot com> ---
> (In reply to Hongtao.liu from comment #7)
> > Yes, C++ with NRV optization, so the alignment of <retval>(res) is 4.
> > and the alignment of res is 16 in C.
> > 
> > g++/test.i.158t.vect:
> > 
> > ../test.i:8:23: note:   recording new base alignment for &<retval>
> >   alignment:    4
> >   misalignment: 0
> > 
> > gcc/test.i.158t.vect:
> > 
> > ../test.i:8:5: note:   recording new base alignment for &res
> >   alignment:    16
> >   misalignment: 0
> > 
> > When alignment of res is 16, that triggers loop peeling of vectorization.
> > 
> 
> Why does struct v have different alignments in C and C++?

I think we re-align automatic variables but obviously cannot do the
same for incoming DECL_RESULT.

Reply via email to