1 ! RUN: %python %S/test_folding.py %s %flang_fc1
2 ! Tests folding of BGE, BGT, BLE, BLT
5 logical, parameter :: test_u
= all((/&
9 bge(2147483647, 2147483647), &
10 bge(2147483647, 2147483646), &
13 bge(-2147483646, -2147483646), &
14 bge(-2147483646, -2147483647), &
17 bge(-2147483647, 2147483647), &
18 bge(Z
'80000000', 2147483647)/))
20 logical, parameter :: test_m
= all((/&
24 bge(-1_8, Z
'FFFFFFFF'), &
25 bge(Z
'FFFFFFFFFFFFFFFF', -1_4)/))
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')/))
34 logical, parameter :: test_u
= all((/&
36 bgt(2147483647, 2147483646), &
38 bgt(-2147483646, -2147483647), &
41 bgt(-2147483647, 2147483647), &
42 bgt(Z
'80000000', 2147483647) /))
44 logical, parameter :: test_nu
= all((/&
47 .not
. bgt(2147483647, 2147483647), &
49 .not
. bgt(-2147483646, -2147483646) /))
51 logical, parameter :: test_m
= all((/&
53 bgt(Z
'FFFFFFFFFFFFFFFF', -1_4), &
54 bgt(-1_8, Z
'FFFFFFFF') /))
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') /))
65 logical, parameter :: test_u
= all((/&
69 ble(2147483647, 2147483647), &
70 ble(2147483646, 2147483647), &
73 ble(-2147483646, -2147483646), &
74 ble(-2147483647, -2147483646), &
77 ble(2147483647, -2147483647), &
78 ble(2147483647, Z
'80000000') /))
80 logical, parameter :: test_m
= all((/&
84 ble(Z
'FFFFFFFF', -1_8), &
85 ble(-1_4, Z
'FFFFFFFFFFFFFFFF') /))
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') /))
94 logical, parameter :: test_u
= all((/&
96 blt(2147483646, 2147483647), &
98 blt(-2147483647, -2147483646), &
102 logical, parameter :: test_nu
= all((/&
105 .not
. blt(2147483647, 2147483647), &
107 .not
. blt(-2147483646, -2147483646), &
108 .not
. blt(-2147483647, 2147483647), &
109 .not
. blt(Z
'80000000', 2147483647)/))
111 logical, parameter :: test_m
= all((/&
113 blt(Z
'FFFFFFFF', -1_8), &
114 blt(-1_4, Z
'FFFFFFFFFFFFFFFF') /))
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') /))