mirror of
https://github.com/amd/blis.git
synced 2026-04-19 23:28:52 +00:00
Declare/define static functions via BLIS_INLINE.
Details:
- Updated all static function definitions to use the cpp macro
BLIS_INLINE instead of the static keyword. This allows blis.h to
use a different keyword (inline) to define these functions when
compiling with C++, which might otherwise trigger "defined but
not used" warning messages. Thanks to Giorgos Margaritis for
reporting this issue and Devin Matthews for suggesting the fix.
- Updated the following files, which are used by configure's
hardware auto-detection facility, to unconditionally #define
BLIS_INLINE to the static keyword (since we know BLIS will be
compiled with C, not C++):
build/detect/config/config_detect.c
frame/base/bli_arch.c
frame/base/bli_cpuid.c
- CREDITS file update.
This commit is contained in:
1
CREDITS
1
CREDITS
@@ -53,6 +53,7 @@ but many others have contributed code and feedback, including
|
||||
Tze Meng Low (The University of Texas at Austin)
|
||||
Ye Luo @ye-luo (Argonne National Laboratory)
|
||||
Ricardo Magana @magania (Hewlett Packard Enterprise)
|
||||
Giorgos Margaritis
|
||||
Bryan Marker @bamarker (The University of Texas at Austin)
|
||||
Simon Lukas Märtens @ACSimon33 (RWTH Aachen University)
|
||||
Devin Matthews @devinamatthews (The University of Texas at Austin)
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
*/
|
||||
|
||||
#define BLIS_INLINE static
|
||||
#define BLIS_EXPORT_BLIS
|
||||
#include "bli_system.h"
|
||||
#include "bli_type_defs.h"
|
||||
|
||||
@@ -47,42 +47,42 @@ struct packm_params_s
|
||||
};
|
||||
typedef struct packm_params_s packm_params_t;
|
||||
|
||||
static packm_var_oft bli_cntl_packm_params_var_func( cntl_t* cntl )
|
||||
BLIS_INLINE packm_var_oft bli_cntl_packm_params_var_func( cntl_t* cntl )
|
||||
{
|
||||
packm_params_t* ppp = ( packm_params_t* )cntl->params; return ppp->var_func;
|
||||
}
|
||||
|
||||
static bszid_t bli_cntl_packm_params_bmid_m( cntl_t* cntl )
|
||||
BLIS_INLINE bszid_t bli_cntl_packm_params_bmid_m( cntl_t* cntl )
|
||||
{
|
||||
packm_params_t* ppp = ( packm_params_t* )cntl->params; return ppp->bmid_m;
|
||||
}
|
||||
|
||||
static bszid_t bli_cntl_packm_params_bmid_n( cntl_t* cntl )
|
||||
BLIS_INLINE bszid_t bli_cntl_packm_params_bmid_n( cntl_t* cntl )
|
||||
{
|
||||
packm_params_t* ppp = ( packm_params_t* )cntl->params; return ppp->bmid_n;
|
||||
}
|
||||
|
||||
static bool_t bli_cntl_packm_params_does_invert_diag( cntl_t* cntl )
|
||||
BLIS_INLINE bool_t bli_cntl_packm_params_does_invert_diag( cntl_t* cntl )
|
||||
{
|
||||
packm_params_t* ppp = ( packm_params_t* )cntl->params; return ppp->does_invert_diag;
|
||||
}
|
||||
|
||||
static bool_t bli_cntl_packm_params_rev_iter_if_upper( cntl_t* cntl )
|
||||
BLIS_INLINE bool_t bli_cntl_packm_params_rev_iter_if_upper( cntl_t* cntl )
|
||||
{
|
||||
packm_params_t* ppp = ( packm_params_t* )cntl->params; return ppp->rev_iter_if_upper;
|
||||
}
|
||||
|
||||
static bool_t bli_cntl_packm_params_rev_iter_if_lower( cntl_t* cntl )
|
||||
BLIS_INLINE bool_t bli_cntl_packm_params_rev_iter_if_lower( cntl_t* cntl )
|
||||
{
|
||||
packm_params_t* ppp = ( packm_params_t* )cntl->params; return ppp->rev_iter_if_lower;
|
||||
}
|
||||
|
||||
static pack_t bli_cntl_packm_params_pack_schema( cntl_t* cntl )
|
||||
BLIS_INLINE pack_t bli_cntl_packm_params_pack_schema( cntl_t* cntl )
|
||||
{
|
||||
packm_params_t* ppp = ( packm_params_t* )cntl->params; return ppp->pack_schema;
|
||||
}
|
||||
|
||||
static packbuf_t bli_cntl_packm_params_pack_buf_type( cntl_t* cntl )
|
||||
BLIS_INLINE packbuf_t bli_cntl_packm_params_pack_buf_type( cntl_t* cntl )
|
||||
{
|
||||
packm_params_t* ppp = ( packm_params_t* )cntl->params; return ppp->pack_buf_type;
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ INSERT_GENTPROT_BASIC0( gemmsup_ref_var2m )
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static void bli_gemmsup_ref_var1n2m_opt_cases
|
||||
BLIS_INLINE void bli_gemmsup_ref_var1n2m_opt_cases
|
||||
(
|
||||
num_t dt,
|
||||
trans_t* trans,
|
||||
|
||||
@@ -87,7 +87,7 @@ void bli_gemm_md_zgemm
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static bool_t bli_gemm_md_is_crr( obj_t* a, obj_t* b, obj_t* c )
|
||||
BLIS_INLINE bool_t bli_gemm_md_is_crr( obj_t* a, obj_t* b, obj_t* c )
|
||||
{
|
||||
bool_t r_val = FALSE;
|
||||
|
||||
@@ -107,7 +107,7 @@ static bool_t bli_gemm_md_is_crr( obj_t* a, obj_t* b, obj_t* c )
|
||||
return r_val;
|
||||
}
|
||||
|
||||
static bool_t bli_gemm_md_is_ccr( obj_t* a, obj_t* b, obj_t* c )
|
||||
BLIS_INLINE bool_t bli_gemm_md_is_ccr( obj_t* a, obj_t* b, obj_t* c )
|
||||
{
|
||||
bool_t r_val = FALSE;
|
||||
|
||||
@@ -127,7 +127,7 @@ static bool_t bli_gemm_md_is_ccr( obj_t* a, obj_t* b, obj_t* c )
|
||||
return r_val;
|
||||
}
|
||||
|
||||
static bool_t bli_gemm_md_is_crc( obj_t* a, obj_t* b, obj_t* c )
|
||||
BLIS_INLINE bool_t bli_gemm_md_is_crc( obj_t* a, obj_t* b, obj_t* c )
|
||||
{
|
||||
bool_t r_val = FALSE;
|
||||
|
||||
@@ -149,7 +149,7 @@ static bool_t bli_gemm_md_is_crc( obj_t* a, obj_t* b, obj_t* c )
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static void bli_gemm_md_ker_var2_recast
|
||||
BLIS_INLINE void bli_gemm_md_ker_var2_recast
|
||||
(
|
||||
num_t* dt_comp,
|
||||
num_t dt_a,
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
*/
|
||||
|
||||
static void bli_gemm_ind_recast_1m_params
|
||||
BLIS_INLINE void bli_gemm_ind_recast_1m_params
|
||||
(
|
||||
num_t* dt_exec,
|
||||
pack_t schema_a,
|
||||
|
||||
@@ -51,22 +51,22 @@ typedef struct
|
||||
|
||||
// apool entry query
|
||||
|
||||
static pool_t* bli_apool_pool( apool_t* apool )
|
||||
BLIS_INLINE pool_t* bli_apool_pool( apool_t* apool )
|
||||
{
|
||||
return &(apool->pool);
|
||||
}
|
||||
|
||||
static bli_pthread_mutex_t* bli_apool_mutex( apool_t* apool )
|
||||
BLIS_INLINE bli_pthread_mutex_t* bli_apool_mutex( apool_t* apool )
|
||||
{
|
||||
return &(apool->mutex);
|
||||
}
|
||||
|
||||
static siz_t bli_apool_def_array_len( apool_t* pool )
|
||||
BLIS_INLINE siz_t bli_apool_def_array_len( apool_t* pool )
|
||||
{
|
||||
return pool->def_array_len;
|
||||
}
|
||||
|
||||
static bool_t bli_apool_is_exhausted( apool_t* apool )
|
||||
BLIS_INLINE bool_t bli_apool_is_exhausted( apool_t* apool )
|
||||
{
|
||||
pool_t* restrict pool = bli_apool_pool( apool );
|
||||
|
||||
@@ -75,19 +75,19 @@ static bool_t bli_apool_is_exhausted( apool_t* apool )
|
||||
|
||||
// apool action
|
||||
|
||||
static void bli_apool_lock( apool_t* apool )
|
||||
BLIS_INLINE void bli_apool_lock( apool_t* apool )
|
||||
{
|
||||
bli_pthread_mutex_lock( bli_apool_mutex( apool ) );
|
||||
}
|
||||
|
||||
static void bli_apool_unlock( apool_t* apool )
|
||||
BLIS_INLINE void bli_apool_unlock( apool_t* apool )
|
||||
{
|
||||
bli_pthread_mutex_unlock( bli_apool_mutex( apool ) );
|
||||
}
|
||||
|
||||
// apool entry modification
|
||||
|
||||
static void bli_apool_set_def_array_len( siz_t def_array_len, apool_t* pool ) \
|
||||
BLIS_INLINE void bli_apool_set_def_array_len( siz_t def_array_len, apool_t* pool ) \
|
||||
{
|
||||
pool->def_array_len = def_array_len;
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#ifndef BLIS_CONFIGURETIME_CPUID
|
||||
#include "blis.h"
|
||||
#else
|
||||
#define BLIS_INLINE static
|
||||
#define BLIS_EXPORT_BLIS
|
||||
#include "bli_system.h"
|
||||
#include "bli_type_defs.h"
|
||||
|
||||
@@ -51,34 +51,34 @@ typedef struct
|
||||
|
||||
// Array entry query
|
||||
|
||||
static void* bli_array_buf( array_t* array )
|
||||
BLIS_INLINE void* bli_array_buf( array_t* array )
|
||||
{
|
||||
return array->buf;
|
||||
}
|
||||
|
||||
static siz_t bli_array_num_elem( array_t* array )
|
||||
BLIS_INLINE siz_t bli_array_num_elem( array_t* array )
|
||||
{
|
||||
return array->num_elem;
|
||||
}
|
||||
|
||||
static siz_t bli_array_elem_size( array_t* array )
|
||||
BLIS_INLINE siz_t bli_array_elem_size( array_t* array )
|
||||
{
|
||||
return array->elem_size;
|
||||
}
|
||||
|
||||
// Array entry modification
|
||||
|
||||
static void bli_array_set_buf( void* buf, array_t* array ) \
|
||||
BLIS_INLINE void bli_array_set_buf( void* buf, array_t* array ) \
|
||||
{
|
||||
array->buf = buf;
|
||||
}
|
||||
|
||||
static void bli_array_set_num_elem( siz_t num_elem, array_t* array ) \
|
||||
BLIS_INLINE void bli_array_set_num_elem( siz_t num_elem, array_t* array ) \
|
||||
{
|
||||
array->num_elem = num_elem;
|
||||
}
|
||||
|
||||
static void bli_array_set_elem_size( siz_t elem_size, array_t* array ) \
|
||||
BLIS_INLINE void bli_array_set_elem_size( siz_t elem_size, array_t* array ) \
|
||||
{
|
||||
array->elem_size = elem_size;
|
||||
}
|
||||
|
||||
@@ -38,44 +38,44 @@
|
||||
|
||||
// auxinfo_t field query
|
||||
|
||||
static pack_t bli_auxinfo_schema_a( auxinfo_t* ai )
|
||||
BLIS_INLINE pack_t bli_auxinfo_schema_a( auxinfo_t* ai )
|
||||
{
|
||||
return ai->schema_a;
|
||||
}
|
||||
static pack_t bli_auxinfo_schema_b( auxinfo_t* ai )
|
||||
BLIS_INLINE pack_t bli_auxinfo_schema_b( auxinfo_t* ai )
|
||||
{
|
||||
return ai->schema_b;
|
||||
}
|
||||
|
||||
static void* bli_auxinfo_next_a( auxinfo_t* ai )
|
||||
BLIS_INLINE void* bli_auxinfo_next_a( auxinfo_t* ai )
|
||||
{
|
||||
return ai->a_next;
|
||||
}
|
||||
static void* bli_auxinfo_next_b( auxinfo_t* ai )
|
||||
BLIS_INLINE void* bli_auxinfo_next_b( auxinfo_t* ai )
|
||||
{
|
||||
return ai->b_next;
|
||||
}
|
||||
|
||||
static inc_t bli_auxinfo_is_a( auxinfo_t* ai )
|
||||
BLIS_INLINE inc_t bli_auxinfo_is_a( auxinfo_t* ai )
|
||||
{
|
||||
return ai->is_a;
|
||||
}
|
||||
static inc_t bli_auxinfo_is_b( auxinfo_t* ai )
|
||||
BLIS_INLINE inc_t bli_auxinfo_is_b( auxinfo_t* ai )
|
||||
{
|
||||
return ai->is_b;
|
||||
}
|
||||
|
||||
static inc_t bli_auxinfo_ps_a( auxinfo_t* ai )
|
||||
BLIS_INLINE inc_t bli_auxinfo_ps_a( auxinfo_t* ai )
|
||||
{
|
||||
return ai->ps_a;
|
||||
}
|
||||
static inc_t bli_auxinfo_ps_b( auxinfo_t* ai )
|
||||
BLIS_INLINE inc_t bli_auxinfo_ps_b( auxinfo_t* ai )
|
||||
{
|
||||
return ai->ps_b;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static inc_t bli_auxinfo_dt_on_output( auxinfo_t* ai )
|
||||
BLIS_INLINE inc_t bli_auxinfo_dt_on_output( auxinfo_t* ai )
|
||||
{
|
||||
return ai->dt_on_output;
|
||||
}
|
||||
@@ -84,49 +84,49 @@ static inc_t bli_auxinfo_dt_on_output( auxinfo_t* ai )
|
||||
|
||||
// auxinfo_t field modification
|
||||
|
||||
static void bli_auxinfo_set_schema_a( pack_t schema, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_schema_a( pack_t schema, auxinfo_t* ai )
|
||||
{
|
||||
ai->schema_a = schema;
|
||||
}
|
||||
static void bli_auxinfo_set_schema_b( pack_t schema, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_schema_b( pack_t schema, auxinfo_t* ai )
|
||||
{
|
||||
ai->schema_b = schema;
|
||||
}
|
||||
|
||||
static void bli_auxinfo_set_next_a( void* p, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_next_a( void* p, auxinfo_t* ai )
|
||||
{
|
||||
ai->a_next = p;
|
||||
}
|
||||
static void bli_auxinfo_set_next_b( void* p, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_next_b( void* p, auxinfo_t* ai )
|
||||
{
|
||||
ai->b_next = p;
|
||||
}
|
||||
static void bli_auxinfo_set_next_ab( void* ap, void* bp, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_next_ab( void* ap, void* bp, auxinfo_t* ai )
|
||||
{
|
||||
ai->a_next = ap;
|
||||
ai->b_next = bp;
|
||||
}
|
||||
|
||||
static void bli_auxinfo_set_is_a( inc_t is, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_is_a( inc_t is, auxinfo_t* ai )
|
||||
{
|
||||
ai->is_a = is;
|
||||
}
|
||||
static void bli_auxinfo_set_is_b( inc_t is, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_is_b( inc_t is, auxinfo_t* ai )
|
||||
{
|
||||
ai->is_b = is;
|
||||
}
|
||||
|
||||
static void bli_auxinfo_set_ps_a( inc_t ps, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_ps_a( inc_t ps, auxinfo_t* ai )
|
||||
{
|
||||
ai->ps_a = ps;
|
||||
}
|
||||
static void bli_auxinfo_set_ps_b( inc_t ps, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_ps_b( inc_t ps, auxinfo_t* ai )
|
||||
{
|
||||
ai->ps_b = ps;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void bli_auxinfo_set_dt_on_output( num_t dt_on_output, auxinfo_t* ai )
|
||||
BLIS_INLINE void bli_auxinfo_set_dt_on_output( num_t dt_on_output, auxinfo_t* ai )
|
||||
{
|
||||
ai->dt_on_output = dt_on_output;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
// blksz_t query
|
||||
|
||||
static dim_t bli_blksz_get_def
|
||||
BLIS_INLINE dim_t bli_blksz_get_def
|
||||
(
|
||||
num_t dt,
|
||||
blksz_t* b
|
||||
@@ -43,7 +43,7 @@ static dim_t bli_blksz_get_def
|
||||
return b->v[ dt ];
|
||||
}
|
||||
|
||||
static dim_t bli_blksz_get_max
|
||||
BLIS_INLINE dim_t bli_blksz_get_max
|
||||
(
|
||||
num_t dt,
|
||||
blksz_t* b
|
||||
@@ -55,7 +55,7 @@ static dim_t bli_blksz_get_max
|
||||
|
||||
// blksz_t modification
|
||||
|
||||
static void bli_blksz_set_def
|
||||
BLIS_INLINE void bli_blksz_set_def
|
||||
(
|
||||
dim_t val,
|
||||
num_t dt,
|
||||
@@ -65,7 +65,7 @@ static void bli_blksz_set_def
|
||||
b->v[ dt ] = val;
|
||||
}
|
||||
|
||||
static void bli_blksz_set_max
|
||||
BLIS_INLINE void bli_blksz_set_max
|
||||
(
|
||||
dim_t val,
|
||||
num_t dt,
|
||||
@@ -75,7 +75,7 @@ static void bli_blksz_set_max
|
||||
b->e[ dt ] = val;
|
||||
}
|
||||
|
||||
static void bli_blksz_copy
|
||||
BLIS_INLINE void bli_blksz_copy
|
||||
(
|
||||
blksz_t* b_src,
|
||||
blksz_t* b_dst
|
||||
@@ -84,7 +84,7 @@ static void bli_blksz_copy
|
||||
*b_dst = *b_src;
|
||||
}
|
||||
|
||||
static void bli_blksz_copy_if_pos
|
||||
BLIS_INLINE void bli_blksz_copy_if_pos
|
||||
(
|
||||
blksz_t* b_src,
|
||||
blksz_t* b_dst
|
||||
@@ -114,7 +114,7 @@ static void bli_blksz_copy_if_pos
|
||||
if ( e_z > 0 ) bli_blksz_set_max( e_z, BLIS_DCOMPLEX, b_dst );
|
||||
}
|
||||
|
||||
static void bli_blksz_copy_def_dt
|
||||
BLIS_INLINE void bli_blksz_copy_def_dt
|
||||
(
|
||||
num_t dt_src, blksz_t* b_src,
|
||||
num_t dt_dst, blksz_t* b_dst
|
||||
@@ -125,7 +125,7 @@ static void bli_blksz_copy_def_dt
|
||||
bli_blksz_set_def( val, dt_dst, b_dst );
|
||||
}
|
||||
|
||||
static void bli_blksz_copy_max_dt
|
||||
BLIS_INLINE void bli_blksz_copy_max_dt
|
||||
(
|
||||
num_t dt_src, blksz_t* b_src,
|
||||
num_t dt_dst, blksz_t* b_dst
|
||||
@@ -136,7 +136,7 @@ static void bli_blksz_copy_max_dt
|
||||
bli_blksz_set_max( val, dt_dst, b_dst );
|
||||
}
|
||||
|
||||
static void bli_blksz_copy_dt
|
||||
BLIS_INLINE void bli_blksz_copy_dt
|
||||
(
|
||||
num_t dt_src, blksz_t* b_src,
|
||||
num_t dt_dst, blksz_t* b_dst
|
||||
@@ -146,7 +146,7 @@ static void bli_blksz_copy_dt
|
||||
bli_blksz_copy_max_dt( dt_src, b_src, dt_dst, b_dst );
|
||||
}
|
||||
|
||||
static void bli_blksz_scale_def
|
||||
BLIS_INLINE void bli_blksz_scale_def
|
||||
(
|
||||
dim_t num,
|
||||
dim_t den,
|
||||
@@ -159,7 +159,7 @@ static void bli_blksz_scale_def
|
||||
bli_blksz_set_def( ( val * num ) / den, dt, b );
|
||||
}
|
||||
|
||||
static void bli_blksz_scale_max
|
||||
BLIS_INLINE void bli_blksz_scale_max
|
||||
(
|
||||
dim_t num,
|
||||
dim_t den,
|
||||
@@ -172,7 +172,7 @@ static void bli_blksz_scale_max
|
||||
bli_blksz_set_max( ( val * num ) / den, dt, b );
|
||||
}
|
||||
|
||||
static void bli_blksz_scale_def_max
|
||||
BLIS_INLINE void bli_blksz_scale_def_max
|
||||
(
|
||||
dim_t num,
|
||||
dim_t den,
|
||||
|
||||
@@ -127,62 +127,62 @@ dim_t bli_cntl_calc_num_threads_in
|
||||
|
||||
// cntl_t query (fields only)
|
||||
|
||||
static opid_t bli_cntl_family( cntl_t* cntl )
|
||||
BLIS_INLINE opid_t bli_cntl_family( cntl_t* cntl )
|
||||
{
|
||||
return cntl->family;
|
||||
}
|
||||
|
||||
static bszid_t bli_cntl_bszid( cntl_t* cntl )
|
||||
BLIS_INLINE bszid_t bli_cntl_bszid( cntl_t* cntl )
|
||||
{
|
||||
return cntl->bszid;
|
||||
}
|
||||
|
||||
static void_fp bli_cntl_var_func( cntl_t* cntl )
|
||||
BLIS_INLINE void_fp bli_cntl_var_func( cntl_t* cntl )
|
||||
{
|
||||
return cntl->var_func;
|
||||
}
|
||||
|
||||
static cntl_t* bli_cntl_sub_prenode( cntl_t* cntl )
|
||||
BLIS_INLINE cntl_t* bli_cntl_sub_prenode( cntl_t* cntl )
|
||||
{
|
||||
return cntl->sub_prenode;
|
||||
}
|
||||
|
||||
static cntl_t* bli_cntl_sub_node( cntl_t* cntl )
|
||||
BLIS_INLINE cntl_t* bli_cntl_sub_node( cntl_t* cntl )
|
||||
{
|
||||
return cntl->sub_node;
|
||||
}
|
||||
|
||||
static void* bli_cntl_params( cntl_t* cntl )
|
||||
BLIS_INLINE void* bli_cntl_params( cntl_t* cntl )
|
||||
{
|
||||
return cntl->params;
|
||||
}
|
||||
|
||||
static uint64_t bli_cntl_params_size( cntl_t* cntl )
|
||||
BLIS_INLINE uint64_t bli_cntl_params_size( cntl_t* cntl )
|
||||
{
|
||||
// The first 64 bytes is always the size of the params structure.
|
||||
return *( ( uint64_t* )(cntl->params) );
|
||||
}
|
||||
|
||||
static mem_t* bli_cntl_pack_mem( cntl_t* cntl )
|
||||
BLIS_INLINE mem_t* bli_cntl_pack_mem( cntl_t* cntl )
|
||||
{
|
||||
return &(cntl->pack_mem);
|
||||
}
|
||||
|
||||
// cntl_t query (complex)
|
||||
|
||||
static bool_t bli_cntl_is_null( cntl_t* cntl )
|
||||
BLIS_INLINE bool_t bli_cntl_is_null( cntl_t* cntl )
|
||||
{
|
||||
return ( bool_t )
|
||||
( cntl == NULL );
|
||||
}
|
||||
|
||||
static bool_t bli_cntl_is_leaf( cntl_t* cntl )
|
||||
BLIS_INLINE bool_t bli_cntl_is_leaf( cntl_t* cntl )
|
||||
{
|
||||
return ( bool_t )
|
||||
( bli_cntl_sub_node( cntl ) == NULL );
|
||||
}
|
||||
|
||||
static bool_t bli_cntl_does_part( cntl_t* cntl )
|
||||
BLIS_INLINE bool_t bli_cntl_does_part( cntl_t* cntl )
|
||||
{
|
||||
return ( bool_t )
|
||||
( bli_cntl_bszid( cntl ) != BLIS_NO_PART );
|
||||
@@ -190,37 +190,37 @@ static bool_t bli_cntl_does_part( cntl_t* cntl )
|
||||
|
||||
// cntl_t modification
|
||||
|
||||
static void bli_cntl_set_family( opid_t family, cntl_t* cntl )
|
||||
BLIS_INLINE void bli_cntl_set_family( opid_t family, cntl_t* cntl )
|
||||
{
|
||||
cntl->family = family;
|
||||
}
|
||||
|
||||
static void bli_cntl_set_bszid( bszid_t bszid, cntl_t* cntl )
|
||||
BLIS_INLINE void bli_cntl_set_bszid( bszid_t bszid, cntl_t* cntl )
|
||||
{
|
||||
cntl->bszid = bszid;
|
||||
}
|
||||
|
||||
static void bli_cntl_set_var_func( void_fp var_func, cntl_t* cntl )
|
||||
BLIS_INLINE void bli_cntl_set_var_func( void_fp var_func, cntl_t* cntl )
|
||||
{
|
||||
cntl->var_func = var_func;
|
||||
}
|
||||
|
||||
static void bli_cntl_set_sub_prenode( cntl_t* sub_prenode, cntl_t* cntl )
|
||||
BLIS_INLINE void bli_cntl_set_sub_prenode( cntl_t* sub_prenode, cntl_t* cntl )
|
||||
{
|
||||
cntl->sub_prenode = sub_prenode;
|
||||
}
|
||||
|
||||
static void bli_cntl_set_sub_node( cntl_t* sub_node, cntl_t* cntl )
|
||||
BLIS_INLINE void bli_cntl_set_sub_node( cntl_t* sub_node, cntl_t* cntl )
|
||||
{
|
||||
cntl->sub_node = sub_node;
|
||||
}
|
||||
|
||||
static void bli_cntl_set_params( void* params, cntl_t* cntl )
|
||||
BLIS_INLINE void bli_cntl_set_params( void* params, cntl_t* cntl )
|
||||
{
|
||||
cntl->params = params;
|
||||
}
|
||||
|
||||
static void bli_cntl_set_pack_mem( mem_t* pack_mem, cntl_t* cntl )
|
||||
BLIS_INLINE void bli_cntl_set_pack_mem( mem_t* pack_mem, cntl_t* cntl )
|
||||
{
|
||||
cntl->pack_mem = *pack_mem;
|
||||
}
|
||||
|
||||
@@ -76,75 +76,75 @@ typedef struct cntx_s
|
||||
// -- cntx_t query (fields only) -----------------------------------------------
|
||||
//
|
||||
|
||||
static blksz_t* bli_cntx_blkszs_buf( cntx_t* cntx )
|
||||
BLIS_INLINE blksz_t* bli_cntx_blkszs_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->blkszs;
|
||||
}
|
||||
static bszid_t* bli_cntx_bmults_buf( cntx_t* cntx )
|
||||
BLIS_INLINE bszid_t* bli_cntx_bmults_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->bmults;
|
||||
}
|
||||
static func_t* bli_cntx_l3_vir_ukrs_buf( cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_l3_vir_ukrs_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l3_vir_ukrs;
|
||||
}
|
||||
static func_t* bli_cntx_l3_nat_ukrs_buf( cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_l3_nat_ukrs_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l3_nat_ukrs;
|
||||
}
|
||||
static mbool_t* bli_cntx_l3_nat_ukrs_prefs_buf( cntx_t* cntx )
|
||||
BLIS_INLINE mbool_t* bli_cntx_l3_nat_ukrs_prefs_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l3_nat_ukrs_prefs;
|
||||
}
|
||||
static blksz_t* bli_cntx_l3_sup_thresh_buf( cntx_t* cntx )
|
||||
BLIS_INLINE blksz_t* bli_cntx_l3_sup_thresh_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l3_sup_thresh;
|
||||
}
|
||||
static void** bli_cntx_l3_sup_handlers_buf( cntx_t* cntx )
|
||||
BLIS_INLINE void** bli_cntx_l3_sup_handlers_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l3_sup_handlers;
|
||||
}
|
||||
static blksz_t* bli_cntx_l3_sup_blkszs_buf( cntx_t* cntx )
|
||||
BLIS_INLINE blksz_t* bli_cntx_l3_sup_blkszs_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l3_sup_blkszs;
|
||||
}
|
||||
static func_t* bli_cntx_l3_sup_kers_buf( cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_l3_sup_kers_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l3_sup_kers;
|
||||
}
|
||||
static mbool_t* bli_cntx_l3_sup_kers_prefs_buf( cntx_t* cntx )
|
||||
BLIS_INLINE mbool_t* bli_cntx_l3_sup_kers_prefs_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l3_sup_kers_prefs;
|
||||
}
|
||||
static func_t* bli_cntx_l1f_kers_buf( cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_l1f_kers_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l1f_kers;
|
||||
}
|
||||
static func_t* bli_cntx_l1v_kers_buf( cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_l1v_kers_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->l1v_kers;
|
||||
}
|
||||
static func_t* bli_cntx_packm_kers_buf( cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_packm_kers_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->packm_kers;
|
||||
}
|
||||
static func_t* bli_cntx_unpackm_kers_buf( cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_unpackm_kers_buf( cntx_t* cntx )
|
||||
{
|
||||
return cntx->unpackm_kers;
|
||||
}
|
||||
static ind_t bli_cntx_method( cntx_t* cntx )
|
||||
BLIS_INLINE ind_t bli_cntx_method( cntx_t* cntx )
|
||||
{
|
||||
return cntx->method;
|
||||
}
|
||||
static pack_t bli_cntx_schema_a_block( cntx_t* cntx )
|
||||
BLIS_INLINE pack_t bli_cntx_schema_a_block( cntx_t* cntx )
|
||||
{
|
||||
return cntx->schema_a_block;
|
||||
}
|
||||
static pack_t bli_cntx_schema_b_panel( cntx_t* cntx )
|
||||
BLIS_INLINE pack_t bli_cntx_schema_b_panel( cntx_t* cntx )
|
||||
{
|
||||
return cntx->schema_b_panel;
|
||||
}
|
||||
static pack_t bli_cntx_schema_c_panel( cntx_t* cntx )
|
||||
BLIS_INLINE pack_t bli_cntx_schema_c_panel( cntx_t* cntx )
|
||||
{
|
||||
return cntx->schema_c_panel;
|
||||
}
|
||||
@@ -155,23 +155,23 @@ static pack_t bli_cntx_schema_c_panel( cntx_t* cntx )
|
||||
// -- cntx_t modification (fields only) ----------------------------------------
|
||||
//
|
||||
|
||||
static void bli_cntx_set_method( ind_t method, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_method( ind_t method, cntx_t* cntx )
|
||||
{
|
||||
cntx->method = method;
|
||||
}
|
||||
static void bli_cntx_set_schema_a_block( pack_t schema, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_schema_a_block( pack_t schema, cntx_t* cntx )
|
||||
{
|
||||
cntx->schema_a_block = schema;
|
||||
}
|
||||
static void bli_cntx_set_schema_b_panel( pack_t schema, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_schema_b_panel( pack_t schema, cntx_t* cntx )
|
||||
{
|
||||
cntx->schema_b_panel = schema;
|
||||
}
|
||||
static void bli_cntx_set_schema_c_panel( pack_t schema, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_schema_c_panel( pack_t schema, cntx_t* cntx )
|
||||
{
|
||||
cntx->schema_c_panel = schema;
|
||||
}
|
||||
static void bli_cntx_set_schema_ab_blockpanel( pack_t sa, pack_t sb, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_schema_ab_blockpanel( pack_t sa, pack_t sb, cntx_t* cntx )
|
||||
{
|
||||
bli_cntx_set_schema_a_block( sa, cntx );
|
||||
bli_cntx_set_schema_b_panel( sb, cntx );
|
||||
@@ -183,7 +183,7 @@ static void bli_cntx_set_schema_ab_blockpanel( pack_t sa, pack_t sb, cntx_t* cnt
|
||||
// -- cntx_t query (complex) ---------------------------------------------------
|
||||
//
|
||||
|
||||
static blksz_t* bli_cntx_get_blksz( bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE blksz_t* bli_cntx_get_blksz( bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blkszs = bli_cntx_blkszs_buf( cntx );
|
||||
blksz_t* blksz = &blkszs[ bs_id ];
|
||||
@@ -192,7 +192,7 @@ static blksz_t* bli_cntx_get_blksz( bszid_t bs_id, cntx_t* cntx )
|
||||
return blksz;
|
||||
}
|
||||
|
||||
static dim_t bli_cntx_get_blksz_def_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE dim_t bli_cntx_get_blksz_def_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blksz = bli_cntx_get_blksz( bs_id, cntx );
|
||||
dim_t bs_dt = bli_blksz_get_def( dt, blksz );
|
||||
@@ -201,7 +201,7 @@ static dim_t bli_cntx_get_blksz_def_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
return bs_dt;
|
||||
}
|
||||
|
||||
static dim_t bli_cntx_get_blksz_max_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE dim_t bli_cntx_get_blksz_max_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blksz = bli_cntx_get_blksz( bs_id, cntx );
|
||||
dim_t bs_dt = bli_blksz_get_max( dt, blksz );
|
||||
@@ -210,7 +210,7 @@ static dim_t bli_cntx_get_blksz_max_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
return bs_dt;
|
||||
}
|
||||
|
||||
static bszid_t bli_cntx_get_bmult_id( bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE bszid_t bli_cntx_get_bmult_id( bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
bszid_t* restrict bmults = bli_cntx_bmults_buf( cntx );
|
||||
bszid_t bm_id = bmults[ bs_id ];
|
||||
@@ -218,7 +218,7 @@ static bszid_t bli_cntx_get_bmult_id( bszid_t bs_id, cntx_t* cntx )
|
||||
return bm_id;
|
||||
}
|
||||
|
||||
static blksz_t* bli_cntx_get_bmult( bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE blksz_t* bli_cntx_get_bmult( bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
bszid_t bm_id = bli_cntx_get_bmult_id( bs_id, cntx );
|
||||
blksz_t* restrict bmult = bli_cntx_get_blksz( bm_id, cntx );
|
||||
@@ -226,7 +226,7 @@ static blksz_t* bli_cntx_get_bmult( bszid_t bs_id, cntx_t* cntx )
|
||||
return bmult;
|
||||
}
|
||||
|
||||
static dim_t bli_cntx_get_bmult_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE dim_t bli_cntx_get_bmult_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* bmult = bli_cntx_get_bmult( bs_id, cntx );
|
||||
dim_t bm_dt = bli_blksz_get_def( dt, bmult );
|
||||
@@ -236,7 +236,7 @@ static dim_t bli_cntx_get_bmult_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static func_t* bli_cntx_get_l3_vir_ukrs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_get_l3_vir_ukrs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l3_vir_ukrs_buf( cntx );
|
||||
func_t* func = &funcs[ ukr_id ];
|
||||
@@ -244,14 +244,14 @@ static func_t* bli_cntx_get_l3_vir_ukrs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
return func;
|
||||
}
|
||||
|
||||
static void_fp bli_cntx_get_l3_vir_ukr_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE void_fp bli_cntx_get_l3_vir_ukr_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = bli_cntx_get_l3_vir_ukrs( ukr_id, cntx );
|
||||
|
||||
return bli_func_get_dt( dt, func );
|
||||
}
|
||||
|
||||
static func_t* bli_cntx_get_l3_nat_ukrs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_get_l3_nat_ukrs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l3_nat_ukrs_buf( cntx );
|
||||
func_t* func = &funcs[ ukr_id ];
|
||||
@@ -259,7 +259,7 @@ static func_t* bli_cntx_get_l3_nat_ukrs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
return func;
|
||||
}
|
||||
|
||||
static void_fp bli_cntx_get_l3_nat_ukr_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE void_fp bli_cntx_get_l3_nat_ukr_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = bli_cntx_get_l3_nat_ukrs( ukr_id, cntx );
|
||||
|
||||
@@ -268,7 +268,7 @@ static void_fp bli_cntx_get_l3_nat_ukr_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cnt
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static mbool_t* bli_cntx_get_l3_nat_ukr_prefs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE mbool_t* bli_cntx_get_l3_nat_ukr_prefs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
mbool_t* mbools = bli_cntx_l3_nat_ukrs_prefs_buf( cntx );
|
||||
mbool_t* mbool = &mbools[ ukr_id ];
|
||||
@@ -276,7 +276,7 @@ static mbool_t* bli_cntx_get_l3_nat_ukr_prefs( l3ukr_t ukr_id, cntx_t* cntx )
|
||||
return mbool;
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_get_l3_nat_ukr_prefs_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_get_l3_nat_ukr_prefs_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
mbool_t* mbool = bli_cntx_get_l3_nat_ukr_prefs( ukr_id, cntx );
|
||||
|
||||
@@ -285,7 +285,7 @@ static bool_t bli_cntx_get_l3_nat_ukr_prefs_dt( num_t dt, l3ukr_t ukr_id, cntx_t
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static blksz_t* bli_cntx_get_l3_sup_thresh( threshid_t thresh_id, cntx_t* cntx )
|
||||
BLIS_INLINE blksz_t* bli_cntx_get_l3_sup_thresh( threshid_t thresh_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* threshs = bli_cntx_l3_sup_thresh_buf( cntx );
|
||||
blksz_t* thresh = &threshs[ thresh_id ];
|
||||
@@ -294,7 +294,7 @@ static blksz_t* bli_cntx_get_l3_sup_thresh( threshid_t thresh_id, cntx_t* cntx )
|
||||
return thresh;
|
||||
}
|
||||
|
||||
static dim_t bli_cntx_get_l3_sup_thresh_dt( num_t dt, threshid_t thresh_id, cntx_t* cntx )
|
||||
BLIS_INLINE dim_t bli_cntx_get_l3_sup_thresh_dt( num_t dt, threshid_t thresh_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* threshs = bli_cntx_get_l3_sup_thresh( thresh_id, cntx );
|
||||
dim_t thresh_dt = bli_blksz_get_def( dt, threshs );
|
||||
@@ -303,7 +303,7 @@ static dim_t bli_cntx_get_l3_sup_thresh_dt( num_t dt, threshid_t thresh_id, cntx
|
||||
return thresh_dt;
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_sup_thresh_is_met( num_t dt, dim_t m, dim_t n, dim_t k, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_sup_thresh_is_met( num_t dt, dim_t m, dim_t n, dim_t k, cntx_t* cntx )
|
||||
{
|
||||
if ( m < bli_cntx_get_l3_sup_thresh_dt( dt, BLIS_MT, cntx ) ) return TRUE;
|
||||
if ( n < bli_cntx_get_l3_sup_thresh_dt( dt, BLIS_NT, cntx ) ) return TRUE;
|
||||
@@ -314,7 +314,7 @@ static bool_t bli_cntx_l3_sup_thresh_is_met( num_t dt, dim_t m, dim_t n, dim_t k
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static void* bli_cntx_get_l3_sup_handler( opid_t op, cntx_t* cntx )
|
||||
BLIS_INLINE void* bli_cntx_get_l3_sup_handler( opid_t op, cntx_t* cntx )
|
||||
{
|
||||
void** funcs = bli_cntx_l3_sup_handlers_buf( cntx );
|
||||
void* func = funcs[ op ];
|
||||
@@ -324,7 +324,7 @@ static void* bli_cntx_get_l3_sup_handler( opid_t op, cntx_t* cntx )
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static blksz_t* bli_cntx_get_l3_sup_blksz( bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE blksz_t* bli_cntx_get_l3_sup_blksz( bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blkszs = bli_cntx_l3_sup_blkszs_buf( cntx );
|
||||
blksz_t* blksz = &blkszs[ bs_id ];
|
||||
@@ -333,7 +333,7 @@ static blksz_t* bli_cntx_get_l3_sup_blksz( bszid_t bs_id, cntx_t* cntx )
|
||||
return blksz;
|
||||
}
|
||||
|
||||
static dim_t bli_cntx_get_l3_sup_blksz_def_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE dim_t bli_cntx_get_l3_sup_blksz_def_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blksz = bli_cntx_get_l3_sup_blksz( bs_id, cntx );
|
||||
dim_t bs_dt = bli_blksz_get_def( dt, blksz );
|
||||
@@ -342,7 +342,7 @@ static dim_t bli_cntx_get_l3_sup_blksz_def_dt( num_t dt, bszid_t bs_id, cntx_t*
|
||||
return bs_dt;
|
||||
}
|
||||
|
||||
static dim_t bli_cntx_get_l3_sup_blksz_max_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
BLIS_INLINE dim_t bli_cntx_get_l3_sup_blksz_max_dt( num_t dt, bszid_t bs_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blksz = bli_cntx_get_l3_sup_blksz( bs_id, cntx );
|
||||
dim_t bs_dt = bli_blksz_get_max( dt, blksz );
|
||||
@@ -353,7 +353,7 @@ static dim_t bli_cntx_get_l3_sup_blksz_max_dt( num_t dt, bszid_t bs_id, cntx_t*
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static func_t* bli_cntx_get_l3_sup_kers( stor3_t stor_id, cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_get_l3_sup_kers( stor3_t stor_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l3_sup_kers_buf( cntx );
|
||||
func_t* func = &funcs[ stor_id ];
|
||||
@@ -361,7 +361,7 @@ static func_t* bli_cntx_get_l3_sup_kers( stor3_t stor_id, cntx_t* cntx )
|
||||
return func;
|
||||
}
|
||||
|
||||
static void* bli_cntx_get_l3_sup_ker_dt( num_t dt, stor3_t stor_id, cntx_t* cntx )
|
||||
BLIS_INLINE void* bli_cntx_get_l3_sup_ker_dt( num_t dt, stor3_t stor_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = bli_cntx_get_l3_sup_kers( stor_id, cntx );
|
||||
|
||||
@@ -370,7 +370,7 @@ static void* bli_cntx_get_l3_sup_ker_dt( num_t dt, stor3_t stor_id, cntx_t* cntx
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static mbool_t* bli_cntx_get_l3_sup_ker_prefs( stor3_t stor_id, cntx_t* cntx )
|
||||
BLIS_INLINE mbool_t* bli_cntx_get_l3_sup_ker_prefs( stor3_t stor_id, cntx_t* cntx )
|
||||
{
|
||||
mbool_t* mbools = bli_cntx_l3_sup_kers_prefs_buf( cntx );
|
||||
mbool_t* mbool = &mbools[ stor_id ];
|
||||
@@ -378,7 +378,7 @@ static mbool_t* bli_cntx_get_l3_sup_ker_prefs( stor3_t stor_id, cntx_t* cntx )
|
||||
return mbool;
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_get_l3_sup_ker_prefs_dt( num_t dt, stor3_t stor_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_get_l3_sup_ker_prefs_dt( num_t dt, stor3_t stor_id, cntx_t* cntx )
|
||||
{
|
||||
mbool_t* mbool = bli_cntx_get_l3_sup_ker_prefs( stor_id, cntx );
|
||||
|
||||
@@ -387,7 +387,7 @@ static bool_t bli_cntx_get_l3_sup_ker_prefs_dt( num_t dt, stor3_t stor_id, cntx_
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static func_t* bli_cntx_get_l1f_kers( l1fkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_get_l1f_kers( l1fkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l1f_kers_buf( cntx );
|
||||
func_t* func = &funcs[ ker_id ];
|
||||
@@ -395,7 +395,7 @@ static func_t* bli_cntx_get_l1f_kers( l1fkr_t ker_id, cntx_t* cntx )
|
||||
return func;
|
||||
}
|
||||
|
||||
static void_fp bli_cntx_get_l1f_ker_dt( num_t dt, l1fkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE void_fp bli_cntx_get_l1f_ker_dt( num_t dt, l1fkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = bli_cntx_get_l1f_kers( ker_id, cntx );
|
||||
|
||||
@@ -404,7 +404,7 @@ static void_fp bli_cntx_get_l1f_ker_dt( num_t dt, l1fkr_t ker_id, cntx_t* cntx )
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static func_t* bli_cntx_get_l1v_kers( l1vkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_get_l1v_kers( l1vkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l1v_kers_buf( cntx );
|
||||
func_t* func = &funcs[ ker_id ];
|
||||
@@ -412,7 +412,7 @@ static func_t* bli_cntx_get_l1v_kers( l1vkr_t ker_id, cntx_t* cntx )
|
||||
return func;
|
||||
}
|
||||
|
||||
static void_fp bli_cntx_get_l1v_ker_dt( num_t dt, l1vkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE void_fp bli_cntx_get_l1v_ker_dt( num_t dt, l1vkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = bli_cntx_get_l1v_kers( ker_id, cntx );
|
||||
|
||||
@@ -421,7 +421,7 @@ static void_fp bli_cntx_get_l1v_ker_dt( num_t dt, l1vkr_t ker_id, cntx_t* cntx )
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static func_t* bli_cntx_get_packm_kers( l1mkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_get_packm_kers( l1mkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = NULL;
|
||||
|
||||
@@ -438,7 +438,7 @@ static func_t* bli_cntx_get_packm_kers( l1mkr_t ker_id, cntx_t* cntx )
|
||||
return func;
|
||||
}
|
||||
|
||||
static void_fp bli_cntx_get_packm_ker_dt( num_t dt, l1mkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE void_fp bli_cntx_get_packm_ker_dt( num_t dt, l1mkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
void_fp fp = NULL;
|
||||
|
||||
@@ -456,7 +456,7 @@ static void_fp bli_cntx_get_packm_ker_dt( num_t dt, l1mkr_t ker_id, cntx_t* cntx
|
||||
return fp;
|
||||
}
|
||||
|
||||
static func_t* bli_cntx_get_unpackm_kers( l1mkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE func_t* bli_cntx_get_unpackm_kers( l1mkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = NULL;
|
||||
|
||||
@@ -473,7 +473,7 @@ static func_t* bli_cntx_get_unpackm_kers( l1mkr_t ker_id, cntx_t* cntx )
|
||||
return func;
|
||||
}
|
||||
|
||||
static void_fp bli_cntx_get_unpackm_ker_dt( num_t dt, l1mkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE void_fp bli_cntx_get_unpackm_ker_dt( num_t dt, l1mkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
void_fp fp = NULL;
|
||||
|
||||
@@ -493,7 +493,7 @@ static void_fp bli_cntx_get_unpackm_ker_dt( num_t dt, l1mkr_t ker_id, cntx_t* cn
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static bool_t bli_cntx_l3_nat_ukr_prefers_rows_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_nat_ukr_prefers_rows_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
const bool_t prefs = bli_cntx_get_l3_nat_ukr_prefs_dt( dt, ukr_id, cntx );
|
||||
|
||||
@@ -502,7 +502,7 @@ static bool_t bli_cntx_l3_nat_ukr_prefers_rows_dt( num_t dt, l3ukr_t ukr_id, cnt
|
||||
( prefs == TRUE );
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_nat_ukr_prefers_cols_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_nat_ukr_prefers_cols_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
const bool_t prefs = bli_cntx_get_l3_nat_ukr_prefs_dt( dt, ukr_id, cntx );
|
||||
|
||||
@@ -511,7 +511,7 @@ static bool_t bli_cntx_l3_nat_ukr_prefers_cols_dt( num_t dt, l3ukr_t ukr_id, cnt
|
||||
( prefs == FALSE );
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_nat_ukr_prefers_storage_of( obj_t* obj, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_nat_ukr_prefers_storage_of( obj_t* obj, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
// Note that we use the computation datatype, which may differ from the
|
||||
// storage datatype of C (when performing a mixed datatype operation).
|
||||
@@ -528,7 +528,7 @@ static bool_t bli_cntx_l3_nat_ukr_prefers_storage_of( obj_t* obj, l3ukr_t ukr_id
|
||||
return r_val;
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_nat_ukr_dislikes_storage_of( obj_t* obj, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_nat_ukr_dislikes_storage_of( obj_t* obj, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
return ( bool_t )
|
||||
!bli_cntx_l3_nat_ukr_prefers_storage_of( obj, ukr_id, cntx );
|
||||
@@ -536,7 +536,7 @@ static bool_t bli_cntx_l3_nat_ukr_dislikes_storage_of( obj_t* obj, l3ukr_t ukr_i
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static bool_t bli_cntx_l3_vir_ukr_prefers_rows_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_vir_ukr_prefers_rows_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
// For induced methods, return the ukernel storage preferences of the
|
||||
// corresponding real micro-kernel.
|
||||
@@ -549,7 +549,7 @@ static bool_t bli_cntx_l3_vir_ukr_prefers_rows_dt( num_t dt, l3ukr_t ukr_id, cnt
|
||||
return bli_cntx_l3_nat_ukr_prefers_rows_dt( dt, ukr_id, cntx );
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_vir_ukr_prefers_cols_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_vir_ukr_prefers_cols_dt( num_t dt, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
// For induced methods, return the ukernel storage preferences of the
|
||||
// corresponding real micro-kernel.
|
||||
@@ -562,7 +562,7 @@ static bool_t bli_cntx_l3_vir_ukr_prefers_cols_dt( num_t dt, l3ukr_t ukr_id, cnt
|
||||
return bli_cntx_l3_nat_ukr_prefers_cols_dt( dt, ukr_id, cntx );
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_vir_ukr_prefers_storage_of( obj_t* obj, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_vir_ukr_prefers_storage_of( obj_t* obj, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
// Note that we use the computation datatype, which may differ from the
|
||||
// storage datatype of C (when performing a mixed datatype operation).
|
||||
@@ -579,7 +579,7 @@ static bool_t bli_cntx_l3_vir_ukr_prefers_storage_of( obj_t* obj, l3ukr_t ukr_id
|
||||
return r_val;
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_vir_ukr_dislikes_storage_of( obj_t* obj, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_vir_ukr_dislikes_storage_of( obj_t* obj, l3ukr_t ukr_id, cntx_t* cntx )
|
||||
{
|
||||
return ( bool_t )
|
||||
!bli_cntx_l3_vir_ukr_prefers_storage_of( obj, ukr_id, cntx );
|
||||
@@ -587,7 +587,7 @@ static bool_t bli_cntx_l3_vir_ukr_dislikes_storage_of( obj_t* obj, l3ukr_t ukr_i
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static bool_t bli_cntx_l3_sup_ker_prefers_rows_dt( num_t dt, stor3_t stor_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_sup_ker_prefers_rows_dt( num_t dt, stor3_t stor_id, cntx_t* cntx )
|
||||
{
|
||||
const bool_t prefs = bli_cntx_get_l3_sup_ker_prefs_dt( dt, stor_id, cntx );
|
||||
|
||||
@@ -596,7 +596,7 @@ static bool_t bli_cntx_l3_sup_ker_prefers_rows_dt( num_t dt, stor3_t stor_id, cn
|
||||
( prefs == TRUE );
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_sup_ker_prefers_cols_dt( num_t dt, stor3_t stor_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_sup_ker_prefers_cols_dt( num_t dt, stor3_t stor_id, cntx_t* cntx )
|
||||
{
|
||||
const bool_t prefs = bli_cntx_get_l3_sup_ker_prefs_dt( dt, stor_id, cntx );
|
||||
|
||||
@@ -608,7 +608,7 @@ static bool_t bli_cntx_l3_sup_ker_prefers_cols_dt( num_t dt, stor3_t stor_id, cn
|
||||
#if 0
|
||||
// NOTE: These static functions aren't needed yet.
|
||||
|
||||
static bool_t bli_cntx_l3_sup_ker_prefers_storage_of( obj_t* obj, stor3_t stor_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_sup_ker_prefers_storage_of( obj_t* obj, stor3_t stor_id, cntx_t* cntx )
|
||||
{
|
||||
const num_t dt = bli_obj_dt( obj );
|
||||
const bool_t ukr_prefers_rows
|
||||
@@ -623,7 +623,7 @@ static bool_t bli_cntx_l3_sup_ker_prefers_storage_of( obj_t* obj, stor3_t stor_i
|
||||
return r_val;
|
||||
}
|
||||
|
||||
static bool_t bli_cntx_l3_sup_ker_dislikes_storage_of( obj_t* obj, stor3_t stor_id, cntx_t* cntx )
|
||||
BLIS_INLINE bool_t bli_cntx_l3_sup_ker_dislikes_storage_of( obj_t* obj, stor3_t stor_id, cntx_t* cntx )
|
||||
{
|
||||
return ( bool_t )
|
||||
!bli_cntx_l3_sup_ker_prefers_storage_of( obj, stor_id, cntx );
|
||||
@@ -639,7 +639,7 @@ static bool_t bli_cntx_l3_sup_ker_dislikes_storage_of( obj_t* obj, stor3_t stor_
|
||||
// NOTE: The framework does not use any of the following functions. We provide
|
||||
// them in order to facilitate creating/modifying custom contexts.
|
||||
|
||||
static void bli_cntx_set_blksz( bszid_t bs_id, blksz_t* blksz, bszid_t mult_id, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_blksz( bszid_t bs_id, blksz_t* blksz, bszid_t mult_id, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blkszs = bli_cntx_blkszs_buf( cntx );
|
||||
bszid_t* bmults = bli_cntx_bmults_buf( cntx );
|
||||
@@ -648,7 +648,7 @@ static void bli_cntx_set_blksz( bszid_t bs_id, blksz_t* blksz, bszid_t mult_id,
|
||||
bmults[ bs_id ] = mult_id;
|
||||
}
|
||||
|
||||
static void bli_cntx_set_blksz_def_dt( num_t dt, bszid_t bs_id, dim_t bs, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_blksz_def_dt( num_t dt, bszid_t bs_id, dim_t bs, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blkszs = bli_cntx_blkszs_buf( cntx );
|
||||
blksz_t* blksz = &blkszs[ bs_id ];
|
||||
@@ -656,7 +656,7 @@ static void bli_cntx_set_blksz_def_dt( num_t dt, bszid_t bs_id, dim_t bs, cntx_t
|
||||
bli_blksz_set_def( bs, dt, blksz );
|
||||
}
|
||||
|
||||
static void bli_cntx_set_blksz_max_dt( num_t dt, bszid_t bs_id, dim_t bs, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_blksz_max_dt( num_t dt, bszid_t bs_id, dim_t bs, cntx_t* cntx )
|
||||
{
|
||||
blksz_t* blkszs = bli_cntx_blkszs_buf( cntx );
|
||||
blksz_t* blksz = &blkszs[ bs_id ];
|
||||
@@ -664,63 +664,63 @@ static void bli_cntx_set_blksz_max_dt( num_t dt, bszid_t bs_id, dim_t bs, cntx_t
|
||||
bli_blksz_set_max( bs, dt, blksz );
|
||||
}
|
||||
|
||||
static void bli_cntx_set_l3_vir_ukr( l3ukr_t ukr_id, func_t* func, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_l3_vir_ukr( l3ukr_t ukr_id, func_t* func, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l3_vir_ukrs_buf( cntx );
|
||||
|
||||
funcs[ ukr_id ] = *func;
|
||||
}
|
||||
|
||||
static void bli_cntx_set_l3_nat_ukr( l3ukr_t ukr_id, func_t* func, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_l3_nat_ukr( l3ukr_t ukr_id, func_t* func, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l3_nat_ukrs_buf( cntx );
|
||||
|
||||
funcs[ ukr_id ] = *func;
|
||||
}
|
||||
|
||||
static void bli_cntx_set_l3_nat_ukr_prefs( l3ukr_t ukr_id, mbool_t* prefs, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_l3_nat_ukr_prefs( l3ukr_t ukr_id, mbool_t* prefs, cntx_t* cntx )
|
||||
{
|
||||
mbool_t* mbools = bli_cntx_l3_nat_ukrs_prefs_buf( cntx );
|
||||
|
||||
mbools[ ukr_id ] = *prefs;
|
||||
}
|
||||
|
||||
static void bli_cntx_set_l1f_ker( l1fkr_t ker_id, func_t* func, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_l1f_ker( l1fkr_t ker_id, func_t* func, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l1f_kers_buf( cntx );
|
||||
|
||||
funcs[ ker_id ] = *func;
|
||||
}
|
||||
|
||||
static void bli_cntx_set_l1v_ker( l1vkr_t ker_id, func_t* func, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_l1v_ker( l1vkr_t ker_id, func_t* func, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_l1v_kers_buf( cntx );
|
||||
|
||||
funcs[ ker_id ] = *func;
|
||||
}
|
||||
|
||||
static void bli_cntx_set_packm_ker( l1mkr_t ker_id, func_t* func, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_packm_ker( l1mkr_t ker_id, func_t* func, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_get_packm_kers( ker_id, cntx );
|
||||
|
||||
funcs[ ker_id ] = *func;
|
||||
}
|
||||
|
||||
static void bli_cntx_set_packm_ker_dt( void_fp fp, num_t dt, l1mkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_packm_ker_dt( void_fp fp, num_t dt, l1mkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = ( func_t* )bli_cntx_get_packm_kers( ker_id, cntx );
|
||||
|
||||
bli_func_set_dt( fp, dt, func );
|
||||
}
|
||||
|
||||
static void bli_cntx_set_unpackm_ker( l1mkr_t ker_id, func_t* func, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_unpackm_ker( l1mkr_t ker_id, func_t* func, cntx_t* cntx )
|
||||
{
|
||||
func_t* funcs = bli_cntx_get_unpackm_kers( ker_id, cntx );
|
||||
|
||||
funcs[ ker_id ] = *func;
|
||||
}
|
||||
|
||||
static void bli_cntx_set_unpackm_ker_dt( void_fp fp, num_t dt, l1mkr_t ker_id, cntx_t* cntx )
|
||||
BLIS_INLINE void bli_cntx_set_unpackm_ker_dt( void_fp fp, num_t dt, l1mkr_t ker_id, cntx_t* cntx )
|
||||
{
|
||||
func_t* func = ( func_t* )bli_cntx_get_unpackm_kers( ker_id, cntx );
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef BLIS_CONFIGURETIME_CPUID
|
||||
#define BLIS_INLINE static
|
||||
#define BLIS_EXPORT_BLIS
|
||||
#include "bli_system.h"
|
||||
#include "bli_type_defs.h"
|
||||
|
||||
@@ -116,7 +116,7 @@ uint32_t bli_cpuid_query( uint32_t* family, uint32_t* model, uint32_t* features
|
||||
|
||||
*/
|
||||
|
||||
static bool_t bli_cpuid_has_features( uint32_t have, uint32_t want )
|
||||
BLIS_INLINE bool_t bli_cpuid_has_features( uint32_t have, uint32_t want )
|
||||
{
|
||||
return ( have & want ) == want;
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
// func_t query
|
||||
|
||||
static void_fp bli_func_get_dt
|
||||
BLIS_INLINE void_fp bli_func_get_dt
|
||||
(
|
||||
num_t dt,
|
||||
func_t* func
|
||||
@@ -47,7 +47,7 @@ static void_fp bli_func_get_dt
|
||||
|
||||
// func_t modification
|
||||
|
||||
static void bli_func_set_dt
|
||||
BLIS_INLINE void bli_func_set_dt
|
||||
(
|
||||
void_fp fp,
|
||||
num_t dt,
|
||||
@@ -57,7 +57,7 @@ static void bli_func_set_dt
|
||||
func->ptr[ dt ] = fp;
|
||||
}
|
||||
|
||||
static void bli_func_copy_dt
|
||||
BLIS_INLINE void bli_func_copy_dt
|
||||
(
|
||||
num_t dt_src, func_t* func_src,
|
||||
num_t dt_dst, func_t* func_dst
|
||||
|
||||
@@ -36,14 +36,14 @@
|
||||
|
||||
// mbool_t query
|
||||
|
||||
static bool_t bli_mbool_get_dt( num_t dt, mbool_t* mb )
|
||||
BLIS_INLINE bool_t bli_mbool_get_dt( num_t dt, mbool_t* mb )
|
||||
{
|
||||
return mb->v[ dt ];
|
||||
}
|
||||
|
||||
// mbool_t modification
|
||||
|
||||
static void bli_mbool_set_dt( bool_t val, num_t dt, mbool_t* mb )
|
||||
BLIS_INLINE void bli_mbool_set_dt( bool_t val, num_t dt, mbool_t* mb )
|
||||
{
|
||||
mb->v[ dt ] = val;
|
||||
}
|
||||
|
||||
@@ -61,38 +61,38 @@ typedef struct
|
||||
// -- mem_t query --------------------------------------------------------------
|
||||
//
|
||||
|
||||
static pblk_t* bli_mem_pblk( mem_t* mem )
|
||||
BLIS_INLINE pblk_t* bli_mem_pblk( mem_t* mem )
|
||||
{
|
||||
return &(mem->pblk);
|
||||
}
|
||||
|
||||
static void* bli_mem_buffer( mem_t* mem )
|
||||
BLIS_INLINE void* bli_mem_buffer( mem_t* mem )
|
||||
{
|
||||
return bli_pblk_buf( bli_mem_pblk( mem ) );
|
||||
}
|
||||
|
||||
static packbuf_t bli_mem_buf_type( mem_t* mem )
|
||||
BLIS_INLINE packbuf_t bli_mem_buf_type( mem_t* mem )
|
||||
{
|
||||
return mem->buf_type;
|
||||
}
|
||||
|
||||
static pool_t* bli_mem_pool( mem_t* mem )
|
||||
BLIS_INLINE pool_t* bli_mem_pool( mem_t* mem )
|
||||
{
|
||||
return mem->pool;
|
||||
}
|
||||
|
||||
static siz_t bli_mem_size( mem_t* mem )
|
||||
BLIS_INLINE siz_t bli_mem_size( mem_t* mem )
|
||||
{
|
||||
return mem->size;
|
||||
}
|
||||
|
||||
static bool_t bli_mem_is_alloc( mem_t* mem )
|
||||
BLIS_INLINE bool_t bli_mem_is_alloc( mem_t* mem )
|
||||
{
|
||||
return ( bool_t )
|
||||
( bli_mem_buffer( mem ) != NULL );
|
||||
}
|
||||
|
||||
static bool_t bli_mem_is_unalloc( mem_t* mem )
|
||||
BLIS_INLINE bool_t bli_mem_is_unalloc( mem_t* mem )
|
||||
{
|
||||
return ( bool_t )
|
||||
( bli_mem_buffer( mem ) == NULL );
|
||||
@@ -103,27 +103,27 @@ static bool_t bli_mem_is_unalloc( mem_t* mem )
|
||||
// -- mem_t modification -------------------------------------------------------
|
||||
//
|
||||
|
||||
static void bli_mem_set_pblk( pblk_t* pblk, mem_t* mem )
|
||||
BLIS_INLINE void bli_mem_set_pblk( pblk_t* pblk, mem_t* mem )
|
||||
{
|
||||
mem->pblk = *pblk;
|
||||
}
|
||||
|
||||
static void bli_mem_set_buffer( void* buf, mem_t* mem )
|
||||
BLIS_INLINE void bli_mem_set_buffer( void* buf, mem_t* mem )
|
||||
{
|
||||
bli_pblk_set_buf( buf, &(mem->pblk) );
|
||||
}
|
||||
|
||||
static void bli_mem_set_buf_type( packbuf_t buf_type, mem_t* mem )
|
||||
BLIS_INLINE void bli_mem_set_buf_type( packbuf_t buf_type, mem_t* mem )
|
||||
{
|
||||
mem->buf_type = buf_type;
|
||||
}
|
||||
|
||||
static void bli_mem_set_pool( pool_t* pool, mem_t* mem )
|
||||
BLIS_INLINE void bli_mem_set_pool( pool_t* pool, mem_t* mem )
|
||||
{
|
||||
mem->pool = pool;
|
||||
}
|
||||
|
||||
static void bli_mem_set_size( siz_t size, mem_t* mem )
|
||||
BLIS_INLINE void bli_mem_set_size( siz_t size, mem_t* mem )
|
||||
{
|
||||
mem->size = size;
|
||||
}
|
||||
@@ -144,7 +144,7 @@ static void bli_mem_set_size( siz_t size, mem_t* mem )
|
||||
.size = 0, \
|
||||
} \
|
||||
|
||||
static void bli_mem_clear( mem_t* mem )
|
||||
BLIS_INLINE void bli_mem_clear( mem_t* mem )
|
||||
{
|
||||
bli_mem_set_buffer( NULL, mem );
|
||||
bli_mem_set_buf_type( ( packbuf_t )-1, mem );
|
||||
|
||||
@@ -39,63 +39,63 @@
|
||||
|
||||
// membrk init
|
||||
|
||||
static void bli_membrk_init_mutex( membrk_t* membrk )
|
||||
BLIS_INLINE void bli_membrk_init_mutex( membrk_t* membrk )
|
||||
{
|
||||
bli_pthread_mutex_init( &(membrk->mutex), NULL );
|
||||
}
|
||||
|
||||
static void bli_membrk_finalize_mutex( membrk_t* membrk )
|
||||
BLIS_INLINE void bli_membrk_finalize_mutex( membrk_t* membrk )
|
||||
{
|
||||
bli_pthread_mutex_destroy( &(membrk->mutex) );
|
||||
}
|
||||
|
||||
// membrk query
|
||||
|
||||
static pool_t* bli_membrk_pool( dim_t pool_index, membrk_t* membrk )
|
||||
BLIS_INLINE pool_t* bli_membrk_pool( dim_t pool_index, membrk_t* membrk )
|
||||
{
|
||||
return &(membrk->pools[ pool_index ]);
|
||||
}
|
||||
|
||||
static siz_t bli_membrk_align_size( membrk_t* membrk )
|
||||
BLIS_INLINE siz_t bli_membrk_align_size( membrk_t* membrk )
|
||||
{
|
||||
return membrk->align_size;
|
||||
}
|
||||
|
||||
static malloc_ft bli_membrk_malloc_fp( membrk_t* membrk )
|
||||
BLIS_INLINE malloc_ft bli_membrk_malloc_fp( membrk_t* membrk )
|
||||
{
|
||||
return membrk->malloc_fp;
|
||||
}
|
||||
|
||||
static free_ft bli_membrk_free_fp( membrk_t* membrk )
|
||||
BLIS_INLINE free_ft bli_membrk_free_fp( membrk_t* membrk )
|
||||
{
|
||||
return membrk->free_fp;
|
||||
}
|
||||
|
||||
// membrk modification
|
||||
|
||||
static void bli_membrk_set_align_size( siz_t align_size, membrk_t* membrk )
|
||||
BLIS_INLINE void bli_membrk_set_align_size( siz_t align_size, membrk_t* membrk )
|
||||
{
|
||||
membrk->align_size = align_size;
|
||||
}
|
||||
|
||||
static void bli_membrk_set_malloc_fp( malloc_ft malloc_fp, membrk_t* membrk )
|
||||
BLIS_INLINE void bli_membrk_set_malloc_fp( malloc_ft malloc_fp, membrk_t* membrk )
|
||||
{
|
||||
membrk->malloc_fp = malloc_fp;
|
||||
}
|
||||
|
||||
static void bli_membrk_set_free_fp( free_ft free_fp, membrk_t* membrk )
|
||||
BLIS_INLINE void bli_membrk_set_free_fp( free_ft free_fp, membrk_t* membrk )
|
||||
{
|
||||
membrk->free_fp = free_fp;
|
||||
}
|
||||
|
||||
// membrk action
|
||||
|
||||
static void bli_membrk_lock( membrk_t* membrk )
|
||||
BLIS_INLINE void bli_membrk_lock( membrk_t* membrk )
|
||||
{
|
||||
bli_pthread_mutex_lock( &(membrk->mutex) );
|
||||
}
|
||||
|
||||
static void bli_membrk_unlock( membrk_t* membrk )
|
||||
BLIS_INLINE void bli_membrk_unlock( membrk_t* membrk )
|
||||
{
|
||||
bli_pthread_mutex_unlock( &(membrk->mutex) );
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
*/
|
||||
|
||||
static bool_t bli_opid_is_level3( opid_t opid )
|
||||
BLIS_INLINE bool_t bli_opid_is_level3( opid_t opid )
|
||||
{
|
||||
return ( bool_t )
|
||||
( BLIS_GEMM <= opid && opid <= BLIS_TRSM );
|
||||
|
||||
@@ -48,7 +48,7 @@ BLIS_EXPORT_BLIS void bli_param_map_blis_to_netlib_machval( machval_t machval, c
|
||||
// NOTE: These static functions were converted from regular functions in order
|
||||
// to reduce function call overhead within the BLAS compatibility layer.
|
||||
|
||||
static void bli_param_map_netlib_to_blis_side( char side, side_t* blis_side )
|
||||
BLIS_INLINE void bli_param_map_netlib_to_blis_side( char side, side_t* blis_side )
|
||||
{
|
||||
if ( side == 'l' || side == 'L' ) *blis_side = BLIS_LEFT;
|
||||
else if ( side == 'r' || side == 'R' ) *blis_side = BLIS_RIGHT;
|
||||
@@ -67,7 +67,7 @@ static void bli_param_map_netlib_to_blis_side( char side, side_t* blis_side )
|
||||
}
|
||||
}
|
||||
|
||||
static void bli_param_map_netlib_to_blis_uplo( char uplo, uplo_t* blis_uplo )
|
||||
BLIS_INLINE void bli_param_map_netlib_to_blis_uplo( char uplo, uplo_t* blis_uplo )
|
||||
{
|
||||
if ( uplo == 'l' || uplo == 'L' ) *blis_uplo = BLIS_LOWER;
|
||||
else if ( uplo == 'u' || uplo == 'U' ) *blis_uplo = BLIS_UPPER;
|
||||
@@ -79,7 +79,7 @@ static void bli_param_map_netlib_to_blis_uplo( char uplo, uplo_t* blis_uplo )
|
||||
}
|
||||
}
|
||||
|
||||
static void bli_param_map_netlib_to_blis_trans( char trans, trans_t* blis_trans )
|
||||
BLIS_INLINE void bli_param_map_netlib_to_blis_trans( char trans, trans_t* blis_trans )
|
||||
{
|
||||
if ( trans == 'n' || trans == 'N' ) *blis_trans = BLIS_NO_TRANSPOSE;
|
||||
else if ( trans == 't' || trans == 'T' ) *blis_trans = BLIS_TRANSPOSE;
|
||||
@@ -92,7 +92,7 @@ static void bli_param_map_netlib_to_blis_trans( char trans, trans_t* blis_trans
|
||||
}
|
||||
}
|
||||
|
||||
static void bli_param_map_netlib_to_blis_diag( char diag, diag_t* blis_diag )
|
||||
BLIS_INLINE void bli_param_map_netlib_to_blis_diag( char diag, diag_t* blis_diag )
|
||||
{
|
||||
if ( diag == 'n' || diag == 'N' ) *blis_diag = BLIS_NONUNIT_DIAG;
|
||||
else if ( diag == 'u' || diag == 'U' ) *blis_diag = BLIS_UNIT_DIAG;
|
||||
|
||||
@@ -70,24 +70,24 @@ typedef struct
|
||||
|
||||
// Pool block query
|
||||
|
||||
static void* bli_pblk_buf( pblk_t* pblk )
|
||||
BLIS_INLINE void* bli_pblk_buf( pblk_t* pblk )
|
||||
{
|
||||
return pblk->buf;
|
||||
}
|
||||
|
||||
static siz_t bli_pblk_block_size( pblk_t* pblk )
|
||||
BLIS_INLINE siz_t bli_pblk_block_size( pblk_t* pblk )
|
||||
{
|
||||
return pblk->block_size;
|
||||
}
|
||||
|
||||
// Pool block modification
|
||||
|
||||
static void bli_pblk_set_buf( void* buf, pblk_t* pblk )
|
||||
BLIS_INLINE void bli_pblk_set_buf( void* buf, pblk_t* pblk )
|
||||
{
|
||||
pblk->buf = buf;
|
||||
}
|
||||
|
||||
static void bli_pblk_set_block_size( siz_t block_size, pblk_t* pblk )
|
||||
BLIS_INLINE void bli_pblk_set_block_size( siz_t block_size, pblk_t* pblk )
|
||||
{
|
||||
pblk->block_size = block_size;
|
||||
}
|
||||
@@ -106,7 +106,7 @@ static void bli_pblk_set_block_size( siz_t block_size, pblk_t* pblk )
|
||||
.block_size = 0, \
|
||||
} \
|
||||
|
||||
static void bli_pblk_clear( pblk_t* pblk )
|
||||
BLIS_INLINE void bli_pblk_clear( pblk_t* pblk )
|
||||
{
|
||||
bli_pblk_set_buf( NULL, pblk );
|
||||
bli_pblk_set_block_size( 0, pblk );
|
||||
@@ -115,52 +115,52 @@ static void bli_pblk_clear( pblk_t* pblk )
|
||||
|
||||
// Pool entry query
|
||||
|
||||
static void* bli_pool_block_ptrs( pool_t* pool )
|
||||
BLIS_INLINE void* bli_pool_block_ptrs( pool_t* pool )
|
||||
{
|
||||
return pool->block_ptrs;
|
||||
}
|
||||
|
||||
static siz_t bli_pool_block_ptrs_len( pool_t* pool )
|
||||
BLIS_INLINE siz_t bli_pool_block_ptrs_len( pool_t* pool )
|
||||
{
|
||||
return pool->block_ptrs_len;
|
||||
}
|
||||
|
||||
static siz_t bli_pool_num_blocks( pool_t* pool )
|
||||
BLIS_INLINE siz_t bli_pool_num_blocks( pool_t* pool )
|
||||
{
|
||||
return pool->num_blocks;
|
||||
}
|
||||
|
||||
static siz_t bli_pool_block_size( pool_t* pool )
|
||||
BLIS_INLINE siz_t bli_pool_block_size( pool_t* pool )
|
||||
{
|
||||
return pool->block_size;
|
||||
}
|
||||
|
||||
static siz_t bli_pool_align_size( pool_t* pool )
|
||||
BLIS_INLINE siz_t bli_pool_align_size( pool_t* pool )
|
||||
{
|
||||
return pool->align_size;
|
||||
}
|
||||
|
||||
static siz_t bli_pool_offset_size( pool_t* pool )
|
||||
BLIS_INLINE siz_t bli_pool_offset_size( pool_t* pool )
|
||||
{
|
||||
return pool->offset_size;
|
||||
}
|
||||
|
||||
static malloc_ft bli_pool_malloc_fp( pool_t* pool )
|
||||
BLIS_INLINE malloc_ft bli_pool_malloc_fp( pool_t* pool )
|
||||
{
|
||||
return pool->malloc_fp;
|
||||
}
|
||||
|
||||
static free_ft bli_pool_free_fp( pool_t* pool )
|
||||
BLIS_INLINE free_ft bli_pool_free_fp( pool_t* pool )
|
||||
{
|
||||
return pool->free_fp;
|
||||
}
|
||||
|
||||
static siz_t bli_pool_top_index( pool_t* pool )
|
||||
BLIS_INLINE siz_t bli_pool_top_index( pool_t* pool )
|
||||
{
|
||||
return pool->top_index;
|
||||
}
|
||||
|
||||
static bool_t bli_pool_is_exhausted( pool_t* pool )
|
||||
BLIS_INLINE bool_t bli_pool_is_exhausted( pool_t* pool )
|
||||
{
|
||||
return ( bool_t )
|
||||
( bli_pool_top_index( pool ) == bli_pool_num_blocks( pool ) );
|
||||
@@ -168,47 +168,47 @@ static bool_t bli_pool_is_exhausted( pool_t* pool )
|
||||
|
||||
// Pool entry modification
|
||||
|
||||
static void bli_pool_set_block_ptrs( void* block_ptrs, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_block_ptrs( void* block_ptrs, pool_t* pool ) \
|
||||
{
|
||||
pool->block_ptrs = block_ptrs;
|
||||
}
|
||||
|
||||
static void bli_pool_set_block_ptrs_len( siz_t block_ptrs_len, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_block_ptrs_len( siz_t block_ptrs_len, pool_t* pool ) \
|
||||
{
|
||||
pool->block_ptrs_len = block_ptrs_len;
|
||||
}
|
||||
|
||||
static void bli_pool_set_num_blocks( siz_t num_blocks, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_num_blocks( siz_t num_blocks, pool_t* pool ) \
|
||||
{
|
||||
pool->num_blocks = num_blocks;
|
||||
}
|
||||
|
||||
static void bli_pool_set_block_size( siz_t block_size, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_block_size( siz_t block_size, pool_t* pool ) \
|
||||
{
|
||||
pool->block_size = block_size;
|
||||
}
|
||||
|
||||
static void bli_pool_set_align_size( siz_t align_size, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_align_size( siz_t align_size, pool_t* pool ) \
|
||||
{
|
||||
pool->align_size = align_size;
|
||||
}
|
||||
|
||||
static void bli_pool_set_offset_size( siz_t offset_size, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_offset_size( siz_t offset_size, pool_t* pool ) \
|
||||
{
|
||||
pool->offset_size = offset_size;
|
||||
}
|
||||
|
||||
static void bli_pool_set_malloc_fp( malloc_ft malloc_fp, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_malloc_fp( malloc_ft malloc_fp, pool_t* pool ) \
|
||||
{
|
||||
pool->malloc_fp = malloc_fp;
|
||||
}
|
||||
|
||||
static void bli_pool_set_free_fp( free_ft free_fp, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_free_fp( free_ft free_fp, pool_t* pool ) \
|
||||
{
|
||||
pool->free_fp = free_fp;
|
||||
}
|
||||
|
||||
static void bli_pool_set_top_index( siz_t top_index, pool_t* pool ) \
|
||||
BLIS_INLINE void bli_pool_set_top_index( siz_t top_index, pool_t* pool ) \
|
||||
{
|
||||
pool->top_index = top_index;
|
||||
}
|
||||
|
||||
@@ -61,56 +61,56 @@ typedef struct rntm_s
|
||||
// -- rntm_t query (public API) ------------------------------------------------
|
||||
//
|
||||
|
||||
static bool_t bli_rntm_auto_factor( rntm_t* rntm )
|
||||
BLIS_INLINE bool_t bli_rntm_auto_factor( rntm_t* rntm )
|
||||
{
|
||||
return rntm->auto_factor;
|
||||
}
|
||||
|
||||
static dim_t bli_rntm_num_threads( rntm_t* rntm )
|
||||
BLIS_INLINE dim_t bli_rntm_num_threads( rntm_t* rntm )
|
||||
{
|
||||
return rntm->num_threads;
|
||||
}
|
||||
|
||||
static dim_t bli_rntm_ways_for( bszid_t bszid, rntm_t* rntm )
|
||||
BLIS_INLINE dim_t bli_rntm_ways_for( bszid_t bszid, rntm_t* rntm )
|
||||
{
|
||||
return rntm->thrloop[ bszid ];
|
||||
}
|
||||
|
||||
static dim_t bli_rntm_jc_ways( rntm_t* rntm )
|
||||
BLIS_INLINE dim_t bli_rntm_jc_ways( rntm_t* rntm )
|
||||
{
|
||||
return bli_rntm_ways_for( BLIS_NC, rntm );
|
||||
}
|
||||
static dim_t bli_rntm_pc_ways( rntm_t* rntm )
|
||||
BLIS_INLINE dim_t bli_rntm_pc_ways( rntm_t* rntm )
|
||||
{
|
||||
return bli_rntm_ways_for( BLIS_KC, rntm );
|
||||
}
|
||||
static dim_t bli_rntm_ic_ways( rntm_t* rntm )
|
||||
BLIS_INLINE dim_t bli_rntm_ic_ways( rntm_t* rntm )
|
||||
{
|
||||
return bli_rntm_ways_for( BLIS_MC, rntm );
|
||||
}
|
||||
static dim_t bli_rntm_jr_ways( rntm_t* rntm )
|
||||
BLIS_INLINE dim_t bli_rntm_jr_ways( rntm_t* rntm )
|
||||
{
|
||||
return bli_rntm_ways_for( BLIS_NR, rntm );
|
||||
}
|
||||
static dim_t bli_rntm_ir_ways( rntm_t* rntm )
|
||||
BLIS_INLINE dim_t bli_rntm_ir_ways( rntm_t* rntm )
|
||||
{
|
||||
return bli_rntm_ways_for( BLIS_MR, rntm );
|
||||
}
|
||||
static dim_t bli_rntm_pr_ways( rntm_t* rntm )
|
||||
BLIS_INLINE dim_t bli_rntm_pr_ways( rntm_t* rntm )
|
||||
{
|
||||
return bli_rntm_ways_for( BLIS_KR, rntm );
|
||||
}
|
||||
|
||||
static bool_t bli_rntm_pack_a( rntm_t* rntm )
|
||||
BLIS_INLINE bool_t bli_rntm_pack_a( rntm_t* rntm )
|
||||
{
|
||||
return rntm->pack_a;
|
||||
}
|
||||
static bool_t bli_rntm_pack_b( rntm_t* rntm )
|
||||
BLIS_INLINE bool_t bli_rntm_pack_b( rntm_t* rntm )
|
||||
{
|
||||
return rntm->pack_b;
|
||||
}
|
||||
|
||||
static bool_t bli_rntm_l3_sup( rntm_t* rntm )
|
||||
BLIS_INLINE bool_t bli_rntm_l3_sup( rntm_t* rntm )
|
||||
{
|
||||
return rntm->l3_sup;
|
||||
}
|
||||
@@ -119,18 +119,18 @@ static bool_t bli_rntm_l3_sup( rntm_t* rntm )
|
||||
// -- rntm_t query (internal use only) -----------------------------------------
|
||||
//
|
||||
|
||||
static pool_t* bli_rntm_sba_pool( rntm_t* rntm )
|
||||
BLIS_INLINE pool_t* bli_rntm_sba_pool( rntm_t* rntm )
|
||||
{
|
||||
return rntm->sba_pool;
|
||||
}
|
||||
|
||||
static membrk_t* bli_rntm_membrk( rntm_t* rntm )
|
||||
BLIS_INLINE membrk_t* bli_rntm_membrk( rntm_t* rntm )
|
||||
{
|
||||
return rntm->membrk;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static dim_t bli_rntm_equals( rntm_t* rntm1, rntm_t* rntm2 )
|
||||
BLIS_INLINE dim_t bli_rntm_equals( rntm_t* rntm1, rntm_t* rntm2 )
|
||||
{
|
||||
const bool_t nt = bli_rntm_num_threads( rntm1 ) == bli_rntm_num_threads( rntm2 );
|
||||
const bool_t jc = bli_rntm_jc_ways( rntm1 ) == bli_rntm_jc_ways( rntm2 );
|
||||
@@ -149,47 +149,47 @@ static dim_t bli_rntm_equals( rntm_t* rntm1, rntm_t* rntm2 )
|
||||
// -- rntm_t modification (internal use only) ----------------------------------
|
||||
//
|
||||
|
||||
static void bli_rntm_set_auto_factor_only( bool_t auto_factor, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_auto_factor_only( bool_t auto_factor, rntm_t* rntm )
|
||||
{
|
||||
rntm->auto_factor = auto_factor;
|
||||
}
|
||||
|
||||
static void bli_rntm_set_num_threads_only( dim_t nt, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_num_threads_only( dim_t nt, rntm_t* rntm )
|
||||
{
|
||||
rntm->num_threads = nt;
|
||||
}
|
||||
|
||||
static void bli_rntm_set_ways_for_only( bszid_t loop, dim_t n_ways, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_ways_for_only( bszid_t loop, dim_t n_ways, rntm_t* rntm )
|
||||
{
|
||||
rntm->thrloop[ loop ] = n_ways;
|
||||
}
|
||||
|
||||
static void bli_rntm_set_jc_ways_only( dim_t ways, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_jc_ways_only( dim_t ways, rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_ways_for_only( BLIS_NC, ways, rntm );
|
||||
}
|
||||
static void bli_rntm_set_pc_ways_only( dim_t ways, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_pc_ways_only( dim_t ways, rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_ways_for_only( BLIS_KC, ways, rntm );
|
||||
}
|
||||
static void bli_rntm_set_ic_ways_only( dim_t ways, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_ic_ways_only( dim_t ways, rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_ways_for_only( BLIS_MC, ways, rntm );
|
||||
}
|
||||
static void bli_rntm_set_jr_ways_only( dim_t ways, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_jr_ways_only( dim_t ways, rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_ways_for_only( BLIS_NR, ways, rntm );
|
||||
}
|
||||
static void bli_rntm_set_ir_ways_only( dim_t ways, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_ir_ways_only( dim_t ways, rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_ways_for_only( BLIS_MR, ways, rntm );
|
||||
}
|
||||
static void bli_rntm_set_pr_ways_only( dim_t ways, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_pr_ways_only( dim_t ways, rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_ways_for_only( BLIS_KR, ways, rntm );
|
||||
}
|
||||
|
||||
static void bli_rntm_set_ways_only( dim_t jc, dim_t pc, dim_t ic, dim_t jr, dim_t ir, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_ways_only( dim_t jc, dim_t pc, dim_t ic, dim_t jr, dim_t ir, rntm_t* rntm )
|
||||
{
|
||||
// Record the number of ways of parallelism per loop.
|
||||
bli_rntm_set_jc_ways_only( jc, rntm );
|
||||
@@ -200,29 +200,29 @@ static void bli_rntm_set_ways_only( dim_t jc, dim_t pc, dim_t ic, dim_t jr, dim_
|
||||
bli_rntm_set_pr_ways_only( 1, rntm );
|
||||
}
|
||||
|
||||
static void bli_rntm_set_sba_pool( pool_t* sba_pool, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_sba_pool( pool_t* sba_pool, rntm_t* rntm )
|
||||
{
|
||||
rntm->sba_pool = sba_pool;
|
||||
}
|
||||
|
||||
static void bli_rntm_set_membrk( membrk_t* membrk, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_membrk( membrk_t* membrk, rntm_t* rntm )
|
||||
{
|
||||
rntm->membrk = membrk;
|
||||
}
|
||||
|
||||
static void bli_rntm_clear_num_threads_only( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_clear_num_threads_only( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_num_threads_only( -1, rntm );
|
||||
}
|
||||
static void bli_rntm_clear_ways_only( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_clear_ways_only( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_ways_only( -1, -1, -1, -1, -1, rntm );
|
||||
}
|
||||
static void bli_rntm_clear_sba_pool( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_clear_sba_pool( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_sba_pool( NULL, rntm );
|
||||
}
|
||||
static void bli_rntm_clear_membrk( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_clear_membrk( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_membrk( NULL, rntm );
|
||||
}
|
||||
@@ -231,7 +231,7 @@ static void bli_rntm_clear_membrk( rntm_t* rntm )
|
||||
// -- rntm_t modification (public API) -----------------------------------------
|
||||
//
|
||||
|
||||
static void bli_rntm_set_num_threads( dim_t nt, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_num_threads( dim_t nt, rntm_t* rntm )
|
||||
{
|
||||
// Record the total number of threads to use.
|
||||
bli_rntm_set_num_threads_only( nt, rntm );
|
||||
@@ -240,7 +240,7 @@ static void bli_rntm_set_num_threads( dim_t nt, rntm_t* rntm )
|
||||
bli_rntm_clear_ways_only( rntm );
|
||||
}
|
||||
|
||||
static void bli_rntm_set_ways( dim_t jc, dim_t pc, dim_t ic, dim_t jr, dim_t ir, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_ways( dim_t jc, dim_t pc, dim_t ic, dim_t jr, dim_t ir, rntm_t* rntm )
|
||||
{
|
||||
// Record the number of ways of parallelism per loop.
|
||||
bli_rntm_set_jc_ways_only( jc, rntm );
|
||||
@@ -254,27 +254,27 @@ static void bli_rntm_set_ways( dim_t jc, dim_t pc, dim_t ic, dim_t jr, dim_t ir,
|
||||
bli_rntm_clear_num_threads_only( rntm );
|
||||
}
|
||||
|
||||
static void bli_rntm_set_pack_a( bool_t pack_a, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_pack_a( bool_t pack_a, rntm_t* rntm )
|
||||
{
|
||||
// Set the bool_t indicating whether matrix A should be packed.
|
||||
rntm->pack_a = pack_a;
|
||||
}
|
||||
static void bli_rntm_set_pack_b( bool_t pack_b, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_pack_b( bool_t pack_b, rntm_t* rntm )
|
||||
{
|
||||
// Set the bool_t indicating whether matrix B should be packed.
|
||||
rntm->pack_b = pack_b;
|
||||
}
|
||||
|
||||
static void bli_rntm_set_l3_sup( bool_t l3_sup, rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_set_l3_sup( bool_t l3_sup, rntm_t* rntm )
|
||||
{
|
||||
// Set the bool_t indicating whether level-3 sup handling is enabled.
|
||||
rntm->l3_sup = l3_sup;
|
||||
}
|
||||
static void bli_rntm_enable_l3_sup( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_enable_l3_sup( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_l3_sup( TRUE, rntm );
|
||||
}
|
||||
static void bli_rntm_disable_l3_sup( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_disable_l3_sup( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_l3_sup( FALSE, rntm );
|
||||
}
|
||||
@@ -283,15 +283,15 @@ static void bli_rntm_disable_l3_sup( rntm_t* rntm )
|
||||
// -- rntm_t modification (internal use only) ----------------------------------
|
||||
//
|
||||
|
||||
static void bli_rntm_clear_pack_a( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_clear_pack_a( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_pack_a( FALSE, rntm );
|
||||
}
|
||||
static void bli_rntm_clear_pack_b( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_clear_pack_b( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_pack_b( FALSE, rntm );
|
||||
}
|
||||
static void bli_rntm_clear_l3_sup( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_clear_l3_sup( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_l3_sup( TRUE, rntm );
|
||||
}
|
||||
@@ -316,7 +316,7 @@ static void bli_rntm_clear_l3_sup( rntm_t* rntm )
|
||||
.membrk = NULL, \
|
||||
} \
|
||||
|
||||
static void bli_rntm_init( rntm_t* rntm )
|
||||
BLIS_INLINE void bli_rntm_init( rntm_t* rntm )
|
||||
{
|
||||
bli_rntm_set_auto_factor_only( TRUE, rntm );
|
||||
|
||||
@@ -332,7 +332,7 @@ static void bli_rntm_init( rntm_t* rntm )
|
||||
|
||||
// -- rntm_t total thread calculation ------------------------------------------
|
||||
|
||||
static dim_t bli_rntm_calc_num_threads
|
||||
BLIS_INLINE dim_t bli_rntm_calc_num_threads
|
||||
(
|
||||
rntm_t* restrict rntm
|
||||
)
|
||||
|
||||
@@ -225,5 +225,20 @@
|
||||
#define BLIS_EXPORT_BLAS BLIS_EXPORT
|
||||
|
||||
|
||||
// -- STATIC INLINE FUNCTIONS --------------------------------------------------
|
||||
|
||||
// C and C++ have different semantics for defining "inline" functions. In C,
|
||||
// the keyword phrase "static inline" accomplishes this, though the "inline"
|
||||
// is optional. In C++, the "inline" keyword is required and obviates "static"
|
||||
// altogether. Why does this matter? While BLIS is compiled in C99, blis.h may
|
||||
// be #included by a source file that is compiled with C++.
|
||||
#ifdef __cplusplus
|
||||
#define BLIS_INLINE inline
|
||||
#else
|
||||
//#define BLIS_INLINE static inline
|
||||
#define BLIS_INLINE static
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -67,14 +67,14 @@
|
||||
|
||||
// round
|
||||
|
||||
static double bli_round( double a )
|
||||
BLIS_INLINE double bli_round( double a )
|
||||
{
|
||||
return round( a );
|
||||
}
|
||||
|
||||
// round_to_mult
|
||||
|
||||
static guint_t bli_round_to_mult( guint_t val, guint_t mult )
|
||||
BLIS_INLINE guint_t bli_round_to_mult( guint_t val, guint_t mult )
|
||||
{
|
||||
return ( guint_t )
|
||||
( ( ( ( guint_t )val +
|
||||
@@ -94,19 +94,19 @@ static guint_t bli_round_to_mult( guint_t val, guint_t mult )
|
||||
|
||||
// is_odd, is_even
|
||||
|
||||
static bool_t bli_is_odd( gint_t a )
|
||||
BLIS_INLINE bool_t bli_is_odd( gint_t a )
|
||||
{
|
||||
return ( a % 2 == 1 );
|
||||
}
|
||||
|
||||
static bool_t bli_is_even( gint_t a )
|
||||
BLIS_INLINE bool_t bli_is_even( gint_t a )
|
||||
{
|
||||
return ( a % 2 == 0 );
|
||||
}
|
||||
|
||||
// swap_dims
|
||||
|
||||
static void bli_swap_dims( dim_t* dim1, dim_t* dim2 )
|
||||
BLIS_INLINE void bli_swap_dims( dim_t* dim1, dim_t* dim2 )
|
||||
{
|
||||
dim_t temp = *dim1;
|
||||
*dim1 = *dim2;
|
||||
@@ -115,7 +115,7 @@ static void bli_swap_dims( dim_t* dim1, dim_t* dim2 )
|
||||
|
||||
// swap_incs
|
||||
|
||||
static void bli_swap_incs( inc_t* inc1, inc_t* inc2 )
|
||||
BLIS_INLINE void bli_swap_incs( inc_t* inc1, inc_t* inc2 )
|
||||
{
|
||||
inc_t temp = *inc1;
|
||||
*inc1 = *inc2;
|
||||
@@ -124,7 +124,7 @@ static void bli_swap_incs( inc_t* inc1, inc_t* inc2 )
|
||||
|
||||
// toggle_bool
|
||||
|
||||
static void bli_toggle_bool( bool_t* b )
|
||||
BLIS_INLINE void bli_toggle_bool( bool_t* b )
|
||||
{
|
||||
if ( *b == TRUE ) *b = FALSE;
|
||||
else *b = TRUE;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1316,7 +1316,7 @@ typedef struct obj_s
|
||||
// Define these macros here since they must be updated if contents of
|
||||
// obj_t changes.
|
||||
|
||||
static void bli_obj_init_full_shallow_copy_of( obj_t* a, obj_t* b )
|
||||
BLIS_INLINE void bli_obj_init_full_shallow_copy_of( obj_t* a, obj_t* b )
|
||||
{
|
||||
b->root = a->root;
|
||||
|
||||
@@ -1346,7 +1346,7 @@ static void bli_obj_init_full_shallow_copy_of( obj_t* a, obj_t* b )
|
||||
b->n_panel = a->n_panel;
|
||||
}
|
||||
|
||||
static void bli_obj_init_subpart_from( obj_t* a, obj_t* b )
|
||||
BLIS_INLINE void bli_obj_init_subpart_from( obj_t* a, obj_t* b )
|
||||
{
|
||||
b->root = a->root;
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
// scal21ms_mxn
|
||||
|
||||
static void bli_cscal21ms_mxn
|
||||
BLIS_INLINE void bli_cscal21ms_mxn
|
||||
(
|
||||
const pack_t schema,
|
||||
const conj_t conjx,
|
||||
@@ -118,7 +118,7 @@ static void bli_cscal21ms_mxn
|
||||
}
|
||||
}
|
||||
|
||||
static void bli_zscal21ms_mxn
|
||||
BLIS_INLINE void bli_zscal21ms_mxn
|
||||
(
|
||||
const pack_t schema,
|
||||
const conj_t conjx,
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
components of packm. */ \
|
||||
}
|
||||
|
||||
static void bli_cset1ms_mxn
|
||||
BLIS_INLINE void bli_cset1ms_mxn
|
||||
(
|
||||
const pack_t schema,
|
||||
const dim_t offm,
|
||||
@@ -120,7 +120,7 @@ static void bli_cset1ms_mxn
|
||||
}
|
||||
}
|
||||
|
||||
static void bli_zset1ms_mxn
|
||||
BLIS_INLINE void bli_zset1ms_mxn
|
||||
(
|
||||
const pack_t schema,
|
||||
const dim_t offm,
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#undef GENTFUNC
|
||||
#define GENTFUNC( ctype, ch, opname ) \
|
||||
\
|
||||
static void PASTEMAC(ch,opname) \
|
||||
BLIS_INLINE void PASTEMAC(ch,opname) \
|
||||
( \
|
||||
const dim_t m, \
|
||||
const dim_t n, \
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#undef GENTFUNCRO
|
||||
#define GENTFUNCRO( ctype, ch, opname ) \
|
||||
\
|
||||
static void PASTEMAC(ch,opname) \
|
||||
BLIS_INLINE void PASTEMAC(ch,opname) \
|
||||
( \
|
||||
const conj_t conjx, \
|
||||
const dim_t m, \
|
||||
@@ -108,7 +108,7 @@ INSERT_GENTFUNCRO_BASIC0( scal2bbs_mxn )
|
||||
#undef GENTFUNCCO
|
||||
#define GENTFUNCCO( ctype, ctype_r, ch, chr, opname ) \
|
||||
\
|
||||
static void PASTEMAC(ch,opname) \
|
||||
BLIS_INLINE void PASTEMAC(ch,opname) \
|
||||
( \
|
||||
const conj_t conjx, \
|
||||
const dim_t m, \
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#undef GENTFUNC
|
||||
#define GENTFUNC( ctype, ch, opname ) \
|
||||
\
|
||||
static void PASTEMAC(ch,opname) \
|
||||
BLIS_INLINE void PASTEMAC(ch,opname) \
|
||||
( \
|
||||
const dim_t m, \
|
||||
const dim_t n, \
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
// xy = ?s
|
||||
|
||||
static void bli_ssadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_ssadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -71,7 +71,7 @@ static void bli_ssadds_mxn( const dim_t m, const dim_t n, float* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dsadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dsadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -98,7 +98,7 @@ static void bli_dsadds_mxn( const dim_t m, const dim_t n, double* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_csadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_csadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -125,7 +125,7 @@ static void bli_csadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zsadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zsadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -155,7 +155,7 @@ static void bli_zsadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x,
|
||||
|
||||
// xy = ?d
|
||||
|
||||
static void bli_sdadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sdadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -182,7 +182,7 @@ static void bli_sdadds_mxn( const dim_t m, const dim_t n, float* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_ddadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_ddadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -209,7 +209,7 @@ static void bli_ddadds_mxn( const dim_t m, const dim_t n, double* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_cdadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cdadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -236,7 +236,7 @@ static void bli_cdadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zdadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zdadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -266,7 +266,7 @@ static void bli_zdadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x,
|
||||
|
||||
// xy = ?c
|
||||
|
||||
static void bli_scadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_scadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -293,7 +293,7 @@ static void bli_scadds_mxn( const dim_t m, const dim_t n, float* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dcadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dcadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -320,7 +320,7 @@ static void bli_dcadds_mxn( const dim_t m, const dim_t n, double* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_ccadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_ccadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -347,7 +347,7 @@ static void bli_ccadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zcadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zcadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -377,7 +377,7 @@ static void bli_zcadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x,
|
||||
|
||||
// xy = ?z
|
||||
|
||||
static void bli_szadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_szadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -404,7 +404,7 @@ static void bli_szadds_mxn( const dim_t m, const dim_t n, float* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dzadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dzadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -431,7 +431,7 @@ static void bli_dzadds_mxn( const dim_t m, const dim_t n, double* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_czadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_czadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -458,7 +458,7 @@ static void bli_czadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zzadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zzadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -488,22 +488,22 @@ static void bli_zzadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x,
|
||||
|
||||
|
||||
|
||||
static void bli_sadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sadds_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_ssadds_mxn( m, n, x, rs_x, cs_x, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_dadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dadds_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_ddadds_mxn( m, n, x, rs_x, cs_x, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_cadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cadds_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_ccadds_mxn( m, n, x, rs_x, cs_x, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_zadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zadds_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_zzadds_mxn( m, n, x, rs_x, cs_x, y, rs_y, cs_y );
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
// xy = ?s
|
||||
|
||||
static void bli_sscopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sscopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -70,7 +70,7 @@ static void bli_sscopys_mxn( const dim_t m, const dim_t n, float* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dscopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dscopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -97,7 +97,7 @@ static void bli_dscopys_mxn( const dim_t m, const dim_t n, double* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_cscopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cscopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -124,7 +124,7 @@ static void bli_cscopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zscopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zscopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -154,7 +154,7 @@ static void bli_zscopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x,
|
||||
|
||||
// xy = ?d
|
||||
|
||||
static void bli_sdcopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sdcopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -181,7 +181,7 @@ static void bli_sdcopys_mxn( const dim_t m, const dim_t n, float* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_ddcopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_ddcopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -208,7 +208,7 @@ static void bli_ddcopys_mxn( const dim_t m, const dim_t n, double* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_cdcopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cdcopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -235,7 +235,7 @@ static void bli_cdcopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zdcopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zdcopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -265,7 +265,7 @@ static void bli_zdcopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x,
|
||||
|
||||
// xy = ?c
|
||||
|
||||
static void bli_sccopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sccopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -292,7 +292,7 @@ static void bli_sccopys_mxn( const dim_t m, const dim_t n, float* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dccopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dccopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -319,7 +319,7 @@ static void bli_dccopys_mxn( const dim_t m, const dim_t n, double* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_cccopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cccopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -346,7 +346,7 @@ static void bli_cccopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zccopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zccopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -376,7 +376,7 @@ static void bli_zccopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x,
|
||||
|
||||
// xy = ?c
|
||||
|
||||
static void bli_szcopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_szcopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -403,7 +403,7 @@ static void bli_szcopys_mxn( const dim_t m, const dim_t n, float* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dzcopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dzcopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -430,7 +430,7 @@ static void bli_dzcopys_mxn( const dim_t m, const dim_t n, double* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_czcopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_czcopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -457,7 +457,7 @@ static void bli_czcopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x,
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zzcopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zzcopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_CR_CASES
|
||||
@@ -486,22 +486,22 @@ static void bli_zzcopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x,
|
||||
}
|
||||
|
||||
|
||||
static void bli_scopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_scopys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_sscopys_mxn( m, n, x, rs_x, cs_x, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_dcopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dcopys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_ddcopys_mxn( m, n, x, rs_x, cs_x, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_ccopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_ccopys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_cccopys_mxn( m, n, x, rs_x, cs_x, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_zcopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zcopys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_zzcopys_mxn( m, n, x, rs_x, cs_x, y, rs_y, cs_y );
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#undef GENTFUNC
|
||||
#define GENTFUNC( ctype, ch, opname ) \
|
||||
\
|
||||
static void PASTEMAC(ch,opname) \
|
||||
BLIS_INLINE void PASTEMAC(ch,opname) \
|
||||
( \
|
||||
const conj_t conjx, \
|
||||
const dim_t m, \
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
// - The first char encodes the type of x.
|
||||
// - The second char encodes the type of y.
|
||||
|
||||
static void bli_sset0s_mxn( const dim_t m, const dim_t n,
|
||||
BLIS_INLINE void bli_sset0s_mxn( const dim_t m, const dim_t n,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
for ( dim_t j = 0; j < n; ++j )
|
||||
@@ -49,7 +49,7 @@ static void bli_sset0s_mxn( const dim_t m, const dim_t n,
|
||||
bli_sset0s( *(y + i*rs_y + j*cs_y) );
|
||||
}
|
||||
|
||||
static void bli_dset0s_mxn( const dim_t m, const dim_t n,
|
||||
BLIS_INLINE void bli_dset0s_mxn( const dim_t m, const dim_t n,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
for ( dim_t j = 0; j < n; ++j )
|
||||
@@ -57,7 +57,7 @@ static void bli_dset0s_mxn( const dim_t m, const dim_t n,
|
||||
bli_dset0s( *(y + i*rs_y + j*cs_y) );
|
||||
}
|
||||
|
||||
static void bli_cset0s_mxn( const dim_t m, const dim_t n,
|
||||
BLIS_INLINE void bli_cset0s_mxn( const dim_t m, const dim_t n,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
for ( dim_t j = 0; j < n; ++j )
|
||||
@@ -65,7 +65,7 @@ static void bli_cset0s_mxn( const dim_t m, const dim_t n,
|
||||
bli_cset0s( *(y + i*rs_y + j*cs_y) );
|
||||
}
|
||||
|
||||
static void bli_zset0s_mxn( const dim_t m, const dim_t n,
|
||||
BLIS_INLINE void bli_zset0s_mxn( const dim_t m, const dim_t n,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
for ( dim_t j = 0; j < n; ++j )
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
// -- (xby) = (?ss) ------------------------------------------------------------
|
||||
|
||||
static void bli_sssxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sssxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict beta,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -80,7 +80,7 @@ static void bli_sssxpbys_mxn( const dim_t m, const dim_t n, float* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dssxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dssxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict beta,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -115,7 +115,7 @@ static void bli_dssxpbys_mxn( const dim_t m, const dim_t n, double* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_cssxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cssxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict beta,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -150,7 +150,7 @@ static void bli_cssxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zssxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zssxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict beta,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -188,7 +188,7 @@ static void bli_zssxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x
|
||||
|
||||
// -- (xby) = (?dd) ------------------------------------------------------------
|
||||
|
||||
static void bli_sddxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sddxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict beta,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -223,7 +223,7 @@ static void bli_sddxpbys_mxn( const dim_t m, const dim_t n, float* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dddxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dddxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict beta,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -258,7 +258,7 @@ static void bli_dddxpbys_mxn( const dim_t m, const dim_t n, double* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_cddxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cddxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict beta,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -293,7 +293,7 @@ static void bli_cddxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zddxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zddxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict beta,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -331,7 +331,7 @@ static void bli_zddxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x
|
||||
|
||||
// -- (xby) = (?cc) ------------------------------------------------------------
|
||||
|
||||
static void bli_sccxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sccxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict beta,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -366,7 +366,7 @@ static void bli_sccxpbys_mxn( const dim_t m, const dim_t n, float* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dccxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dccxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict beta,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -401,7 +401,7 @@ static void bli_dccxpbys_mxn( const dim_t m, const dim_t n, double* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_cccxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cccxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict beta,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -436,7 +436,7 @@ static void bli_cccxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zccxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zccxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict beta,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -474,7 +474,7 @@ static void bli_zccxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x
|
||||
|
||||
// -- (xby) = (?zz) ------------------------------------------------------------
|
||||
|
||||
static void bli_szzxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_szzxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict beta,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -509,7 +509,7 @@ static void bli_szzxpbys_mxn( const dim_t m, const dim_t n, float* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_dzzxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dzzxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict beta,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -544,7 +544,7 @@ static void bli_dzzxpbys_mxn( const dim_t m, const dim_t n, double* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_czzxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_czzxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict beta,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -579,7 +579,7 @@ static void bli_czzxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x
|
||||
*(y + ii*rs_y + jj*cs_y) );
|
||||
}
|
||||
}
|
||||
static void bli_zzzxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zzzxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict beta,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
@@ -617,25 +617,25 @@ static void bli_zzzxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x
|
||||
|
||||
|
||||
|
||||
static void bli_sxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_sxpbys_mxn( const dim_t m, const dim_t n, float* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
float* restrict beta,
|
||||
float* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_sssxpbys_mxn( m, n, x, rs_x, cs_x, beta, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_dxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_dxpbys_mxn( const dim_t m, const dim_t n, double* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
double* restrict beta,
|
||||
double* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_dddxpbys_mxn( m, n, x, rs_x, cs_x, beta, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_cxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_cxpbys_mxn( const dim_t m, const dim_t n, scomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
scomplex* restrict beta,
|
||||
scomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
bli_cccxpbys_mxn( m, n, x, rs_x, cs_x, beta, y, rs_y, cs_y );
|
||||
}
|
||||
static void bli_zxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
BLIS_INLINE void bli_zxpbys_mxn( const dim_t m, const dim_t n, dcomplex* restrict x, const inc_t rs_x, const inc_t cs_x,
|
||||
dcomplex* restrict beta,
|
||||
dcomplex* restrict y, const inc_t rs_y, const inc_t cs_y )
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
// scal2ris_mxn
|
||||
|
||||
static void bli_cscal2ris_mxn
|
||||
BLIS_INLINE void bli_cscal2ris_mxn
|
||||
(
|
||||
const conj_t conjx,
|
||||
const dim_t m,
|
||||
@@ -103,7 +103,7 @@ static void bli_cscal2ris_mxn
|
||||
}
|
||||
}
|
||||
|
||||
static void bli_zscal2ris_mxn
|
||||
BLIS_INLINE void bli_zscal2ris_mxn
|
||||
(
|
||||
const conj_t conjx,
|
||||
const dim_t m,
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
// scal2ri3s_mxn
|
||||
|
||||
static void bli_cscal2ri3s_mxn
|
||||
BLIS_INLINE void bli_cscal2ri3s_mxn
|
||||
(
|
||||
const conj_t conjx,
|
||||
const dim_t m,
|
||||
@@ -108,7 +108,7 @@ static void bli_cscal2ri3s_mxn
|
||||
}
|
||||
}
|
||||
|
||||
static void bli_zscal2ri3s_mxn
|
||||
BLIS_INLINE void bli_zscal2ri3s_mxn
|
||||
(
|
||||
const conj_t conjx,
|
||||
const dim_t m,
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
// scal2rihs_mxn
|
||||
|
||||
static void bli_cscal2rihs_mxn
|
||||
BLIS_INLINE void bli_cscal2rihs_mxn
|
||||
(
|
||||
const pack_t schema,
|
||||
const conj_t conjx,
|
||||
@@ -158,7 +158,7 @@ static void bli_cscal2rihs_mxn
|
||||
}
|
||||
}
|
||||
|
||||
static void bli_zscal2rihs_mxn
|
||||
BLIS_INLINE void bli_zscal2rihs_mxn
|
||||
(
|
||||
const pack_t schema,
|
||||
const conj_t conjx,
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
// thrcomm_t query (field only)
|
||||
|
||||
static dim_t bli_thrcomm_num_threads( thrcomm_t* comm )
|
||||
BLIS_INLINE dim_t bli_thrcomm_num_threads( thrcomm_t* comm )
|
||||
{
|
||||
return comm->n_threads;
|
||||
}
|
||||
|
||||
@@ -196,7 +196,7 @@ void bli_thread_init_rntm_from_env( rntm_t* rntm );
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
static void bli_thread_range_jrir_rr
|
||||
BLIS_INLINE void bli_thread_range_jrir_rr
|
||||
(
|
||||
thrinfo_t* thread,
|
||||
dim_t n,
|
||||
@@ -213,7 +213,7 @@ static void bli_thread_range_jrir_rr
|
||||
*end = n;
|
||||
}
|
||||
|
||||
static void bli_thread_range_jrir_sl
|
||||
BLIS_INLINE void bli_thread_range_jrir_sl
|
||||
(
|
||||
thrinfo_t* thread,
|
||||
dim_t n,
|
||||
@@ -229,7 +229,7 @@ static void bli_thread_range_jrir_sl
|
||||
*inc = 1;
|
||||
}
|
||||
|
||||
static void bli_thread_range_jrir
|
||||
BLIS_INLINE void bli_thread_range_jrir
|
||||
(
|
||||
thrinfo_t* thread,
|
||||
dim_t n,
|
||||
@@ -251,7 +251,7 @@ static void bli_thread_range_jrir
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void bli_thread_range_weighted_jrir
|
||||
BLIS_INLINE void bli_thread_range_weighted_jrir
|
||||
(
|
||||
thrinfo_t* thread,
|
||||
doff_t diagoff,
|
||||
|
||||
@@ -75,108 +75,108 @@ typedef struct thrinfo_s thrinfo_t;
|
||||
|
||||
// thrinfo_t query (field only)
|
||||
|
||||
static dim_t bli_thread_num_threads( thrinfo_t* t )
|
||||
BLIS_INLINE dim_t bli_thread_num_threads( thrinfo_t* t )
|
||||
{
|
||||
return (t->ocomm)->n_threads;
|
||||
}
|
||||
|
||||
static dim_t bli_thread_ocomm_id( thrinfo_t* t )
|
||||
BLIS_INLINE dim_t bli_thread_ocomm_id( thrinfo_t* t )
|
||||
{
|
||||
return t->ocomm_id;
|
||||
}
|
||||
|
||||
static dim_t bli_thread_n_way( thrinfo_t* t )
|
||||
BLIS_INLINE dim_t bli_thread_n_way( thrinfo_t* t )
|
||||
{
|
||||
return t->n_way;
|
||||
}
|
||||
|
||||
static dim_t bli_thread_work_id( thrinfo_t* t )
|
||||
BLIS_INLINE dim_t bli_thread_work_id( thrinfo_t* t )
|
||||
{
|
||||
return t->work_id;
|
||||
}
|
||||
|
||||
static thrcomm_t* bli_thrinfo_ocomm( thrinfo_t* t )
|
||||
BLIS_INLINE thrcomm_t* bli_thrinfo_ocomm( thrinfo_t* t )
|
||||
{
|
||||
return t->ocomm;
|
||||
}
|
||||
|
||||
static bool_t bli_thrinfo_needs_free_comm( thrinfo_t* t )
|
||||
BLIS_INLINE bool_t bli_thrinfo_needs_free_comm( thrinfo_t* t )
|
||||
{
|
||||
return t->free_comm;
|
||||
}
|
||||
|
||||
static dim_t bli_thread_bszid( thrinfo_t* t )
|
||||
BLIS_INLINE dim_t bli_thread_bszid( thrinfo_t* t )
|
||||
{
|
||||
return t->bszid;
|
||||
}
|
||||
|
||||
static thrinfo_t* bli_thrinfo_sub_node( thrinfo_t* t )
|
||||
BLIS_INLINE thrinfo_t* bli_thrinfo_sub_node( thrinfo_t* t )
|
||||
{
|
||||
return t->sub_node;
|
||||
}
|
||||
|
||||
static thrinfo_t* bli_thrinfo_sub_prenode( thrinfo_t* t )
|
||||
BLIS_INLINE thrinfo_t* bli_thrinfo_sub_prenode( thrinfo_t* t )
|
||||
{
|
||||
return t->sub_prenode;
|
||||
}
|
||||
|
||||
// thrinfo_t query (complex)
|
||||
|
||||
static bool_t bli_thread_am_ochief( thrinfo_t* t )
|
||||
BLIS_INLINE bool_t bli_thread_am_ochief( thrinfo_t* t )
|
||||
{
|
||||
return t->ocomm_id == 0;
|
||||
}
|
||||
|
||||
// thrinfo_t modification
|
||||
|
||||
static void bli_thrinfo_set_ocomm( thrcomm_t* ocomm, thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thrinfo_set_ocomm( thrcomm_t* ocomm, thrinfo_t* t )
|
||||
{
|
||||
t->ocomm = ocomm;
|
||||
}
|
||||
|
||||
static void bli_thrinfo_set_ocomm_id( dim_t ocomm_id, thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thrinfo_set_ocomm_id( dim_t ocomm_id, thrinfo_t* t )
|
||||
{
|
||||
t->ocomm_id = ocomm_id;
|
||||
}
|
||||
|
||||
static void bli_thrinfo_set_n_way( dim_t n_way, thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thrinfo_set_n_way( dim_t n_way, thrinfo_t* t )
|
||||
{
|
||||
t->n_way = n_way;
|
||||
}
|
||||
|
||||
static void bli_thrinfo_set_work_id( dim_t work_id, thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thrinfo_set_work_id( dim_t work_id, thrinfo_t* t )
|
||||
{
|
||||
t->work_id = work_id;
|
||||
}
|
||||
|
||||
static void bli_thrinfo_set_free_comm( bool_t free_comm, thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thrinfo_set_free_comm( bool_t free_comm, thrinfo_t* t )
|
||||
{
|
||||
t->free_comm = free_comm;
|
||||
}
|
||||
|
||||
static void bli_thrinfo_set_bszid( bszid_t bszid, thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thrinfo_set_bszid( bszid_t bszid, thrinfo_t* t )
|
||||
{
|
||||
t->bszid = bszid;
|
||||
}
|
||||
|
||||
static void bli_thrinfo_set_sub_node( thrinfo_t* sub_node, thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thrinfo_set_sub_node( thrinfo_t* sub_node, thrinfo_t* t )
|
||||
{
|
||||
t->sub_node = sub_node;
|
||||
}
|
||||
|
||||
static void bli_thrinfo_set_sub_prenode( thrinfo_t* sub_prenode, thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thrinfo_set_sub_prenode( thrinfo_t* sub_prenode, thrinfo_t* t )
|
||||
{
|
||||
t->sub_prenode = sub_prenode;
|
||||
}
|
||||
|
||||
// other thrinfo_t-related functions
|
||||
|
||||
static void* bli_thread_broadcast( thrinfo_t* t, void* p )
|
||||
BLIS_INLINE void* bli_thread_broadcast( thrinfo_t* t, void* p )
|
||||
{
|
||||
return bli_thrcomm_bcast( t->ocomm_id, p, t->ocomm );
|
||||
}
|
||||
|
||||
static void bli_thread_barrier( thrinfo_t* t )
|
||||
BLIS_INLINE void bli_thread_barrier( thrinfo_t* t )
|
||||
{
|
||||
bli_thrcomm_barrier( t->ocomm_id, t->ocomm );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user