按位操作和严格控制
我正在尝试为基于位的操作编写一些高性能函数,这些函数利用了硬件的最新功能,我面临的问题是:
我希望包含逐位计数操作,在这种情况下,我使用了仅加入整数类型值的英特尔SSE4.2
的{{1}}。
同时,如果我需要进行其他按位逻辑运算,那么popcnt
支持256位宽的逐位逻辑运算,如AVX
(而不是VORPD
的128位宽逐位逻辑运算),但仅限于浮动数据。
结合逐位设置/重置操作的事实,char是最快的,所以我可能需要至少三种类型的指针指向相同的内存位置: char类型,长long (64位整数用于最佳逐位计数)和浮点型指针,但是整数和浮点类型指针的共存打破了严格别名规则。
有任何建议可以解决这个问题吗?感谢。