1 ! Test scheduling of WHERE in lower-hlfir-ordered-assignments pass
2 ! when fusing is enabled or disabled.
4 !RUN: bbc -hlfir -o - -pass-pipeline="builtin.module(lower-hlfir-ordered-assignments{fuse-assignments=false})" --debug-only=flang-ordered-assignment -flang-dbg-order-assignment-schedule-only %s 2>&1 | FileCheck %s --check-prefix NOFUSE
6 !RUN: bbc -hlfir -o - -pass-pipeline="builtin.module(lower-hlfir-ordered-assignments{fuse-assignments=true})" --debug-only=flang-ordered-assignment -flang-dbg-order-assignment-schedule-only %s 2>&1 | FileCheck %s --check-prefix FUSE
10 subroutine fusable(x
, y
, mask
)
19 subroutine unfusable(x
, y
, mask
)
28 !NOFUSE-LABEL: ------------ scheduling where in _QPfusable ------------
29 !NOFUSE-NEXT: run 1 evaluate: where/region_assign1
30 !NOFUSE-NEXT: run 2 evaluate: where/region_assign2
31 !NOFUSE-LABEL: ------------ scheduling where in _QPunfusable ------------
32 !NOFUSE-NEXT: run 1 evaluate: where/region_assign1
33 !NOFUSE-NEXT: run 2 evaluate: where/region_assign2
35 !FUSE-LABEL: ------------ scheduling where in _QPfusable ------------
36 !FUSE-NEXT: run 1 evaluate: where/region_assign1
37 !FUSE-NEXT: run 1 evaluate: where/region_assign2
38 !FUSE-LABEL: ------------ scheduling where in _QPunfusable ------------
39 !FUSE-NEXT: run 1 evaluate: where/region_assign1
40 !FUSE-NEXT: conflict: R/W: <block argument> of type '!fir.box<!fir.array<?xf32>>' at index: 1 W:<block argument> of type '!fir.box<!fir.array<?xf32>>' at index: 1
41 !FUSE-NEXT: run 2 evaluate: where/region_assign2