使用neon内部函数实现8-way de-interleave
2016-07-19 19:59
1626 查看
neon内部函数只提供实现4-way de-interleave的指令,要实现8-way de-interleave可通过两个4-way de-interleave来实现。
uint8_t src[64] = {0}; uint8_t dst[64] = {0}; for (int i = 0; i < 64; i++) { src[i] = i; } //读取2组4-way数据 uint8x8x4_t src_reg1 = vld4_u8(src); uint8x8x4_t src_reg2 = vld4_u8(src + 32); for (int j = 0; j < 4; j++) //将2组4-way数据经反交叉后生成1组8-way数据 { uint8x8x2_t temp = vuzp_u8(src_reg1.val[j], src_reg2.val[j]); src_reg1.val[j] = temp.val[0]; src_reg2.val[j] = temp.val[1]; } for (int j = 0; j < 4; j++) //将1组8-way数据经交叉后生成2组4-way数据 { uint8x8x2_t temp = vzip_u8(src_reg1.val[j], src_reg2.val[j]); src_reg1.val[j] = temp.val[0]; src_reg2.val[j] = temp.val[1]; } //将2组4-way数据存放如内存 vst4_u8(dst, src_reg1); vst4_u8(dst+32, src_reg2); //经过这样处理后,可发现dst的值与src的值是一样 for (int i = 0; i < 64; i++) { printf("dst[%d] = %d ", i, dst[i]); }
相关文章推荐
- shiro 概念
- 7.8 LZW压缩的实现
- ZZULIOJ 1791 旋转矩阵
- 对 Android 开发者有益的 40 条优化建议
- hadoop 开发调试环境-eclipse配置记录
- chown和chmod的区别
- 83. Remove Duplicates from Sorted List
- Xshell访问kali配置
- 波的偏振
- 7.7 迷宫求解
- 7.6 停车场管理
- 作业666
- 数组的学习总结
- 7.5 中序式转后序式
- Swift开发之 (01) 语法
- 七大常见排序算法总结
- 文件压缩项目
- X名称空间的特性(Attribute)x:key和x:type
- POJ 1611 The Suspects (并查集)
- LaTeX并排插入图片