diff --git a/common.mk b/common.mk index f341eb8f5..6624a9a48 100644 --- a/common.mk +++ b/common.mk @@ -78,17 +78,17 @@ define load-var-for $($(strip $(1)).$(strip $(2))) endef -# Define some functions that return the appropriate CFLAGS for a given -# configuration. This assumes that the make_defs.mk files have already been -# included, which results in those values having been stored to -# configuration-qualified variables. - # # --- CFLAGS query functions --------------------------------------------------- # +# Define some functions that return the appropriate CFLAGS for a given +# configuration. This assumes that the make_defs.mk files have already been +# included, which results in those values having been stored to +# configuration-qualified variables. + get-noopt-cflags-for = $(strip $(call load-var-for,CDBGFLAGS,$(1)) \ $(call load-var-for,CWARNFLAGS,$(1)) \ $(call load-var-for,CPICFLAGS,$(1)) \ @@ -266,11 +266,17 @@ endif # makefile definitions. MAKE_DEFS_FILE := make_defs.mk -# Construct the paths to the makefile definitions files, each of which resides -# in a separate configuration sub-directory. We include CONFIG_NAME in this -# list since we might need -ALL_CONFIGS := $(sort $(strip $(CONFIG_LIST) $(CONFIG_NAME))) -CONFIG_PATHS := $(addprefix $(CONFIG_PATH)/, $(ALL_CONFIGS)) +# Assembly a list of all configuration family members, including the +# configuration family name itself. Note that sort() will remove duplicates +# for situations where CONFIG_NAME is present in CONFIG_LIST, such as would +# be the case for singleton families. +CONFIG_LIST_FAM := $(sort $(strip $(CONFIG_LIST) $(CONFIG_NAME))) + +# Construct the paths to the makefile definitions files, each of which +# resides in a separate configuration sub-directory. We use CONFIG_LIST_FAM +# since we might need the makefile definitions associated with the +# configuration family (if it is an umbrella family). +CONFIG_PATHS := $(addprefix $(CONFIG_PATH)/, $(CONFIG_LIST_FAM)) MAKE_DEFS_MK_PATHS := $(addsuffix /$(MAKE_DEFS_FILE), $(CONFIG_PATHS)) # Initialize the list of included (found) configurations to empty. @@ -283,14 +289,11 @@ CONFIGS_INCL := # we didn't, then maybe a configuration is mislabeled or missing. The # check-env-make-defs target checks ALL_MAKE_DEFS_MK_PRESENT and outputs # an error message if it is set to 'no'. -# NOTE: We combine the CONFIG_NAME and CONFIG_LIST for situations where -# the CONFIG_NAME is absent from the CONFIG_LIST (e.g., 'intel64' is a -# configuration family name with its own configuration directory and its -# own make_defs.mk file, but not a sub-configuration itself). If -# CONFIG_NAME is present in CONFIG_LIST, as with singleton configuration -# families, then the sort() function will remove duplicates from both -# strings being compared. -CONFIGS_EXPECTED := $(CONFIG_LIST) $(CONFIG_NAME) +# NOTE: We use CONFIG_LIST_FAM as the expected list of configurations. +# This combines CONFIG_NAME with CONFIG_LIST. The inclusion of CONFIG_NAME +# is needed for situations where the configuration family is an umbrella +# family (e.g. 'intel64'), since families have separate make_def.mk files. +CONFIGS_EXPECTED := $(CONFIG_LIST_FAM) ifeq ($(sort $(strip $(CONFIGS_INCL))), \ $(sort $(strip $(CONFIGS_EXPECTED)))) ALL_MAKE_DEFS_MK_PRESENT := yes @@ -323,38 +326,43 @@ SOFLAGS := -shared # --- Configuration-agnostic flags --------------------------------------------- # -# --- C Preprocessor flags --- - -# Enable clock_gettime() in time.h. -CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L -$(foreach conf, $(CONFIG_LIST), $(eval $(call append-var-for,CPPROCFLAGS,$(conf)))) - -# --- Shared library (position-independent code) flags --- - -# Emit position-independent code for dynamic linking. -CPICFLAGS := -fPIC -$(foreach conf, $(CONFIG_LIST), $(eval $(call append-var-for,CPICFLAGS,$(conf)))) - -# --- Miscellaneous flags --- - -# Enable C99. -CMISCFLAGS := -std=c99 -$(foreach conf, $(CONFIG_LIST), $(eval $(call append-var-for,CMISCFLAGS,$(conf)))) - -# Disable tautological comparision warnings in clang. -ifeq ($(CC_VENDOR),clang) -CMISCFLAGS := -Wno-tautological-compare -$(foreach conf, $(CONFIG_LIST), $(eval $(call append-var-for,CMISCFLAGS,$(conf)))) -endif - # --- Warning flags --- # Disable unused function warnings and stop compiling on first error for # all compilers that accept such options: gcc, clang, and icc. ifneq ($(CC_VENDOR),ibm) CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors -$(foreach conf, $(CONFIG_LIST), $(eval $(call append-var-for,CWARNFLAGS,$(conf)))) +else +CWARNFLAGS := endif +$(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CWARNFLAGS,$(c)))) + +# --- Shared library (position-independent code) flags --- + +# Emit position-independent code for dynamic linking. +CPICFLAGS := -fPIC +$(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CPICFLAGS,$(c)))) + +# --- Miscellaneous flags --- + +# Enable C99. +CMISCFLAGS := -std=c99 +$(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CMISCFLAGS,$(c)))) + +# --- C Preprocessor flags --- + +# Enable clock_gettime() in time.h. +CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L +$(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CPPROCFLAGS,$(c)))) + +# Disable tautological comparision warnings in clang. +ifeq ($(CC_VENDOR),clang) +CMISCFLAGS := -Wno-tautological-compare +else +CMISCFLAGS := +endif +$(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CMISCFLAGS,$(c)))) + # --- Threading flags --- @@ -450,13 +458,9 @@ MK_KERNELS_SRC := # Construct paths to each of the sub-configurations specified in the -# configuration list. If CONFIG_NAME is not in CONFIG_LIST, include it in -# CONFIG_PATHS since we'll need access to its header files. -ifeq ($(findstring $(CONFIG_NAME),$(CONFIG_LIST)),) -CONFIG_PATHS := $(addprefix $(CONFIG_PATH)/, $(CONFIG_NAME) $(CONFIG_LIST)) -else -CONFIG_PATHS := $(addprefix $(CONFIG_PATH)/, $(CONFIG_LIST)) -endif +# configuration list. Note that we use CONFIG_LIST_FAM, which already +# has CONFIG_NAME included (with duplicates removed). +CONFIG_PATHS := $(addprefix $(CONFIG_PATH)/, $(CONFIG_LIST_FAM)) # This variable is used by the include statements as they recursively include # one another. For the 'config' directory, we initialize it to that directory diff --git a/config/haswell/bli_cntx_init_haswell.c b/config/haswell/bli_cntx_init_haswell.c index b791130b3..2823277a9 100644 --- a/config/haswell/bli_cntx_init_haswell.c +++ b/config/haswell/bli_cntx_init_haswell.c @@ -46,12 +46,63 @@ void bli_cntx_init_haswell( cntx_t* cntx ) // Update the context with optimized native gemm micro-kernels and // their storage preferences. bli_cntx_set_l3_nat_ukrs + ( + 8, + // gemm + BLIS_GEMM_UKR, BLIS_FLOAT, bli_sgemm_zen_asm_6x16, TRUE, + BLIS_GEMM_UKR, BLIS_DOUBLE, bli_dgemm_zen_asm_6x8, TRUE, + BLIS_GEMM_UKR, BLIS_SCOMPLEX, bli_cgemm_zen_asm_3x8, TRUE, + BLIS_GEMM_UKR, BLIS_DCOMPLEX, bli_zgemm_zen_asm_3x4, TRUE, + // gemmtrsm_l + BLIS_GEMMTRSM_L_UKR, BLIS_FLOAT, bli_sgemmtrsm_l_zen_asm_6x16, TRUE, + BLIS_GEMMTRSM_L_UKR, BLIS_DOUBLE, bli_dgemmtrsm_l_zen_asm_6x8, TRUE, + // gemmtrsm_u + BLIS_GEMMTRSM_U_UKR, BLIS_FLOAT, bli_sgemmtrsm_u_zen_asm_6x16, TRUE, + BLIS_GEMMTRSM_U_UKR, BLIS_DOUBLE, bli_dgemmtrsm_u_zen_asm_6x8, TRUE, + cntx + ); + + bli_cntx_set_l1f_kers ( 4, - BLIS_GEMM_UKR, BLIS_FLOAT, bli_sgemm_haswell_asm_6x16, TRUE, - BLIS_GEMM_UKR, BLIS_DOUBLE, bli_dgemm_haswell_asm_6x8, TRUE, - BLIS_GEMM_UKR, BLIS_SCOMPLEX, bli_cgemm_haswell_asm_3x8, TRUE, - BLIS_GEMM_UKR, BLIS_DCOMPLEX, bli_zgemm_haswell_asm_3x4, TRUE, + // axpyf + BLIS_AXPYF_KER, BLIS_FLOAT, bli_saxpyf_zen_int_8, + BLIS_AXPYF_KER, BLIS_DOUBLE, bli_daxpyf_zen_int_8, + // dotxf + BLIS_DOTXF_KER, BLIS_FLOAT, bli_sdotxf_zen_int_8, + BLIS_DOTXF_KER, BLIS_DOUBLE, bli_ddotxf_zen_int_8, + cntx + ); + + // Update the context with optimized level-1v kernels. + bli_cntx_set_l1v_kers + ( + 10, + // amaxv + BLIS_AMAXV_KER, BLIS_FLOAT, bli_samaxv_zen_int, + BLIS_AMAXV_KER, BLIS_DOUBLE, bli_damaxv_zen_int, + // axpyv +#if 0 + BLIS_AXPYV_KER, BLIS_FLOAT, bli_saxpyv_zen_int, + BLIS_AXPYV_KER, BLIS_DOUBLE, bli_daxpyv_zen_int, +#else + BLIS_AXPYV_KER, BLIS_FLOAT, bli_saxpyv_zen_int10, + BLIS_AXPYV_KER, BLIS_DOUBLE, bli_daxpyv_zen_int10, +#endif + // dotv + BLIS_DOTV_KER, BLIS_FLOAT, bli_sdotv_zen_int, + BLIS_DOTV_KER, BLIS_DOUBLE, bli_ddotv_zen_int, + // dotxv + BLIS_DOTXV_KER, BLIS_FLOAT, bli_sdotxv_zen_int, + BLIS_DOTXV_KER, BLIS_DOUBLE, bli_ddotxv_zen_int, + // scalv +#if 0 + BLIS_SCALV_KER, BLIS_FLOAT, bli_sscalv_zen_int, + BLIS_SCALV_KER, BLIS_DOUBLE, bli_dscalv_zen_int, +#else + BLIS_SCALV_KER, BLIS_FLOAT, bli_sscalv_zen_int10, + BLIS_SCALV_KER, BLIS_DOUBLE, bli_dscalv_zen_int10, +#endif cntx ); @@ -62,17 +113,23 @@ void bli_cntx_init_haswell( cntx_t* cntx ) bli_blksz_init_easy( &blkszs[ BLIS_MC ], 144, 72, 144, 72 ); bli_blksz_init_easy( &blkszs[ BLIS_KC ], 256, 256, 256, 256 ); bli_blksz_init_easy( &blkszs[ BLIS_NC ], 4080, 4080, 4080, 4080 ); + bli_blksz_init_easy( &blkszs[ BLIS_AF ], 8, 8, 8, 8 ); + bli_blksz_init_easy( &blkszs[ BLIS_DF ], 8, 8, 8, 8 ); // Update the context with the current architecture's register and cache // blocksizes (and multiples) for native execution. bli_cntx_set_blkszs ( - BLIS_NAT, 5, + BLIS_NAT, 7, + // level-3 BLIS_NC, &blkszs[ BLIS_NC ], BLIS_NR, BLIS_KC, &blkszs[ BLIS_KC ], BLIS_KR, BLIS_MC, &blkszs[ BLIS_MC ], BLIS_MR, BLIS_NR, &blkszs[ BLIS_NR ], BLIS_NR, BLIS_MR, &blkszs[ BLIS_MR ], BLIS_MR, + // level-1f + BLIS_AF, &blkszs[ BLIS_AF ], BLIS_AF, + BLIS_DF, &blkszs[ BLIS_DF ], BLIS_DF, cntx ); } diff --git a/config/knl/bli_cntx_init_knl.c b/config/knl/bli_cntx_init_knl.c index a8c5b8cb0..05ee4128e 100644 --- a/config/knl/bli_cntx_init_knl.c +++ b/config/knl/bli_cntx_init_knl.c @@ -63,13 +63,13 @@ void bli_cntx_init_knl( cntx_t* cntx ) // Initialize level-3 blocksize objects with architecture-specific values. // s d c z - bli_blksz_init_easy( &blkszs[ BLIS_MR ], 0, 24, 0, 0 ); - bli_blksz_init_easy( &blkszs[ BLIS_NR ], 0, 8, 0, 0 ); - bli_blksz_init ( &blkszs[ BLIS_MC ], 0, 120, 0, 0, - 0, 160, 0, 0 ); - bli_blksz_init ( &blkszs[ BLIS_KC ], 0, 336, 0, 0, - 0, 420, 0, 0 ); - bli_blksz_init_easy( &blkszs[ BLIS_NC ], 0, 14400, 0, 0 ); + bli_blksz_init_easy( &blkszs[ BLIS_MR ], -1, 24, -1, -1 ); + bli_blksz_init_easy( &blkszs[ BLIS_NR ], -1, 8, -1, -1 ); + bli_blksz_init ( &blkszs[ BLIS_MC ], -1, 120, -1, -1, + -1, 144, -1, -1 ); + bli_blksz_init ( &blkszs[ BLIS_KC ], -1, 336, -1, -1, + -1, 420, -1, -1 ); + bli_blksz_init_easy( &blkszs[ BLIS_NC ], -1, 14400, -1, -1 ); // Update the context with the current architecture's register and cache // blocksizes (and multiples) for native execution. diff --git a/config/zen/bli_cntx_init_zen.c b/config/zen/bli_cntx_init_zen.c index be9e9bc94..d3c81f709 100644 --- a/config/zen/bli_cntx_init_zen.c +++ b/config/zen/bli_cntx_init_zen.c @@ -47,10 +47,12 @@ void bli_cntx_init_zen( cntx_t* cntx ) // their storage preferences. bli_cntx_set_l3_nat_ukrs ( - 6, + 8, // gemm BLIS_GEMM_UKR, BLIS_FLOAT, bli_sgemm_zen_asm_6x16, TRUE, BLIS_GEMM_UKR, BLIS_DOUBLE, bli_dgemm_zen_asm_6x8, TRUE, + BLIS_GEMM_UKR, BLIS_SCOMPLEX, bli_cgemm_zen_asm_3x8, TRUE, + BLIS_GEMM_UKR, BLIS_DCOMPLEX, bli_zgemm_zen_asm_3x4, TRUE, // gemmtrsm_l BLIS_GEMMTRSM_L_UKR, BLIS_FLOAT, bli_sgemmtrsm_l_zen_asm_6x16, TRUE, BLIS_GEMMTRSM_L_UKR, BLIS_DOUBLE, bli_dgemmtrsm_l_zen_asm_6x8, TRUE, diff --git a/config_registry b/config_registry index b54611466..d0e79a2ca 100644 --- a/config_registry +++ b/config_registry @@ -14,7 +14,7 @@ arm32: cortexa9 cortexa15 generic x86_64: haswell sandybridge penryn zen excavator steamroller piledriver bulldozer generic # Intel architectures. -haswell: haswell +haswell: haswell/haswell/zen sandybridge: sandybridge penryn: penryn knl: knl diff --git a/frame/base/bli_error.c b/frame/base/bli_error.c index afe86f5ff..d78c48387 100644 --- a/frame/base/bli_error.c +++ b/frame/base/bli_error.c @@ -166,15 +166,15 @@ void bli_error_init_msgs( void ) sprintf( bli_error_string_for_code(BLIS_MC_DEF_NONMULTIPLE_OF_MR), "Default MC is non-multiple of MR for one or more datatypes." ); - sprintf( bli_error_string_for_code(BLIS_MC_DEF_NONMULTIPLE_OF_MR), + sprintf( bli_error_string_for_code(BLIS_MC_MAX_NONMULTIPLE_OF_MR), "Maximum MC is non-multiple of MR for one or more datatypes." ); sprintf( bli_error_string_for_code(BLIS_NC_DEF_NONMULTIPLE_OF_NR), "Default NC is non-multiple of NR for one or more datatypes." ); - sprintf( bli_error_string_for_code(BLIS_NC_DEF_NONMULTIPLE_OF_NR), + sprintf( bli_error_string_for_code(BLIS_NC_MAX_NONMULTIPLE_OF_NR), "Maximum NC is non-multiple of NR for one or more datatypes." ); sprintf( bli_error_string_for_code(BLIS_KC_DEF_NONMULTIPLE_OF_KR), "Default KC is non-multiple of KR for one or more datatypes." ); - sprintf( bli_error_string_for_code(BLIS_KC_DEF_NONMULTIPLE_OF_KR), + sprintf( bli_error_string_for_code(BLIS_KC_MAX_NONMULTIPLE_OF_KR), "Maximum KC is non-multiple of KR for one or more datatypes." ); } diff --git a/kernels/knl/1m/bli_packm_knl_asm_24x8.c b/kernels/knl/1m/bli_packm_knl_asm_24x8.c index d14982f45..3cf4bcc81 100644 --- a/kernels/knl/1m/bli_packm_knl_asm_24x8.c +++ b/kernels/knl/1m/bli_packm_knl_asm_24x8.c @@ -104,11 +104,12 @@ extern int32_t offsets[24]; void bli_dpackm_knl_asm_8xk ( - conj_t conja, - dim_t n_, - void* restrict kappa_, - void* restrict a_, inc_t inca_, inc_t lda_, - void* restrict p_, inc_t ldp_ + conj_t conja, + dim_t n_, + void* restrict kappa_, + void* restrict a_, inc_t inca_, inc_t lda_, + void* restrict p_, inc_t ldp_, + cntx_t* restrict cntx ) { (void)conja; @@ -296,11 +297,12 @@ void bli_dpackm_knl_asm_8xk void bli_dpackm_knl_asm_24xk ( - conj_t conja, - dim_t n_, - void* restrict kappa_, - void* restrict a_, inc_t inca_, inc_t lda_, - void* restrict p_, inc_t ldp_ + conj_t conja, + dim_t n_, + void* restrict kappa_, + void* restrict a_, inc_t inca_, inc_t lda_, + void* restrict p_, inc_t ldp_, + cntx_t* restrict cntx ) { (void)conja; diff --git a/kernels/knl/1m/bli_packm_knl_asm_30x8.c b/kernels/knl/1m/bli_packm_knl_asm_30x8.c index 06c6b6ad8..c2284c479 100644 --- a/kernels/knl/1m/bli_packm_knl_asm_30x8.c +++ b/kernels/knl/1m/bli_packm_knl_asm_30x8.c @@ -132,11 +132,12 @@ extern int32_t offsets[32]; // NOTE: assumes packdim_mr == 32 void bli_dpackm_knl_asm_30xk ( - conj_t conja, - dim_t n_, - void* restrict kappa_, - void* restrict a_, inc_t inca_, inc_t lda_, - void* restrict p_, inc_t ldp_ + conj_t conja, + dim_t n_, + void* restrict kappa_, + void* restrict a_, inc_t inca_, inc_t lda_, + void* restrict p_, inc_t ldp_, + cntx_t* restrict cntx ) { (void)conja; diff --git a/testsuite/input.general b/testsuite/input.general index 30b661d39..6178764be 100644 --- a/testsuite/input.general +++ b/testsuite/input.general @@ -12,7 +12,7 @@ rc # Matrix storage scheme(s) to test: # 'c' = col-major storage; 'g' = general stride storage; # 'r' = row-major storage -c # Vector storage scheme(s) to test: +cj # Vector storage scheme(s) to test: # 'c' = colvec / unit stride; 'j' = colvec / non-unit stride; # 'r' = rowvec / unit stride; 'i' = rowvec / non-unit stride 0 # Test all combinations of storage schemes? diff --git a/testsuite/input.operations b/testsuite/input.operations index ac9298f8b..e3cd20503 100644 --- a/testsuite/input.operations +++ b/testsuite/input.operations @@ -17,16 +17,29 @@ # # ENABLING/DISABLING INDIVIDUAL OPERATION TESTS # Given that an operation's section override switch is set to 1 -# (enabled, whether or not that operation will get tested is determined -# by its local switch. For example, if the level-1v section override is -# set to 1, and there is a 1 on the line marked "addv", then the addv -# operation will be tested. Similarly, a 0 would cause addv to not be -# tested. NOTE: You may ignore the lines marked "test sequential -# front-end." These lines are for future use, to distinguish tests of -# the sequential implementation from tests of the multithreaded -# implementation. For now, BLIS does not contain separate APIs for -# multithreaded execution, even though multithreading is supported. -# So, these should be left set to 1. +# (enabled), whether or not that operation will get tested is +# determined by its local switch. For example, if the level-1v section +# override is set to 1, and there is a 1 on the line marked "addv", +# then the addv operation will be tested. Similarly, a 0 would cause +# addv to not be tested. NOTE: You may ignore the lines marked "test +# sequential front-end." These lines are for future use, to +# distinguish tests of the sequential implementation from tests of +# the multithreaded implementation. For now, BLIS does not contain +# separate APIs for multithreaded execution, even though +# multithreading is supported. So, these should be left set to 1. +# +# ENABLING ONLY SELECT OPERATIONS +# If you would like to enable just a few (or even just one) operation +# without adjusting any section overrides (or individual operation +# switches), change the desired operation switch(es) to 2. This will +# cause any operation that is not set to 2 to be disabled, regardless +# of section override values. For example, setting the axpyv and gemv +# operation switches to 2 will cause the test suite to test ONLY axpyv +# and gemv, even if all other sections and operations are set to 1. +# NOTE: As long as there is at least on operation switch set to 2, no +# other operations will be tested. When you are done testing your +# select operations, you should revert the operation switch(es) back +# to 1. # # CHANGING PROBLEM SIZE/SHAPES TESTED # The problem sizes tested by an operation are determined by the diff --git a/testsuite/src/test_addm.c b/testsuite/src/test_addm.c index fe0f3172a..d4f098ca6 100644 --- a/testsuite/src/test_addm.c +++ b/testsuite/src/test_addm.c @@ -107,7 +107,7 @@ void libblis_test_addm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1m_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_addv.c b/testsuite/src/test_addv.c index 36067b7fc..99206269d 100644 --- a/testsuite/src/test_addv.c +++ b/testsuite/src/test_addv.c @@ -106,7 +106,7 @@ void libblis_test_addv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_amaxv.c b/testsuite/src/test_amaxv.c index bf91d6323..53a0e1e4d 100644 --- a/testsuite/src/test_amaxv.c +++ b/testsuite/src/test_amaxv.c @@ -110,7 +110,7 @@ void libblis_test_amaxv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_axpbyv.c b/testsuite/src/test_axpbyv.c index ff05a0b42..a2304165f 100644 --- a/testsuite/src/test_axpbyv.c +++ b/testsuite/src/test_axpbyv.c @@ -117,7 +117,7 @@ void libblis_test_axpbyv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_axpy2v.c b/testsuite/src/test_axpy2v.c index b41be2673..61d4c7160 100644 --- a/testsuite/src/test_axpy2v.c +++ b/testsuite/src/test_axpy2v.c @@ -117,7 +117,7 @@ void libblis_test_axpy2v if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1f_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_axpyf.c b/testsuite/src/test_axpyf.c index 2bea0a5b4..ca0ac4e7d 100644 --- a/testsuite/src/test_axpyf.c +++ b/testsuite/src/test_axpyf.c @@ -115,7 +115,7 @@ void libblis_test_axpyf if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1f_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_axpym.c b/testsuite/src/test_axpym.c index 896373ed1..37c7b9ae0 100644 --- a/testsuite/src/test_axpym.c +++ b/testsuite/src/test_axpym.c @@ -112,7 +112,7 @@ void libblis_test_axpym if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1m_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_axpyv.c b/testsuite/src/test_axpyv.c index 472798b85..4fed431a6 100644 --- a/testsuite/src/test_axpyv.c +++ b/testsuite/src/test_axpyv.c @@ -112,7 +112,7 @@ void libblis_test_axpyv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_copym.c b/testsuite/src/test_copym.c index 6993fd302..3db4e28d7 100644 --- a/testsuite/src/test_copym.c +++ b/testsuite/src/test_copym.c @@ -106,7 +106,7 @@ void libblis_test_copym if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1m_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_copyv.c b/testsuite/src/test_copyv.c index 5029227d6..0e946f4b1 100644 --- a/testsuite/src/test_copyv.c +++ b/testsuite/src/test_copyv.c @@ -106,7 +106,7 @@ void libblis_test_copyv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_dotaxpyv.c b/testsuite/src/test_dotaxpyv.c index 7a14d32f8..318cf6569 100644 --- a/testsuite/src/test_dotaxpyv.c +++ b/testsuite/src/test_dotaxpyv.c @@ -119,7 +119,7 @@ void libblis_test_dotaxpyv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1f_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_dotv.c b/testsuite/src/test_dotv.c index ece73cdb2..401458c5a 100644 --- a/testsuite/src/test_dotv.c +++ b/testsuite/src/test_dotv.c @@ -108,7 +108,7 @@ void libblis_test_dotv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_dotxaxpyf.c b/testsuite/src/test_dotxaxpyf.c index 4ebcc6123..20589bd6c 100644 --- a/testsuite/src/test_dotxaxpyf.c +++ b/testsuite/src/test_dotxaxpyf.c @@ -125,7 +125,7 @@ void libblis_test_dotxaxpyf if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1f_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_dotxf.c b/testsuite/src/test_dotxf.c index 130160a6a..3dbd2c641 100644 --- a/testsuite/src/test_dotxf.c +++ b/testsuite/src/test_dotxf.c @@ -117,7 +117,7 @@ void libblis_test_dotxf if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1f_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_dotxv.c b/testsuite/src/test_dotxv.c index e394cf0ac..d9fd2dc24 100644 --- a/testsuite/src/test_dotxv.c +++ b/testsuite/src/test_dotxv.c @@ -113,7 +113,7 @@ void libblis_test_dotxv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_gemm.c b/testsuite/src/test_gemm.c index 89a8bd7c3..7066e316f 100644 --- a/testsuite/src/test_gemm.c +++ b/testsuite/src/test_gemm.c @@ -119,7 +119,7 @@ void libblis_test_gemm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_gemm_ukr.c b/testsuite/src/test_gemm_ukr.c index 07a56c97c..110e6a9ba 100644 --- a/testsuite/src/test_gemm_ukr.c +++ b/testsuite/src/test_gemm_ukr.c @@ -120,7 +120,7 @@ void libblis_test_gemm_ukr if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3ukr_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_gemmtrsm_ukr.c b/testsuite/src/test_gemmtrsm_ukr.c index 3d9c61a89..c2e72bf8f 100644 --- a/testsuite/src/test_gemmtrsm_ukr.c +++ b/testsuite/src/test_gemmtrsm_ukr.c @@ -135,7 +135,7 @@ void libblis_test_gemmtrsm_ukr if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3ukr_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_gemv.c b/testsuite/src/test_gemv.c index b254a861c..87dcce30b 100644 --- a/testsuite/src/test_gemv.c +++ b/testsuite/src/test_gemv.c @@ -116,7 +116,7 @@ void libblis_test_gemv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_ger.c b/testsuite/src/test_ger.c index fc7944f52..263236063 100644 --- a/testsuite/src/test_ger.c +++ b/testsuite/src/test_ger.c @@ -114,7 +114,7 @@ void libblis_test_ger if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_hemm.c b/testsuite/src/test_hemm.c index 1b4231ba8..94f2fb611 100644 --- a/testsuite/src/test_hemm.c +++ b/testsuite/src/test_hemm.c @@ -122,7 +122,7 @@ void libblis_test_hemm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_hemv.c b/testsuite/src/test_hemv.c index 6ab6fa11f..0cd54f114 100644 --- a/testsuite/src/test_hemv.c +++ b/testsuite/src/test_hemv.c @@ -117,7 +117,7 @@ void libblis_test_hemv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_her.c b/testsuite/src/test_her.c index 37ec26c1d..07f31f6e9 100644 --- a/testsuite/src/test_her.c +++ b/testsuite/src/test_her.c @@ -114,7 +114,7 @@ void libblis_test_her if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_her2.c b/testsuite/src/test_her2.c index d3660d7c2..abe3d7ec6 100644 --- a/testsuite/src/test_her2.c +++ b/testsuite/src/test_her2.c @@ -116,7 +116,7 @@ void libblis_test_her2 if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_her2k.c b/testsuite/src/test_her2k.c index 95d0dbf72..426762b2c 100644 --- a/testsuite/src/test_her2k.c +++ b/testsuite/src/test_her2k.c @@ -120,7 +120,7 @@ void libblis_test_her2k if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_herk.c b/testsuite/src/test_herk.c index 37853efb7..2db95fd9a 100644 --- a/testsuite/src/test_herk.c +++ b/testsuite/src/test_herk.c @@ -118,7 +118,7 @@ void libblis_test_herk if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_libblis.c b/testsuite/src/test_libblis.c index 3aa261b87..08b48c7e5 100644 --- a/testsuite/src/test_libblis.c +++ b/testsuite/src/test_libblis.c @@ -204,9 +204,10 @@ void libblis_test_read_ops_file( char* input_filename, test_ops_t* ops ) input_stream = fopen( input_filename, "rb" ); libblis_test_fopen_check_stream( input_filename, input_stream ); - // Begin reading operations input file. + // Initialize the individual override field to FALSE. + ops->indiv_over = FALSE; - // dimensions n_param operation + // Begin reading operations input file. // Section overrides libblis_test_read_section_override( ops, input_stream, &(ops->util_over) ); @@ -217,6 +218,8 @@ void libblis_test_read_ops_file( char* input_filename, test_ops_t* ops ) libblis_test_read_section_override( ops, input_stream, &(ops->l3ukr_over) ); libblis_test_read_section_override( ops, input_stream, &(ops->l3_over) ); + // dimensions n_param operation + // Utility operations libblis_test_read_op_info( ops, input_stream, BLIS_NOID, BLIS_TEST_DIMS_M, 0, &(ops->randv) ); libblis_test_read_op_info( ops, input_stream, BLIS_NOID, BLIS_TEST_DIMS_MN, 0, &(ops->randm) ); @@ -489,6 +492,12 @@ void libblis_test_read_op_info( test_ops_t* ops, libblis_test_read_next_line( buffer, input_stream ); sscanf( buffer, "%d ", &(op->op_switch) ); + // Check the op_switch for the individual override value. + if ( op->op_switch == ENABLE_ONLY ) + { + ops->indiv_over = TRUE; + } + // Read the line for the sequential front-end/micro-kernel interface. libblis_test_read_next_line( buffer, input_stream ); sscanf( buffer, "%d ", &(op->front_seq) ); @@ -2414,3 +2423,26 @@ void libblis_test_check_empty_problem( obj_t* c, double* perf, double* resid ) } } + + +int libblis_test_op_is_disabled( test_op_t* op ) +{ + int r_val; + + // If there was at least one individual override, then an op test is + // disabled if it is NOT equal to ENABLE_ONLY. If there were no + // individual overrides, then an op test is disabled if it is equal + // to DISABLE_ALL. + if ( op->ops->indiv_over == TRUE ) + { + if ( op->op_switch != ENABLE_ONLY ) r_val = TRUE; + else r_val = FALSE; + } + else // if ( op->ops->indiv_over == FALSE ) + { + if ( op->op_switch == DISABLE_ALL ) r_val = TRUE; + else r_val = FALSE; + } + + return r_val; +} diff --git a/testsuite/src/test_libblis.h b/testsuite/src/test_libblis.h index 6ecc72d56..69b51e333 100644 --- a/testsuite/src/test_libblis.h +++ b/testsuite/src/test_libblis.h @@ -90,6 +90,7 @@ #define SPECIFY 1 #define DISABLE 0 #define ENABLE 1 +#define ENABLE_ONLY 2 #define MAX_PARAM_VALS_PER_TYPE 4 @@ -200,6 +201,9 @@ typedef struct typedef struct test_ops_s { + // individual override + int indiv_over; + // section overrides int util_over; int l1v_over; @@ -424,6 +428,7 @@ void libblis_test_parse_command_line( int argc, char** argv ); // --- Miscellaneous --- void libblis_test_check_empty_problem( obj_t* c, double* perf, double* resid ); +int libblis_test_op_is_disabled( test_op_t* op ); // diff --git a/testsuite/src/test_normfm.c b/testsuite/src/test_normfm.c index b0b4735ca..7300b96a0 100644 --- a/testsuite/src/test_normfm.c +++ b/testsuite/src/test_normfm.c @@ -105,7 +105,7 @@ void libblis_test_normfm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1m_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_normfv.c b/testsuite/src/test_normfv.c index a4de1f882..b5c101976 100644 --- a/testsuite/src/test_normfv.c +++ b/testsuite/src/test_normfv.c @@ -105,7 +105,7 @@ void libblis_test_normfv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_randm.c b/testsuite/src/test_randm.c index 55e3920be..7195a1b82 100644 --- a/testsuite/src/test_randm.c +++ b/testsuite/src/test_randm.c @@ -102,7 +102,7 @@ void libblis_test_randm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->util_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_randv.c b/testsuite/src/test_randv.c index 776d4c647..712b3dcca 100644 --- a/testsuite/src/test_randv.c +++ b/testsuite/src/test_randv.c @@ -102,7 +102,7 @@ void libblis_test_randv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->util_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_scal2m.c b/testsuite/src/test_scal2m.c index 8e1257f25..4deca8eb0 100644 --- a/testsuite/src/test_scal2m.c +++ b/testsuite/src/test_scal2m.c @@ -111,7 +111,7 @@ void libblis_test_scal2m if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1m_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_scal2v.c b/testsuite/src/test_scal2v.c index 9620754f2..f7d2d96e7 100644 --- a/testsuite/src/test_scal2v.c +++ b/testsuite/src/test_scal2v.c @@ -111,7 +111,7 @@ void libblis_test_scal2v if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_scalm.c b/testsuite/src/test_scalm.c index 3d59e3bd0..db2d6dbe6 100644 --- a/testsuite/src/test_scalm.c +++ b/testsuite/src/test_scalm.c @@ -107,7 +107,7 @@ void libblis_test_scalm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1m_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_scalv.c b/testsuite/src/test_scalv.c index df10e33a9..83b9492f8 100644 --- a/testsuite/src/test_scalv.c +++ b/testsuite/src/test_scalv.c @@ -108,7 +108,7 @@ void libblis_test_scalv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_setm.c b/testsuite/src/test_setm.c index a077baee3..34fe73931 100644 --- a/testsuite/src/test_setm.c +++ b/testsuite/src/test_setm.c @@ -104,7 +104,7 @@ void libblis_test_setm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1m_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_setv.c b/testsuite/src/test_setv.c index 459eea6aa..e72af94e1 100644 --- a/testsuite/src/test_setv.c +++ b/testsuite/src/test_setv.c @@ -104,7 +104,7 @@ void libblis_test_setv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_subm.c b/testsuite/src/test_subm.c index 8e98e7e6c..d695d84a5 100644 --- a/testsuite/src/test_subm.c +++ b/testsuite/src/test_subm.c @@ -107,7 +107,7 @@ void libblis_test_subm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1m_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_subv.c b/testsuite/src/test_subv.c index c9732ad94..cfed7e4fa 100644 --- a/testsuite/src/test_subv.c +++ b/testsuite/src/test_subv.c @@ -107,7 +107,7 @@ void libblis_test_subv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_symm.c b/testsuite/src/test_symm.c index 13396d849..75e7fb23a 100644 --- a/testsuite/src/test_symm.c +++ b/testsuite/src/test_symm.c @@ -122,7 +122,7 @@ void libblis_test_symm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_symv.c b/testsuite/src/test_symv.c index 6a6165a8d..67bade9a0 100644 --- a/testsuite/src/test_symv.c +++ b/testsuite/src/test_symv.c @@ -117,7 +117,7 @@ void libblis_test_symv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_syr.c b/testsuite/src/test_syr.c index 525460f91..9b0686da8 100644 --- a/testsuite/src/test_syr.c +++ b/testsuite/src/test_syr.c @@ -114,7 +114,7 @@ void libblis_test_syr if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_syr2.c b/testsuite/src/test_syr2.c index 33bf6b536..898cf7465 100644 --- a/testsuite/src/test_syr2.c +++ b/testsuite/src/test_syr2.c @@ -116,7 +116,7 @@ void libblis_test_syr2 if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_syr2k.c b/testsuite/src/test_syr2k.c index cdb4a185e..2c0879880 100644 --- a/testsuite/src/test_syr2k.c +++ b/testsuite/src/test_syr2k.c @@ -120,7 +120,7 @@ void libblis_test_syr2k if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_syrk.c b/testsuite/src/test_syrk.c index e13da6543..15b47ce40 100644 --- a/testsuite/src/test_syrk.c +++ b/testsuite/src/test_syrk.c @@ -118,7 +118,7 @@ void libblis_test_syrk if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_trmm.c b/testsuite/src/test_trmm.c index 4099806d3..1900309d6 100644 --- a/testsuite/src/test_trmm.c +++ b/testsuite/src/test_trmm.c @@ -118,7 +118,7 @@ void libblis_test_trmm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_trmm3.c b/testsuite/src/test_trmm3.c index 7ce850282..db878fbd7 100644 --- a/testsuite/src/test_trmm3.c +++ b/testsuite/src/test_trmm3.c @@ -122,7 +122,7 @@ void libblis_test_trmm3 if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_trmv.c b/testsuite/src/test_trmv.c index d69224a4f..5760b3f67 100644 --- a/testsuite/src/test_trmv.c +++ b/testsuite/src/test_trmv.c @@ -113,7 +113,7 @@ void libblis_test_trmv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_trsm.c b/testsuite/src/test_trsm.c index 0fbc26860..3c7fcb1ef 100644 --- a/testsuite/src/test_trsm.c +++ b/testsuite/src/test_trsm.c @@ -118,7 +118,7 @@ void libblis_test_trsm if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_trsm_ukr.c b/testsuite/src/test_trsm_ukr.c index 2f2dd6cc0..a797debea 100644 --- a/testsuite/src/test_trsm_ukr.c +++ b/testsuite/src/test_trsm_ukr.c @@ -118,7 +118,7 @@ void libblis_test_trsm_ukr if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l3ukr_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_trsv.c b/testsuite/src/test_trsv.c index a9f243103..0dd303e55 100644 --- a/testsuite/src/test_trsv.c +++ b/testsuite/src/test_trsv.c @@ -113,7 +113,7 @@ void libblis_test_trsv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l2_over == DISABLE_ALL ) return; // Call dependencies first. diff --git a/testsuite/src/test_xpbyv.c b/testsuite/src/test_xpbyv.c index 46f79c3ea..cc3d21b09 100644 --- a/testsuite/src/test_xpbyv.c +++ b/testsuite/src/test_xpbyv.c @@ -111,7 +111,7 @@ void libblis_test_xpbyv if ( op->test_done == TRUE ) return; // Return early if operation is disabled. - if ( op->op_switch == DISABLE_ALL || + if ( libblis_test_op_is_disabled( op ) || op->ops->l1v_over == DISABLE_ALL ) return; // Call dependencies first.