每当我检查GCC为使用__m128i类型的代码生成的汇编代码时,我就会看到看起来像灾难的东西。有大量的冗余指令没有用处。
然而,作为汇编程序员,我宁愿使用asm {}但是GCC阻止我在asm {}中使用XMM寄存器。
是否有一些技巧让GCC使用XMM或我是否需要等待将来的发布? 我有4.3.4。
答案 0 :(得分:2)
您是否在启用优化的情况下进行编译,例如-O3?如果是这样,那么gcc通常会从内在函数生成相当不错的SSE代码。大多数内在函数映射到一个SSE指令。你能给出一个你认为特别低效的例子吗?
另外,我不确定你的意思是“GCC阻止我在asm {}中使用XMM寄存器” - 再次,如果你提供一个具体的例子,那么也许有一个简单的解决方案。