x86 - Is it possible to vectorize a multiplication in VC++ without SSE4? -


I want to vector a multiplication operation. I tried to use _mm_mul_epi32 , but my CPU only has support for "MMX, SSE (1,2,3,3 s), EM64T" instruction.

Can someone please tell me I can use any other function?

It depends on the limit of your coefficient - this is 16 beats then SSE 4 (for example < There are several 16 x 16 bit multiple SSE instructions available before code> mm_madd_epi16 , mm_mulhi_epi16 , mm_mullo_epi16 , mm_mulhrs_epi16 , etc.).

If you need 32 bit operands but they are unsigned, then you can use mm_mul_epu32 .

Alternatively, you can find float conversion in float and SSE useful in SEE, and if this requires improvement through 4x SIM then cost can be justified.

Comments