Am Sat, 03 Oct 2015 23:42:22 +0000 schrieb Nachtraaf <nachtraa...@gmail.com>:
> 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); > return value; > } > > and for me this code compiles and runs without any errors now. > I'm using DMD64 D Compiler v2.068 on Linux. If you got an > internal compiler error that means that it's a compiler bug > though I have no clue what. Did you try the same thing I did or > casting the variable? > I guess I should file a bugreport for overload resolution if it's > not a duplicate for now? Yes. At some point the intrinsics will need a more thorough rework. Currently none of those that return void, int or set flags work as they should. -- Marco