Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main()
- }
- float x[3];
- float y[3];
- float distance;
- #define distance_sse(arg1, arg2)\
- __asm__ __volatile__(\
- "movss %1, %%xmm0\n"\
- "movss %2, %%xmm1\n"\
- "movss %3, %%xmm2\n"\
- "movss %4, %%xmm3\n"\
- "movss %6, %%xmm4\n"\
- "movss %6, %%xmm5\n"\
- "subps %%xmm3, %%xmm0\n"\
- "subps %%xmm4, %%xmm1\n"\
- "subps %%xmm5, %%xmm2\n"\
- "mulps %%xmm0, %%xmm0\n"\
- "mulps %%xmm1, %%xmm1\n"\
- "mulps %%xmm2, %%xmm2\n"\
- "addps %%xmm1, %%xmm0\n"\
- "addps %%xmm2, %%xmm0\n"\ "sqrtss %%xmm0, %%xmm1\n"\
- "movss %%xmm1, %0\n"\
- :"=m"(distance) \
- :"m"(arg1[0]),"m"(arg1[1]),"m"(arg1[2]),"m"(arg2[0]),"m"(arg2[1]),"m"(arg2[2])\
- ;(
- x[0]=11;
- x[1]=2;
- x[2]=3;
- y[0]=-1;
- y[1]=-2;
- y[2]=-33;
- distance_sse(x,y);
- printf("%f", distance);
- {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement