_mm_stream_load_si128
被声明为
__m128i _mm_stream_load_si128 (__m128i * mem_addr)
而 _mm_load_si128
被声明为__m128i _mm_load_si128 (__m128i const* mem_addr)
前者修改了什么内容吗mem_addr
指着?如果不是,非常量声明的动机是什么?
最佳答案
我认为它是无缘无故地以这种方式宣布的。见 _mm256_stream_load_si256
和 _mm512_stream_load_si512
对于更宽的操作数相同,它们采用 const
争论。
也在 <smmintrin.h>
Visual Studio 2015 附带的是 const
:
/*
* Load double quadword using non-temporal aligned hint
*/
extern __m128i _mm_stream_load_si128(const __m128i*);
关于c - _mm_stream_load_si128 (movntdqa) 是否修改其参数指向的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69108037/