[flang] Accept polymorphic component element in storage_size
[llvm-project.git] / flang / test / Evaluate / fold-btest.f90
blobe346dd0c65fac552a8371ecd3436769af98c2aeb
1 ! RUN: %python %S/test_folding.py %s %flang_fc1
2 ! Tests folding of BTEST
3 module m1
4 integer, parameter :: ia1(*) = [(j, j=0, 15)]
5 logical, parameter :: test_ia1a = all(btest(ia1, 0) .eqv. [(.false., .true., j=1, 8)])
6 logical, parameter :: test_ia1b = all(btest(ia1, 1) .eqv. [(.false., .false., .true., .true., j=1, 4)])
7 logical, parameter :: test_ia1c = all(btest(ia1, 2) .eqv. [(modulo(j/4, 2) == 1, j=0, 15)])
8 logical, parameter :: test_ia1d = all(btest(ia1, 3) .eqv. [(j > 8, j=1, 16)])
9 logical, parameter :: test_shft1 = all([(btest(ishft(1_1, j), j), j=0, 7)])
10 logical, parameter :: test_shft2 = all([(btest(ishft(1_2, j), j), j=0, 15)])
11 logical, parameter :: test_shft4 = all([(btest(ishft(1_4, j), j), j=0, 31)])
12 logical, parameter :: test_shft8 = all([(btest(ishft(1_8, j), j), j=0, 63)])
13 logical, parameter :: test_shft16 = all([(btest(ishft(1_16, j), j), j=0, 127)])
14 logical, parameter :: test_set1 = all([(btest(ibset(0_1, j), j), j=0, 7)])
15 logical, parameter :: test_set2 = all([(btest(ibset(0_2, j), j), j=0, 15)])
16 logical, parameter :: test_set4 = all([(btest(ibset(0_4, j), j), j=0, 31)])
17 logical, parameter :: test_set8 = all([(btest(ibset(0_8, j), j), j=0, 63)])
18 logical, parameter :: test_set16 = all([(btest(ibset(0_16, j), j), j=0, 127)])
19 logical, parameter :: test_z = .not. any([(btest(0_4, j), j=0, 31)])
20 logical, parameter :: test_shft1e = all(btest([(ishft(1_1, j), j=0, 7)], [(j, j=0, 7)]))
21 end module