diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py index 09b0ac180f0d74dca6ca8dc45aedfc2d8cb8c72c..f47144f94f37f39f41fc51b25c65b4e35b8883c1 100644 --- a/loopy/kernel/creation.py +++ b/loopy/kernel/creation.py @@ -497,14 +497,16 @@ def parse_insn(groups, insn_options): if isinstance(inner_lhs_i, Lookup): inner_lhs_i = inner_lhs_i.aggregate - from loopy.symbolic import LinearSubscript + from loopy.symbolic import LinearSubscript, SubArrayRef if isinstance(inner_lhs_i, Variable): assignee_names.append(inner_lhs_i.name) elif isinstance(inner_lhs_i, (Subscript, LinearSubscript)): assignee_names.append(inner_lhs_i.aggregate.name) + elif isinstance(inner_lhs_i, SubArrayRef): + assignee_names.append(inner_lhs_i.subscript.aggregate.name) else: raise LoopyError("left hand side of assignment '%s' must " - "be variable or subscript" % (lhs_i,)) + "be variable, subscript or a SubArrayRef" % (lhs_i,)) new_lhs.append(lhs_i)