Skip to content
Snippets Groups Projects
Commit fd7ebff4 authored by Marcel Koch's avatar Marcel Koch
Browse files

remove CInstructions temporarily for lp.extract_subst

parent 7e34e464
No related branches found
No related tags found
No related merge requests found
...@@ -232,17 +232,23 @@ def add_vcl_access(knl, iname_inner): ...@@ -232,17 +232,23 @@ def add_vcl_access(knl, iname_inner):
vector_alias = [a for a in knl.arg_dict if a.endswith('alias')] vector_alias = [a for a in knl.arg_dict if a.endswith('alias')]
dim = world_dimension() dim = world_dimension()
dim_names = ["x","y","z"] + [str(i) for i in range(4,dim+1)] dim_names = ["x","y","z"] + [str(i) for i in range(4,dim+1)]
knl_without_cinsn = knl.copy(instructions=[insn for insn in knl.instructions
if not isinstance(insn, lp.CInstruction)])
for alias in vector_alias: for alias in vector_alias:
parameters = 'ex_o,ex_i,'+','.join(['e'+d for d in dim_names[1:dim]])+',ix,'+','.join(['i'+d for d in dim_names[1:dim]]) parameters = 'ex_o,ex_i,' + ','.join(['e'+d for d in dim_names[1:dim]])\
knl = lp.extract_subst(knl, alias+'_subst', '{}[{}]'.format(alias, parameters), + ',ix,' + ','.join(['i'+d for d in dim_names[1:dim]])
parameters=parameters) knl_without_cinsn = lp.extract_subst(knl_without_cinsn, alias+'_subst', '{}[{}]'.format(alias, parameters),
new_subst = knl.substitutions.copy() parameters=parameters)
new_subst = knl_without_cinsn.substitutions.copy()
rule = new_subst[alias+'_subst'] rule = new_subst[alias+'_subst']
rule.expression = prim.Subscript(prim.Variable(alias.replace('alias','vec')), (prim.Variable('ex_i'),)) rule.expression = prim.Subscript(prim.Variable(alias.replace('alias','vec')), (prim.Variable('ex_i'),))
knl = knl.copy(substitutions=new_subst) knl_without_cinsn = knl_without_cinsn.copy(substitutions=new_subst)
from loopy.match import All from loopy.match import All
knl = lp.expand_subst(knl, All()) knl_without_cinsn = lp.expand_subst(knl_without_cinsn, All())
knl = knl_without_cinsn.copy(instructions=knl_without_cinsn.instructions
+ [insn for insn in knl.instructions
if isinstance(insn, lp.CInstruction)])
# add store and load dependencies and set right accumulation assignee # add store and load dependencies and set right accumulation assignee
new_insns = [] new_insns = []
......
...@@ -15,5 +15,3 @@ blockstructured = 1 ...@@ -15,5 +15,3 @@ blockstructured = 1
number_of_blocks = 16 number_of_blocks = 16
vectorization_blockstructured = 1 vectorization_blockstructured = 1
matrix_free = 1 matrix_free = 1
opcounter = 1
time_opcounter = 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment