This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [i386] Scalar DImode instructions on XMM registers
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Ilya Enkovich <enkovich dot gnu at gmail dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Fri, 24 Apr 2015 12:14:46 +0200
- Subject: Re: [i386] Scalar DImode instructions on XMM registers
- Authentication-results: sourceware.org; auth=none
- References: <CAMbmDYYT6zE86-xAYs08VV2nWDK6Np+qEYoj+6oGM276MtBuPQ at mail dot gmail dot com> <CAFULd4YVruAT=RHgENhBcuKZgE6FvRa=8aR6WygKm9F4GjnJyg at mail dot gmail dot com> <CAFULd4aycTg3bYKx7c9GXpgiY4WeqmLh1f5HFYL6K+K35QmTWA at mail dot gmail dot com> <CAMbmDYaDrCnDCnQfP0toV87pi_mE_pbPCP6M-FEkGNDAtWKFUA at mail dot gmail dot com>
On Fri, Apr 24, 2015 at 12:09 PM, Ilya Enkovich <enkovich.gnu@gmail.com> wrote:
>>>> I was looking into PR65105 and tried to generate SSE computation for a
>>>> simple 64bit a + b + c sequence. Having no scalar integer instructions in
>>>> SSE I have to use vector variants.
>>>
>>> Is this approach really better that having two add/addc instructions?
>>
>> FYI, V1DI mode was introduced because XMM shift insn were used to
>> shift DImode values. The cost of moves from/to integer DImode reg pair
>> was disastrous.
>>
>> Uros.
>
> Does it mean I have to add V1DI instructions for all opcodes I want to
> transform (add,sub,mul,or,and, etc.)?
No.
Please try to generate paradoxical subreg (V2DImode subreg of V1DImode
pseudo). IIRC, there is some functionality in the compiler that is
able to tell if the highpart of the paradoxical register is zeroed.
Uros.