Skip to content
Snippets Groups Projects

Improve Vectorisation

Merged Markus Holzer requested to merge holzer/pystencils:ImproveVec into master
3 unresolved threads
Viewing commit 404f5138
Show latest version
3 files
+ 18
8
Preferences
Compare changes
Files
3
@@ -134,6 +134,7 @@ def vectorize(kernel_ast: ast.KernelFunction, instruction_set: str = 'best',
vectorize_inner_loops_and_adapt_load_stores(kernel_ast, assume_aligned, nontemporal,
strided, keep_loop_stop, assume_sufficient_line_padding,
default_float_type)
a = 1
def vectorize_inner_loops_and_adapt_load_stores(ast_node, assume_aligned, nontemporal_fields,
@@ -298,6 +299,11 @@ def insert_vector_casts(ast_node, instruction_set, default_float_type='double'):
for a, t in zip(new_args, arg_types)]
return expr.func(*casted_args)
elif expr.func is sp.UnevaluatedExpr:
if expr.args[0].is_Pow:
base = expr.args[0].base
exp = expr.args[0].exp
expr = sp.UnevaluatedExpr(sp.Mul(*([base] * +exp), evaluate=False))
new_args = [visit_expr(a, default_type) for a in expr.args[0].args]
arg_types = [get_type_of_expression(a, default_float_type=default_type) for a in new_args]