Displaying 3 results from an estimated 3 matches for "i32v4".
Did you mean:
f32v4
2005 May 11
0
[LLVMdev] avoid live range overlap of "vector" registers
...ggest that you implement it in the
context of the SelectionDAG framework that all of the code generators
either currently use or are moving to. I updated the documentation here:
http://llvm.cs.uiuc.edu/ChrisLLVM/docs/ExtendingLLVM.html#intrinsic
This will allow you to do something like this:
%i32v4 = type <4 x uint>
%f32v4 = type <4 x float>
declare %f32v4 %swizzle(%f32v4 %In, %i32v4 %Form)
%G = external global %f32v4
void %test() {
%A = load %f32v4* %G
%B = call %f32v4 %swizzle(%f32v4 %A, %i32v4 <uint 1, uint 1, uint 1, uint 1>) ;; splat XYZW -> Y...
2005 May 11
2
[LLVMdev] avoid live range overlap of "vector" registers
On Tue May 10 2005, Chris Lattner wrote:
>On Tue, 10 May 2005, Morten Ofstad wrote:
>> 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
2005 May 11
2
[LLVMdev] avoid live range overlap of "vector" registers
...> context of the SelectionDAG framework that all of the code generators
> either currently use or are moving to. I updated the documentation
> here: http://llvm.cs.uiuc.edu/ChrisLLVM/docs/ExtendingLLVM.html#intrinsic
>
> This will allow you to do something like this:
>
> %i32v4 = type <4 x uint>
>
> %f32v4 = type <4 x float>
>
> declare %f32v4 %swizzle(%f32v4 %In, %i32v4 %Form)
>
> %G = external global %f32v4
>
> void %test() {
> %A = load %f32v4* %G
> %B = call %f32v4 %swizzle(%f32v4 %A, %i32v4 <uint 1, uin...