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:
Field G. Van Zee
2020-07-03 17:55:54 -05:00
parent 5fc701ac5f
commit 72f6ed0637
44 changed files with 726 additions and 713 deletions

View File

@@ -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)

View File

@@ -33,6 +33,7 @@
*/
#define BLIS_INLINE static
#define BLIS_EXPORT_BLIS
#include "bli_system.h"
#include "bli_type_defs.h"

View File

@@ -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;
}

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,

View File

@@ -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;
}

View File

@@ -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"

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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,

View File

@@ -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;
}

View File

@@ -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 );

View File

@@ -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"

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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 );

View File

@@ -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) );
}

View File

@@ -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 );

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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
)

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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,

View File

@@ -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,

View File

@@ -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, \

View File

@@ -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, \

View File

@@ -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, \

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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, \

View File

@@ -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 )

View File

@@ -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 )
{

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,

View File

@@ -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;
}

View File

@@ -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,

View File

@@ -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 );
}