Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 交错两个64位NEON向量?_C_Neon_Intrinsics - Fatal编程技术网

C 交错两个64位NEON向量?

C 交错两个64位NEON向量?,c,neon,intrinsics,C,Neon,Intrinsics,我正在研究SSE2到NEON的端口。SSE代码执行以下操作: int64x2\u t a、b、c、d; ... a=交织高64(b,交织低64(c,d)); 它执行以下操作来代替\u mm\u unpachi\u epi64和\u mm\u unpaclo\u epi64: 静态内联int64x2\u t交织低64(int64x2\u t a,int64x2\u t b){ const int64x2x2_t result=vzip_s64(vget_low_s64(a),vget_low_s

我正在研究SSE2到NEON的端口。SSE代码执行以下操作:

int64x2\u t a、b、c、d;
...
a=交织高64(b,交织低64(c,d));
它执行以下操作来代替
\u mm\u unpachi\u epi64
\u mm\u unpaclo\u epi64

静态内联int64x2\u t交织低64(int64x2\u t a,int64x2\u t b){
const int64x2x2_t result=vzip_s64(vget_low_s64(a),vget_low_s64(b));
返回vcombine_s64(result.val[0],result.val[1]);
}
静态内联int64x2\u t交织高64(int64x2\u t a、int64x2\u t b){
const int64x2x2_t result=vzip_s64(vget_high_s64(a),vget_high_s64(b));
返回vcombine_s64(result.val[0],result.val[1]);
}
我的第一个直接问题是,为什么
vzip\u s64
缺失(尽管
vzip\u s32
vzip\u s16
)。或者,我应该用什么来代替它


我猜有一个更大的模式在手,它甚至可能使用
VSTR.2
作为一个集成存储。我的第二个问题是,我应该做什么来代替三个或四个NEON内部函数?

vzip\u s64
将两个64位元素“交错”到128位向量中,这已经做得很好了;)谢谢@Notlikethat-所以我很清楚(原谅我的无知)。。。我只需要
interleave_low64{return vcombine_s64(vget_low_s64(a),vget_low_s64(b))}
。对吗?