| ! { dg-do run { xfail arm*-*-gnueabi arm*-*-gnueabihf } } |
| ! { dg-skip-if "PR89639" { hppa*-*-linux* } } |
| program foo |
| use ieee_arithmetic |
| use iso_fortran_env |
| integer i, p |
| real x |
| x = 4 |
| i = 4 |
| |
| if (int8 > 0) then |
| if (real32 > 0) then |
| p = int(ieee_scalb(real(x, real32), int(i, int8))) |
| if (p /= 64) stop 1 |
| endif |
| if (real64 > 0) then |
| p = int(ieee_scalb(real(x, real64), int(i, int8))) |
| if (p /= 64) stop 2 |
| endif |
| if (real128 > 0) then |
| p = int(ieee_scalb(real(x, real128), int(i, int8))) |
| if (p /= 64) stop 3 |
| end if |
| end if |
| |
| if (int16 > 0) then |
| if (real32 > 0) then |
| p = int(ieee_scalb(real(x, real32), int(i, int16))) |
| if (p /= 64) stop 4 |
| endif |
| if (real64 > 0) then |
| p = int(ieee_scalb(real(x, real64), int(i, int16))) |
| if (p /= 64) stop 5 |
| endif |
| if (real128 > 0) then |
| p = int(ieee_scalb(real(x, real128), int(i, int16))) |
| if (p /= 64) stop 6 |
| end if |
| end if |
| |
| if (int32 > 0) then |
| if (real32 > 0) then |
| p = int(ieee_scalb(real(x, real32), int(i, int32))) |
| if (p /= 64) stop 7 |
| endif |
| if (real64 > 0) then |
| p = int(ieee_scalb(real(x, real64), int(i, int32))) |
| if (p /= 64) stop 8 |
| endif |
| if (real128 > 0) then |
| p = int(ieee_scalb(real(x, real128), int(i, int32))) |
| if (p /= 64) stop 9 |
| end if |
| end if |
| |
| if (int64 > 0) then |
| if (real32 > 0) then |
| p = int(ieee_scalb(real(x, real32), int(i, int64))) |
| if (p /= 64) stop 10 |
| endif |
| if (real64 > 0) then |
| p = int(ieee_scalb(real(x, real64), int(i, int64))) |
| if (p /= 64) stop 11 |
| endif |
| if (real128 > 0) then |
| p = int(ieee_scalb(real(x, real128), int(i, int64))) |
| if (p /= 64) stop 12 |
| end if |
| end if |
| |
| end program foo |