From f317c2e31bfc329cb6bb4e06005e45b9c8a9d6a7 Mon Sep 17 00:00:00 2001 From: "Field G. Van Zee" Date: Tue, 19 Jun 2018 12:21:23 -0500 Subject: [PATCH] Added get/set static funcs for exec dt/dom/prec. Details: - Added functions to bli_obj_macro_defs.h to get and set the target domain and target precision bits in the obj_t, and also added the appropriate support in bli_type_defs.h. --- frame/include/bli_obj_macro_defs.h | 20 ++++++++++++++++++++ frame/include/bli_type_defs.h | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/frame/include/bli_obj_macro_defs.h b/frame/include/bli_obj_macro_defs.h index c5b19d578..60176d98c 100644 --- a/frame/include/bli_obj_macro_defs.h +++ b/frame/include/bli_obj_macro_defs.h @@ -121,6 +121,16 @@ static num_t bli_obj_target_dt( obj_t* obj ) return ( ( obj->info & BLIS_TARGET_DT_BITS ) >> BLIS_TARGET_DT_SHIFT ); } +static dom_t bli_obj_target_domain( obj_t* obj ) +{ + return ( ( obj->info & BLIS_TARGET_DOMAIN_BIT ) >> BLIS_TARGET_DT_SHIFT ); +} + +static prec_t bli_obj_target_prec( obj_t* obj ) +{ + return ( ( obj->info & BLIS_TARGET_PREC_BIT ) >> BLIS_TARGET_DT_SHIFT ); +} + static num_t bli_obj_exec_dt( obj_t* obj ) { return ( ( obj->info & BLIS_EXEC_DT_BITS ) >> BLIS_EXEC_DT_SHIFT ); @@ -341,6 +351,16 @@ static void bli_obj_set_target_dt( num_t dt, obj_t* obj ) obj->info = ( obj->info & ~BLIS_TARGET_DT_BITS ) | ( dt << BLIS_TARGET_DT_SHIFT ); } +static void bli_obj_set_target_domain( dom_t dt, obj_t* obj ) +{ + obj->info = ( obj->info & ~BLIS_TARGET_DOMAIN_BIT ) | ( dt << BLIS_TARGET_DOMAIN_SHIFT ); +} + +static void bli_obj_set_target_prec( prec_t dt, obj_t* obj ) +{ + obj->info = ( obj->info & ~BLIS_TARGET_PREC_BIT ) | ( dt << BLIS_TARGET_PREC_SHIFT ); +} + static void bli_obj_set_exec_dt( num_t dt, obj_t* obj ) { obj->info = ( obj->info & ~BLIS_EXEC_DT_BITS ) | ( dt << BLIS_EXEC_DT_SHIFT ); diff --git a/frame/include/bli_type_defs.h b/frame/include/bli_type_defs.h index fe0d84a51..2d400518d 100644 --- a/frame/include/bli_type_defs.h +++ b/frame/include/bli_type_defs.h @@ -271,6 +271,8 @@ typedef dcomplex f77_dcomplex; #define BLIS_UNIT_DIAG_SHIFT 8 #define BLIS_INVERT_DIAG_SHIFT 9 #define BLIS_TARGET_DT_SHIFT 10 +#define BLIS_TARGET_DOMAIN_SHIFT 10 +#define BLIS_TARGET_PREC_SHIFT 11 #define BLIS_EXEC_DT_SHIFT 13 #define BLIS_EXEC_DOMAIN_SHIFT 13 #define BLIS_EXEC_PREC_SHIFT 14 @@ -301,6 +303,8 @@ 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_TARGET_DOMAIN_BIT ( 0x1 << BLIS_TARGET_DOMAIN_SHIFT ) +#define BLIS_TARGET_PREC_BIT ( 0x1 << BLIS_TARGET_PREC_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 )