An apparatus and method for performing
SIMD multiply-accumulate operations includes
SIMD data processing circuitry responsive to control signals to perform
data processing operations in parallel on multiple data elements.
Instruction decoder circuitry is coupled to the
SIMD data processing circuitry and is responsive to program instructions to generate the required control signals. The
instruction decoder circuitry is responsive to a single instruction (referred to herein as a repeating multiply-accumulate instruction) having as input operands a first vector of input data elements, a second vector of coefficient data elements, and a
scalar value indicative of a plurality of iterations required, to generate control signals to control the
SIMD processing circuitry. In response to those control signals, the SIMD data
processing circuitry performs the plurality of iterations of a multiply-accumulate process, each iteration involving performance of N multiply-accumulate operations in parallel in order to produce N multiply-accumulate data elements. For each iteration, the SIMD data
processing circuitry determines N input data elements from said first vector and a single coefficient
data element from the second vector to be multiplied with each of the N input data elements. The N multiply-accumulate data elements produced in a final iteration of the multiply-accumulate process are then used to produce N multiply-accumulate results. This mechanism provides a particularly energy efficient mechanism for performing SIMD multiply-accumulate operations, as for example are required for FIR filter processes.