Am 22.09.2011 02:38, schrieb Walter Bright:
nsightly vector classes in C++, but fortunately using vendor
specific compiler intrinsics usually leads to decent code
generation. I can currently imagine an equally ugly (possibly worse)
hardware vector library in D, if it's even possible. But perhaps
I've missed something here?

Your C++ vector code should be amenable to translation to D, so that
effort of yours isn't lost, except that it'd have to be in inline asm
rather than intrinsics.

I recently tried that, and I couldn't do it because D has no way of aligning structs on the stack. Manually allocating the neccessary aligned memroy is also not always possible because it can not be done for compiler temporary variables:

vec4 v1 = func1();
vec4 v2 = func2();
vec4 result = (v1 + v2) * 0.5f;

Even if I manually allocate v1,v2 and result, the temporary variable that the compiler uses to compute the expression might be unaligned. That is a total killer for SSE optimizations because you can not hide them away.

Does DMC++ have __declspec(align(16)) support?

--
Kind Regards
Benjamin Thaut

Reply via email to