10.6 Differences between A32/T32 and A64 floating-point instruction syntax

The syntax and mnemonics of A64 floating-point instructions are based on those in A32/T32 but with some differences.

The following table describes the main differences.

Table 10-1 Differences in syntax and mnemonics between A32/T32 and A64 floating-point instructions

A32/T32 A64

All floating-point instruction mnemonics begin with V, for example VMAX.

The first letter of the instruction mnemonic indicates the data type of the instruction. For example, SMAX, UMAX, and FMAX mean signed, unsigned, and floating-point respectively. No suffix means the type is irrelevant and P means polynomial.

A mnemonic qualifier specifies the type and width of elements in a vector. For example, in the following instruction, U32 means 32-bit unsigned integers:

VMAX.U32 Q0, Q1, Q2

A register qualifier specifies the data width and the number of elements in the register. For example, in the following instruction .4S means 4 32-bit elements:

UMAX V0.4S, V1.4S, V2.4S

You can append a condition code to most floating-point instruction mnemonics to make them conditional.

A64 has no conditionally executed floating-point instructions.

The floating-point select instruction, VSEL, is unconditionally executed but uses a condition code as an operand. You append the condition code to the mnemonic, for example:

VSELEQ.F32 S1,S2,S3

There are several floating-point instructions that use a condition code as an operand. You specify the condition code in the final operand position, for example:

FCSEL S1,S2,S3,EQ

The P mnemonic qualifier which indicates pairwise instructions is a prefix, for example, VPADD.

The P mnemonic qualifier is a suffix, for example ADDP.

Non-ConfidentialPDF file icon PDF versionARM 100069_0608_00_en
Copyright © 2014–2017 ARM Limited or its affiliates. All rights reserved.