_cmpyr1 中sat问题



你好,_cmpyr1的文档描述如下

sat((lsb16(src1) × msb16(src2)) + (msb16(src1) × lsb16(src2))) → tmp_e
msb16(sat((tmp_e + 0000 4000h) << 1)) → lsb16(dst)
sat((msb16(src1) × msb16(src2)) - (lsb16(src1) × lsb16(src2))) → tmp_o
msb16(sat((tmp_e + 0000 4000h) << 1)) → msb16(dst)

有以下问题:

1.src1,src2是不是有符号32bit整数

2.sat的主要作用是什么,能否举例说明

3.按文档上例子src1=7FFF7FFF,src2=7FFF8000

     tmp_e=sat(7FFF*7FFF+7FFF*8000)=sat(7FFE8001)=7FFE8001

     (tmp_e+ 0000 4000h)<<1=7FFEC001<<1=FFFD8002

     sat(FFFD8002)=7FFFFFF?此处是否这样处理