This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix for mov<mode>_internal pattern
- From: Michael Zolotukhin <michael dot v dot zolotukhin at gmail dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Uros Bizjak <ubizjak at gmail dot com>
- Date: Sat, 23 Mar 2013 12:26:03 +0400
- Subject: Re: [PATCH] Fix for mov<mode>_internal pattern
- References: <CANtU07-kZrSBt8_nd2Uw4rhQp_iMmH4p8HkYNR=8wtaaRfCXKg at mail dot gmail dot com> <CAMe9rOocMYTD6dM7P99C-m9EFPP6eu4KDMwNm8KXsrdv50dXUA at mail dot gmail dot com> <CANtU079VFL7wesXnSvsbShwiBSQg0F97c0SWW8Ftm4zmxCFccA at mail dot gmail dot com> <CAMe9rOqCDMVPVwgom5Si2PeQC5xn3YcbtNb-R1YjzA+==qiBnw at mail dot gmail dot com> <CANtU079st3BQnkvmbWt9SMmob+ddmyswCN-P24-cRDNfyYFG6Q at mail dot gmail dot com> <CAMe9rOpOwcpMuMqmJu3rBM=UV0vnvDRKgaquqP+EtpMacB2LdQ at mail dot gmail dot com>
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.tools@gmail.com> wrote:
> On Fri, Mar 22, 2013 at 9:58 AM, Michael Zolotukhin
> <michael.v.zolotukhin@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.