I discover programming with vectorized data types for SIMD instructions (with this tutorial). From what I understand, a vector has a fixed size of 16 bytes. This schematic details it well and seems to answer my question:
A set of instructions including the basic operations (but also some more specific ones) is provided.
Nevertheless, just out of curiosity, I would like to know if there was a way to vectorize "custom data", and by that I mean mostly structures. I suppose that if the size of the structure is within the 16 byte range, it is possible, because in the end, the types are only byte sizes, however the instruction set does not seem to allow to operate directly on structures, for example to get a field.
So my question is the following: are we limited to the simple standard C types when vectorizing and SIMD operations? If not, how do we proceed? If yes, are there parallelization methods (other than multithreading) to operate simultaneously on structure vectors / arrays?