我目前正在对MSVC下的一些C代码进行优化,其中进行了一些sin()和cos()计算。是否有任何接口可以在MSVC下调用__libm_sse2_sincos?
我使用SSE实现比如:
a = _mm_set_pd(cos(w),sin(w));
然而,当我后来查拆卸代码,我发现,微软编译器解释COS(W)和sin(W)如下:
call __libm_sse2_cos
...
call __libm_sse2_sin
单独调用cos和sin。但我希望编译器调用__libm_sse2_sincos来同时计算相同弧度的sin和cos。
那么我可以告诉编译器这样做吗?或者任何接口在MSVC下调用它们?在Linux下如何?
非常感谢您的帮助。
我猜sincos()是GNU的一个函数,我目前正在使用MSVC,这就是为什么我会问这个问题。不过谢谢你的帮助。 – Kailai
好的 - 你问的问题也是Linux,'sincos'在Linux(以及大多数其他非Microsoft操作系统)中是标准的。 –
OK - thx for Linux part :)现在让我们继续讨论MSVC,我实际上尝试了在MSVC下将'call __libm_sse2_sincos'作为ASM的代码,只有错误“Undefined label:__libm_sse2_sincos” – Kailai