I'm writing a school assignment and I'm trying to fully grasp the differences between Salsa20 and ChaCha.
I've come to understand that by rotating upwards the initial matrix columns, DJB says that thanks to SIMD each quarter-round will run in parallel for each column, effectively running four quarter-rounds at the same time.
But if the following round has to be run on diagonals how can this be optimized for SIMDs? Will it rotate again columns to make the diagonals into rows? Will this rotation affect performance or the benefit of the SIMD beats this?