forked from OSchip/llvm-project
123 lines
3.4 KiB
Fortran
123 lines
3.4 KiB
Fortran
! RUN: %python %S/test_folding.py %s %flang_fc1
|
|
! Tests folding of BGE, BGT, BLE, BLT
|
|
|
|
module testbge
|
|
logical, parameter :: test_u = all((/&
|
|
bge(0, 0), &
|
|
bge(1, 1), &
|
|
bge(2, 1), &
|
|
bge(2147483647, 2147483647), &
|
|
bge(2147483647, 2147483646), &
|
|
bge(-1, -1), &
|
|
bge(-1, -2), &
|
|
bge(-2147483646, -2147483646), &
|
|
bge(-2147483646, -2147483647), &
|
|
bge(-1, 0), &
|
|
bge(1, 0), &
|
|
bge(-2147483647, 2147483647), &
|
|
bge(Z'80000000', 2147483647)/))
|
|
|
|
logical, parameter :: test_m = all((/&
|
|
bge(1_4, 1_8), &
|
|
bge(1_8, 1_4), &
|
|
bge(-1_8, -1_4), &
|
|
bge(-1_8, Z'FFFFFFFF'), &
|
|
bge(Z'FFFFFFFFFFFFFFFF', -1_4)/))
|
|
|
|
logical,parameter :: test_nm = all((/&
|
|
.not. bge(-1_4, -1_8), &
|
|
.not. bge(Z'FFFFFFFF', -1_8), &
|
|
.not. bge(-1_4, Z'FFFFFFFFFFFFFFFF')/))
|
|
end module testbge
|
|
|
|
module testbgt
|
|
logical, parameter :: test_u = all((/&
|
|
bgt(2, 1), &
|
|
bgt(2147483647, 2147483646), &
|
|
bgt(-1, -2), &
|
|
bgt(-2147483646, -2147483647), &
|
|
bgt(-1, 0), &
|
|
bgt(1, 0), &
|
|
bgt(-2147483647, 2147483647), &
|
|
bgt(Z'80000000', 2147483647) /))
|
|
|
|
logical, parameter :: test_nu = all((/&
|
|
.not. bgt(0, 0), &
|
|
.not. bgt(1, 1), &
|
|
.not. bgt(2147483647, 2147483647), &
|
|
.not. bgt(-1, -1), &
|
|
.not. bgt(-2147483646, -2147483646) /))
|
|
|
|
logical, parameter :: test_m = all((/&
|
|
bgt(-1_8, -1_4), &
|
|
bgt(Z'FFFFFFFFFFFFFFFF', -1_4), &
|
|
bgt(-1_8, Z'FFFFFFFF') /))
|
|
|
|
logical, parameter :: test_nm = all((/&
|
|
.not. bgt(1_4, 1_8), &
|
|
.not. bgt(1_8, 1_4), &
|
|
.not. bgt(-1_4, -1_8), &
|
|
.not. bgt(Z'FFFFFFFF', -1_8), &
|
|
.not. bgt(-1_4, Z'FFFFFFFFFFFFFFFF') /))
|
|
end module testbgt
|
|
|
|
module testble
|
|
logical, parameter :: test_u = all((/&
|
|
ble(0, 0), &
|
|
ble(1, 1), &
|
|
ble(1, 2), &
|
|
ble(2147483647, 2147483647), &
|
|
ble(2147483646, 2147483647), &
|
|
ble(-1, -1), &
|
|
ble(-2, -1), &
|
|
ble(-2147483646, -2147483646), &
|
|
ble(-2147483647, -2147483646), &
|
|
ble(0, -1), &
|
|
ble(0, 1), &
|
|
ble(2147483647, -2147483647), &
|
|
ble(2147483647, Z'80000000') /))
|
|
|
|
logical, parameter :: test_m = all((/&
|
|
ble(1_4, 1_8), &
|
|
ble(1_8, 1_4), &
|
|
ble(-1_4, -1_8), &
|
|
ble(Z'FFFFFFFF', -1_8), &
|
|
ble(-1_4, Z'FFFFFFFFFFFFFFFF') /))
|
|
|
|
logical, parameter :: test_nm = all((/ &
|
|
.not. ble(-1_8, -1_4), &
|
|
.not. ble(Z'FFFFFFFFFFFFFFFF', -1_4), &
|
|
.not. ble(-1_8, Z'FFFFFFFF') /))
|
|
end module testble
|
|
|
|
module testblt
|
|
logical, parameter :: test_u = all((/&
|
|
blt(1, 2), &
|
|
blt(2147483646, 2147483647), &
|
|
blt(-2, -1), &
|
|
blt(-2147483647, -2147483646), &
|
|
blt(0, -1), &
|
|
blt(0, 1) /))
|
|
|
|
logical, parameter :: test_nu = all((/&
|
|
.not. blt(0, 0), &
|
|
.not. blt(1, 1), &
|
|
.not. blt(2147483647, 2147483647), &
|
|
.not. blt(-1, -1), &
|
|
.not. blt(-2147483646, -2147483646), &
|
|
.not. blt(-2147483647, 2147483647), &
|
|
.not. blt(Z'80000000', 2147483647)/))
|
|
|
|
logical, parameter :: test_m = all((/&
|
|
blt(-1_4, -1_8), &
|
|
blt(Z'FFFFFFFF', -1_8), &
|
|
blt(-1_4, Z'FFFFFFFFFFFFFFFF') /))
|
|
|
|
logical, parameter :: test_nm = all ((/&
|
|
.not. blt(1_4, 1_8), &
|
|
.not. blt(1_8, 1_4), &
|
|
.not. blt(-1_8, -1_4), &
|
|
.not. blt(Z'FFFFFFFFFFFFFFFF', -1_4), &
|
|
.not. blt(-1_8, Z'FFFFFFFF') /))
|
|
end module testblt
|