On 03/18/2015 07:04 PM, Chen Gang wrote: > For me, I am not quite sure about it, the related functional description > is: > > rf[Dest] = signExtend32 ((int32_t) rf[SrcA] * (int32_t) rf[SrcB]); > > Do you mean it is equal to: > > rf[Dest] = signExtend32 (rf[SrcA] * rf[SrcB]);
Yes, of course. Think about how multiplication works. Bit N of the input cannot affect any output bit in [N-1,0]. Thus the first sign-extend cannot affect the output. r~