没有合适的资源?快使用搜索试试~ 我知道了~
neon内部函数指令,全,有需要的可以下载,用neon的都是大神,除我以外。呵呵
资源推荐
资源详情
资源评论
初始化寄存器
vcreate_type: 将一个 64bit 的数据装入 vector 中,并返回元素类型为 type 的 vector。r=a
vdup_n_type/vmov_n_type: 用类型为 type 的数值,初始化一个元素类型为 type 的新 vector
的所有元素。ri=a
vdupq_n_type/vmovq_n_type:
vdup_lane_type: 用元素类型为 type 的 vector 的某个元素,初始化一个元素类型为 type 的新
vector 的所有元素。ri=a[b]
vdupq_lane_type:
vmovl_type: 将 vector 的元素 bit 位扩大到原来的两倍,元素值不变。
vmovn_type: 用旧 vector 创建一个新 vector,新 vector 的元素 bit 位是旧 vector 的一半。新
vector 元素只保留旧 vector 元素的低半部分。
vqmovn_type: 用旧 vector 创建一个新 vector,新 vector 的元素 bit 位是旧 vector 的一半。如
果旧 vector 元素的值超过新 vector 元素的最大值,则新 vector 元素就取最大值。否则新 vector
元素就等于旧 vector 元素的值。
vqmovun_type: 作用与 vqmovn_type 类似,但它输入的是有符号 vector,输出的是无符号
vector。
从内存加载数据进 neon 寄存器
vld1_type: 按顺序将内存的数据装入 neon 寄存器,并返回元素类型为 type 格式的 vector
vld1q_type:
vld1_lane_type:用旧 vector 创建一个同类型的新 vector,同时将新 vector 中指定元素的值改
为内存中的值。
vld1q_lane_type:
vld1_dup_type:用 type 类型的内存中第一个值,初始化一个元素类型为 type 的新 vector 的
所有元素。
vld1q_dup_type:
vld2_type: 按交叉顺序将内存的数据装入 2 个 neon 寄存器(内存第 1 个数据放入第 1 个 neon
寄存器的第 1 个通道,内存第 2 个数据放入第 2 个 neon 寄存器的第 1 个通道,内存第 3 个数
据放入第 1 个 neon 寄存器的第 2 个通道,内存第 4 个数据放入第 2 个 neon 寄存器的第 2 个通
道。。。)。并返回有两个 vector 的结构体
vld2q_type:
vld2_lane_type:
vld2q_lane_type:
vld2_dup_type: 用 type 类型的内存中第一个值,初始化第一个新 vector 的所有元素,用内存
中第二个值,初始化第二个新 vector 的所有元素。
vld3_type: 交叉存放,本质上与 vld2_type 类似,只是这里装载 3 个 neon 寄存器
vld3q_type:
vld3_lane_type:
vld3q_lane_type:
vld3_dup_type: 本质上与 vld2_dup_type 类似
vld4_type: 交叉存放,本质上与 vld2_type 类似,只是这里装载 4 个 neon 寄存器
vld4q_type:
vld4_lane_type:
vld4q_lane_type:
vld4q_dup_type: 本质上与 vld2_dup_type 类似
从 neon 寄存器加载数据进内存
vst1_type: 将元素类型为 type 格式的 vector 的所有元素装入内存
vst1q_type:
vst1_lane_type: 将元素类型为 type 格式的 vector 中指定的某个元素装入内存
vst1q_lane_type:
vst2_type: 交叉存放,vld2_type 的逆过程
vst2q_type:
vst2_lane_type:
vst2q_lane_type:
vst3_type: 交叉存放,vld3_type 的逆过程
vst3q_type:
vst3_lane_type:
vst3q_lane_type:
vst4_type: 交叉存放,vld4_type 的逆过程
vst4q_type:
vst4_lane_type:
vst4q_lane_type:
直接获取 neon 寄存器某个通道的值
vget_low_type: 获取 128bit vector 的低半部分元素,输出的是元素类型相同的 64bit vector。
vget_high_type: 获取 128bit vector 的高半部分元素,输出的是元素类型相同的 64bit vector。
vget_lane_type: 获取元素类型为 type 的 vector 中指定的某个元素值。
vgetq_lane_type:
直接设置 neon 寄存器某个通道的值
vset_lane_type: 设置元素类型为 type 的 vector 中指定的某个元素的值,并返回新 vector。
vsetq_lane_type:
寄存器数据重排
vext_type: 取第 2 个输入 vector 的低 n 个元素放入新 vector 的高位,新 vector 剩下的元素取
自第 1 个输入 vector 最高的几个元素(可实现 vector 内元素位置的移动)
vextq_type:
如:src1 = {1,2,3,4,5,6,7,8}
src2 = {9,10,11,12,13,14,15,16}
dst = vext_type(src1,src2,3)时,则 dst = {4,5,6,7,8, 9,10,11}
vtbl1_type: 第二个 vector 是索引,根据索引去第一个 vector(相当于数组)中搜索相应的
元素,并输出新的 vector,超过范围的索引返回的是 0.
如:src1 = {1,2,3,4,5,6,7,8}
剩余13页未读,继续阅读
资源评论
jieweijason
- 粉丝: 3
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功