print *, sx1 * sx2 + sx3
print *, ieee_fma(sx1, sx2, sx3)
if (ieee_fma(sx1, sx2, sx3) /= real(3, kind(sx1)) / 2) stop 4
- !if (ieee_fma(sx1, sx2, sx3) == sx1 * sx2 + sx3) stop 5
! Double
print *, dx1 * dx2 + dx3
print *, ieee_fma(dx1, dx2, dx3)
if (ieee_fma(dx1, dx2, dx3) /= real(3, kind(dx1)) / 2) stop 4
- !if (ieee_fma(dx1, dx2, dx3) == dx1 * dx2 + dx3) stop 5
! Large kind 1
print *, lx1 * lx2 + lx3
print *, ieee_fma(lx1, lx2, lx3)
if (ieee_fma(lx1, lx2, lx3) /= real(3, kind(lx1)) / 2) stop 4
- if (ieee_fma(lx1, lx2, lx3) == lx1 * lx2 + lx3) stop 5
! Large kind 2
print *, wx1 * wx2 + wx3
print *, ieee_fma(wx1, wx2, wx3)
if (ieee_fma(wx1, wx2, wx3) /= real(3, kind(wx1)) / 2) stop 4
- if (ieee_fma(wx1, wx2, wx3) == wx1 * wx2 + wx3) stop 5
end
! Check again
if (ieee_support_underflow_control()) then
call ieee_get_underflow_mode(f)
- if (.not. f) stop 3
+ if (.not. f) stop 4
endif
if (ieee_support_rounding(ieee_down)) then
call ieee_get_rounding_mode(rmode)
- if (rmode /= ieee_down) stop 4
+ if (rmode /= ieee_down) stop 5
endif
if (ieee_support_halting(ieee_overflow)) then
call ieee_get_halting_mode(ieee_overflow, f)
- if (f) stop 5
+ if (f) stop 6
endif
end program foo