Assembly 需要在Power PC上实现SSE4 pcmpestrm指令的等效功能

Assembly 需要在Power PC上实现SSE4 pcmpestrm指令的等效功能,assembly,sse,powerpc,Assembly,Sse,Powerpc,我正在尝试在Power PC上实现x86 SSE4 pcmpestrm、pcmpestri指令的等效命令 x86上的示例代码如下所示: register volatile __m128i result asm("xmm0"); __asm__ volatile ("pcmpestrm %5, %2, %1" : "=x"(result) : "x"(str1), "xm"(str2), "a"(len1), "d"(len2), "i"(MODE) : "cc"); 有

我正在尝试在Power PC上实现x86 SSE4 pcmpestrm、pcmpestri指令的等效命令

x86上的示例代码如下所示:

     register volatile __m128i result asm("xmm0");
     __asm__ volatile ("pcmpestrm %5, %2, %1"
  : "=x"(result) : "x"(str1), "xm"(str2), "a"(len1), "d"(len2), "i"(MODE) : "cc");
有人为PowerPC写过这样的东西吗?
关于如何为Power体系结构实现类似的东西,您有什么想法吗?

使用标量代码并重新实现它应该相当简单-这样做有什么具体问题吗?您看过QEMU吗@保罗:我是第一次在组装上尝试一些东西。任何简单的示例都会有很大的帮助。@DeepaliChourasia:Marat在上面的评论中给出了很好的建议-您是否查看了该链接?pcmpestrm可以做许多不同的事情,具体取决于立即字节(它有几个字段)。除非您真的在编写一个模拟器,否则只要用powerpc指令(可能是AltiVec向量的东西)实现特定的算法,就可以获得更好的powerpc性能。如果编写一个函数来支持pcmpestrm的所有不同操作模式,可能会得到不好的结果。此外,如果您只是作为初学者尝试学习一些asm,那么GNU内联asm是一个糟糕的选择。关于一些初学者提示,请参阅我的答案。使用标量代码重新实现它应该相当简单-这样做有没有遇到特定的问题?您看过QEMU吗@保罗:我是第一次在组装上尝试一些东西。任何简单的示例都会有很大的帮助。@DeepaliChourasia:Marat在上面的评论中给出了很好的建议-您是否查看了该链接?pcmpestrm可以做许多不同的事情,具体取决于立即字节(它有几个字段)。除非您真的在编写一个模拟器,否则只要用powerpc指令(可能是AltiVec向量的东西)实现特定的算法,就可以获得更好的powerpc性能。如果编写一个函数来支持pcmpestrm的所有不同操作模式,可能会得到不好的结果。此外,如果您只是作为初学者尝试学习一些asm,那么GNU内联asm是一个糟糕的选择。有关初学者提示,请参见上的答案。