xiaofeibao-xjtu
Results
2
comments of
xiaofeibao-xjtu
这两种情况正确结果都应该是负无穷0xff800000,NEMU的判断可能有问题
fnmadd.s计算-(rs1*rs2)-rs3 现在我们把rs2符号反向,rs3符号反向,变成(rs1*(-rs2))+(-rs3) 构造新的fma操作数a=rs1,b=-rs2,c=-rs3,计算(a*b)+c a:0x4f057641 b:0xf0000000 c:0x7f057641 a*b是不会舍入的,是否溢出要看(a*b)+c整体的值 以下编码不考虑溢出: (a*b)=0xff857641,c=0x7f057641,(a*b)是负数比负无穷还小,但是c是正数, 并且-2c=2(-c)=20xff057641=0xff857641=(a*b), 所以(a*b)+c=-c=0xff057641, 结果是精确的,和舍入模式也无关。 原先我回复溢出是我理解错了fnmadd.s,以为计算的-(rs1*rs2)+rs3。 目前结论NEMU计算结果是正确的,也单独对南湖fudian里面的FCMA硬件模块进行了测试,结果和NEMU一致。问题还待进一步复现确定。。。