Skip to content

Commit 4f1b58c

Browse files
committed
Fixing subnormal result discarded bit masking
Signed-off-by: Nicolas Brunie <nibrunie@gmail.com>
1 parent 260dd93 commit 4f1b58c

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

src/unpriv/rvbna.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,9 +231,10 @@ BulkNormalizedDotProduct(A[n], B[n]) {
231231
} else {
232232
// denormalization and final round-to-odd
233233
// (of bits discarded during denormalization)
234-
let denormalizedSig = accAbs >> (q - 1 + resExp)
235-
let discardedMask = ((1 << (q - 1)) - 1) >> (q - 1 + resExp)
236-
let discardedBits = accAbs & discardedMask
234+
let denormShift = -resExp
235+
let denormalizedSig = (accAbs << lzc) >> (g + o + 1 + 1 + denormShift)
236+
let discardedMask = (1 << (g + o + 1 + 1 + denormShift)) - 1
237+
let discardedBits = (accAbs << lzc) & discardedMask
237238
let forceLSB = (discardedBits != 0 ? 1 : 0)
238239
return (accSign << (q + f - 1)) | denormalizedSig | forceLSB
239240
}

0 commit comments

Comments
 (0)