From a32aa4b33dcaa7ffc7ef980ffbb9c4306c61fa5b Mon Sep 17 00:00:00 2001 From: Simon Maertens Date: Mon, 4 May 2026 15:05:05 +0200 Subject: [PATCH] Added _64 suffixed CBLAS tests Co-authored-by: Copilot --- CBLAS/testing/CMakeLists.txt | 99 ++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 45 deletions(-) diff --git a/CBLAS/testing/CMakeLists.txt b/CBLAS/testing/CMakeLists.txt index ab41d8db2..60309125e 100644 --- a/CBLAS/testing/CMakeLists.txt +++ b/CBLAS/testing/CMakeLists.txt @@ -3,7 +3,7 @@ # ####################################################################### -macro(add_cblas_test output input target) +function(add_cblas_ctest output input target) if(NOT "${input}" STREQUAL "") set(TEST_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/${input}") endif() @@ -24,10 +24,10 @@ macro(add_cblas_test output input target) -DINTDIR=${CMAKE_CFG_INTDIR} -P "${LAPACK_SOURCE_DIR}/TESTING/runtest.cmake") endif() -endmacro() +endfunction() -macro(configure_cblas_test_target target test_sources) - add_executable(${target} ${test_sources}) +function(add_cblas_test_target target) + add_executable(${target} ${ARGN}) if(HAS_ATTRIBUTE_WEAK_SUPPORT) target_compile_definitions(${target} PRIVATE HAS_ATTRIBUTE_WEAK_SUPPORT) @@ -38,64 +38,73 @@ macro(configure_cblas_test_target target test_sources) endif() target_link_libraries(${target} PRIVATE ${CBLASLIB}) -endmacro() +endfunction() + +function(add_cblas_test target output input f_source) + set(c_sources ${ARGN}) + + if(BUILD_DEFAULT_API) + add_cblas_test_target(${target} ${f_source} ${c_sources}) + add_cblas_ctest(${output} "${input}" ${target}) + endif() + + if(BUILD_INDEX64_EXT_API) + include(ExtendedAPIHelpers) + generate_64bit_suffixed_sources(${target} f_source f_source_64) + + add_cblas_test_target(${target}_64 ${f_source_64} ${c_sources}) + target_compile_definitions(${target}_64 PRIVATE + "$<$:WeirdNEC>" "$<$:CBLAS_API64>") + target_compile_options(${target}_64 PRIVATE + "$<$:${FOPT_ILP64}>") + + get_filename_component(output_name "${output}" NAME_WLE) + get_filename_component(output_ext "${output}" EXT) + set(output_64 "${output_name}_64${output_ext}") + add_cblas_ctest(${output_64} "${input}" ${target}_64) + endif() +endfunction() # Object files for single precision real -set(STESTL1O c_sblat1.f c_sblas1.c) -set(STESTL2O c_sblat2.f c_sblas2.c c_s2chke.c auxiliary.c c_xerbla.c) -set(STESTL3O c_sblat3.f c_sblas3.c c_s3chke.c auxiliary.c c_xerbla.c) +set(STESTL1O c_sblas1.c) +set(STESTL2O c_sblas2.c c_s2chke.c auxiliary.c c_xerbla.c) +set(STESTL3O c_sblas3.c c_s3chke.c auxiliary.c c_xerbla.c) # Object files for double precision real -set(DTESTL1O c_dblat1.f c_dblas1.c) -set(DTESTL2O c_dblat2.f c_dblas2.c c_d2chke.c auxiliary.c c_xerbla.c) -set(DTESTL3O c_dblat3.f c_dblas3.c c_d3chke.c auxiliary.c c_xerbla.c) +set(DTESTL1O c_dblas1.c) +set(DTESTL2O c_dblas2.c c_d2chke.c auxiliary.c c_xerbla.c) +set(DTESTL3O c_dblas3.c c_d3chke.c auxiliary.c c_xerbla.c) # Object files for single precision complex -set(CTESTL1O c_cblat1.f c_cblas1.c) -set(CTESTL2O c_cblat2.f c_cblas2.c c_c2chke.c auxiliary.c c_xerbla.c) -set(CTESTL3O c_cblat3.f c_cblas3.c c_c3chke.c auxiliary.c c_xerbla.c) +set(CTESTL1O c_cblas1.c) +set(CTESTL2O c_cblas2.c c_c2chke.c auxiliary.c c_xerbla.c) +set(CTESTL3O c_cblas3.c c_c3chke.c auxiliary.c c_xerbla.c) # Object files for double precision complex -set(ZTESTL1O c_zblat1.f c_zblas1.c) -set(ZTESTL2O c_zblat2.f c_zblas2.c c_z2chke.c auxiliary.c c_xerbla.c) -set(ZTESTL3O c_zblat3.f c_zblas3.c c_z3chke.c auxiliary.c c_xerbla.c) +set(ZTESTL1O c_zblas1.c) +set(ZTESTL2O c_zblas2.c c_z2chke.c auxiliary.c c_xerbla.c) +set(ZTESTL3O c_zblas3.c c_z3chke.c auxiliary.c c_xerbla.c) if(BUILD_SINGLE) - configure_cblas_test_target(xscblat1 "${STESTL1O}") - configure_cblas_test_target(xscblat2 "${STESTL2O}") - configure_cblas_test_target(xscblat3 "${STESTL3O}") - - add_cblas_test(stest1.out "" xscblat1) - add_cblas_test(stest2.out sin2 xscblat2) - add_cblas_test(stest3.out sin3 xscblat3) + add_cblas_test(xscblat1 stest1.out "" c_sblat1.f ${STESTL1O}) + add_cblas_test(xscblat2 stest2.out sin2 c_sblat2.f ${STESTL2O}) + add_cblas_test(xscblat3 stest3.out sin3 c_sblat3.f ${STESTL3O}) endif() if(BUILD_DOUBLE) - configure_cblas_test_target(xdcblat1 "${DTESTL1O}") - configure_cblas_test_target(xdcblat2 "${DTESTL2O}") - configure_cblas_test_target(xdcblat3 "${DTESTL3O}") - - add_cblas_test(dtest1.out "" xdcblat1) - add_cblas_test(dtest2.out din2 xdcblat2) - add_cblas_test(dtest3.out din3 xdcblat3) + add_cblas_test(xdcblat1 dtest1.out "" c_dblat1.f ${DTESTL1O}) + add_cblas_test(xdcblat2 dtest2.out din2 c_dblat2.f ${DTESTL2O}) + add_cblas_test(xdcblat3 dtest3.out din3 c_dblat3.f ${DTESTL3O}) endif() if(BUILD_COMPLEX) - configure_cblas_test_target(xccblat1 "${CTESTL1O}") - configure_cblas_test_target(xccblat2 "${CTESTL2O}") - configure_cblas_test_target(xccblat3 "${CTESTL3O}") - - add_cblas_test(ctest1.out "" xccblat1) - add_cblas_test(ctest2.out cin2 xccblat2) - add_cblas_test(ctest3.out cin3 xccblat3) + add_cblas_test(xccblat1 ctest1.out "" c_cblat1.f ${CTESTL1O}) + add_cblas_test(xccblat2 ctest2.out cin2 c_cblat2.f ${CTESTL2O}) + add_cblas_test(xccblat3 ctest3.out cin3 c_cblat3.f ${CTESTL3O}) endif() if(BUILD_COMPLEX16) - configure_cblas_test_target(xzcblat1 "${ZTESTL1O}") - configure_cblas_test_target(xzcblat2 "${ZTESTL2O}") - configure_cblas_test_target(xzcblat3 "${ZTESTL3O}") - - add_cblas_test(ztest1.out "" xzcblat1) - add_cblas_test(ztest2.out zin2 xzcblat2) - add_cblas_test(ztest3.out zin3 xzcblat3) + add_cblas_test(xzcblat1 ztest1.out "" c_zblat1.f ${ZTESTL1O}) + add_cblas_test(xzcblat2 ztest2.out zin2 c_zblat2.f ${ZTESTL2O}) + add_cblas_test(xzcblat3 ztest3.out zin3 c_zblat3.f ${ZTESTL3O}) endif()