diff --git a/loopy/__init__.py b/loopy/__init__.py index d7309a6a528d8b332e1f710dca27d95a4ce44a46..5be6d48c7d4df1c9225bfa58e1c779bef6f9052c 100644 --- a/loopy/__init__.py +++ b/loopy/__init__.py @@ -259,11 +259,20 @@ def split_iname(kernel, split_iname, inner_length, iname_slab_increments = kernel.iname_slab_increments.copy() iname_slab_increments[outer_iname] = slabs - kernel = (kernel - .copy(domains=new_domains, - iname_slab_increments=iname_slab_increments, - instructions=new_insns, - applied_iname_rewrites=applied_iname_rewrites)) + new_loop_priority = [] + for prio_iname in kernel.loop_priority: + if prio_iname == split_iname: + new_loop_priority.append(outer_iname) + new_loop_priority.append(inner_iname) + else: + new_loop_priority.append(prio_iname) + + kernel = kernel.copy( + domains=new_domains, + iname_slab_increments=iname_slab_increments, + instructions=new_insns, + applied_iname_rewrites=applied_iname_rewrites, + loop_priority=new_loop_priority) from loopy.context_matching import parse_stack_match within = parse_stack_match(within)