Vector Optimized Library of Kernels  3.0.0
Architecture-tuned implementations of math kernels
volk_cpu.tmpl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2011-2012 Free Software Foundation, Inc.
4  *
5  * This file is part of VOLK
6  *
7  * SPDX-License-Identifier: LGPL-3.0-or-later
8  */
9 
10 #ifndef INCLUDED_VOLK_CPU_H
11 #define INCLUDED_VOLK_CPU_H
12 
13 #include <volk/volk_common.h>
14 
16 
17 struct VOLK_CPU {
18  %for arch in archs:
19  int (*has_${arch.name}) ();
20  %endfor
21 };
22 
23 extern struct VOLK_CPU volk_cpu;
24 
25 void volk_cpu_init ();
26 unsigned int volk_get_lvarch ();
27 
29 
30 #endif /*INCLUDED_VOLK_CPU_H*/
Definition: volk_cpu.tmpl.h:17
for arch in archs
Definition: volk_cpu.tmpl.h:19
#define __VOLK_DECL_END
Definition: volk_common.h:94
#define __VOLK_DECL_BEGIN
Definition: volk_common.h:93
unsigned int volk_get_lvarch()
Definition: volk_cpu.tmpl.c:93
void volk_cpu_init()
Definition: volk_cpu.tmpl.c:86
struct VOLK_CPU volk_cpu
Definition: volk_cpu.tmpl.c:37
<% this_machine=machine_dict[args[0]] %><% arch_names=this_machine.arch_names %> for arch in this_machine<% this_machine_name="\""+this_machine.name+"\"" %> for kern in<% make_impl_name_list="{"+', '.join(['"%s"'%i.name for i in impls])+"}" %><% make_impl_deps_list="{"+', '.join(['|'.join(['(1<< LV_%s)'%d.upper() for d in i.deps]) for i in impls])+"}" %><% make_impl_align_list="{"+', '.join([ 'true' if i.is_aligned else 'false' for i in impls])+"}" %><% make_impl_fcn_list="{"+', '.join(['%s_%s'%(kern.name, i.name) for i in impls])+"}" %><% len_impls=len(impls) %> endfor
Definition: volk_machine_xxx.tmpl.c:47