From df7c6e75627b704ed9e651963383e2ee0e9704f0 Mon Sep 17 00:00:00 2001 From: Michael Kuron <m.kuron@gmx.de> Date: Wed, 28 Sep 2022 19:50:15 +0200 Subject: [PATCH] Fix storeAAndFlushCacheline when multiple assignments are in the same scope --- pystencils/backends/cbackend.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py index de9cb0d31..e06c29898 100644 --- a/pystencils/backends/cbackend.py +++ b/pystencils/backends/cbackend.py @@ -339,7 +339,9 @@ class CBackend: ptr, self.sympy_printer.doprint(rhs), **self._kwargs) + ';' code = f"{code}\nif ({flushcond}) {{\n\t{code2}\n}}" elif nontemporal and 'storeAAndFlushCacheline' in self._vector_instruction_set: - tmpvar = '_tmp_' + hashlib.sha1(self.sympy_printer.doprint(rhs).encode('ascii')).hexdigest()[:8] + lhs_hash = hashlib.sha1(self.sympy_printer.doprint(node.lhs).encode('ascii')).hexdigest()[:8] + rhs_hash = hashlib.sha1(self.sympy_printer.doprint(rhs).encode('ascii')).hexdigest()[:8] + tmpvar = f'_tmp_{lhs_hash}_{rhs_hash}' code = 'const ' + self._print(node.lhs.dtype).replace(' const', '') + ' ' + tmpvar + ' = ' \ + self.sympy_printer.doprint(rhs) + ';' code1 = self._vector_instruction_set[instr].format(ptr, tmpvar, printed_mask, **self._kwargs) + ';' -- GitLab