Vectorization is the process that converts a loop to use SIMD instructions and is a manual process. Autovectorization is when the compiler does this conversion automatically by detecting specific patterns in the loop that enable it to use specific SIMD instructions to increase performance.
There are quite a few requirements so that a loop can be detected as vectorizable by the compiler. In particular, it has to be countable, mostly without branches, no function calls, no data inter-dependency.
For each 32-bit element in the input vectors A[i], B[i], `SDOT`/`UDOT` evaluate the sum of the products between the 4 x 8-bit signed/unsigned integers that comprise the A[i], B[i] elements. The corresponding 32-bit element in the output vector holds the resulting sums. For SVE, `SDOT`/`UDOT` instruction also works on 16-bit signed/unsigned integers.