4.6.2. USAD8 and USADA8

Unsigned Sum of Absolute Differences, and Accumulate unsigned sum of absolute differences.

Syntax

USAD8{cond} {Rd}, Rn, Rm
USADA8{cond} Rd, Rn, Rm, Ra

where:

cond

is an optional condition code (see Conditional execution).

Rd

is the destination register.

Rn

is the register holding the first operand.

Rm

is the register holding the second operand.

Ra

is the register holding the accumulate operand.

Do not use r15 for Rd, Rn, Rn, or Ra.

Operation

The USAD8 instruction finds the four differences between the unsigned values in corresponding bytes of Rn and Rm. It adds the absolute values of the four differences, and saves the result to Rd.

The USADA8 instruction adds the absolute values of the four differences to the value in Ra, and saves the result to Rd.

Condition flags

These instructions do not alter any flags.

Architectures

These ARM instructions are available in ARMv6 and above.

These 32-bit Thumb instructions are available in ARMv6T2 and above, except the ARMv7-M profile.

There are no 16-bit Thumb versions of these instructions.

Examples

    USAD8       r2, r4, r6
    USADA8      r0, r3, r5, r2
    USADA8VS    r0, r4, r0, r1

Incorrect examples

    USADA8      r2, r4, r6      ; USADA8 requires four registers
    USADA16     r0, r4, r0, r1  ; no such instruction
Copyright © 2002-2010 ARM. All rights reserved.ARM DUI 0204J
Non-ConfidentialID101213