|Introducing the Vector C|
|Veselko Gustin - Faculty of Computer and Information Science, University of Ljubljana|
Patricio Bulic - Faculty of Computer and Information Science, University of Ljubljana
The introduction of short single-instruction multiple data (SIMD) i.e. "vectored" instructions to the microprocessor's "scalar" instruction set is supported by special hardware that enables the execution of one instruction on multiple data sets. Thus, on the one hand we have modern multimedia execution hardware and on the other we have the software, i.e. the general compilers, which are not able to compile programs in a highlevel language into a multimedia instruction set. Our solution to these problems is, first, to use statements in the language "vector C", which can be defined as a "dialect of C". And second, to employ the SIMD instruction set in the easiest possible way. As the compiler cannot be easily user-changed or modified, we can only extend the functionality of the program (compiler) by using a pre-compiler and specialised macro (or intrinsic) library. We believe that the use of the macro (or intrinsic) library is faster than function calls, and we expect it to be simpler and friendlier for the user. We define the macro library MacroVect.c as the substitution for the statements in vector C.