【发布时间】:2016-07-11 13:05:23
【问题描述】:
_mm_broadcast_ss() 和 _mm_load_ps1() 有什么区别?
void example(){
__declspec(align(32)) const float num = 20;
__m128 a1 = _mm_broadcast_ss(&num);
__declspec(align(32)) float f1[4];
_mm_store_ps (f1, a1);
std::cout << f1[0] << " " << f1[1] <<" " << f1[2] << " " << f1[3] << "\n";
__m128 a2 = _mm_load_ps1(&num);
__declspec(align(32)) float f2[4];
_mm_store_ps (f2, a2);
std::cout << f2[0] << " " << f2[1] <<" " << f2[2] << " " << f2[3] << "\n";
}
两种方式都得到了相同的输出,那为什么它们都存在呢?
【问题讨论】:
标签: x86 sse simd intrinsics