You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug Description
When using the division instruction, CVA6 incorrectly triggers an underflow exception when the computed result is an exact subnormal number (e.g., 0x00000001). This contradicts the IEEE 754 standard, which specifies that an exact subnormal result should not trigger the underflow exception flag.
Steps to Reproduce:
Initialize ft4 to 0x00000001 and ft6 to 0x3F800000
Execute the instruction: fdiv.s ft1, ft4, ft6.
Observe the value of fflags.
The log from CVA6 is as follows:
core 0: 0x000000008000201e (0x186270d3) fdiv.s ft1, ft4, ft6
3 0x000000008000201e (0x186270d3) f 1 0xffffffff00000001
core 0: 0x0000000080002022 (0x001023f3) csrrs t2, fflags, zero
3 0x0000000080002022 (0x001023f3) x 7 0x0000000000000002
The computed result is 2^-149, which can be exactly represented as a subnormal number. Therefore, in this case, the underflow exception should not be triggered.
Bug Description
When using the division instruction, CVA6 incorrectly triggers an underflow exception when the computed result is an exact subnormal number (e.g., 0x00000001). This contradicts the IEEE 754 standard, which specifies that an exact subnormal result should not trigger the underflow exception flag.
Steps to Reproduce:
The log from CVA6 is as follows:
The log from Spike is as follows:
The computed result is 2^-149, which can be exactly represented as a subnormal number. Therefore, in this case, the underflow exception should not be triggered.
See:openhwgroup/cva6#2129
The text was updated successfully, but these errors were encountered: