From f65c1270e1dda5f17c32330989eace788620cc8d Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Wed, 11 May 2016 23:19:39 -0500
Subject: [PATCH] Fix local-temporary determination for multiple assignments

---
 loopy/preprocess.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/loopy/preprocess.py b/loopy/preprocess.py
index e1ee119d5..2fdadb48e 100644
--- a/loopy/preprocess.py
+++ b/loopy/preprocess.py
@@ -332,9 +332,10 @@ def mark_local_temporaries(kernel):
                     if isinstance(kernel.iname_to_tag.get(iname), LocalIndexTagBase))
 
             locparallel_assignee_inames = set(iname
-                    for _, assignee_indices in insn.assignees_and_indices()
-                    for iname in get_dependencies(assignee_indices)
+                    for aname, aindices in insn.assignees_and_indices()
+                    for iname in get_dependencies(aindices)
                         & kernel.all_inames()
+                    if aname == temp_var.name
                     if isinstance(kernel.iname_to_tag.get(iname), LocalIndexTagBase))
 
             assert locparallel_assignee_inames <= locparallel_compute_inames
-- 
GitLab