c – 为什么SSE设置(_mm_set_ps)反转参数的顺序
发布时间:2020-12-16 06:44:09 所属栏目:百科 来源:网络整理
导读:我最近注意到了 _m128 m = _mm_set_ps(0,1,2,3); 将4个浮点数转换为浮点数: (float*) p = (float*)(m);// p[0] == 3// p[1] == 2// p[2] == 1// p[3] == 0 同样的事情与工会{_m128 m;浮动[4] a }也. 为什么上证行业使用这个订单?这不是什么大事,但是有点混
我最近注意到了
_m128 m = _mm_set_ps(0,1,2,3); 将4个浮点数转换为浮点数: (float*) p = (float*)(&m); // p[0] == 3 // p[1] == 2 // p[2] == 1 // p[3] == 0 同样的事情与工会{_m128 m;浮动[4] a }也. 为什么上证行业使用这个订单?这不是什么大事,但是有点混乱. 还有后续问题: 当通过索引访问数组中的元素时,应该按顺序0..3或顺序3..0进行访问 解决方法
这只是一个约定他们不得不选择一些订单,只要每个人都遵循这个顺序,这真的不重要.英特尔似乎喜欢小字节.
至于通过索引访问…最好的事情是尽量避免这样做.没有什么可以杀死矢量表演,像元素访问.如果你必须尝试设置,使索引符合硬件向量车道;这是大多数矢量程序员(在我的经验中)期望的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |