A-profile架构的Arm Architecture Reference Manual(重点添加):
FPHP,位 [27:24]
0b0011 与 0b0010 一样,增加了对 半精度浮点运算.
的支持
一个简单的问题:在哪里可以找到实现半精度浮点运算的 ARM 指令列表?
这不是一个单独的列表。当这个特性存在时,基本上所有已经存在的浮点指令都获得了对半精度的支持。
在 AArch64 状态下,您使用相同的浮点指令助记符,使用
h
寄存器或向量元素大小来指定半精度运算。例如,fadd h0, h1, h2
执行半精度浮点加法(标量),而 fadd v0.8h, v1.8h, v2.8h
并行执行八个这样的加法(向量)。
在 AArch32 状态下,您在助记符上使用
.f16
后缀。所以 vadd.f16 s0, s1, s2
(在 32 位状态下,不使用 h
寄存器名称,结果被零扩展到 32 位 s
寄存器)。或者(未经测试)vadd.f16 d0, d1, d2
用于四元素向量加法,或 vadd.f16 q0, q2, q4
用于八元素。