我正在移植SSE SIMD代码以使用256位AVX扩展,并且似乎找不到任何将混合/混洗/移动高128位和低128位的指令.
支持故事:
我真正想要的是VHADDPS
/ _mm256_hadd_ps
表现得像HADDPS
/ _mm_hadd_ps
,只有256个字.不幸的是,它就像是HADDPS
对低字和高字独立行动的两次调用.
Mar*_*ing 17
使用VPERM2F128,可以交换低128位和高位128位(以及其他排列).内在的是
x = _mm256_permute2f128_ps( x , x , 1)
Run Code Online (Sandbox Code Playgroud)
第三个参数是一个控制字,为用户提供了很大的灵活性.英特尔在线文档似乎完全没有解释控制字结构是什么,但可下载的英特尔Instrinsic Guide应用程序提供了更好的解释.
归档时间: |
|
查看次数: |
7588 次 |
最近记录: |