之前我已经为SSE做了一些内联ASM编码,即使对于不了解ASM的人来说,它也不是太。但我注意到MS还提供了包含许多此类特殊指令的内在函数。
是否存在特定的性能差异,或者为什么应该在另一个之上使用的任何其他强有力的理由?
要从标题重复,这是专门涵盖VC ++ 2008为非托管本机C ++公开的内在函数。
答案 0 :(得分:4)
Visual C ++ for x64中没有内联汇编。内在函数也可以在x64上使用。如果您想将代码移植到x64,则必须使用内在函数。
答案 1 :(得分:3)
一般情况下,最好使用内在函数 - 它对程序员来说效率更高,而且好的编译器(例如Intel ICC)会在寄存器分配,指令调度等方面做得不错。微软编译器在这方面不是很好但是它可能仍然有一个合理的工作 - 如果你需要获得更好的性能,你可以随后切换到ICC。
答案 2 :(得分:1)
内在函数与它们的等效汇编指令相同,如果可能的话你应该使用它们 - 编译器知道直接翻译它们,没有性能差异。
答案 3 :(得分:0)
使用内在函数。
使用装配通常会导致几天的不间断工作, 只是发现编译器击败你的最佳表现5%。 (如果你真的很好,则为5%;最有可能是30%。)