This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [i386] Scalar DImode instructions on XMM registers


On Fri, Apr 24, 2015 at 12:14 PM, Uros Bizjak <ubizjak@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.

Probably you can even generate paradoxical V2DImode subreg of DImode.
I'm not sure if in this case register allocator degenerates the mode
of resulting hard register to DImode, it is worth a try.

Uros.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]