[LLVMdev] avoid live range overlap of "vector" registers

Chris Lattner sabre at nondot.org
Tue May 10 07:56:16 PDT 2005


On Tue, 10 May 2005, Morten Ofstad wrote:
>> If you want to access each part individually, I would suggest doing the 
>> tedious thing and including them all.  The IA64 backend has 3*128 
>> registers, so there is precedent for this...
>
> Actually, I think it would be better to define the registers as a machine 
> value type for packed float x4, and providing some 'extract' and 'inject' 
> instructions to access individual components... There should also be a 
> 'shuffle' instruction (corresponding to the SSE PSHUF instruction) to change 
> the individual components around.

You're right, that would be a better way to go.  To start, I would suggest 
adding extract/inject intrinsics (not instructions) because it is easier. 
If you're interested in doing this, there is documentation for this here:

http://llvm.cs.uiuc.edu/docs/ExtendingLLVM.html

-Chris

-- 
http://nondot.org/sabre/
http://llvm.cs.uiuc.edu/




More information about the llvm-dev mailing list