3.3. Cortex-A9 NEON MPE instructions

Table 3.1 shows the instructions supported by the Cortex-A9 NEON MPE, and the instruction set that they are in, either Advanced SIMD or VFP. The data types that each instruction supports are as follows:

D

Double precision floating-point values

F

Single precision floating-point values

H

Half precision floating-point values

I

Integer values

P

Polynomials with single-bit coefficients

X

Operation is independent of data representation.

See the ARM Architecture Reference Manual for details of instruction encodings and functionality.

Table 3.1. Cortex-A9 MPE instructions

NameAdvanced SIMDVFPDescription
VABAI-Absolute Difference and Accumulate
VABALI-Absolute Difference and Accumulate Long
VABDI, F-Absolute Difference
VABDLI-Absolute Difference Long
VABSI, FF, DAbsolute
VACGEF-Absolute Compare Greater Than or Equal
VACGTF-Absolute Compare Greater Than
VACLEF-Absolute Compare Less Than or Equal
VACLTF-Absolute Compare Less Than
VADDI, FF, DAdd
VADDHNI-Add and Narrow Returning High Half
VADDLI-Add Long
VADDWI-Add Wide
VANDX-Bitwise AND
VBICI-Bitwise Clear
VBIFX-Bitwise Insert if False
VBITX-Bitwise Insert if True
VBSLX-Bitwise Select
VCEQI, F-Compare Equal
VCGEI, F-Compare Greater Than or Equal
VCLEI, F-Compare Less Than or Equal
VCLSI-Count Leading Sign Bits
VCLTI, F-Compare Less Than
VCLZI-Count Leading Zeros
VCMP-F, DCompare Setting Flags
VCNTI-Count Number of Set Bits
VCVTI, F, HI, F, D, HConvert Between Floating-Point and 32-bit Integer Types
VDIV-F, DDivide
VDUPX-Duplicate
VEORX-Bitwise Exclusive OR
VEXTI-Extract Elements and Concatenate
VHADDI-Halving Add
VHSUBI-Halving Subtract
VLD1X-Load Single-Element Structures
VLD2X-Load Two-Element Structures
VLD3X-Load Three-Element Structures
VLD4X-Load Four-Element Structures
VLDMXF, DLoad Multiple Registers
VLDRXF, DLoad Single Register
VMAXI, F-Maximum
VMINI, F-Minimum
VMLAI, FF, DMultiply Accumulate
VMLSI, FF, DMultiply Subtract
VMLALI-Multiply Accumulate Long
VMLSLI-Multiply Subtract Long
VMOVXF, DMove Register or Immediate
VMOVLI-Move Long
VMOVNI-Move and Narrow
VMRSXF, DMove Advanced SIMD or VFP Register to ARM Compute Engine
VMSRXF, DMove ARM Core Register to Advanced SIMD or VFP
VMULI, F, PF, DMultiply
VMULLI, F, P-Multiply Long
VMVNX-Bitwise NOT
VNEGI, FF, DNegate
VNMLA-F, DNegative Multiply Accumulate
VNMLS-F, DNegative Multiply Subtract
VNMUL-F, DNegative Multiply
VORNX-Bitwise OR NOT
VORRX-Bitwise OR
VPADALI-Pairwise Add and Accumulate Long
VPADDI, F-Pairwise Add
VPADDLI-Pairwise Add Long
VPMAXI, F-Pairwise Maximum
VPMINI, F-Pairwise Minimum
VPOPXF, DPop from Stack
VPUSHXF, DPush to Stack
VQABSI-Saturating Absolute
VQADDI-Saturating Add
VQDMLALI-Saturating Double Multiply Accumulate Long
VQDMLSLI-Saturating Double Multiply Subtract Long
VQDMULHI-Saturating Doubling Multiply Returning High Half
VQDMULLI-Saturating Doubling Multiply Long
VQMOVNI-Saturating Move and Narrow
VQMOVUNI-Saturating Move and Unsigned Narrow
VQNEGI-Saturating Negate
VQRDMULHI-Saturating Rounding Doubling Multiply Returning High Half
VQRSHLI-Saturating Rounding Shift Left
VQRSHRNI-Saturating Rounding Shift Right Narrow
VQRSHRUNI-Saturating Rounding Shift Right Unsigned Narrow
VQSHLI-Saturating Shift Left
VQSHLUI-Saturating Shift Left Unsigned
VQSHRNI-Saturating Shift Right Narrow
VQSHRUNI-Saturating Shift Right Unsigned Narrow
VQSUBI-Saturating Subtract
VRADDHNI-Rounding Add and Narrow Returning High Half
VRECPEI, F-Reciprocal Estimate
VRECPSF-Reciprocal Step
VREV16X-Reverse in Halfwords
VREV32X-Reverse in Words
VREV64X-Reverse in Doublewords
VRHADDI-Rounding Halving Add
VRSHLI-Rounding Shift Left
VRSHRI-Rounding Shift Right
VRSHRNI-Rounding Shift Right Narrow
VRSQRTEI, F-Reciprocal Square Root Estimate
VRSQRTSF-Reciprocal Square Root Step
VRSRAI-Rounding Shift Right and Accumulate
VRSUBHNI-Rounding Subtract and Narrow Returning High Half
VSHLI-Shift Left
VSHLLI-Shift Left Long
VSHRI-Shift Right
VSHRNI-Shift Right Narrow
VSLIX-Shift Left and Insert
VSQRT-F, DSquare Root
VSRAI-Shift Right and Accumulate
VSRIX-Shift Right and Insert
VST1X-Store single-element structures
VST2X-Store two-element structures
VST3X-Store three-element structures
VST4X-Store four-element structures
VSTMXF, DStore Multiple Registers
VSTRXF, DStore Register
VSUBI, FF, DSubtract
VSUBHNI-Subtract and Narrow
VSUBLI-Subtract Long
VSUBWI-Subtract Wide
VSWPI-Swap Contents
VTBLX-Table Lookup
VTBXX-Table Extension
VTRNX-Transpose
VTSTI-Test Bits
VUZPX-Unzip
VZIPX-Zip

Copyright © 2008-2010 ARM. All rights reserved.ARM DDI 0409F
Non-ConfidentialID050110