c++ - 将 SSE 内在函数转换为可读的 C/C++ 代码?

标签 c++ c sse readability

我继承了一些高度优化 (SSE4) 但未注释的 C 代码。是否有任何工具或实用程序可以将 SSE 内在函数转换为更具可读性的代码或伪代码?这主要是为了提高可读性,以便我可以在深入研究和进行更改之前更好地理解代码。

最佳答案

我不知道有任何这样的工具。

但无论如何它很可能不会有太大帮助。如果 SSE 代码优化得很好,困难的部分可能不是解码内在函数。困难的部分是遵循所有技巧来改善局部性并消除迭代内数据依赖性(剥离、多面体循环转换等)

不过,我可以给你一个 future 的建议:总是以最简单的方式编写同一个例程的注释良好的标量版本。这个“引用代码”应该只关心可读性和正确性,而不是速度......所以它应该有很多断言。还有一个测试套件可以同时运行标量版本和优化变体。

无论是首次实现例程,还是更新现有例程,始终从引用代码和测试套件开始。不一定按此顺序。

这种方法前期成本更高,但从长远来看要便宜得多。

关于c++ - 将 SSE 内在函数转换为可读的 C/C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710649/

相关文章:

c - 数组乘法与 sse 内在函数乘法的时间?

math - Bullet Physics 四元数 sse 实现疑惑

C++创建一个函数的 friend ?

c++ - 没有 typedef 的运算符 member_function_pointer_type()?

有人可以解释以下代码语句吗?

c - 传递给 gcc 的多个源文件是否被视为一个翻译单元?

c - 搜索哈希表不起作用,for 循环不在 c 中执行

c - 带有 C 段错误的汇编函数

c++ - 我的 OpenCL 程序中的 SIGSEGV

python - 安装 Python 模块 - SpiDev