mirror of
https://github.com/amd/blis.git
synced 2026-06-29 18:57:23 +00:00
Cleanups to testsuite, input.operations format.
Details: - Removed the line in each operation entry in input.operations titled "test sequential front-end" and the corresponding support for the lines in the testsuite input parsing code. This line was included in the some of the earliest versions of the testsuite, back when I intended to eventually have separate multithreaded APIs. Specifically, I envisioned that multithreaded and sequential testing could be enabled or disabled on an operation level. However, BLIS evolved in a different direction and still does not have multithreaded-specific APIs (even if it will eventually someday). But even if it did have such APIs, I doubt I would allow the user to enable/disable them on an operation level. Thus, this was a zombie future parameter that was never used and never made sense to begin with. The one instance of the front_seq variable, used in the various libblis_test_<operation>() functions to guard the call to the operation test driver, that remains was commented out instead of deleted so that someday it could be easily changed via sed, if desired. - Various minor cleanups to the testsuite code, including consolidating use of DISABLE and DISABLE_ALL and reexpressing certain conditional expressions in the libblis_test_<operation>() functions in terms of boolean functions.
This commit is contained in:
@@ -21,12 +21,7 @@
|
||||
# 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.
|
||||
# addv to not be tested.
|
||||
#
|
||||
# ENABLING ONLY SELECT OPERATIONS
|
||||
# If you would like to enable just a few (or even just one) operation
|
||||
@@ -105,75 +100,60 @@
|
||||
# --- Utility --------------------------------------------------------------
|
||||
|
||||
1 # randv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
|
||||
1 # randm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
|
||||
|
||||
# --- Level-1v -------------------------------------------------------------
|
||||
|
||||
1 # addv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # amaxv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
|
||||
1 # axpbyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # axpyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # copyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # dotv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conjx conjy
|
||||
|
||||
1 # dotxv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conjx conjy
|
||||
|
||||
1 # normfv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
|
||||
1 # scalv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjbeta
|
||||
|
||||
1 # scal2v
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # setv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
|
||||
1 # subv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # xpbyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
@@ -181,40 +161,32 @@
|
||||
# --- Level-1m -------------------------------------------------------------
|
||||
|
||||
1 # addm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
1 # axpym
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
1 # copym
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
1 # normfm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
|
||||
1 # scalm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: conjbeta
|
||||
|
||||
1 # scal2m
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
1 # setm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
|
||||
1 # subm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
@@ -222,27 +194,22 @@
|
||||
# --- Level-1f kernels -----------------------------------------------------
|
||||
|
||||
1 # axpy2v
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conjx conjy
|
||||
|
||||
1 # dotaxpyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: conjxt conjx conjy
|
||||
|
||||
1 # axpyf
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conja conjx
|
||||
|
||||
1 # dotxf
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conjat conjx
|
||||
|
||||
1 # dotxaxpyf
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
???? # parameters: conjat conja conjw conjx
|
||||
|
||||
@@ -250,52 +217,42 @@
|
||||
# --- Level-2 --------------------------------------------------------------
|
||||
|
||||
1 # gemv
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
?? # parameters: transa conjx
|
||||
|
||||
1 # ger
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
?? # parameters: conjx conjy
|
||||
|
||||
1 # hemv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploa conja conjx
|
||||
|
||||
1 # her
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: uploc conjx
|
||||
|
||||
1 # her2
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploc conjx conjy
|
||||
|
||||
1 # symv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploa conja conjx
|
||||
|
||||
1 # syr
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: uploc conjx
|
||||
|
||||
1 # syr2
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploc conjx conjy
|
||||
|
||||
1 # trmv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploa transa diaga
|
||||
|
||||
1 # trsv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploa transa diaga
|
||||
|
||||
@@ -303,15 +260,12 @@
|
||||
# --- Level-3 micro-kernels ------------------------------------------------
|
||||
|
||||
1 # gemm
|
||||
1 # test sequential micro-kernel
|
||||
-1 # dimensions: k
|
||||
|
||||
1 # trsm
|
||||
1 # test sequential micro-kernel
|
||||
? # parameters: uploa
|
||||
|
||||
1 # gemmtrsm
|
||||
1 # test sequential micro-kernel
|
||||
-1 # dimensions: k
|
||||
? # parameters: uploa
|
||||
|
||||
@@ -319,52 +273,42 @@
|
||||
# --- Level-3 --------------------------------------------------------------
|
||||
|
||||
1 # gemm
|
||||
1 # test sequential front-end
|
||||
-1 -1 -1 # dimensions: m n k
|
||||
?? # parameters: transa transb
|
||||
|
||||
1 # hemm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
???? # parameters: side uploa conja transb
|
||||
|
||||
1 # herk
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m k
|
||||
?? # parameters: uploc transa
|
||||
|
||||
1 # her2k
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m k
|
||||
??? # parameters: uploc transa transb
|
||||
|
||||
1 # symm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
???? # parameters: side uploa conja transb
|
||||
|
||||
1 # syrk
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m k
|
||||
?? # parameters: uploc transa
|
||||
|
||||
1 # syr2k
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m k
|
||||
??? # parameters: uploc transa transb
|
||||
|
||||
1 # trmm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
???? # parameters: side uploa transa diaga
|
||||
|
||||
1 # trmm3
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
????n # parameters: side uploa transa diaga transb
|
||||
|
||||
1 # trsm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
???? # parameters: side uploa transa diaga
|
||||
|
||||
|
||||
@@ -21,12 +21,7 @@
|
||||
# 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.
|
||||
# addv to not be tested.
|
||||
#
|
||||
# ENABLING ONLY SELECT OPERATIONS
|
||||
# If you would like to enable just a few (or even just one) operation
|
||||
@@ -105,75 +100,60 @@
|
||||
# --- Utility --------------------------------------------------------------
|
||||
|
||||
1 # randv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
|
||||
1 # randm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
|
||||
|
||||
# --- Level-1v -------------------------------------------------------------
|
||||
|
||||
1 # addv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # amaxv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
|
||||
1 # axpbyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # axpyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # copyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # dotv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conjx conjy
|
||||
|
||||
1 # dotxv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conjx conjy
|
||||
|
||||
1 # normfv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
|
||||
1 # scalv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjbeta
|
||||
|
||||
1 # scal2v
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # setv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
|
||||
1 # subv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
1 # xpbyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
? # parameters: conjx
|
||||
|
||||
@@ -181,40 +161,32 @@
|
||||
# --- Level-1m -------------------------------------------------------------
|
||||
|
||||
1 # addm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
1 # axpym
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
1 # copym
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
1 # normfm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
|
||||
1 # scalm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: conjbeta
|
||||
|
||||
1 # scal2m
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
1 # setm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
|
||||
1 # subm
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
? # parameters: transa
|
||||
|
||||
@@ -222,27 +194,22 @@
|
||||
# --- Level-1f kernels -----------------------------------------------------
|
||||
|
||||
1 # axpy2v
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conjx conjy
|
||||
|
||||
1 # dotaxpyv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: conjxt conjx conjy
|
||||
|
||||
1 # axpyf
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conja conjx
|
||||
|
||||
1 # dotxf
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: conjat conjx
|
||||
|
||||
1 # dotxaxpyf
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
???? # parameters: conjat conja conjw conjx
|
||||
|
||||
@@ -250,52 +217,42 @@
|
||||
# --- Level-2 --------------------------------------------------------------
|
||||
|
||||
1 # gemv
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
?? # parameters: transa conjx
|
||||
|
||||
1 # ger
|
||||
1 # test sequential front-end
|
||||
-1 -2 # dimensions: m n
|
||||
?? # parameters: conjx conjy
|
||||
|
||||
1 # hemv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploa conja conjx
|
||||
|
||||
1 # her
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: uploc conjx
|
||||
|
||||
1 # her2
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploc conjx conjy
|
||||
|
||||
1 # symv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploa conja conjx
|
||||
|
||||
1 # syr
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
?? # parameters: uploc conjx
|
||||
|
||||
1 # syr2
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploc conjx conjy
|
||||
|
||||
1 # trmv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploa transa diaga
|
||||
|
||||
1 # trsv
|
||||
1 # test sequential front-end
|
||||
-1 # dimensions: m
|
||||
??? # parameters: uploa transa diaga
|
||||
|
||||
@@ -319,52 +276,42 @@
|
||||
# --- Level-3 --------------------------------------------------------------
|
||||
|
||||
1 # gemm
|
||||
1 # test sequential front-end
|
||||
-1 -1 -1 # dimensions: m n k
|
||||
nn # parameters: transa transb
|
||||
|
||||
1 # hemm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
??nn # parameters: side uploa conja transb
|
||||
|
||||
1 # herk
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m k
|
||||
?n # parameters: uploc transa
|
||||
|
||||
1 # her2k
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m k
|
||||
?nn # parameters: uploc transa transb
|
||||
|
||||
1 # symm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
??nn # parameters: side uploa conja transb
|
||||
|
||||
1 # syrk
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m k
|
||||
?n # parameters: uploc transa
|
||||
|
||||
1 # syr2k
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m k
|
||||
?nn # parameters: uploc transa transb
|
||||
|
||||
1 # trmm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
??n? # parameters: side uploa transa diaga
|
||||
|
||||
0 # trmm3
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
??n?n # parameters: side uploa transa diaga transb
|
||||
|
||||
1 # trsm
|
||||
1 # test sequential front-end
|
||||
-1 -1 # dimensions: m n
|
||||
??n? # parameters: side uploa transa diaga
|
||||
|
||||
|
||||
@@ -104,17 +104,17 @@ void libblis_test_addm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1m_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1m_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_addm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -103,17 +103,17 @@ void libblis_test_addv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_addv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -107,17 +107,17 @@ void libblis_test_amaxv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_amaxv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -114,17 +114,17 @@ void libblis_test_axpbyv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_axpbyv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -114,17 +114,17 @@ void libblis_test_axpy2v
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1f_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1f_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_axpy2v_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -112,17 +112,17 @@ void libblis_test_axpyf
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1f_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1f_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_axpyf_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -109,17 +109,17 @@ void libblis_test_axpym
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1m_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1m_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_axpym_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -109,17 +109,17 @@ void libblis_test_axpyv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_axpyv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -103,17 +103,17 @@ void libblis_test_copym
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1m_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1m_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_copym_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -103,17 +103,17 @@ void libblis_test_copyv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_copyv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -116,17 +116,17 @@ void libblis_test_dotaxpyv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1f_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1f_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_dotaxpyv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -105,17 +105,17 @@ void libblis_test_dotv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_dotv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -122,17 +122,17 @@ void libblis_test_dotxaxpyf
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1f_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1f_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_dotxaxpyf_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -114,17 +114,17 @@ void libblis_test_dotxf
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1f_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1f_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_dotxf_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -110,17 +110,17 @@ void libblis_test_dotxv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_dotxv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -116,17 +116,17 @@ void libblis_test_gemm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_gemm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -117,17 +117,17 @@ void libblis_test_gemm_ukr
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3ukr_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3ukr_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_gemm_ukr_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -132,17 +132,17 @@ void libblis_test_gemmtrsm_ukr
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3ukr_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3ukr_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_gemmtrsm_ukr_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -113,17 +113,17 @@ void libblis_test_gemv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_gemv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -111,17 +111,17 @@ void libblis_test_ger
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_ger_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -119,17 +119,17 @@ void libblis_test_hemm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_hemm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -114,17 +114,17 @@ void libblis_test_hemv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_hemv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -111,17 +111,17 @@ void libblis_test_her
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_her_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -113,17 +113,17 @@ void libblis_test_her2
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_her2_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -117,17 +117,17 @@ void libblis_test_her2k
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_her2k_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -115,17 +115,17 @@ void libblis_test_herk
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_herk_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -498,10 +498,6 @@ void libblis_test_read_op_info( test_ops_t* ops,
|
||||
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) );
|
||||
|
||||
op->n_dims = libblis_test_get_n_dims_from_dimset( dimset );
|
||||
op->dimset = dimset;
|
||||
|
||||
@@ -569,12 +565,6 @@ void libblis_test_read_op_info( test_ops_t* ops,
|
||||
|
||||
// Initialize the parent pointer.
|
||||
op->ops = ops;
|
||||
|
||||
// Disable operation if requested.
|
||||
if ( op->op_switch == DISABLE_ALL )
|
||||
{
|
||||
op->front_seq = DISABLE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -975,9 +965,7 @@ void libblis_test_output_op_struct( FILE* os, test_op_t* op, char* op_str )
|
||||
{
|
||||
dimset_t dimset = op->dimset;
|
||||
|
||||
libblis_test_fprintf_c( os, "test %s seq front-end? %d\n", op_str, op->front_seq );
|
||||
|
||||
if ( dimset == BLIS_TEST_DIMS_MNK )
|
||||
if ( dimset == BLIS_TEST_DIMS_MNK )
|
||||
{
|
||||
libblis_test_fprintf_c( os, "%s m n k %d %d %d\n", op_str,
|
||||
op->dim_spec[0], op->dim_spec[1], op->dim_spec[2] );
|
||||
@@ -2434,7 +2422,7 @@ int libblis_test_op_is_disabled( test_op_t* op )
|
||||
// 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.
|
||||
// to DISABLE.
|
||||
if ( op->ops->indiv_over == TRUE )
|
||||
{
|
||||
if ( op->op_switch != ENABLE_ONLY ) r_val = TRUE;
|
||||
@@ -2442,9 +2430,56 @@ int libblis_test_op_is_disabled( test_op_t* op )
|
||||
}
|
||||
else // if ( op->ops->indiv_over == FALSE )
|
||||
{
|
||||
if ( op->op_switch == DISABLE_ALL ) r_val = TRUE;
|
||||
else r_val = FALSE;
|
||||
if ( op->op_switch == DISABLE ) r_val = TRUE;
|
||||
else r_val = FALSE;
|
||||
}
|
||||
|
||||
return r_val;
|
||||
}
|
||||
|
||||
int libblis_test_op_is_done( test_op_t* op )
|
||||
{
|
||||
return op->test_done;
|
||||
}
|
||||
|
||||
int libblis_test_util_is_disabled( test_op_t* op )
|
||||
{
|
||||
if ( op->ops->util_over == DISABLE ) return TRUE;
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
int libblis_test_l1v_is_disabled( test_op_t* op )
|
||||
{
|
||||
if ( op->ops->l1v_over == DISABLE ) return TRUE;
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
int libblis_test_l1m_is_disabled( test_op_t* op )
|
||||
{
|
||||
if ( op->ops->l1m_over == DISABLE ) return TRUE;
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
int libblis_test_l1f_is_disabled( test_op_t* op )
|
||||
{
|
||||
if ( op->ops->l1f_over == DISABLE ) return TRUE;
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
int libblis_test_l2_is_disabled( test_op_t* op )
|
||||
{
|
||||
if ( op->ops->l2_over == DISABLE ) return TRUE;
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
int libblis_test_l3ukr_is_disabled( test_op_t* op )
|
||||
{
|
||||
if ( op->ops->l3ukr_over == DISABLE ) return TRUE;
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
int libblis_test_l3_is_disabled( test_op_t* op )
|
||||
{
|
||||
if ( op->ops->l3_over == DISABLE ) return TRUE;
|
||||
else return FALSE;
|
||||
}
|
||||
|
||||
@@ -86,8 +86,6 @@
|
||||
|
||||
#define SECONDS_TO_SLEEP 3
|
||||
|
||||
#define DISABLE_ALL 0
|
||||
#define SPECIFY 1
|
||||
#define DISABLE 0
|
||||
#define ENABLE 1
|
||||
#define ENABLE_ONLY 2
|
||||
@@ -187,7 +185,9 @@ typedef struct
|
||||
|
||||
opid_t opid;
|
||||
int op_switch;
|
||||
#if 0
|
||||
int front_seq;
|
||||
#endif
|
||||
unsigned int n_dims;
|
||||
dimset_t dimset;
|
||||
int dim_spec[ MAX_NUM_DIMENSIONS ];
|
||||
@@ -430,6 +430,14 @@ void libblis_test_parse_command_line( int argc, char** argv );
|
||||
void libblis_test_check_empty_problem( obj_t* c, double* perf, double* resid );
|
||||
int libblis_test_op_is_disabled( test_op_t* op );
|
||||
|
||||
int libblis_test_op_is_done( test_op_t* op );
|
||||
int libblis_test_util_is_disabled( test_op_t* op );
|
||||
int libblis_test_l1v_is_disabled( test_op_t* op );
|
||||
int libblis_test_l1m_is_disabled( test_op_t* op );
|
||||
int libblis_test_l1f_is_disabled( test_op_t* op );
|
||||
int libblis_test_l2_is_disabled( test_op_t* op );
|
||||
int libblis_test_l3ukr_is_disabled( test_op_t* op );
|
||||
int libblis_test_l3_is_disabled( test_op_t* op );
|
||||
|
||||
//
|
||||
// --- Test module headers -----------------------------------------------------
|
||||
|
||||
@@ -102,17 +102,17 @@ void libblis_test_normfm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1m_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1m_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_normfm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -102,17 +102,17 @@ void libblis_test_normfv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_normfv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -99,17 +99,17 @@ void libblis_test_randm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->util_over == DISABLE_ALL ) return;
|
||||
libblis_test_util_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_randm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -99,17 +99,17 @@ void libblis_test_randv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->util_over == DISABLE_ALL ) return;
|
||||
libblis_test_util_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_randv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -108,17 +108,17 @@ void libblis_test_scal2m
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1m_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1m_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_scal2m_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -108,17 +108,17 @@ void libblis_test_scal2v
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_scal2v_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -104,17 +104,17 @@ void libblis_test_scalm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1m_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1m_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_scalm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -105,17 +105,17 @@ void libblis_test_scalv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_scalv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -101,17 +101,17 @@ void libblis_test_setm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1m_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1m_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_setm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -101,17 +101,17 @@ void libblis_test_setv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_setv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -104,17 +104,17 @@ void libblis_test_subm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1m_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1m_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_subm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -104,17 +104,17 @@ void libblis_test_subv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_subv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -119,17 +119,17 @@ void libblis_test_symm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_symm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -114,17 +114,17 @@ void libblis_test_symv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_symv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -111,17 +111,17 @@ void libblis_test_syr
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_syr_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -113,17 +113,17 @@ void libblis_test_syr2
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_syr2_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -117,17 +117,17 @@ void libblis_test_syr2k
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_syr2k_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -115,17 +115,17 @@ void libblis_test_syrk
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_syrk_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -115,17 +115,17 @@ void libblis_test_trmm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_trmm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -119,17 +119,17 @@ void libblis_test_trmm3
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_trmm3_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -110,17 +110,17 @@ void libblis_test_trmv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_trmv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -115,17 +115,17 @@ void libblis_test_trsm
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_trsm_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -115,17 +115,17 @@ void libblis_test_trsm_ukr
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l3ukr_over == DISABLE_ALL ) return;
|
||||
libblis_test_l3ukr_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_trsm_ukr_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -110,17 +110,17 @@ void libblis_test_trsv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l2_over == DISABLE_ALL ) return;
|
||||
libblis_test_l2_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_trsv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
@@ -108,17 +108,17 @@ void libblis_test_xpbyv
|
||||
{
|
||||
|
||||
// Return early if this test has already been done.
|
||||
if ( op->test_done == TRUE ) return;
|
||||
if ( libblis_test_op_is_done( op ) ) return;
|
||||
|
||||
// Return early if operation is disabled.
|
||||
if ( libblis_test_op_is_disabled( op ) ||
|
||||
op->ops->l1v_over == DISABLE_ALL ) return;
|
||||
libblis_test_l1v_is_disabled( op ) ) return;
|
||||
|
||||
// Call dependencies first.
|
||||
if ( TRUE ) libblis_test_xpbyv_deps( params, op );
|
||||
|
||||
// Execute the test driver for each implementation requested.
|
||||
if ( op->front_seq == ENABLE )
|
||||
//if ( op->front_seq == ENABLE )
|
||||
{
|
||||
libblis_test_op_driver( params,
|
||||
op,
|
||||
|
||||
Reference in New Issue
Block a user