I try using __svml_sin2 in inline ASM like the way compiler does. A code snippet as following,
"vmovupd (%1), %%ymm0\n\t" "call __svml_sin4\n\t" "vmovupd %%ymm0, (%0)\n\t" "sub $1, %%rax\n\t" "jnz 3b\n\t"
The program can build. But, the running output values are wrong.
Then I use GDB to locate the problem. It seems that, the SVMLfunction __svml_sin4 uses the general registers rax,rbx,rcx,rdx and so on,without save the scene. So I want to save the registers modified by SVML myself. The problem is, I do not know exactly which registers are modified. Maybe different SVML function use different registers.
So, anybody knows how to use the svml in inline assembly correctly?
thanks in advance for any answer.