simd编程问题

dwandqq 2016-10-13 09:14:44
(1)像这种有分支的,可以用intrinsic函数吗?
int fun(float *E, float *Z, int *T, int row, int col)
{
float tmp;
int idx;
for(int i=0; i<row; i++)
{
for(int j=0; j<col; j++)
{
idx = i*col + j;
tmp = (j == T[i]) ? 1.0f:0.0f;
E[idx] = Z[idx] - tmp;
}
}
return 0;
}
(2)float类型可以转化成__m128类型吗
...全文
1684 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxiaoccen 2016-12-23
  • 打赏
  • 举报
回复
可以的,你查一下手册 _mm_set1_ps()和_mm_set_ps()可以把float型数据赋值给128的寄存器 手册里应该是有判断的宽指令的,你查一下手册就行了。。。 我也是初学,不太懂,说一下自己的理解,如有不对,请指正。。。
dwandqq 2016-10-13
  • 打赏
  • 举报
回复
刚学,都不懂,大家帮忙看看

2,408

社区成员

发帖
与我相关
我的任务
社区描述
高性能计算
社区管理员
  • 高性能计算社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧