LAA: improve code in getStrideFromPointer (NFC) (#124780)
[llvm-project.git] / flang / test / Evaluate / fold-bitwise-compare.f90
blob8ed587df5a0034eca7179af1793704e6b995b62c
1 ! RUN: %python %S/test_folding.py %s %flang_fc1
2 ! Tests folding of BGE, BGT, BLE, BLT
4 module 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)/))
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)/))
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')/))
31 end module testbge
33 module 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) /))
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) /))
51 logical, parameter :: test_m = all((/&
52 bgt(-1_8, -1_4), &
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') /))
62 end module testbgt
64 module 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') /))
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') /))
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') /))
91 end module testble
93 module 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) /))
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)/))
111 logical, parameter :: test_m = all((/&
112 blt(-1_4, -1_8), &
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') /))
122 end module testblt