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