gpt4 book ai didi

arm - 加载向量 NEON 内在函数

转载 作者:行者123 更新时间:2023-12-04 04:42:48 25 4
gpt4 key购买 nike

我想从 128 位的内存向量加载:
我有这些指示:

int8x16_t* p1=(int8x16_t*)srcimg.data;
int8x16_t* p2=(int8x16_t*)(srcimg.data+srcimg.cols);

问题是加载函数是这样的:
int8x16_t vld1q_s8(__transfersize(16) int8_t const * ptr); 

我不明白为什么该函数需要输入一个 int8_t* 值。

我想做这样的事情:
int8x16_t vector;
vector=vld1q_s8(p1);

我该怎么做?谢谢。

最佳答案

它应该已经像下面这样工作了。

int8x16_t vector;
vector=vld1q_s8((int8_t *) srcimg.data);
int8x16_t是一种矢量类型,旨在使矢量布局易于阅读。
int8_t就是你所说的一个字节。

大声朗读应该听起来像“从这个字节流加载到一个四元寄存器中”。

如果您还检查 gcc arm intrinsics page ,您应该无法找到任何指向这些向量类型的指针。他们的意思是映射到 SIMD寄存器,并且您通常不会谈论指向寄存器的指针。

如果您想获得更多关于 NEON 编程的信息,您可以查看 ARM's website而这个 blog series .

关于arm - 加载向量 NEON 内在函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18642925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com