小编use*_*328的帖子

ARM NEON内在函数中的逆向量顺序

我试图颠倒128位向量(uint16x8)的顺序.

例如,如果我有

a b c d e f g h
Run Code Online (Sandbox Code Playgroud)

我想获得

h g f e d c b a
Run Code Online (Sandbox Code Playgroud)

使用NEON内在函数有一种简单的方法吗?我尝试使用VREV,但它不起作用.

arm intrinsics neon

4
推荐指数
1
解决办法
1795
查看次数

平均操作ARM NEON

我需要计算与SSE相同的操作:

__m128i result1=_mm_avg_epu8 (upper, lower);
Run Code Online (Sandbox Code Playgroud)

使用NEON,我执行以下操作:

uint8x16_t result1=vhaddq_u8(upper, lower);
Run Code Online (Sandbox Code Playgroud)

结果应该是相同的,但我得到的SSE指令:

91cb c895 aaa3 b0d4 cfc0 c1b0 aac7 b9b9
Run Code Online (Sandbox Code Playgroud)

而使用NEON指令我获得:

91ca c894 a9a2 b0d3 cec0 c1af aac7 b8b8 
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这两个结果不同.你能帮助我吗?

arm sse simd intrinsics neon

3
推荐指数
2
解决办法
1199
查看次数

如何使用 arm neon vbit 内在函数?

我不明白我如何用霓虹灯内在函数来区分 vbit、vbsl 和 vbif。我需要执行 vbit 操作,但是如果我使用内部函数中的 vbslq 指令,我将得不到我想要的。

例如,我有一个这样的源向量:

uint8x16_t source = 39 62 9b 52 34 5b 47 48 47 35 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

目标向量是:

uint8x16_t destination = 0 0 0 0 0 0 0 0 0 0 0 0 c3 c8 c5 d5
Run Code Online (Sandbox Code Playgroud)

我想有这样的输出:

39 62 9b 52 34 5b 47 48 47 35 0 0 c3 c8 c5 d5
Run Code Online (Sandbox Code Playgroud)

这意味着我想从源复制前十个字节并保持其他 6 个不变。我正在使用这个面具:

{0,0,0,0,0,0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
Run Code Online (Sandbox Code Playgroud)

使用 vbslq_u8 的正确方法是什么?

arm simd intrinsics neon

1
推荐指数
1
解决办法
2033
查看次数

标签 统计

arm ×3

intrinsics ×3

neon ×3

simd ×2

sse ×1