SIMD - 如何使用loadu预加热数组指针?

时间:2017-02-19 18:01:43

标签: c++ c intel simd intrinsics

假设我们有一组字符,我们想要预处理(首先通过)算法,以使其与16字节对齐。从我在网上搜集的内容(稀缺信息),你检查数据是否是16字节对齐,如果不是你使用loadu并预先传递你的算法,然后像这样移动数组指针:

str = (const char *)(0x10 + (intptr_t)str & ~0xF);

太棒了,我们得到之前的16字节对齐地址,然后加上16,繁荣!

但是从我看到的情况来看,有些数据会被处理两次!或者是loadu智能,只将[未对齐的地址]的数据加载到[下一个对齐的地址]?

似乎没有: “将128位整数数据从内存加载到dst。mem_addr不需要在任何特定边界上对齐。”

那么你如何预先通过你的算法呢?

非常感谢,在我学习SIMD的时候请耐心等待:)

0 个答案:

没有答案