diff --git a/python/dune/perftool/blockstructured/vectorization.py b/python/dune/perftool/blockstructured/vectorization.py index 2e663ffe5acaf0fd06238830d5871083ec3adb08..62aa0fb8abc6d5560daa53c525b2af811755825a 100644 --- a/python/dune/perftool/blockstructured/vectorization.py +++ b/python/dune/perftool/blockstructured/vectorization.py @@ -353,18 +353,6 @@ def add_iname_array(knl, vec_iname): return knl -def replace_vcl_functions(knl, func_names): - replacemap = dict() - for name in func_names: - replacemap[name] = prim.Variable('vcl_' + name) - - new_insns = [] - for insn in knl.instructions: - new_insns.append(insn.with_transformed_expressions(lambda expr: substitute(expr, replacemap))) - - return knl.copy(instructions=new_insns) - - def vectorize_micro_elements(knl): vec_iname = "subel_x" if vec_iname in knl.all_inames() and get_global_context_value('integral_type') == 'cell': @@ -383,6 +371,4 @@ def vectorize_micro_elements(knl): knl = add_vcl_temporaries(knl) knl = add_vcl_accum_insns(knl, vec_iname + '_inner', vec_iname + '_outer') knl = add_vcl_access(knl, vec_iname + '_inner') - - knl = replace_vcl_functions(knl, ['abs']) return knl diff --git a/python/dune/perftool/loopy/mangler.py b/python/dune/perftool/loopy/mangler.py index 29b0d503bcc0269c7a39d0c3a3accc1657781577..21dc1a1caf5996befc4ad436dbbdbc9db89b1493 100644 --- a/python/dune/perftool/loopy/mangler.py +++ b/python/dune/perftool/loopy/mangler.py @@ -50,6 +50,11 @@ def dune_math_manglers(kernel, name, arg_dtypes): (dt,) * len(arg_dtypes), ) + if name == 'abs': + dt = arg_dtypes[0] + using_std_statement(name) + return CallMangleInfo("abs", arg_dtypes, arg_dtypes) + @function_mangler def get_time_function_mangler(kernel, name, arg_dtypes): diff --git a/python/dune/perftool/loopy/vcl.py b/python/dune/perftool/loopy/vcl.py index c0e1d57f277fee67b8779f43890e12c4284cc2d4..345dec931596c07c8641a03f5c0c5035f86d06b6 100644 --- a/python/dune/perftool/loopy/vcl.py +++ b/python/dune/perftool/loopy/vcl.py @@ -161,11 +161,3 @@ def vcl_store_and_load_mangler(knl, func, arg_dtypes): if isinstance(func, VCLStore): return lp.CallMangleInfo(func.name, (), (lp.types.NumpyType(np.int32),)) - - -@function_mangler -def vcl_math_mangler(knl, func, arg_dtypes): - if func == 'vcl_abs': - dtype = arg_dtypes[0] - vcl = lp.types.NumpyType(get_vcl_type(dtype)) - return lp.CallMangleInfo('abs', (vcl,), (vcl,)) \ No newline at end of file