RISC-V SiFive HiFive Unleashed Флаг пониженного значения FMSUB.S (32) ведет себя по-разному в зависимости от округления - PullRequest
1 голос
/ 25 октября 2019

Вот ситуация. Я выполняю инструкцию FMSUB.S на упомянутом в названии оборудовании. Я использую значения операндов как таковые: 0xB3800000 * 0x00500000-0x80800000, с округлением до ближайшего-четного. Если я правильно GRS после этой операции будет 0x5, следовательно, происходит округление и конечный результат является нормальным значением 0x00800000, но устанавливается флаг недостаточного значения. Вторая попытка, но на этот раз с округлением в сторону + бесконечность (вверх). Та же операция, тот же результат, однако флаг недостаточного значения на этот раз не устанавливается. Неточный флаг в обоих случаях устанавливается. Та же операция, что и при округлении до ближайших связей до максимальной величины, ведет себя так же, как и при ближайшей четности. Округление -infinity с операндами 0x33800000 * 0x00500000-0x00800000 (изменение знаков в основном) действует так же, как + бесконечность с предыдущими операндами.

Мой вопрос: откуда взялась эта разница в флаге недостаточного значения?

...