其他分享
首页 > 其他分享> > c – 如果16位字节对齐,是否可以将浮点数直接转换为__m128?

c – 如果16位字节对齐,是否可以将浮点数直接转换为__m128?

作者:互联网

如果它们是16字节对齐的话,将浮点数直接转换为__m128是否安全/可行/可取?

我注意到使用_mm_load_ps和_mm_store_ps来“包装”原始数组会增加显着的开销.

我应该注意哪些潜在的陷阱?

编辑:

使用加载和存储指令实际上没有开销,我得到了一些数字混合,这就是为什么我有更好的性能.即使你能够在__m128实例中使用原始内存地址进行一些HORRENDOUS修改,当我运行测试时,如果没有_mm_load_ps指令需要TWICE AS LONG完成,可能会回到某些故障安全代码路径.

解决方法:

是什么让你认为_mm_load_ps和_mm_store_ps“增加了很大的开销”?这是向/从SSE寄存器加载/存储浮点数据的常规方法,假设源/目标是内存(并且任何其他方法最终归结为此).

标签:c-3,c,alignment,sse,intrinsics
来源: https://codeday.me/bug/20190927/1823276.html