1. A method for performing a vector convolution function on a signal in software, comprising: receiving, by a processor, the signal, wherein the signal comprises a plurality of data samples, and performing, by the processor, the vector convolution function on the signal and a plurality of coefficients by executing, in response to a single software instruction, a single instruction of a hardware instruction set of the processor, wherein the single instruction comprises a vector convolution instruction, wherein performing the vector convolution function comprises producing, for each of a plurality of time shifts, a finite impulse response output value based on the plurality of data samples and the plurality of coefficients, wherein producing, for each of the plurality of time shifts, the finite impulse response output value comprises to produce, for each of the plurality of time shifts, only a portion of the finite impulse response output value based on the plurality of data samples and only a portion of each coefficient of the plurality of coefficients in one clock cycle of the processor.