【发布时间】:2016-07-13 10:35:54
【问题描述】:
在neonintrinsic中,有四个intrinsics(vld1 vld2 vld3 vld4)来执行1-way to 4-way de-interleave。但是如何实现8-way de-interleave呢?
比如数据是:
uint8_t src[64] = {0,1,2,3,4,5,6,7,```63};
将数据加载到neon寄存器中,进行8路解交织后,我希望src_reg1和src_reg2的值可以是这样的:
uint8x8x4_t src_reg1;
uint8x8x4_t src_reg2;
src_reg1.val[0] = {0,8, 16,24,32,40,48,56}
src_reg1.val[1] = {1,9, 17,25,```}
src_reg1.val[2] = {2,10,18,26,```}
src_reg1.val[3] = {3,11,19,27,```}
src_reg2.val[0] = {4,12,20,28,```}
src_reg2.val[1] = {5,13,21,29,```}
src_reg2.val[2] = {6,14,22,30,```}
src_reg2.val[3] = {7,15,23,31,39,47,55,63}
有人知道如何实现吗?非常感谢!
【问题讨论】:
标签: arm neon intrinsics