With the unmasked string instructions, we have a few options. We can find a first or last occurrence of a character, but finding all occurrences is more challenging. We can compare strings and find a difference, but finding all differences is more complicated. Luckily, we also have string instructions that use masks, which makes them much more powerful. But before diving into mask instructions, we need to look at shuffling.
A First Look at Shuffling
Shuffling means moving around packed values. The moving can be within the same xmm register or from one xmm register to another xmm register, ...