【发布时间】:2011-10-14 13:30:36
【问题描述】:
我正在寻找进行shl(mult(var1,var2),1) 运算,其中mult 将var1 和var2 相乘(两者都是16 位有符号整数)并且shl 以算术方式将乘法结果左移。结果必须是饱和的,即 int32 max 或 int32 min 如果发生上溢或下溢和mult(-32768,-32768)=2147483647。
我需要以一种我认为使用 MMX/SSE 指令集的有效方式对多个值进行此操作。我虽然想制作mult(sign_extesion(var1),shl(sign_extension(var2))),但我刚刚发现不存在 MMX mult() 饱和版本。你知道其他的获取方式吗?
【问题讨论】:
标签: assembly x86 sse mmx saturation-arithmetic