sse转neon

举报
风吹稻花香 发表于 2021/06/05 01:39:31 2021/06/05
【摘要】 在arm系统下,不能使用sse指令加速,这让带sse指令加速的程序员头疼不已,很幸运的在网上找了这个,neon指令集生成了一套替换sse的函数接口,给大家恭喜以下,感谢github,互帮互助,共同进步! 127行,不是具体实现 https://github.com/crawlingcn/sse-to-neon more information, visit ht...

在arm系统下,不能使用sse指令加速,这让带sse指令加速的程序员头疼不已,很幸运的在网上找了这个,neon指令集生成了一套替换sse的函数接口,给大家恭喜以下,感谢github,互帮互助,共同进步!























无  '_mm_loadu_ps'

https://github.com/merckhung/sse2neon/blob/master/SSE2NEON.h

这个完整:

需要 #define ANDROID,还是不完整




这两个有点像,带有测试例子:

 '_mm_loadu_ps' was not declared






https://github.com/noxo/sse2neon/blob/master/SSE2NEON.h


1197行,有具体实现,有测试例子

https://github.com/jratcliff63367/sse2neon/blob/master/SSE2NEON.h


好像是完整的

https://github.com/TuringKi/fDSST_cpp

https://github.com/TuringKi/fDSST_cpp/blob/master/src/SSE2NEON.h






https://github.com/intel/ARM_NEON_2_x86_SSE/blob/master/NEON_2_SSE.h



RETf RCP(const __m128 x) {

__m128 recip = vrecpeq_f32(x);

recip= vmulq_f32(recip, vrecpsq_f32(recip, x));

return recip;

}


RETf SQRT(const __m128 x) {

return vsqrtq_f32(x);

}


//这个精确度比较高

RETfRCPSQRT(const __m128 x) {

__m128 e = vrsqrteq_f32(x);

e= vmulq_f32(e, vrsqrtsq_f32(x, vmulq_f32(e, e)));

e= vmulq_f32(e, vrsqrtsq_f32(x, vmulq_f32(e, e)));

return e;

}


RETf RCP(const __m128 x) {

__m128 recip = vrecpeq_f32(x);

recip= vmulq_f32(recip, vrecpsq_f32(recip, x));

return recip;

}


RETf SQRT(const __m128 x) {

return vsqrtq_f32(x);

}


pc上的:

RETf RCPSQRT(const simdqf x) { return _mm_rsqrt_ps(x); }


文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/55260307

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。