Page 354 - ARM 64 Bit Assembly Language
P. 354
344 Chapter 10
10.4.1.2 Operations
Name Effect Description
fcvt<x>s Vd[] ← fixed(Vm[],f bits) Convert single precision to 32-bit
signed fixed point or integer.
fcvt<x>u Vd[] ← uf ixed(Vm[],f bits) Convert single precision to 32-bit
unsigned fixed point or integer.
scvtf Vd[] ← float(Vm[]) Convert signed 32-bit fixed point or
integer to single precision
ucvtf Vd[] ← single(Vm[]) Convert unsigned 32-bit fixed point
or integer to single precision
10.4.1.3 Examples
1 ucvtf v0.2s,v0.2s,#4 // Convert from U(28,4) to IEEE single
2 fcvtzs v1.2d,v1.2d // Convert two IEEE doubles to signed integer
10.4.2 Convert between half, single, and double precision
The following instructions can be used to convert between floating point formats:
fcvtl Vector convert from half to single precision,
fcvtn Vector convert from single to half precision, and
fcvtxn Vector convert from double to single precision.
These instructions operate on vectors. There are additional conversion instructions available,
but they only operate on scalar values.
10.4.2.1 Syntax
fcvtl Vd.Td, Vn.Ts
fcvtl2 Vd.Td2, Vn.Ts2
fcvtn Vd.Td3, Vn.Ts3
fcvtn2 Vd.Td4, Vn.Ts4
fcvtxn Vd.2s, Vn.2d
fcvtxn2 Vd.4s, Vn.2d
• If 2 is present, then the upper 64 bits of the register containing the smaller elements will
be used. Otherwise, the lower 64 bits are used.

