Data manipulation instruction for enhancing value and efficiency of complex arithmetic
AssigneeIntel Corporation
InventorsRoger A. Golliver, Carole Dulong
Life of this patent
Estimating the term…
Abstract
A method and apparatus for performing complex arithmetic is disclosed. In one embodiment, a method comprises decoding a single instruction, and in response to decoding the single instruction, moving a first operand occupying lower order bits of a first storage area to higher order bits of a result, moving a second operand occupying higher order bits of a second storage area to lower order bits of the result, and negating one of the first and second operands of the result.
Claims20
A method comprising the computer implemented acts of:
- decoding a single instruction;
- in response to decoding said single instruction,
- moving a first operand occupying lower order bits of a first storage area to higher order bits of a result;
- moving a second operand occupying higher order bits of a second storage area to lower order bits of the result;
- and
- negating one of the first and second operands of the result.
A processor, comprising:
- a decoder to decode instructions;
- and
- a circuit coupled to said decoder, said circuit in response to a single decoded instruction to,
- move a first operand occupying lower order bits of a first storage area to higher order bits of a result,
- move a second operand occupying higher order bits of a second storage area to lower order bits of the result, and
- negate one of the first and second operands of the result.
A method of multiplying a first floating-point complex number with a second floating-point complex number where each floating-point complex number includes a real component and an imaginary component, the method comprising the computer implemented acts of:
- packing the real component of the first complex number into first and second data elements of a first result;
- packing the imaginary component of the first complex number into first and second data elements of a second result;
- swapping the real and imaginary components of the second complex number to form a third result;
- negating the imaginary component of the third result;
- multiplying the first data element of the second result with the negated imaginary component of the third result to form a first data element of a fourth result, and the second data element of the second result with the real component of the third result to form a second data element of the fourth result;
- and
- multiplying the first data element of the first result with the real component of the second complex number and adding it to the first data element of the fourth result to form a first data element of a final result, and the second data element of the first result with the imaginary component of the second complex number and adding it to the second data element of the fourth result to form a second data element of the final result.
A processor, comprising:
- a decoder to decode instructions;
- and
- a circuit coupled to said decoder, said circuit in response to one or more decoded instructions to,
- pack a real component of a first complex number into first and second data elements of a first result,
- pack an imaginary component of the first complex number into first and second data elements of a second result,
- swap the real and imaginary components of the second complex number to form a third result;
- negate the imaginary component of the third result;
- multiply the first data element of the second result with the negated imaginary component of the third result to form a first data element of a fourth result, and the second data element of the second result with the real component of the third result to form a second data element of the fourth result;
- and
- multiply the first data element of the first result with the real component of the second complex number and adding it to the first data element of the fourth result to form a first data element of a final result, and the second data element of the first result with the imaginary component of the second complex number and adding it to the second data element of the fourth result to form a second data element of the final result.
A computer system, comprising:
- a machine readable medium storing one or more instructions;
- and
- a processor coupled to said machine readable medium, said processor in response to said one or more decoded instructions to,
- pack a real component of a first complex number into first and second data elements of a first result,
- pack an imaginary component of the first complex number into first and second data elements of a second result,
- swap the real and imaginary components of the second complex number to form a third result;
- negate the imaginary component of the third result;
- multiply the first data element of the second result with the negated imaginary component of the third result to form a first data element of a fourth result, and the second data element of the second result with the real component of the third result to form a second data element of the fourth result;
- and
- multiply the first data element of the first result with the real component of the second complex number and adding it to the first data element of the fourth result to form a first data element of a final result, and the second data element of the first result with the imaginary component of the second complex number and adding it to the second data element of the fourth result to form a second data element of the final result.
Dependencies are inferred from the claim text.