A processor comprising: a decode unit to decode an instruction, the instruction to indicate a first source packed data operand and a second source packed data operand, each data element in the first source packed data operand to correspond to a different data element in the second source packed data operand to provide a plurality of pairs of corresponding data elements, the instruction also to indicate a third source operand that is to include at least one shift count; and an execution unit coupled with the decode unit, the execution unit operable, in response to the instruction, to store a result packed data operand in a destination storage location, the result packed data operand to include a plurality of result data elements that each correspond to a different pair of corresponding data elements of the plurality of pairs of corresponding data elements, each result data element to include: a first least significant bit portion of a first data element of the corresponding pair of corresponding data elements in a most significant bit portion of the result data element; and a second MSB portion of a second data element of the corresponding pair of corresponding data elements in a LSB portion of the result data element, wherein one of the first LSB portion of the first data element and the second MSB portion of the second data element is to have a number of bits equal to a corresponding shift count of the at least one shift count, and wherein another of the first LSB portion of the first data element and the second MSB portion of the second data element is to have a number of bits equal to a size of a corresponding data element of the first source packed data operand minus the corresponding shift count. a decode unit to decode an instruction, the instruction to indicate a first source packed data operand and a second source packed data operand, each data element in the first source packed data operand to correspond to a different data element in the second source packed data operand to provide a plurality of pairs of corresponding data elements, the instruction also to indicate a third source operand that is to include at least one shift count; and an execution unit coupled with the decode unit, the execution unit operable, in response to the instruction, to store a result packed data operand in a destination storage location, the result packed data operand to include a plurality of result data elements that each correspond to a different pair of corresponding data elements of the plurality of pairs of corresponding data elements, each result data element to include: a first least significant bit portion of a first data element of the corresponding pair of corresponding data elements in a most significant bit portion of the result data element; and a second MSB portion of a second data element of the corresponding pair of corresponding data elements in a LSB portion of the result data element, wherein one of the first LSB portion of the first data element and the second MSB portion of the second data element is to have a number of bits equal to a corresponding shift count of the at least one shift count, and wherein another of the first LSB portion of the first data element and the second MSB portion of the second data element is to have a number of bits equal to a size of a corresponding data element of the first source packed data operand minus the corresponding shift count. a first least significant bit portion of a first data element of the corresponding pair of corresponding data elements in a most significant bit portion of the result data element; and a second MSB portion of a second data element of the corresponding pair of corresponding data elements in a LSB portion of the result data element, wherein one of the first LSB portion of the first data element and the second MSB portion of the second data element is to have a number of bits equal to a corresponding shift count of the at least one shift count, and wherein another of the first LSB portion of the first data element and the second MSB portion of the second data element is to have a number of bits equal to a size of a corresponding data element of the first source packed data operand minus the corresponding shift count.