fn pmulhrsw<'tcx>(
this: &mut MiriInterpCx<'tcx>,
left: &OpTy<'tcx>,
right: &OpTy<'tcx>,
dest: &MPlaceTy<'tcx>,
) -> InterpResult<'tcx, ()>
Expand description
Multiplies packed 16-bit signed integer values, truncates the 32-bit
product to the 18 most significant bits by right-shifting, and then
divides the 18-bit value by 2 (rounding to nearest) by first adding
1 and then taking the bits 1..=16
.
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_mulhrs_epi16 https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm256_mulhrs_epi16