[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