I have a vectors of f32vec4 values and would like to feed them through some of the ippm vv functions without having to code the processing manually. Can I just treat them as vectors of ipp_32f? Are they packed the same? Will the ippm functions be as fast as loops of the handcoded SIMD instructions? I know the ippm would be easier to read. Specifically I am looking at the ippmLComb_vv_32f to start. We are not specifically compiling with icl targeted to a specific processor but are running on a core 2 duo of some kind.
there is comment from our expert:
Yes, it is possible to use
IppStatus ippmLComb_vv_32f, ( const Ipp32f* pSrc1 , int src1Stride2, Ipp32f scale1 , const Ipp32f* pSrc2 , int src2Stride2, Ipp32f scale2 , Ipp32f* pDst , int dstStride2, int len );
#define F32vec4 float;
ippmLComb_vv_32f ( src1 , sizeof(float), 0.3 , src2 , sizeof(float), 0.7 , dst , sizeof(float), 4 );
This function has SSE optimization, i.e. it uses SIMD instruction
For a vectors of F32vec4 values it is better to call ippmLComb_vava_32f function.