GNU C Library放弃一系列SSSE3指令集优化的代码路径

扣丁书屋

但是由于Glibc也携带了与SSSE3差不多时间的旧版SSE2或SSE4.1的优化代码路径,加上用于较新的Intel/AMD CPU的AVX2和EVEX代码路径,SSSE3的代码路径实质上已经无人在使用或者均已被替代。

Glibc开发者认为,考虑到SSE2/SSE4.1/AVX2/EVEX代码路径的存在,已经不值得再提供SSSE3指令集优化的代码路径,因为很少有英特尔/AMD CPU被留在SSSE3这条路径上,而在代码中提供SSSE3支持的成本却不低,因此从本周起,开发人员已经开始舍弃它。

Xeon 5100系列引入了SSSE3支持

在删除的SSSE3支持中包括放弃mem{move|cpy}-ssse3-back、str{p}{n}cpy-ssse3、str{n}cat-ssse3、str{n}{case}cmp-ssse3和{w}memcmp-ssse3代码路径。

SSSE3在Core 2时代很有用,但对于过去几年的CPU来说,Glibc AVX2代码路径更有利

围绕memmove/mempcpy/memcpy的SSSE3代码也有减少。提交人解释说。

我们的目标是删除大部分SSSE3功能,因为SSE4、AVX2和EVEX通常更受欢迎。memcpy/memmove是一个例外,对于某些目标来说,用palignr避免无符号负载很重要。

此提交用一个更好的优化和更低的代码占用率的版本替换了 memmove-ssse3。此外,它还将 memcpy 别名为 memmove。

[责任编辑:]