#include <zmmintrin.h> // not needed but put here to show it is indeed included
a = _mm512_mul_epi32(b,c);
produces this error:
undefined reference to '_mm512_mul_epi32'
The Intrinsics function _mm512_mul_epi32 is not available on KNC, but you could use _mm512_mul_ps involving two cast operations. Cast operations have zero latency and thereby no influence on the performance.
Try sty like this:
__m512i x_, y_, z_;
x_ = _mm512_castps_si512( _mm512_mul_ps( _mm512_castsi512_ps(y_), _mm512_castsi512_ps(z_) ) );
For some reasons I don't really understand the function _mm512_fmadd233_epi32 is listed in the Intrinsics guide as a = b*c. That is really strange - it must be a typo i guess...
Have a look in http://software.intel.com/sites/landingpage/IntrinsicsGuide/
This does seem to be a typo. I checked the Intel MIC instrinsic reference in the compiler documentation which seems to be correct.
Regarding the original question, the intrinsic for 32-bit integer multiplication is named _mm512_mullo_epi32.
(_mm512_mul_ps will do a floating-point multiplication, which may not be what the OP wanted).