2 ! { dg-options "-fopenmp -O2 -fdump-tree-original -fdump-tree-optimized" }
3 ! { dg-final { scan-tree-dump-times ".ASSUME \\(i_lower_bound \\(\\) < i\\);" 1 "original" } }
4 ! { dg-final { scan-tree-dump-times ".ASSUME \\(TARGET_EXPR <D.\[0-9\]+, D.\[0-9\]+ = j_upper_bound \\(\\);" 1 "original" } }
5 ! { dg-final { scan-tree-dump-times "__builtin_free" 1 "original" } }
7 ! { dg-final { scan-tree-dump-not "i_lower_bound" "optimized" } }
8 ! { dg-final { scan-tree-dump-not "j_upper_bound" "optimized" } }
9 ! { dg-final { scan-tree-dump-not "__builtin_free" "optimized" } }
11 ! Note: Currently, the assumption does not help with optimization in either variant.
18 !$omp assume holds(i > i_lower_bound ())
27 function i_lower_bound ()
28 integer :: i_lower_bound
37 !$omp assume holds(j < j_upper_bound ())
46 function j_upper_bound ()
47 integer, allocatable
:: j_upper_bound