xref: /llvm-project/flang/test/Evaluate/folding24.f90 (revision 93c3e765ac99f6ce40cbe4340ab9967fb7593a0a)
1! RUN: %python %S/test_folding.py %s %flang_fc1
2! Tests folding of PACK (valid cases)
3module m
4  integer, parameter :: arr(2,3) = reshape([1, 2, 3, 4, 5, 6], shape(arr))
5  logical, parameter :: odds(*,*) = modulo(arr, 2) /= 0
6  integer, parameter :: vect(*) = [(j, j=-10, -1)]
7  logical, parameter :: test_pack_1 = all(pack(arr, .true.) == [arr])
8  logical, parameter :: test_pack_2 = all(pack(arr, .false.) == [integer::])
9  logical, parameter :: test_pack_3 = all(pack(arr, odds) == [1, 3, 5])
10  logical, parameter :: test_pack_4 = all(pack(arr, .not. odds) == [2, 4, 6])
11  logical, parameter :: test_pack_5 = all(pack(arr, .true., vect) == [1, 2, 3, 4, 5, 6, -4, -3, -2, -1])
12  logical, parameter :: test_pack_6 = all(pack(arr, .false., vect) == vect)
13  logical, parameter :: test_pack_7 = all(pack(arr, odds, vect) == [1, 3, 5, -7, -6, -5, -4, -3, -2, -1])
14  logical, parameter :: test_pack_8 = all(pack(arr, .not. odds, vect) == [2, 4, 6, -7, -6, -5, -4, -3, -2, -1])
15end module
16