![]() |
1
4
您的标量版本看起来很糟糕(使用类型punning的引用强制转换),并且可能编译为效率非常低的ASM,这比将每个32位元素复制到位模式慢得多。
你的第一个手动矢量化版本甚至没有做同样的工作,不过,它只是屏蔽了所有要离开的非符号位。
不是那个加法
然后你把它编辑成一个版本
尤其是如果你没有用你的花车做任何其他的事情,你实际上会想用
在Skylake和更新版本上,FP布尔值可以使用所有3个矢量ALU端口。( https://agner.org/optimize/ 用于说明表和UARCH指南。) 您的代码应该如下所示:
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |