! 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