Exception IVOR33 in MPC5777C Floating-Point Operations and Exception Conditions.
I am performing floating-point operations using the MPC5777C. I am encountering Exception IVOR33 and would like to inquire about it.
First, my MSR setting is as follows:
MSR = 0x0202B000 (SPE, FP enabled)
The test data used is:
FLT_MAX = 3.403e+38
FLT_MIN = 1.175e-38
FLT_TRUE_MIN = 1.401e-45
dNum -> double
fNum -> float
Case 1:
dNum = FLT_MAX * 2;
fNum = (float)dNum;
→ Exception did not occur
Case 2:
dNum = FLT_MIN / 2.;
fNum = (float)dNum;
→ Exception did not occur
Case 3:
dNum = FLT_TRUE_MIN / 2;
fNum = (float)dNum;
→ Exception did not occur
Case 4:
fTmp = 1.e+30f;
fNum = fTmp * fTmp;
→ Exception did not occur
Case 5:
fTmp = 1.e-20f;
fNum = fTmp * fTmp;
→ Exception occurred!
Why does an exception not occur in Case 1 when exceeding the upper limit?
Also, I would like to know the precise conditions under which the exception occurs.