They are vector instructions. They're added to the instruction set because many multimedia applications deal with vectors, not scalars. A scalar would be a single value like 15, a vector would be multiple values like [5, 2, 6, 10]. These instructions allow operations on various type of vectors. So for instance, in your video codec, each pixel has 4 values, red, green, blue and alpha value. You want to add 2 of these pixel values together. For the sake of example, let's say you wanted to add one pixel which was: [4, 26, 3, 10] to another pixel which was [5, 7, 11, 13]. Using scalar instructions, you'd have to have 4 instructions to add the pixel values:
4 + 5;
26 + 7;
3 + 11;
10 + 13;
Using vector instructions, it would simply be one instruction:
[4, 26, 3, 10] + [5, 7, 11, 13];
Vector instructions use larger data sets. So if your normal scalar value (say 4) was a 32-bit number, a vector would be 128 bits (containing 4 32-bit values). With one instruction, you accomplish what would otherwise have taken 4 instructions. The advantage here is since those 4 instructions would've been the same (they're all add) and only the data is different, you don't need to issue the instruction 4 times, just issue it once and have it work on multiple pieces of data. Hence, Single Instruction Multiple Data, or SIMD.
Vector instructions can be incredibly useful and they're not limited to arithmetic. Vector data types can also be very good for performance (good locality) but I won't explain the details here. Suffice it to say, all those instruction set extensions add more and more versatile vector instructions (MMX offered support for integer vectors, SSE offered support for 32-bit Floating Point numbers, SSE2 offered 64-bit Floating Point and SSE3 offered a few horizontal instructions).