实现半精度浮点运算的ARM指令列表

问题描述 投票:0回答:1

A-profile架构的Arm Architecture Reference Manual(重点添加):

FPHP,位 [27:24]

0b0011 与 0b0010 一样,增加了对 半精度浮点运算.

的支持

一个简单的问题:在哪里可以找到实现半精度浮点运算的 ARM 指令列表?

floating-point arm instructions half-precision-float
1个回答
0
投票

这不是一个单独的列表。当这个特性存在时,基本上所有已经存在的浮点指令都获得了对半精度的支持。

在 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
用于八元素。

© www.soinside.com 2019 - 2024. All rights reserved.