123 lines · plain
1! RUN: %python %S/test_folding.py %s %flang_fc12! Tests folding of BGE, BGT, BLE, BLT3 4module testbge5 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 testbge32 33module testbgt34 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 testbgt63 64module testble65 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 testble92 93module testblt94 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 testblt123