diff options
Diffstat (limited to 'flang/test/Lower/OpenMP/simd.f90')
| -rw-r--r-- | flang/test/Lower/OpenMP/simd.f90 | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/flang/test/Lower/OpenMP/simd.f90 b/flang/test/Lower/OpenMP/simd.f90 index d815474b84b3..369b5eb072af 100644 --- a/flang/test/Lower/OpenMP/simd.f90 +++ b/flang/test/Lower/OpenMP/simd.f90 @@ -175,7 +175,7 @@ subroutine simd_with_collapse_clause(n) ! CHECK-NEXT: omp.loop_nest (%[[ARG_0:.*]], %[[ARG_1:.*]]) : i32 = ( ! CHECK-SAME: %[[LOWER_I]], %[[LOWER_J]]) to ( ! CHECK-SAME: %[[UPPER_I]], %[[UPPER_J]]) inclusive step ( - ! CHECK-SAME: %[[STEP_I]], %[[STEP_J]]) { + ! CHECK-SAME: %[[STEP_I]], %[[STEP_J]]) collapse(2) { !$OMP SIMD COLLAPSE(2) do i = 1, n do j = 1, n @@ -226,6 +226,23 @@ subroutine simdloop_aligned_allocatable() end do end subroutine +subroutine aligned_non_power_of_two() + integer :: i + integer, allocatable :: A(:) + allocate(A(10)) +!CHECK: %[[A_PTR:.*]] = fir.alloca !fir.box<!fir.heap<!fir.array<?xi32>>> {bindc_name = "a", +!CHECK-SAME: uniq_name = "_QFaligned_non_power_of_twoEa"} +!CHECK: %[[A_DECL:.*]]:2 = hlfir.declare %[[A_PTR]] {fortran_attrs = #fir.var_attrs<allocatable>, +!CHECK-SAME: uniq_name = "_QFaligned_non_power_of_twoEa"} : +!CHECK-SAME: (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) -> +!CHECK-SAME: (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>, !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) +!CHECK: omp.simd private + !$OMP SIMD ALIGNED(A:257) + do i = 1, 10 + A(i) = i + end do +end subroutine + !CHECK-LABEL: func @_QPsimd_with_nontemporal_clause subroutine simd_with_nontemporal_clause(n) !CHECK: %[[A_DECL:.*]]:2 = hlfir.declare %{{.*}} {uniq_name = "_QFsimd_with_nontemporal_clauseEa"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) |
