Simd instructions
bearophile
bearophileHUGS at lycos.com
Thu Jul 18 08:16:20 PDT 2013
As a final step to compute the product of two complex numbers I
perform a simd operation on double2:
x3 = [x3.array[1] - x2.array[1], x3.array[0] + x2.array[0]];
But ldc2 compiles that quite badly (I don't know who's to blame,
if necessary I will open a LLVM bug report), so I have tried to
use an instruction addsubpd.
To do it I have imported ldc.gccbuiltins_x86 and then I use:
x3 = __builtin_ia32_addsubpd(x3, x2);
but ldc2 gives me:
LLVM ERROR: Cannot select: intrinsic %llvm.x86.sse3.addsub.pd
Stack dump:
0. Running pass 'X86 DAG->DAG Instruction Selection' on
function
'@"\01__D12complex_mul217__T8compMul6Vk12Z8compMul6FNaNbNfKG12NhG2dKG12NhG2dKG12NhG2dZv"'
Can you help me?
Bye,
bearophile
More information about the digitalmars-d-ldc
mailing list