ARMv8 NEON寄存器

ARMv8 NEON寄存器

在看OPENBLAS源码时,看了它的kernel汇编代码,在代码中出现了一个寄存器的表达形式:V0.4S,而且只有对其的使用,没有对其的赋值,在此之前只有对Q寄存器的赋值,怀疑这两个寄存器结构应该有包含关系。
找了一些资料,才发现这个叫做NEON寄存器,且对于ARMv7和ARMv8两种有不同的形式。

具体参考:
https://blog.csdn.net/SoaringLee_fighting/article/details/82800919

也可以直接查看ARM的manual:
https://developer.arm.com/docs/den0024/latest/armv8-registers/neon-and-floating-point-registers/floating-point-register-organization-in-aarch64

Name Shape
Vn.8B 8 lanes, each containing an 8-bit element
Vn.16B 16 lanes, each containing an 8-bit element
Vn.4H 4 lanes, each containing a 16-bit element
Vn.8H 8 lanes, each containing a 16-bit element
Vn.2S 2 lanes, each containing a 32-bit element
Vn.4S 4 lanes, each containing a 32-bit element
Vn.1D 1 lane containing a 64-bit element
Vn.2D 2 lanes, each containing a 64-bit element

ARMv8 NEON寄存器_第1张图片

你可能感兴趣的:(ARMv8 NEON寄存器)