Thanks for the hints! gen_movv2di seems to handle the situation well: it calls ix86_expand_vector_move which honors alignment and emits correct code. However, it was very convenient to use gen_strmov for moves in any mode - I just needed to define the biggest mode with which a piece of memory could be copied. Probably, I'll need to implement such 'universal'-move function and stop using gen_strmov, that should solve the problem.
On 22 March 2013 23:47, H.J. Lu <hjl.to...@gmail.com> wrote: > On Fri, Mar 22, 2013 at 9:58 AM, Michael Zolotukhin > <michael.v.zolotuk...@gmail.com> wrote: >>> You can't use aligned vector move if alignment is unknown or >>> not properly aligned. >> Yes, sure. But I just emit V2DI move for an operands, which are >> aligned to 64-bit (not 128-bit!) - and it's encoded into movdqa which > > Can you try gen_movv2di for V2DI move? > > -- > H.J. -- --- Best regards, Michael V. Zolotukhin, Software Engineer Intel Corporation.