std.simd module

a a at a.com
Mon Feb 6 07:13:08 PST 2012


> True, I have only been working in x86 GDC so far, but I just 
> wanted to get
> feedback about my approach and API design at this point.
> It seems there are no serious objections, I'll continue as is.

I have one proposal about API design of matrix operations. Maybe 
there could be functions that would take row vectors as 
parameters in addition to those that take matrix structs. That 
way one could call matrix functions on data that isn't stored as 
matrix structures without copying. So for example for the 
transpose function there would also be a function that would be 
used like this (a* are inputs and r* are outputs):

transpose(aX, aY, aZ, aW, rX, rY, rZ, rW);

Maybe those functions could be used to implement the functions 
that take and return structs.

I also think that interleave and deinterleave operations would be 
useful. For four element float vectors those can be implemented 
with only one instruction at least for SSE (using unpcklps, 
unpckhps and shufps) and  NEON (using vuzp and vzip).

> I have an
> ARM compiler too now, so I'll be implementing/testing against 
> that as
> reference also.

Could you please tell me how did you get the ARM compiler to work?


More information about the Digitalmars-d mailing list