1. A method of compiling program code, the method comprising: receiving, by a compiler, an instruction stream including a plurality of instructions that form the program code, the instructions being related to both scalar and vector data; injecting, by the compiler, data parallel select instructions into the instruction stream to form a modified instruction stream wherein conditional test and branch instructions are replaced with data parallel select instructions; revising, by the compiler, the modified instruction stream to enhance execution of the data parallel select instructions, thus providing a revised modified instruction stream; and generating, by the compiler, vectorized code from the revised modified instruction stream.