mirror of
https://github.com/amd/blis.git
synced 2026-05-11 09:39:59 +00:00
Added get/set static funcs for exec dt/dom/prec.
Details: - Added functions to bli_obj_macro_defs.h to get and set the execution domain and execution precision bits in the obj_t. - Added/rearranged a few functions in bli_obj_macro_defs.h. - Renamed some macros in bli_type_defs.h: EXECUTION -> EXEC.
This commit is contained in:
@@ -81,6 +81,21 @@ static objbits_t bli_obj_domain( obj_t* obj )
|
||||
return ( obj->info & BLIS_DOMAIN_BIT );
|
||||
}
|
||||
|
||||
static objbits_t bli_obj_prec( obj_t* obj )
|
||||
{
|
||||
return ( obj->info & BLIS_PRECISION_BIT );
|
||||
}
|
||||
|
||||
static bool_t bli_obj_is_single_prec( obj_t* obj )
|
||||
{
|
||||
return ( bli_obj_prec( obj ) == BLIS_BITVAL_SINGLE_PREC );
|
||||
}
|
||||
|
||||
static bool_t bli_obj_is_double_prec( obj_t* obj )
|
||||
{
|
||||
return ( bli_obj_prec( obj ) == BLIS_BITVAL_DOUBLE_PREC );
|
||||
}
|
||||
|
||||
static bool_t bli_obj_is_real( obj_t* obj )
|
||||
{
|
||||
return ( bli_obj_domain( obj ) == BLIS_BITVAL_REAL );
|
||||
@@ -91,16 +106,6 @@ static bool_t bli_obj_is_complex( obj_t* obj )
|
||||
return ( bli_obj_domain( obj ) == BLIS_BITVAL_COMPLEX );
|
||||
}
|
||||
|
||||
static objbits_t bli_obj_prec( obj_t* obj )
|
||||
{
|
||||
return ( obj->info & BLIS_PRECISION_BIT );
|
||||
}
|
||||
|
||||
static bool_t bli_obj_is_double_prec( obj_t* obj )
|
||||
{
|
||||
return ( bli_obj_prec( obj ) == BLIS_BITVAL_DOUBLE_PREC );
|
||||
}
|
||||
|
||||
static num_t bli_obj_dt_proj_to_real( obj_t* obj )
|
||||
{
|
||||
return ( bli_obj_dt( obj ) & ~BLIS_BITVAL_COMPLEX );
|
||||
@@ -118,7 +123,17 @@ static num_t bli_obj_target_dt( obj_t* obj )
|
||||
|
||||
static num_t bli_obj_exec_dt( obj_t* obj )
|
||||
{
|
||||
return ( ( obj->info & BLIS_EXECUTION_DT_BITS ) >> BLIS_EXECUTION_DT_SHIFT );
|
||||
return ( ( obj->info & BLIS_EXEC_DT_BITS ) >> BLIS_EXEC_DT_SHIFT );
|
||||
}
|
||||
|
||||
static dom_t bli_obj_exec_domain( obj_t* obj )
|
||||
{
|
||||
return ( ( obj->info & BLIS_EXEC_DOMAIN_BIT ) >> BLIS_EXEC_DT_SHIFT );
|
||||
}
|
||||
|
||||
static prec_t bli_obj_exec_prec( obj_t* obj )
|
||||
{
|
||||
return ( ( obj->info & BLIS_EXEC_PREC_BIT ) >> BLIS_EXEC_DT_SHIFT );
|
||||
}
|
||||
|
||||
static trans_t bli_obj_conjtrans_status( obj_t* obj )
|
||||
@@ -328,7 +343,17 @@ static void bli_obj_set_target_dt( num_t dt, obj_t* obj )
|
||||
|
||||
static void bli_obj_set_exec_dt( num_t dt, obj_t* obj )
|
||||
{
|
||||
obj->info = ( obj->info & ~BLIS_EXECUTION_DT_BITS ) | ( dt << BLIS_EXECUTION_DT_SHIFT );
|
||||
obj->info = ( obj->info & ~BLIS_EXEC_DT_BITS ) | ( dt << BLIS_EXEC_DT_SHIFT );
|
||||
}
|
||||
|
||||
static void bli_obj_set_exec_domain( dom_t dt, obj_t* obj )
|
||||
{
|
||||
obj->info = ( obj->info & ~BLIS_EXEC_DOMAIN_BIT ) | ( dt << BLIS_EXEC_DOMAIN_SHIFT );
|
||||
}
|
||||
|
||||
static void bli_obj_set_exec_prec( prec_t dt, obj_t* obj )
|
||||
{
|
||||
obj->info = ( obj->info & ~BLIS_EXEC_PREC_BIT ) | ( dt << BLIS_EXEC_PREC_SHIFT );
|
||||
}
|
||||
|
||||
static void bli_obj_set_pack_schema( pack_t schema, obj_t* obj )
|
||||
|
||||
@@ -210,11 +210,11 @@ typedef dcomplex f77_dcomplex;
|
||||
12 ~ 10 Target numerical datatype
|
||||
- 10: domain (0 == real, 1 == complex)
|
||||
- 11: precision (0 == single, 1 == double)
|
||||
- 12: unused
|
||||
- 12: used to encode integer, constant types
|
||||
15 ~ 13 Execution numerical datatype
|
||||
- 13: domain (0 == real, 1 == complex)
|
||||
- 14: precision (0 == single, 1 == double)
|
||||
- 15: unused
|
||||
- 15: used to encode integer, constant types
|
||||
22 ~ 16 Packed type/status
|
||||
- 0 0000 00: not packed
|
||||
- 1 0000 00: packed (unspecified; by rows, columns, or vector)
|
||||
@@ -271,7 +271,9 @@ typedef dcomplex f77_dcomplex;
|
||||
#define BLIS_UNIT_DIAG_SHIFT 8
|
||||
#define BLIS_INVERT_DIAG_SHIFT 9
|
||||
#define BLIS_TARGET_DT_SHIFT 10
|
||||
#define BLIS_EXECUTION_DT_SHIFT 13
|
||||
#define BLIS_EXEC_DT_SHIFT 13
|
||||
#define BLIS_EXEC_DOMAIN_SHIFT 13
|
||||
#define BLIS_EXEC_PREC_SHIFT 14
|
||||
#define BLIS_PACK_SCHEMA_SHIFT 16
|
||||
#define BLIS_PACK_RC_SHIFT 16
|
||||
#define BLIS_PACK_PANEL_SHIFT 17
|
||||
@@ -299,7 +301,9 @@ typedef dcomplex f77_dcomplex;
|
||||
#define BLIS_UNIT_DIAG_BIT ( 0x1 << BLIS_UNIT_DIAG_SHIFT )
|
||||
#define BLIS_INVERT_DIAG_BIT ( 0x1 << BLIS_INVERT_DIAG_SHIFT )
|
||||
#define BLIS_TARGET_DT_BITS ( 0x7 << BLIS_TARGET_DT_SHIFT )
|
||||
#define BLIS_EXECUTION_DT_BITS ( 0x7 << BLIS_EXECUTION_DT_SHIFT )
|
||||
#define BLIS_EXEC_DT_BITS ( 0x7 << BLIS_EXEC_DT_SHIFT )
|
||||
#define BLIS_EXEC_DOMAIN_BIT ( 0x1 << BLIS_EXEC_DOMAIN_SHIFT )
|
||||
#define BLIS_EXEC_PREC_BIT ( 0x1 << BLIS_EXEC_PREC_SHIFT )
|
||||
#define BLIS_PACK_SCHEMA_BITS ( 0x7F << BLIS_PACK_SCHEMA_SHIFT )
|
||||
#define BLIS_PACK_RC_BIT ( 0x1 << BLIS_PACK_RC_SHIFT )
|
||||
#define BLIS_PACK_PANEL_BIT ( 0x1 << BLIS_PACK_PANEL_SHIFT )
|
||||
|
||||
Reference in New Issue
Block a user