ARM NEON test 函数
来源:互联网 发布:博奥颐和是传销吗 知乎 编辑:程序博客网 时间:2024/06/09 03:16
/*the following is printf something test
*/
#include <stdlib.h>
#include "arm_neon.h"
/*************** float *****************/
void neon_float32_4(uint32x4_t a)
{
unsigned int i,j;
uint32_t *zz=(uint32_t *)malloc(sizeof(uint32_t)*4);
vst1q_f32(zz,a);
printf("\nneon float 32x4 :");
for(i=0;i<4;i++)
{
printf(" %f ",*zz);
zz++;
}
printf("\n");
}
// float 32x2
void neon_float32_2(uint32x2_t a)
{
unsigned int i,j;
uint32_t *zz=(uint32_t *)malloc(sizeof(uint32_t)*2);
vst1_f32(zz,a);
printf("\nneon float 32x2 :");
for(i=0;i<2;i++)
{
printf(" %f ",*zz);
zz++;
}
printf("\n");
}
/*********************************************************
neon 64 bit
**********************************************************/
/*************** uint *****************/
//uint 8x8 and 8x16
void neon_uint8(uint8x8_t a)
{
unsigned int i;
uint8_t *zz=(uint8_t *)malloc(sizeof(uint8_t)*8);
vst1(zz,a);
printf("\n uint 8x8 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//uint 16x4
void neon_uint16(uint16x4_t a)
{
unsigned int i;
uint16_t *zz=(uint16_t *)malloc(sizeof(uint8_t)*8);
vst1(zz,a);
printf("\n uint 16x4 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//uint 32x2
void neon_uint32(uint32x2_t a)
{
unsigned int i;
uint32x2_t *zz=(uint32_t *)malloc(sizeof(uint32_t)*2);
vst1(zz,a);
printf("\n uint 32x2 :\n");
for(i=0;i<2;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
/*************** int **************/
//int 8x8
void neon_int8(uint8x8_t a)
{
unsigned int i;
int8_t *zz=(int8_t *)malloc(sizeof(int8_t)*8);
vst1(zz,a);
printf("\n uint 8x8 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//int 16x4
void neon_int16(int16x4_t a)
{
unsigned int i;
int16_t *zz=(int16_t *)malloc(sizeof(int8_t)*8);
vst1(zz,a);
printf("\n int 16x4 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//int 32x2
void neon_int32(int32x2_t a)
{
unsigned int i;
int32x2_t *zz=(int32_t *)malloc(sizeof(int32_t)*2);
vst1(zz,a);
printf("\n uint 32x2 :\n");
for(i=0;i<2;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
/****************************************************************
neon 128 bit
**************************************************************/
// 8x16
void neon_uintq8(uint8x16_t a)
{
unsigned int i;
uint8_t *zz=(uint8_t *)malloc(sizeof(uint8_t)*16);
vst1q(zz,a);
printf("\n uint 8x16 :\n");
for(i=0;i<16;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//uint 16x8
void neon_uint16(uint16x4_t a)
{
unsigned int i;
uint16_t *zz=(uint16_t *)malloc(sizeof(uint8_t)*8);
vst1(zz,a);
printf("\n uint 16x4 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//uint 32x4
void neon_uint32(uint32x2_t a)
{
unsigned int i;
uint32x2_t *zz=(uint32_t *)malloc(sizeof(uint32_t)*2);
vst1(zz,a);
printf("\n uint 32x2 :\n");
for(i=0;i<2;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
*/
#include <stdlib.h>
#include "arm_neon.h"
/*************** float *****************/
void neon_float32_4(uint32x4_t a)
{
unsigned int i,j;
uint32_t *zz=(uint32_t *)malloc(sizeof(uint32_t)*4);
vst1q_f32(zz,a);
printf("\nneon float 32x4 :");
for(i=0;i<4;i++)
{
printf(" %f ",*zz);
zz++;
}
printf("\n");
}
// float 32x2
void neon_float32_2(uint32x2_t a)
{
unsigned int i,j;
uint32_t *zz=(uint32_t *)malloc(sizeof(uint32_t)*2);
vst1_f32(zz,a);
printf("\nneon float 32x2 :");
for(i=0;i<2;i++)
{
printf(" %f ",*zz);
zz++;
}
printf("\n");
}
/*********************************************************
neon 64 bit
**********************************************************/
/*************** uint *****************/
//uint 8x8 and 8x16
void neon_uint8(uint8x8_t a)
{
unsigned int i;
uint8_t *zz=(uint8_t *)malloc(sizeof(uint8_t)*8);
vst1(zz,a);
printf("\n uint 8x8 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//uint 16x4
void neon_uint16(uint16x4_t a)
{
unsigned int i;
uint16_t *zz=(uint16_t *)malloc(sizeof(uint8_t)*8);
vst1(zz,a);
printf("\n uint 16x4 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//uint 32x2
void neon_uint32(uint32x2_t a)
{
unsigned int i;
uint32x2_t *zz=(uint32_t *)malloc(sizeof(uint32_t)*2);
vst1(zz,a);
printf("\n uint 32x2 :\n");
for(i=0;i<2;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
/*************** int **************/
//int 8x8
void neon_int8(uint8x8_t a)
{
unsigned int i;
int8_t *zz=(int8_t *)malloc(sizeof(int8_t)*8);
vst1(zz,a);
printf("\n uint 8x8 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//int 16x4
void neon_int16(int16x4_t a)
{
unsigned int i;
int16_t *zz=(int16_t *)malloc(sizeof(int8_t)*8);
vst1(zz,a);
printf("\n int 16x4 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//int 32x2
void neon_int32(int32x2_t a)
{
unsigned int i;
int32x2_t *zz=(int32_t *)malloc(sizeof(int32_t)*2);
vst1(zz,a);
printf("\n uint 32x2 :\n");
for(i=0;i<2;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
/****************************************************************
neon 128 bit
**************************************************************/
// 8x16
void neon_uintq8(uint8x16_t a)
{
unsigned int i;
uint8_t *zz=(uint8_t *)malloc(sizeof(uint8_t)*16);
vst1q(zz,a);
printf("\n uint 8x16 :\n");
for(i=0;i<16;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//uint 16x8
void neon_uint16(uint16x4_t a)
{
unsigned int i;
uint16_t *zz=(uint16_t *)malloc(sizeof(uint8_t)*8);
vst1(zz,a);
printf("\n uint 16x4 :\n");
for(i=0;i<8;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
//uint 32x4
void neon_uint32(uint32x2_t a)
{
unsigned int i;
uint32x2_t *zz=(uint32_t *)malloc(sizeof(uint32_t)*2);
vst1(zz,a);
printf("\n uint 32x2 :\n");
for(i=0;i<2;i++)
{
printf(" %d ",*zz);
zz++;
}
printf(\n);
}
- ARM NEON test 函数
- arm neon 函数详解
- ARM NEON常用函数总结
- ARM Neon Intrinsics各函数介绍
- ARM-NEON
- ARM NEON 编程系列7——NEON gcc编译器intrinsics函数对应的汇编指令
- ARM-NEON汇编语言函数调用寄存器保存规范
- ARM的NEON技术
- ARM NEON Optimization
- ARM NEON 指令
- ARM NEON 指令
- ARM和NEON指令
- NEON arm 社区
- ARM NEON 优化
- ARM® NEON™
- ARM NEON 技术简介
- ARM和NEON指令
- ARM Neon 简介
- 【IT微笑话】
- WINCE驱动开发之寄存器的使用
- 系统启动时报错的分析方法
- 华为拓展企业业务 推出VTM远程银行解决方案
- 模型的透明效果
- ARM NEON test 函数
- 存储过程
- 重复数据删除技术精细度不够
- EWSD机型更改信令链路中继的命令
- Linux Linux 集群
- RBAC与ACL的比较
- 人生的三叶草
- 用VC进行COM编程的初级教程
- 内网不通