5 A64 INSTRUCTION SET
5.7 Advanced SIMD
5.7.6 Vector Widening/Narrowing Arithmetic
UABAL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer absolute difference and accumulate long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S.
UABAL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer absolute difference and accumulate long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S.
SABAL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer absolute difference and accumulate long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S.
SABAL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer absolute difference and accumulate long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S.
UABDL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer absolute difference long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. UABDL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer absolute difference long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S.
SABDL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer absolute difference long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. SABDL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer absolute difference long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S.
UADDL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer add long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. UADDL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer add long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. SADDL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer add long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. SADDL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer add long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. USUBL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer subtract long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. USUBL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer subtract long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. SSUBL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer subtract long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. SSUBL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
UMLAL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer multiply-accumulate long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. UMLAL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer multiply-accumulate long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S.
SMLAL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer multiply-accumulate long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. SMLAL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer multiply-accumulate long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S.
UMLSL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer multiply-subtract from accumulator long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S.
UMLSL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer multiply-subtract from accumulator long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S.
SMLSL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer multiply-subtract from accumulator long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S.
SMLSL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer multiply-subtract from accumulator long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S.
UMULL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer multiply long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. UMULL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Unsigned integer multiply long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. SMULL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer multiply long (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. SMULL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer multiply long (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. PMULL Vd.8H, Vn.8B, Vm.8B
Polynomial multiply long (vector). PMULL2 Vd.8H, Vn.16B, Vm.16B
Polynomial multiply long (vector, second part). SQDMLAL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer saturating doubling multiply accumulate long (vector). Where the <Td>/<Ts> is 4S/4H or 2D/2S.
SQDMLAL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer saturating doubling multiply accumulate long (vector, second part). Where the <Td>/<Ts> is 4S/8H or 2D/4S.
SQDMLSL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer saturating doubling multiply subtract from accumulator long (vector). Where the <Td>/<Ts> is 4S/4H or 2D/2S.
SQDMLSL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer saturating doubling multiply subtract from accumulator long (vector, second part). Where the <Td>/<Ts> is 4S/8H or 2D/4S.
SQDMULL Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer saturating doubling multiply long (vector). Where the <Td>/<Ts> is 4S/4H or 2D/2S. SQDMULL2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Signed integer saturating doubling multiply long (vector, second part). Where the <Td>/<Ts> is 4S/8H or 2D/4S.
UADDW Vd.<Td>, Vn.<Td>, Vm.<Ts>
Unsigned integer add wide (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. UADDW2 Vd.<Td>, Vn.<Td>, Vm.<Ts>
Unsigned integer add wide (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. SADDW Vd.<Td>, Vn.<Td>, Vm.<Ts>
Signed integer add wide (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. SADDW2 Vd.<Td>, Vn.<Td>, Vm.<Ts>
Signed integer add wide (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. USUBW Vd.<Td>, Vn.<Td>, Vm.<Ts>
Unsigned integer subtract wide (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. USUBW2 Vd.<Td>, Vn.<Td>, Vm.<Ts>
Unsigned integer subtract wide (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. SSUBW Vd.<Td>, Vn.<Td>, Vm.<Ts>
Signed integer subtract wide (vector). Where the <Td>/<Ts> is 8H/8B, 4S/4H or 2D/2S. SSUBW2 Vd.<Td>, Vn.<Td>, Vm.<Ts>
Signed integer subtract wide (vector, second part). Where the <Td>/<Ts> is 8H/16B, 4S/8H or 2D/4S. RADDHN Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Integer rounding add and narrow high half (vector). Where the <Td>/<Ts> is 8B/8H, 4H/4S or 2S/2D. RADDHN2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Integer rounding add and narrow high half (vector, second part). Where the <Td>/<Ts> is 16B/8H, 8H/4S or 4S/2D.
RSUBHN Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Integer rounding subtract and narrow high half (vector). Where the <Td>/<Ts> is 8B/8H, 4H/4S or 2S/2D. RSUBHN2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Integer rounding subtract and narrow high half (vector, second part). Where the <Td>/<Ts> is 16B/8H, 8H/4S or 4S/2D.
ADDHN Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Integer add and narrow high half (vector). Where the <Td>/<Ts> is 8B/8H, 4H/4S or 2S/2D. ADDHN2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Integer add and narrow high half (vector, second part). Where the <Td>/<Ts> is 16B/8H, 8H/4S or 4S/2D. SUBHN Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Integer subtract and narrow high half (vector). Where the <Td>/<Ts> is 8B/8H, 4H/4S or 2S/2D. SUBHN2 Vd.<Td>, Vn.<Ts>, Vm.<Ts>
Integer subtract and narrow high half (vector, second part). Where the <Td>/<Ts> is 16B/8H, 8H/4S or 4S/2D.