This is the mail archive of the
mailing list for the GCC project.
Re: [i386] Scalar DImode instructions on XMM registers
- From: Jeff Law <law at redhat dot com>
- To: Vladimir Makarov <vmakarov at redhat dot com>, Ilya Enkovich <enkovich dot gnu at gmail dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>, Uros Bizjak <ubizjak at gmail dot com>, Richard Henderson <rth at redhat dot com>, Jan Hubicka <hubicka at ucw dot cz>
- Date: Thu, 21 May 2015 14:23:47 -0600
- Subject: Re: [i386] Scalar DImode instructions on XMM registers
- Authentication-results: sourceware.org; auth=none
- References: <CAMbmDYaDrCnDCnQfP0toV87pi_mE_pbPCP6M-FEkGNDAtWKFUA at mail dot gmail dot com> <CAFULd4amXWDT45oUNqi2cLL2Tec-kMJm7Kz301myZSWZw-3H7Q at mail dot gmail dot com> <alpine dot DEB dot 2 dot 11 dot 1504241222020 dot 1687 at laptop-mg dot saclay dot inria dot fr> <CAMbmDYYfq-RVYa0MwrGH_DpnV7psPHKZpxaouMuq_nsOPeO_ug at mail dot gmail dot com> <20150425013239 dot GB719 at atrey dot karlin dot mff dot cuni dot cz> <CAMbmDYbN7Zk9gg=UNRP3O8L8e5qxiK6jXi-SLEVDoMmBbqLXFQ at mail dot gmail dot com> <CAMbmDYY+a=LeqTcajW=g=e01q=R5ALykhFLwF0ypcAhKjnv0RA at mail dot gmail dot com> <555B552A dot 8010008 at redhat dot com> <20150520081738 dot GE47912 at msticlxl57 dot ims dot intel dot com> <555D50A3 dot 2000206 at redhat dot com> <20150521095442 dot GH47912 at msticlxl57 dot ims dot intel dot com> <555E2D37 dot 30107 at redhat dot com>
On 05/21/2015 01:08 PM, Vladimir Makarov wrote:
On 05/21/2015 05:54 AM, Ilya Enkovich wrote:
Thanks. For me it looks like an inheritance bug. It is really hard
>to fix the bug w/o the source code. Could you send me your patch in
>order I can debug RA with it to investigate more.
Sure! Here is a patch and a testcase. I applied patch to r222125.
Cmd to reproduce:
gcc -m32 -msse4.2 -O2 pr65105.c -S -march=slm -fPIE
The problem is in sharing a subreg in different insns. Pseudo should be
shared but not their subregs.
[ ... ]
If their code is sharing subregs, then most definitely that code is
wrong. GCC has very well defined rtx sharing rules that are defined in
the developer documentation.
So, Ilya, to solve the problem you need to avoid sharing subregs for the
correct LRA/reload work.