Re: __simd_sto confusion

2015-10-04 Thread Benjamin Thaut via Digitalmars-d-learn
On Saturday, 3 October 2015 at 14:47:02 UTC, Nachtraaf wrote: I'm trying to create some linear algebra functions using simd intrinsics. I watched the dconf 2013 presentation by Manu Evans but i'm still confused about some aspects and the following piece of code doesn't work. I'm trying to copy

Re: __simd_sto confusion

2015-10-04 Thread Nachtraaf via Digitalmars-d-learn
That's a shame. I've read that each compiler has his own quirks and not support everything dmd supports. I do want to keep the code as portable as possible. Guess I'll try using inline assembler and runtime checks for the right cpu architecture. Thanks for the help people.

Re: __simd_sto confusion

2015-10-03 Thread Marco Leise via Digitalmars-d-learn
This is a bug in overload resolution when __vector(void[16]) is involved. You can go around it by changing float4 to void16, only to run into an internal compiler error: backend/gother.c 988 So file a bug for both @ issues.dlang.org Also it looks like DMD wants you to use the return value of the

Re: __simd_sto confusion

2015-10-03 Thread Nachtraaf via Digitalmars-d-learn
On Saturday, 3 October 2015 at 15:39:33 UTC, Marco Leise wrote: This is a bug in overload resolution when __vector(void[16]) is involved. You can go around it by changing float4 to void16, only to run into an internal compiler error: backend/gother.c 988 So file a bug for both @

Re: __simd_sto confusion

2015-10-03 Thread Marco Leise via Digitalmars-d-learn
Am Sat, 03 Oct 2015 23:42:22 + schrieb Nachtraaf : > I changed the type of result to void16 like this: > > float dot_simd1(float4 a, float4 b) > { > void16 result = __simd(XMM.DPPS, a, b, 0xFF); > float value; > __simd_sto(XMM.STOSS, value, result); >