5 A64 INSTRUCTION SET
5.7 Advanced SIMD
5.7.5 Scalar Arithmetic
FABD <V>d, <V>n, <V>m
Floating-point absolute difference (scalar). Subtracts <V>m from <V>n, and places the absolute value of the result in <V>d. Where <V>is S or D.
ADD Dd, Dn, Dm
Integer add (scalar). CMEQ Dd, Dn, Dm
Integer compare mask equal (scalar). CMEQ Dd, Dn, #0
Integer compare mask equal to zero (scalar). CMHS Dd, Dn, Dm
Unsigned integer compare mask higher or same (scalar). CMGE Dd, Dn, Dm
Signed integer compare mask greater than or equal (scalar). CMGE Dd, Dn, #0
Signed integer compare mask greater than or equal to zero (scalar). CMHI Dd, Dn, Dm
Unsigned integer compare mask higher (scalar). CMGT Dd, Dn, Dm
Signed integer compare mask greater than (scalar). CMGT Dd, Dn, #0
Signed integer compare mask greater than zero (scalar). CMLS Dd, Dn, Dm
Unsigned integer compare mask lower or same (scalar). Alias for CMHS with operands reversed.
CMLE Dd, Dn, Dm
Signed integer compare mask less than or equal (scalar). Alias for CMGE with operands reversed.
CMLE Dd, Dn, #0
Signed integer compare mask less than or equal to zero (scalar). CMLO Dd, Dn, Dm
Unsigned integer compare mask lower (scalar). Alias for CMHI with operands reversed.
CMLT Dd, Dn, Dm
Signed integer compare mask less than (scalar). Alias for CMGT with operands reversed.
CMLT Dd, Dn, #0
Signed integer compare mask less than zero (scalar). CMTST Dd, Dn, Dm
Integer compare mask bitwise test (scalar). FCMEQ <V>d, <V>n, <V>m
Floating-point compare mask equal (scalar). Where <V>is S or D. FCMEQ <V>d, <V>n, #0
Floating-point compare mask equal to zero (scalar). Where <V>is S or D. FCMGE <V>d, <V>n, <V>m
Floating-point compare mask greater than or equal (scalar). Where <V>is S or D. FCMGE <V>d, <V>n, #0
Floating-point compare mask greater than or equal to zero (scalar). Where <V>is S or D. FCMGT <V>d, <V>n, <V>m
Floating-point compare mask greater than (scalar). Where <V>is S or D. FCMGT <V>d, <V>n, #0
Floating-point compare mask greater than zero (scalar). Where <V>is S or D. FCMLE <V>d, <V>n, <V>m
Floating-point compare mask less than or equal (scalar). Where <V>is S or D. Alias for FCMGE with operands reversed.
FCMLE <V>d, <V>n, #0
Floating-point compare mask less than or equal to zero (scalar). Where <V>is S or D. FCMLT <V>d, <V>n, <V>m
Floating-point compare mask less than (scalar). Where <V>is S or D. Alias for FCMGT with operands reversed.
FCMLT <V>d, <V>n, #0
Floating-point compare mask less than zero (scalar). Where <V>is S or D. FACGE <V>d, <V>n, <V>m
Floating-point absolute compare mask greater than or equal (scalar). Where <V>is S or D. FACGT <V>d, <V>n, <V>m
FACLE <V>d, <V>n, <V>m
Floating-point absolute compare mask less than or equal (scalar). Where <V>is S or D. Alias for FACGE with operands reversed.
FACLT <V>d, <V>n, <V>m
Floating-point absolute compare mask less than (scalar). Where <V>is S or D. Alias for FACGT with operands reversed.
SQADD <V>d, <V>n, <V>m
Signed integer saturating add (scalar). Where <V> is B, H, S or D. UQADD <V>d, <V>n, <V>m
Unsigned integer saturating add (scalar). Where <V> is B, H, S or D. SQDMULH <V>d, <V>n, <V>m
Signed integer saturating doubling multiply high half (scalar). Where <V> is H or S. SQRDMULH <V>d, <V>n, <V>m
Signed integer saturating rounding doubling multiply high half (scalar). Where <V> is H or S. UQRSHL <V>d, <V>n, <V>m
Unsigned integer saturating rounding shift left (scalar). Where <V> is B, H, S or D. SQRSHL <V>d, <V>n, <V>m
Signed integer saturating rounding shift left (scalar). Where <V> is B, H, S or D. UQSUB <V>d, <V>n, <V>m
Unsigned integer saturating subtract (scalar). Where <V> is B, H, S or D. SQSUB <V>d, <V>n, <V>m
Signed integer saturating subtract (scalar). Where <V> is B, H, S or D. UQSHL <V>d, <V>n, <V>m
Unsigned integer saturating shift left (scalar). Where <V> is B, H, S or D. SQSHL <V>d, <V>n, <V>m
Signed integer saturating shift left (scalar). Where <V> is B, H, S or D. URSHL Dd, Dn, Dm
Unsigned integer rounding shift left (scalar). SRSHL Dd, Dn, Dm
Signed integer rounding shift left (scalar). USHL Dd, Dn, Dm
Unsigned integer shift left (scalar). SSHL Dd, Dn, Dm
Signed integer shift left (scalar). SUB Dd, Dn, Dm
Integer subtract (scalar). FMULX <V>d, <V>n, <V>m
Floating-point multiply extended, like FMUL but 0±∞→ ±2 (scalar). Where <V> is S or D. FRECPS <V>d, <V>n, <V>m
Floating-point reciprocal step (scalar). Where <V>is S or D. The embedded multiply-accumulate is fused in AArch64 FRECPS, whilst in AArch32 VRECPS it remains chained.
FRSQRTS <V>d, <V>n, <V>m
Floating-point reciprocal square root step (scalar). Where <V>is S or D. The embedded multiply- accumulate is fused in AArch64 FRSQRTS, whilst in AArch32 VRSQRTS it remains chained.