To vectorize
means to pack multiple data items into one register and to operate on them in parallel using vector
(a.k.a. packed
) instructions. Many floating point operations have vector
forms, LOG
is not one of them. Here's a list of single-precision packed form vector instructions, from http://docs.oracle.com/cd/E19253-01/817-5477/epmoa/index.html
- ADDPS add packed single-precision floating-point values
- DIVPS divide packed single-precision floating-point values
- MAXPS return maximum packed single-precision floating-point values
- MINPS return minimum packed single-precision floating-point values
- MULPS multiply packed single-precision floating-point values
- RCPPS compute reciprocals of packed single-precision floating-point values
- RSQRTPS compute reciprocals of square roots of packed single-precision floating-point values
- SQRTPS compute square roots of packed single-precision floating-point values
- SUBPS subtract packed single-precision floating-point values