1! RUN: %python %S/test_folding.py %s %flang_fc1 2! Tests folding of BGE, BGT, BLE, BLT 3 4module testbge 5 logical, parameter :: test_u = all((/& 6 bge(0, 0), & 7 bge(1, 1), & 8 bge(2, 1), & 9 bge(2147483647, 2147483647), & 10 bge(2147483647, 2147483646), & 11 bge(-1, -1), & 12 bge(-1, -2), & 13 bge(-2147483646, -2147483646), & 14 bge(-2147483646, -2147483647), & 15 bge(-1, 0), & 16 bge(1, 0), & 17 bge(-2147483647, 2147483647), & 18 bge(Z'80000000', 2147483647)/)) 19 20 logical, parameter :: test_m = all((/& 21 bge(1_4, 1_8), & 22 bge(1_8, 1_4), & 23 bge(-1_8, -1_4), & 24 bge(-1_8, Z'FFFFFFFF'), & 25 bge(Z'FFFFFFFFFFFFFFFF', -1_4)/)) 26 27 logical,parameter :: test_nm = all((/& 28 .not. bge(-1_4, -1_8), & 29 .not. bge(Z'FFFFFFFF', -1_8), & 30 .not. bge(-1_4, Z'FFFFFFFFFFFFFFFF')/)) 31end module testbge 32 33module testbgt 34 logical, parameter :: test_u = all((/& 35 bgt(2, 1), & 36 bgt(2147483647, 2147483646), & 37 bgt(-1, -2), & 38 bgt(-2147483646, -2147483647), & 39 bgt(-1, 0), & 40 bgt(1, 0), & 41 bgt(-2147483647, 2147483647), & 42 bgt(Z'80000000', 2147483647) /)) 43 44 logical, parameter :: test_nu = all((/& 45 .not. bgt(0, 0), & 46 .not. bgt(1, 1), & 47 .not. bgt(2147483647, 2147483647), & 48 .not. bgt(-1, -1), & 49 .not. bgt(-2147483646, -2147483646) /)) 50 51 logical, parameter :: test_m = all((/& 52 bgt(-1_8, -1_4), & 53 bgt(Z'FFFFFFFFFFFFFFFF', -1_4), & 54 bgt(-1_8, Z'FFFFFFFF') /)) 55 56 logical, parameter :: test_nm = all((/& 57 .not. bgt(1_4, 1_8), & 58 .not. bgt(1_8, 1_4), & 59 .not. bgt(-1_4, -1_8), & 60 .not. bgt(Z'FFFFFFFF', -1_8), & 61 .not. bgt(-1_4, Z'FFFFFFFFFFFFFFFF') /)) 62end module testbgt 63 64module testble 65 logical, parameter :: test_u = all((/& 66 ble(0, 0), & 67 ble(1, 1), & 68 ble(1, 2), & 69 ble(2147483647, 2147483647), & 70 ble(2147483646, 2147483647), & 71 ble(-1, -1), & 72 ble(-2, -1), & 73 ble(-2147483646, -2147483646), & 74 ble(-2147483647, -2147483646), & 75 ble(0, -1), & 76 ble(0, 1), & 77 ble(2147483647, -2147483647), & 78 ble(2147483647, Z'80000000') /)) 79 80 logical, parameter :: test_m = all((/& 81 ble(1_4, 1_8), & 82 ble(1_8, 1_4), & 83 ble(-1_4, -1_8), & 84 ble(Z'FFFFFFFF', -1_8), & 85 ble(-1_4, Z'FFFFFFFFFFFFFFFF') /)) 86 87 logical, parameter :: test_nm = all((/ & 88 .not. ble(-1_8, -1_4), & 89 .not. ble(Z'FFFFFFFFFFFFFFFF', -1_4), & 90 .not. ble(-1_8, Z'FFFFFFFF') /)) 91end module testble 92 93module testblt 94 logical, parameter :: test_u = all((/& 95 blt(1, 2), & 96 blt(2147483646, 2147483647), & 97 blt(-2, -1), & 98 blt(-2147483647, -2147483646), & 99 blt(0, -1), & 100 blt(0, 1) /)) 101 102 logical, parameter :: test_nu = all((/& 103 .not. blt(0, 0), & 104 .not. blt(1, 1), & 105 .not. blt(2147483647, 2147483647), & 106 .not. blt(-1, -1), & 107 .not. blt(-2147483646, -2147483646), & 108 .not. blt(-2147483647, 2147483647), & 109 .not. blt(Z'80000000', 2147483647)/)) 110 111 logical, parameter :: test_m = all((/& 112 blt(-1_4, -1_8), & 113 blt(Z'FFFFFFFF', -1_8), & 114 blt(-1_4, Z'FFFFFFFFFFFFFFFF') /)) 115 116 logical, parameter :: test_nm = all ((/& 117 .not. blt(1_4, 1_8), & 118 .not. blt(1_8, 1_4), & 119 .not. blt(-1_8, -1_4), & 120 .not. blt(Z'FFFFFFFFFFFFFFFF', -1_4), & 121 .not. blt(-1_8, Z'FFFFFFFF') /)) 122end module testblt 123