13.61 MLA

Multiply-Accumulate with signed or unsigned 32-bit operands, giving the least significant 32 bits of the result.


MLA{S}{cond} Rd, Rn, Rm, Ra


is an optional condition code.
is an optional suffix. If S is specified, the condition flags are updated on the result of the operation.
is the destination register.
Rn, Rm
are registers holding the values to be multiplied.
is a register holding the value to be added.


The MLA instruction multiplies the values from Rn and Rm, adds the value from Ra, and places the least significant 32 bits of the result in Rd.

Register restrictions

You cannot use PC for any register.

You can use SP in A32 instructions but this is deprecated. You cannot use SP in T32 instructions.

Condition flags

If S is specified, the MLA instruction:

  • Updates the N and Z flags according to the result.
  • Does not affect the C or V flag.


This instruction is available in A32 and T32.

There is no 16-bit version of this instruction in T32.


    MLA     r10, r2, r1, r5
Non-ConfidentialPDF file icon PDF versionDUI0801J
Copyright © 2014–2017, 2019 Arm Limited or its affiliates. All rights reserved.