arch-gcn3: Fix roundNearestEven for V_RNDNE_F64 and V_RNDNE_F32
authorTravis Boraten <travis.boraten@amd.com>
Mon, 22 Apr 2019 21:14:13 +0000 (17:14 -0400)
committerAnthony Gutierrez <anthony.gutierrez@amd.com>
Fri, 17 Jul 2020 16:32:56 +0000 (16:32 +0000)
commite4f7982e90c16b4080aa74a08b69a7b655795fcd
treed0cb6ad732d195b03b9d687692a80d586976dd9c
parentf64ff892123586883872585b6d66d99399531e10
arch-gcn3: Fix roundNearestEven for V_RNDNE_F64 and V_RNDNE_F32

roundNearestEven is an inst_util function that RNDNE_F64 and F32
call, including both VOP1 and VOP3 formats. IEEE 754 spec says this
function should round inputs to the nearest integer but round ties
to the nearest even integer. Prior to this patch it was rounding all
inputs to nearest even, not just the ties. It was probably implemented
this way originally because the language in the ISA manual is ambiguous
although it provided the correct logic.

Fixed roundNearestEven to use the semantics originally described in
the GCN3 ISA manual.

Change-Id: I83ecb1d516fcf5bdf17e54ddf409b447a129a9a7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/29964
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
src/arch/gcn3/insts/inst_util.hh