Non-Confidential | PDF version | ARM 100069_0608_00_en | ||

| ||||

Home > A64 SIMD Scalar Instructions > A64 SIMD scalar instructions in alphabetical order |

A summary of the A64 SIMD scalar instructions that are supported.

**Table 19-1 Summary of A64 SIMD scalar instructions**

Mnemonic | Brief description | See |
---|---|---|

`ABS` (scalar) |
Absolute value (vector) | 19.2 ABS (scalar) |

`ADD` (scalar) |
Add (vector) | 19.3 ADD (scalar) |

`ADDP` (scalar) |
Add Pair of elements (scalar) | 19.4 ADDP (scalar) |

`CMEQ` (scalar, register) |
Compare bitwise Equal (vector) | 19.5 CMEQ (scalar, register) |

`CMEQ` (scalar, zero) |
Compare bitwise Equal to zero (vector) | 19.6 CMEQ (scalar, zero) |

`CMGE` (scalar, register) |
Compare signed Greater than or Equal (vector) | 19.7 CMGE (scalar, register) |

`CMGE` (scalar, zero) |
Compare signed Greater than or Equal to zero (vector) | 19.8 CMGE (scalar, zero) |

`CMGT` (scalar, register) |
Compare signed Greater than (vector) | 19.9 CMGT (scalar, register) |

`CMGT` (scalar, zero) |
Compare signed Greater than zero (vector) | 19.10 CMGT (scalar, zero) |

`CMHI` (scalar, register) |
Compare unsigned Higher (vector) | 19.11 CMHI (scalar, register) |

`CMHS` (scalar, register) |
Compare unsigned Higher or Same (vector) | 19.12 CMHS (scalar, register) |

`CMLE` (scalar, zero) |
Compare signed Less than or Equal to zero (vector) | 19.13 CMLE (scalar, zero) |

`CMLT` (scalar, zero) |
Compare signed Less than zero (vector) | 19.14 CMLT (scalar, zero) |

`CMTST` (scalar) |
Compare bitwise Test bits nonzero (vector) | 19.15 CMTST (scalar) |

`DUP` (scalar, element) |
Duplicate vector element to scalar | 19.16 DUP (scalar, element) |

`FABD` (scalar) |
Floating-point Absolute Difference (vector) | 19.17 FABD (scalar) |

`FACGE` (scalar) |
Floating-point Absolute Compare Greater than or Equal (vector) | 19.18 FACGE (scalar) |

`FACGT` (scalar) |
Floating-point Absolute Compare Greater than (vector) | 19.19 FACGT (scalar) |

`FADDP` (scalar) |
Floating-point Add Pair of elements (scalar) | 19.20 FADDP (scalar) |

`FCMEQ` (scalar, register) |
Floating-point Compare Equal (vector) | 19.21 FCMEQ (scalar, register) |

`FCMEQ` (scalar, zero) |
Floating-point Compare Equal to zero (vector) | 19.22 FCMEQ (scalar, zero) |

`FCMGE` (scalar, register) |
Floating-point Compare Greater than or Equal (vector) | 19.23 FCMGE (scalar, register) |

`FCMGE` (scalar, zero) |
Floating-point Compare Greater than or Equal to zero (vector) | 19.24 FCMGE (scalar, zero) |

`FCMGT` (scalar, register) |
Floating-point Compare Greater than (vector) | 19.25 FCMGT (scalar, register) |

`FCMGT` (scalar, zero) |
Floating-point Compare Greater than zero (vector) | 19.26 FCMGT (scalar, zero) |

`FCMLA` (scalar, by element) |
Floating-point Complex Multiply Accumulate (by element) | 19.27 FCMLA (scalar, by element) |

`FCMLE` (scalar, zero) |
Floating-point Compare Less than or Equal to zero (vector) | 19.28 FCMLE (scalar, zero) |

`FCMLT` (scalar, zero) |
Floating-point Compare Less than zero (vector) | 19.29 FCMLT (scalar, zero) |

`FCVTAS` (scalar) |
Floating-point Convert to Signed integer, rounding to nearest with ties to Away (vector) | 19.30 FCVTAS (scalar) |

`FCVTAU` (scalar) |
Floating-point Convert to Unsigned integer, rounding to nearest with ties to Away (vector) | 19.31 FCVTAU (scalar) |

`FCVTMS` (scalar) |
Floating-point Convert to Signed integer, rounding toward Minus infinity (vector) | 19.32 FCVTMS (scalar) |

`FCVTMU` (scalar) |
Floating-point Convert to Unsigned integer, rounding toward Minus infinity (vector) | 19.33 FCVTMU (scalar) |

`FCVTNS` (scalar) |
Floating-point Convert to Signed integer, rounding to nearest with ties to even (vector) | 19.34 FCVTNS (scalar) |

`FCVTNU` (scalar) |
Floating-point Convert to Unsigned integer, rounding to nearest with ties to even (vector) | 19.35 FCVTNU (scalar) |

`FCVTPS` (scalar) |
Floating-point Convert to Signed integer, rounding toward Plus infinity (vector) | 19.36 FCVTPS (scalar) |

`FCVTPU` (scalar) |
Floating-point Convert to Unsigned integer, rounding toward Plus infinity (vector) | 19.37 FCVTPU (scalar) |

`FCVTXN` (scalar) |
Floating-point Convert to lower precision Narrow, rounding to odd (vector) | 19.38 FCVTXN (scalar) |

`FCVTZS` (scalar, fixed-point) |
Floating-point Convert to Signed fixed-point, rounding toward Zero (vector) | 19.39 FCVTZS (scalar, fixed-point) |

`FCVTZS` (scalar, integer) |
Floating-point Convert to Signed integer, rounding toward Zero (vector) | 19.40 FCVTZS (scalar, integer) |

`FCVTZU` (scalar, fixed-point) |
Floating-point Convert to Unsigned fixed-point, rounding toward Zero (vector) | 19.41 FCVTZU (scalar, fixed-point) |

`FCVTZU` (scalar, integer) |
Floating-point Convert to Unsigned integer, rounding toward Zero (vector) | 19.42 FCVTZU (scalar, integer) |

`FMAXNMP` (scalar) |
Floating-point Maximum Number of Pair of elements (scalar) | 19.43 FMAXNMP (scalar) |

`FMAXP` (scalar) |
Floating-point Maximum of Pair of elements (scalar) | 19.44 FMAXP (scalar) |

`FMINNMP` (scalar) |
Floating-point Minimum Number of Pair of elements (scalar) | 19.45 FMINNMP (scalar) |

`FMINP` (scalar) |
Floating-point Minimum of Pair of elements (scalar) | 19.46 FMINP (scalar) |

`FMLA` (scalar, by element) |
Floating-point fused Multiply-Add to accumulator (by element) | 19.47 FMLA (scalar, by element) |

`FMLS` (scalar, by element) |
Floating-point fused Multiply-Subtract from accumulator (by element) | 19.48 FMLS (scalar, by element) |

`FMUL` (scalar, by element) |
Floating-point Multiply (by element) | 19.49 FMUL (scalar, by element) |

`FMULX` (scalar, by element) |
Floating-point Multiply extended (by element) | 19.50 FMULX (scalar, by element) |

`FMULX` (scalar) |
Floating-point Multiply extended | 19.51 FMULX (scalar) |

`FRECPE` (scalar) |
Floating-point Reciprocal Estimate | 19.52 FRECPE (scalar) |

`FRECPS` (scalar) |
Floating-point Reciprocal Step | 19.53 FRECPS (scalar) |

`FRSQRTE` (scalar) |
Floating-point Reciprocal Square Root Estimate | 19.54 FRSQRTE (scalar) |

`FRSQRTS` (scalar) |
Floating-point Reciprocal Square Root Step | 19.55 FRSQRTS (scalar) |

`MOV` (scalar) |
Move vector element to scalar | 19.56 MOV (scalar) |

`NEG` (scalar) |
Negate (vector) | 19.57 NEG (scalar) |

`SCVTF` (scalar, fixed-point) |
Signed fixed-point Convert to Floating-point (vector) | 19.58 SCVTF (scalar, fixed-point) |

`SCVTF` (scalar, integer) |
Signed integer Convert to Floating-point (vector) | 19.59 SCVTF (scalar, integer) |

`SHL` (scalar) |
Shift Left (immediate) | 19.60 SHL (scalar) |

`SLI` (scalar) |
Shift Left and Insert (immediate) | 19.61 SLI (scalar) |

`SQABS` (scalar) |
Signed saturating Absolute value | 19.62 SQABS (scalar) |

`SQADD` (scalar) |
Signed saturating Add | 19.63 SQADD (scalar) |

`SQDMLAL` (scalar, by element) |
Signed saturating Doubling Multiply-Add Long (by element) | 19.64 SQDMLAL (scalar, by element) |

`SQDMLAL` (scalar) |
Signed saturating Doubling Multiply-Add Long | 19.65 SQDMLAL (scalar) |

`SQDMLSL` (scalar, by element) |
Signed saturating Doubling Multiply-Subtract Long (by element) | 19.66 SQDMLSL (scalar, by element) |

`SQDMLSL` (scalar) |
Signed saturating Doubling Multiply-Subtract Long | 19.67 SQDMLSL (scalar) |

`SQDMULH` (scalar, by element) |
Signed saturating Doubling Multiply returning High half (by element) | 19.68 SQDMULH (scalar, by element) |

`SQDMULH` (scalar) |
Signed saturating Doubling Multiply returning High half | 19.69 SQDMULH (scalar) |

`SQDMULL` (scalar, by element) |
Signed saturating Doubling Multiply Long (by element) | 19.70 SQDMULL (scalar, by element) |

`SQDMULL` (scalar) |
Signed saturating Doubling Multiply Long | 19.71 SQDMULL (scalar) |

`SQNEG` (scalar) |
Signed saturating Negate | 19.72 SQNEG (scalar) |

`SQRDMLAH` (scalar, by element) |
Signed Saturating Rounding Doubling Multiply Accumulate returning High Half (by element) | 19.73 SQRDMLAH (scalar, by element) |

`SQRDMLAH` (scalar) |
Signed Saturating Rounding Doubling Multiply Accumulate returning High Half (vector) | 19.74 SQRDMLAH (scalar) |

`SQRDMLSH` (scalar, by element) |
Signed Saturating Rounding Doubling Multiply Subtract returning High Half (by element) | 19.75 SQRDMLSH (scalar, by element) |

`SQRDMLSH` (scalar) |
Signed Saturating Rounding Doubling Multiply Subtract returning High Half (vector) | 19.76 SQRDMLSH (scalar) |

`SQRDMULH` (scalar, by element) |
Signed saturating Rounding Doubling Multiply returning High half (by element) | 19.77 SQRDMULH (scalar, by element) |

`SQRDMULH` (scalar) |
Signed saturating Rounding Doubling Multiply returning High half | 19.78 SQRDMULH (scalar) |

`SQRSHL` (scalar) |
Signed saturating Rounding Shift Left (register) | 19.79 SQRSHL (scalar) |

`SQRSHRN` (scalar) |
Signed saturating Rounded Shift Right Narrow (immediate) | 19.80 SQRSHRN (scalar) |

`SQRSHRUN` (scalar) |
Signed saturating Rounded Shift Right Unsigned Narrow (immediate) | 19.81 SQRSHRUN (scalar) |

`SQSHL` (scalar, immediate) |
Signed saturating Shift Left (immediate) | 19.82 SQSHL (scalar, immediate) |

`SQSHL` (scalar, register) |
Signed saturating Shift Left (register) | 19.83 SQSHL (scalar, register) |

`SQSHLU` (scalar) |
Signed saturating Shift Left Unsigned (immediate) | 19.84 SQSHLU (scalar) |

`SQSHRN` (scalar) |
Signed saturating Shift Right Narrow (immediate) | 19.85 SQSHRN (scalar) |

`SQSHRUN` (scalar) |
Signed saturating Shift Right Unsigned Narrow (immediate) | 19.86 SQSHRUN (scalar) |

`SQSUB` (scalar) |
Signed saturating Subtract | 19.87 SQSUB (scalar) |

`SQXTN` (scalar) |
Signed saturating extract Narrow | 19.88 SQXTN (scalar) |

`SQXTUN` (scalar) |
Signed saturating extract Unsigned Narrow | 19.89 SQXTUN (scalar) |

`SRI` (scalar) |
Shift Right and Insert (immediate) | 19.90 SRI (scalar) |

`SRSHL` (scalar) |
Signed Rounding Shift Left (register) | 19.91 SRSHL (scalar) |

`SRSHR` (scalar) |
Signed Rounding Shift Right (immediate) | 19.92 SRSHR (scalar) |

`SRSRA` (scalar) |
Signed Rounding Shift Right and Accumulate (immediate) | 19.93 SRSRA (scalar) |

`SSHL` (scalar) |
Signed Shift Left (register) | 19.94 SSHL (scalar) |

`SSHR` (scalar) |
Signed Shift Right (immediate) | 19.95 SSHR (scalar) |

`SSRA` (scalar) |
Signed Shift Right and Accumulate (immediate) | 19.96 SSRA (scalar) |

`SUB` (scalar) |
Subtract (vector) | 19.97 SUB (scalar) |

`SUQADD` (scalar) |
Signed saturating Accumulate of Unsigned value | 19.98 SUQADD (scalar) |

`UCVTF` (scalar, fixed-point) |
Unsigned fixed-point Convert to Floating-point (vector) | 19.99 UCVTF (scalar, fixed-point) |

`UCVTF` (scalar, integer) |
Unsigned integer Convert to Floating-point (vector) | 19.100 UCVTF (scalar, integer) |

`UQADD` (scalar) |
Unsigned saturating Add | 19.101 UQADD (scalar) |

`UQRSHL` (scalar) |
Unsigned saturating Rounding Shift Left (register) | 19.102 UQRSHL (scalar) |

`UQRSHRN` (scalar) |
Unsigned saturating Rounded Shift Right Narrow (immediate) | 19.103 UQRSHRN (scalar) |

`UQSHL` (scalar, immediate) |
Unsigned saturating Shift Left (immediate) | 19.104 UQSHL (scalar, immediate) |

`UQSHL` (scalar, register) |
Unsigned saturating Shift Left (register) | 19.105 UQSHL (scalar, register) |

`UQSHRN` (scalar) |
Unsigned saturating Shift Right Narrow (immediate) | 19.106 UQSHRN (scalar) |

`UQSUB` (scalar) |
Unsigned saturating Subtract | 19.107 UQSUB (scalar) |

`UQXTN` (scalar) |
Unsigned saturating extract Narrow | 19.108 UQXTN (scalar) |

`URSHL` (scalar) |
Unsigned Rounding Shift Left (register) | 19.109 URSHL (scalar) |

`URSHR` (scalar) |
Unsigned Rounding Shift Right (immediate) | 19.110 URSHR (scalar) |

`URSRA` (scalar) |
Unsigned Rounding Shift Right and Accumulate (immediate) | 19.111 URSRA (scalar) |

`USHL` (scalar) |
Unsigned Shift Left (register) | 19.112 USHL (scalar) |

`USHR` (scalar) |
Unsigned Shift Right (immediate) | 19.113 USHR (scalar) |

`USQADD` (scalar) |
Unsigned saturating Accumulate of Signed value | 19.114 USQADD (scalar) |

`USRA` (scalar) |
Unsigned Shift Right and Accumulate (immediate) | 19.115 USRA (scalar) |