4.6.2. USAD8 and USADA8

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

Syntax

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

where:

cond

is an optional condition code (see Conditional execution).

Rd

is the destination register.

Rm

is the register holding the first operand.

Rs

is the register holding the second operand.

Rn

is the register holding the accumulate operand.

Do not use r15 for Rd, Rm, Rs, or Rn.

Operation

The USAD8 instruction finds the four differences between the unsigned values in corresponding bytes of Rm and Operand2. 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 Rn, 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-2 instructions are available in T2 variants of ARMv6 and above.

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
    USAD8CC     r0, r3, r15     ; use of r15 not permitted
    USADA16     r0, r4, r0, r1  ; no such instruction
Copyright © 2002-2005 ARM Limited. All rights reserved.ARM DUI 0204F
Non-Confidential