|
|
|
@@ -5,21 +5,13 @@ if get_option('exprecision') |
|
|
|
endif |
|
|
|
complex_kinds = ['c', 'z', 'x'] |
|
|
|
extended_kinds = ['dx', 'bf16'] |
|
|
|
_rules = { |
|
|
|
's': ['FLOAT'], |
|
|
|
'd': ['DOUBLE'], |
|
|
|
'q': ['QUAD_PRECISION'], |
|
|
|
'c': ['COMPLEX'], |
|
|
|
'dx': ['XDOUBLE'], |
|
|
|
'bf19': ['BFLOAT16'], |
|
|
|
} |
|
|
|
|
|
|
|
blas_roots = [] |
|
|
|
blas1_roots = [ |
|
|
|
# These don't exist as roots. |
|
|
|
# ismax amax isamax amin ismin isamin |
|
|
|
# TODO: Why is dsdot in sblas1objs!? |
|
|
|
# 'axpy', 'swap', 'copy', 'scal', 'dot', 'dsdot', 'asum', 'sum', 'nrm2', 'max', |
|
|
|
'axpy', 'swap', 'copy', 'scal', 'dot', 'dsdot', 'asum', 'sum', 'nrm2', 'max', |
|
|
|
'rot'#, 'rotg', 'rotm', 'rotmg', 'axpby', |
|
|
|
] |
|
|
|
blas2_roots = [ |
|
|
|
@@ -32,6 +24,153 @@ blas3_roots = [ |
|
|
|
'gemmt' |
|
|
|
] |
|
|
|
|
|
|
|
_blas_roots = [ |
|
|
|
# Level 1 |
|
|
|
{ 'base': '?asum', '_types': ['s', 'd', 'q', 'sc', 'dz', 'qx'], |
|
|
|
'fname': 'asum.c', |
|
|
|
}, |
|
|
|
{ 'base': '?sum', '_types': ['s', 'd', 'q', 'sc', 'dz', 'qx'], |
|
|
|
'fname': 'sum.c', |
|
|
|
}, |
|
|
|
{ 'base': '?amax', '_types': ['s', 'd', 'q', 'sc', 'dz', 'qx'], |
|
|
|
'fname': 'max.c', 'def': [ 'USE_ABS' ], 'undef': [ 'USE_MIN' ], |
|
|
|
}, |
|
|
|
{ 'base': '?amin', '_types': ['s', 'd', 'q', 'sc', 'dz', 'qx'], |
|
|
|
'fname': 'max.c', 'def': [ 'USE_ABS', 'USE_MIN' ], 'undef': [ ], |
|
|
|
}, |
|
|
|
{ 'base': '?max', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'max.c', 'def': [ ], 'undef': [ 'USE_ABS', 'USE_MIN' ], |
|
|
|
}, |
|
|
|
{ 'base': '?min', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'max.c', 'def': [ 'USE_MIN' ], 'undef': [ 'USE_ABS' ], |
|
|
|
}, |
|
|
|
{ 'base': '?axpy', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'axpy.c', |
|
|
|
}, |
|
|
|
{ 'base': '?axpy', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zaxpy.c', |
|
|
|
}, |
|
|
|
{ 'base': '?axpyc', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zaxpy.c', 'def': [ 'CONJ' ], 'undef': [ ], |
|
|
|
}, |
|
|
|
{ 'base': '?copy', '_types': ['s', 'd', 'q', 'c', 'z', 'x'], |
|
|
|
'fname': 'copy.c', |
|
|
|
}, |
|
|
|
{ 'base': '?dot', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'dot.c', |
|
|
|
}, |
|
|
|
{ 'base': '?dotu', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zdot.c', 'def': [ ], 'undef': [ 'CONJ' ], |
|
|
|
}, |
|
|
|
{ 'base': '?dotc', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zdot.c', 'def': [ 'CONJ' ], 'undef': [ ], |
|
|
|
}, |
|
|
|
{ 'base': '?nrm2', '_types': ['s', 'd', 'q', 'sc', 'dz', 'qx'], |
|
|
|
'fname': 'nrm2.c', |
|
|
|
}, |
|
|
|
{ 'base': '?rot', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'rot.c', |
|
|
|
}, |
|
|
|
{ 'base': '?rot', '_types': ['cs', 'zd', 'xq'], |
|
|
|
'fname': 'zrot.c', |
|
|
|
}, |
|
|
|
{ 'base': '?rotm', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'rotm.c', |
|
|
|
}, |
|
|
|
{ 'base': '?rotmg', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'rotmg.c', |
|
|
|
}, |
|
|
|
{ 'base': '?rotg', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'rotg.c', |
|
|
|
}, |
|
|
|
{ 'base': '?rotg', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zrotg.c', |
|
|
|
}, |
|
|
|
{ 'base': '?scal', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'scal.c', |
|
|
|
}, |
|
|
|
{ 'base': '?scal', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zscal.c', |
|
|
|
}, |
|
|
|
{ 'base': '?scal', '_types': ['cs', 'zd', 'xq'], |
|
|
|
'fname': 'zscal.c', 'def': [ 'SSCAL' ], 'undef': [ ], |
|
|
|
}, |
|
|
|
{ 'base': '?swap', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'swap.c', |
|
|
|
}, |
|
|
|
{ 'base': '?swap', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zswap.c', |
|
|
|
}, |
|
|
|
{ 'base': '?dsdot', '_types': ['s'], |
|
|
|
'fname': 'sdsdot.c', |
|
|
|
}, |
|
|
|
{ 'base': '?dsdot', '_types': [''], |
|
|
|
'fname': 'dsdot.c', |
|
|
|
}, |
|
|
|
# TODO: Handle BFLOAT16 Makefile 784:795 |
|
|
|
{ 'base': 'i?max', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'imax.c', 'def': [ ], 'undef': [ 'USE_ABS', 'USE_MIN' ], |
|
|
|
}, |
|
|
|
{ 'base': 'i?amax', '_types': ['s', 'd', 'q', 'c', 'z', 'x'], |
|
|
|
'fname': 'imax.c', 'def': [ 'USE_ABS' ], 'undef': [ 'USE_MIN' ], |
|
|
|
}, |
|
|
|
{ 'base': 'i?amin', '_types': ['s', 'd', 'c', 'z', 'x'], |
|
|
|
'fname': 'imax.c', 'def': [ 'USE_ABS', 'USE_MIN' ], 'undef': [ ], |
|
|
|
}, |
|
|
|
{ 'base': 'i?min', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'imax.c', 'def': [ 'USE_MIN' ], 'undef': [ 'USE_ABS' ], |
|
|
|
}, |
|
|
|
# Level 2 |
|
|
|
{ 'base': '?ger', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'ger.c', |
|
|
|
}, |
|
|
|
{ 'base': '?geru', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zger.c', 'def': [ ], 'undef': [ 'CONJ' ], |
|
|
|
}, |
|
|
|
{ 'base': '?gerc', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zger.c', 'def': [ 'CONJ' ], 'undef': [ ], |
|
|
|
}, |
|
|
|
# TODO: Handle BFLOAT16 Makefile 941:944 |
|
|
|
# TODO: Handle Netlib_gemv Makefile 946:958 |
|
|
|
{ 'base': '?gemv', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'gemv.c', |
|
|
|
}, |
|
|
|
{ 'base': '?gemv', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zgemv.c', |
|
|
|
}, |
|
|
|
{ 'base': '?trmv', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'trmv.c', |
|
|
|
}, |
|
|
|
{ 'base': '?trmv', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'ztrmv.c', |
|
|
|
}, |
|
|
|
{ 'base': '?trsv', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'trsv.c', |
|
|
|
}, |
|
|
|
{ 'base': '?trsv', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'ztrsv.c', |
|
|
|
}, |
|
|
|
# TODO: Handle NO_LAPACK |
|
|
|
{ 'base': '?symv', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'symv.c', |
|
|
|
}, |
|
|
|
{ 'base': '?symv', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zsymv.c', |
|
|
|
}, |
|
|
|
{ 'base': '?syr', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'syr.c', |
|
|
|
}, |
|
|
|
{ 'base': '?syr', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zsyr.c', |
|
|
|
}, |
|
|
|
{ 'base': '?syr2', '_types': ['s', 'd', 'q'], |
|
|
|
'fname': 'syr2.c', |
|
|
|
}, |
|
|
|
{ 'base': '?syr2', '_types': ['c', 'z', 'x'], |
|
|
|
'fname': 'zsyr2.c', |
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
# addl_srcs = { |
|
|
|
# 'symm': '-DHEMM' |
|
|
|
# } |
|
|
|
|