In hardware terms VIS is somewhat limited. It re-uses the existing floating point registers to hold multiple 8, 16, or 32-bit integer values. This can have a negative performance impact on the system when code attempts to run FPU and VIS instructions in succession, causing the registers to have to be re-loaded. In this respect VIS is something of an "old" design like MMX, unlike more modern SIMD architechtures like AltiVec.
VIS includes a number of operations primarily for graphics support, but has more of them than other integer-only SIMD sets. These include 3D to 2D conversion, edge processing and pixel distance.
Links: