Patent ID: 8726281

Claim:
A method of converting a first program code into a second program code, such that the second program code has an improved execution on a targeted programmable platform, the method comprising: grouping operations on data for joint execution on a functional unit of the targeted platform; scheduling the operations in time; assigning the operations to an appropriate functional unit of the targeted platform, wherein detailed word length information is used in at least one of the grouping, scheduling or assigning operations, and wherein the process of scheduling and assigning comprises scheduling and assigning at least one multiplication operation comprising a right shift operation; and implementing a software single instruction multiple data (SIMD) instruction by adding guard data to the data such that joint operation on the data is not jeopardizing the correctness of the data, wherein implementing the software single instruction multiple data (SIMD) instructions comprises: inserting a single guard bit between a least significant bit of a first sub-word and a most significant bit of a second sub-word, the first sub-word and the second sub-word packed together and part of the software single instruction multiple data (SIMD) instruction; discarding a first number of least significant bits of the first sub-word; and applying the right shift operation to the first sub-word by shifting the first sub-word to the right by the first number of bits.