提问人:terdev 提问时间:3/22/2022 最后编辑:Peter Cordesterdev 更新时间:3/22/2022 访问量:291
x86 asm 约束“x”(256 位向量操作数)的 ARM 等效项
ARM equivalent for x86 asm constraint "x" (256-bit vector operand)
问:
我想使用 在 C++ 中执行汇编程序指令。
我需要将以下函数映射到特定于 ARM 的指令(使用 ),因为给定的代码库是在 x86-64 上使用 ARM64 开发的。vrhadd
__asm__
vrhadd
__asm__("vpavgb %[a], %[b], %[c]" : [c] "=x" (res) : [a] "x" (a), [b] "x" (b));
其中 a、b 和 c 是 256 位 SIMD 寄存器。在我的系统上执行此行会抛出:
error: couldn't allocate output register for constraint 'x'
,因为(我猜)作为输入操作数的约束,代表 AVX 寄存器 (x86) 中的 256 位向量操作数。在 ARM 上,它分别表示 s0-s15、d0-d7 或 q0-q3 范围内的 32、64 或 128 位浮点/SIMD 寄存器。x
由于我找不到一个,我想知道是否有 ARM64 的 x86 约束的直接等效项?x
答: 暂无答案
评论
x
"x"
"Yt"
aarch32
vtrn
vzip
vuzp