Это зависит от диапазона ваших мультипликаторов - если они умещаются в 16 битах, то перед SSE4 доступно несколько инструкций SSE 16 х 16 бит (например, mm_madd_epi16
, mm_mulhi_epi16
, mm_mullo_epi16
, mm_mulhrs_epi16
и т. Д.).
Если вам нужны 32-битные операнды, но они не подписаны, вы можете использовать mm_mul_epu32
.
В качестве альтернативы вы можете преобразовать в число с плавающей точкой и использовать _mm_mul_ps
(целочисленное <-> преобразование с плавающей точкой в SSE достаточно эффективно, и стоимость может быть оправдана, если вы получите повышение пропускной способности SIMD в 4 раза).