1. An apparatus comprising a matrix-vector multiplication (MVM) component (e.g., 400 ) that generates a product vector (e.g., {right arrow over (x)}) based on (i) an input matrix (e.g., 404 ) and (ii) an input vector (e.g., {right arrow over (u)}), the MVM component comprising: a permuter (e.g., 402 ) that, for each input sub-vector (e.g., {right arrow over (u)} 1 ,. .. , {right arrow over (u)} 16 ) of the input vector, permutates the input sub-vector based on a set of permutation coefficients (e.g., P j,k ) to generate a set of permuted input sub-vectors (e.g., [{right arrow over (u)} k ] P j,k ), wherein each permutation coefficient in the set corresponds to a different sub-matrix in a current block column of the input matrix; memory (e.g., 408 ) that stores a set of intermediate product sub-vectors (e.g., {right arrow over (x)} 1 ,. .. , {right arrow over (x)} 8 ) corresponding to the product vector; and an XOR gate array (e.g., 406 ) that, for each input sub-vector, performs exclusive disjunction on (i) the set of permuted input sub-vectors and (ii) the set of intermediate product sub-vectors to update the set of intermediate product sub-vectors, wherein the XOR gate array updates all of the intermediate product sub-vectors in the set based on a current input sub-vector before updating any of the intermediate product sub-vectors in the set based on a subsequent input sub-vector.