1. A computer implemented method for shuffling packed data elements comprising: decoding a single instruction specifying a single field of per-lane control bits, and indicating a source operand and a destination operand, said source and destination operands having corresponding pluralities of multi-bit lanes, the multi-bit lanes being divided into corresponding pluralities of portions, each of said portions including a same number of data elements; responsive to decoding the single instruction selecting a set of data elements for each multi-bit lane using the single field of the per-lane control bits for each set selection, wherein each set of data elements is selected from any data elements in a corresponding portion of a corresponding multi-bit lane of the source operand using same per-lane control bits; and storing the selected sets of data elements to the corresponding portions of each corresponding multi-bit lane of the destination operand.