Skip to content

Commit f6513a6

Browse files
authored
Change tester3printf algo (#635)
Co-authored-by: Naoki Shibata <shibatch.sf.net@gmail.com>
1 parent 6588457 commit f6513a6

File tree

11 files changed

+83
-54
lines changed

11 files changed

+83
-54
lines changed

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ set(COSTOVERRIDE_AVX2 2)
146146
set(COSTOVERRIDE_AVX 2)
147147
set(COSTOVERRIDE_NEON32 2)
148148
set(COSTOVERRIDE_NEON32VFPV4 2)
149-
set(COSTOVERRIDE_SVE 10)
150-
set(COSTOVERRIDE_SVENOFMA 10)
149+
set(COSTOVERRIDE_SVE 20)
150+
set(COSTOVERRIDE_SVENOFMA 20)
151151
set(COSTOVERRIDE_RVVM1 10)
152152
set(COSTOVERRIDE_RVVM1NOFMA 10)
153153
set(COSTOVERRIDE_RVVM2 20)
@@ -253,6 +253,7 @@ set(TARGET_MKALIAS "mkalias")
253253
# Defined in src/common/CMakeLists.txt via command add_library
254254
set(TARGET_LIBCOMMON_OBJ "common")
255255
set(TARGET_LIBARRAYMAP_OBJ "arraymap")
256+
set(TARGET_PSHA_OBJ "psha_obj")
256257

257258
# Function used to add an executable that is executed on host
258259
function(add_host_executable TARGETNAME)

Jenkinsfile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,26 @@ pipeline {
110110
}
111111
}
112112

113+
stage('aarch64 linux clang-18') {
114+
agent { label 'aarch64 && ubuntu24 && apple' }
115+
options { skipDefaultCheckout() }
116+
steps {
117+
cleanWs()
118+
checkout scm
119+
sh '''
120+
echo "aarch64 clang-18 on" `hostname`
121+
export CC=clang-18
122+
export CXX=clang++-18
123+
mkdir build
124+
cd build
125+
cmake .. -GNinja -DCMAKE_INSTALL_PREFIX=../../install -DSLEEF_SHOW_CONFIG=1 -DSLEEF_BUILD_DFT=TRUE -DSLEEF_BUILD_QUAD=TRUE -DSLEEF_BUILD_INLINE_HEADERS=TRUE -DSLEEF_ENFORCE_SVE=TRUE -DEMULATOR=qemu-aarch64-static -DSLEEF_ENABLE_TESTER4=True -DSLEEF_ENABLE_TESTER=False
126+
cmake -E time ninja
127+
export CTEST_OUTPUT_ON_FAILURE=TRUE
128+
ctest -j `nproc`
129+
'''
130+
}
131+
}
132+
113133
stage('cross-ppc64el gcc') {
114134
agent { label 'x86_64 && ubuntu24 && cuda' }
115135
steps {

src/common/CMakeLists.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,19 @@ set_target_properties(${TARGET_LIBARRAYMAP_OBJ} PROPERTIES ${COMMON_TARGET_PROPE
2323

2424
add_host_executable("addSuffix" addSuffix.c)
2525
set_target_properties("addSuffix" PROPERTIES C_STANDARD 99)
26+
27+
if (NOT SLEEF_OPENSSL_FOUND)
28+
add_library(${TARGET_PSHA_OBJ} OBJECT psha2_capi.cpp)
29+
else()
30+
# Tests for internal sha256
31+
add_executable(test_psha test_psha2.cpp)
32+
target_link_libraries(test_psha ${SLEEF_OPENSSL_LIBRARIES})
33+
target_include_directories(test_psha PRIVATE ${SLEEF_OPENSSL_INCLUDE_DIR})
34+
add_test(NAME test_psha COMMAND test_psha)
35+
36+
add_executable(test_psha_capi test_psha2.cpp)
37+
target_compile_definitions(test_psha_capi PRIVATE TEST_CAPI=1)
38+
target_link_libraries(test_psha_capi ${SLEEF_OPENSSL_LIBRARIES})
39+
target_include_directories(test_psha_capi PRIVATE ${SLEEF_OPENSSL_INCLUDE_DIR})
40+
add_test(NAME test_psha_capi COMMAND test_psha_capi)
41+
endif()
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
#include <cstdio>
1111
#include <cstdlib>
12+
#include <cstdint>
1213
#include <cstring>
1314
#include <ctime>
1415

@@ -18,7 +19,7 @@ int main(int argc, char **argv) {
1819
bool success = true;
1920

2021
for(int i=0;i<10000;i++) {
21-
int len = rand() % (1 << (rand() % 16));
22+
int len = (rand() + ((int64_t)RAND_MAX + 1) * rand()) % (1 << (1 + (rand() % 18)));
2223
unsigned char *plaintext = (unsigned char *)malloc(len);
2324
for(int i=0;i<len;i++) plaintext[i] = rand() & 0xff;
2425

src/libm-tester/CMakeLists.txt

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,15 @@ endif()
9595

9696
#
9797

98-
function(add_test_with_emu COST CMD)
98+
function(add_test_with_emu C CMD)
9999
if (SDE_COMMAND)
100100
add_test(NAME ${CMD} COMMAND ${SDE_COMMAND} "--" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMD})
101101
elseif(EMULATOR)
102102
add_test(NAME ${CMD} COMMAND ${EMULATOR} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMD})
103103
else()
104104
add_test(NAME ${CMD} COMMAND ${CMD})
105105
endif()
106+
set_tests_properties(${CMD} PROPERTIES COST ${C})
106107
endfunction()
107108

108109
function(add_test_iut IUT C)
@@ -167,10 +168,6 @@ endif()
167168

168169
set(IUT_SRC iutsimd.c ${sleef_SOURCE_DIR}/src/common/main_checkfeature.c testerutil.c)
169170

170-
if (NOT SLEEF_OPENSSL_FOUND)
171-
add_library(obj_psha OBJECT psha2_capi.cpp)
172-
endif()
173-
174171
# Add vector extension `iut`s
175172
macro(test_extension SIMD)
176173
if(COMPILER_SUPPORTS_${SIMD})
@@ -386,7 +383,8 @@ macro(test_extension SIMD)
386383
target_link_libraries(${T} ${TARGET_LIBSLEEF} ${LIBM} ${SLEEF_OPENSSL_LIBRARIES})
387384
target_include_directories(${T} PRIVATE ${SLEEF_OPENSSL_INCLUDE_DIR})
388385
else()
389-
target_link_libraries(${T} ${TARGET_LIBSLEEF} ${LIBM} obj_psha)
386+
target_link_libraries(${T} ${TARGET_LIBSLEEF} ${LIBM} ${TARGET_PSHA_OBJ})
387+
target_include_directories(${T} PRIVATE ${sleef_SOURCE_DIR}/src/common)
390388
endif()
391389

392390
add_dependencies(${T} ${TARGET_HEADERS})
@@ -656,18 +654,3 @@ if (FILECHECK_COMMAND AND COMPILER_SUPPORTS_OPENMP AND SLEEF_ARCH_X86 AND CMAKE_
656654
add_test(NAME testervecabi-sse2 COMMAND sh -c "${CMAKE_C_COMPILER} -Wno-attributes -fopenmp -msse2 -O3 ${CMAKE_CURRENT_SOURCE_DIR}/testervecabi.c -I${sleef_BINARY_DIR}/include -S -o- | ${FILECHECK_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}/testervecabi.c -check-prefix=CHECK-SSE2")
657655
add_test(NAME testervecabi-avx2 COMMAND sh -c "${CMAKE_C_COMPILER} -Wno-attributes -fopenmp -mavx2 -O3 ${CMAKE_CURRENT_SOURCE_DIR}/testervecabi.c -I${sleef_BINARY_DIR}/include -S -o- | ${FILECHECK_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}/testervecabi.c -check-prefix=CHECK-AVX2")
658656
endif()
659-
660-
# Tests for internal sha256
661-
662-
if (SLEEF_OPENSSL_FOUND)
663-
add_executable(test_psha test_psha2.cpp)
664-
target_link_libraries(test_psha ${SLEEF_OPENSSL_LIBRARIES})
665-
target_include_directories(test_psha PRIVATE ${SLEEF_OPENSSL_INCLUDE_DIR})
666-
add_test(NAME test_psha COMMAND test_psha)
667-
668-
add_executable(test_psha_capi test_psha2.cpp)
669-
target_compile_definitions(test_psha_capi PRIVATE TEST_CAPI=1)
670-
target_link_libraries(test_psha_capi ${SLEEF_OPENSSL_LIBRARIES})
671-
target_include_directories(test_psha_capi PRIVATE ${SLEEF_OPENSSL_INCLUDE_DIR})
672-
add_test(NAME test_psha_capi COMMAND test_psha_capi)
673-
endif()

src/quad-tester/CMakeLists.txt

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,30 @@ if(COMPILER_SUPPORTS_FLOAT128)
1919
list(APPEND COMMON_TARGET_DEFINITIONS ENABLEFLOAT128=1)
2020
endif()
2121

22-
#
22+
# Build tester3printf
23+
24+
add_executable(tester3printf tester3printf.c)
25+
add_dependencies(tester3printf sleefquad sleefquad_headers ${TARGET_LIBSLEEF} ${TARGET_HEADERS})
26+
target_compile_definitions(tester3printf PRIVATE ${COMMON_TARGET_DEFINITIONS})
27+
set_target_properties(tester3printf PROPERTIES C_STANDARD 99)
2328

24-
if(SLEEF_OPENSSL_FOUND)
25-
# Build tester3printf
26-
add_executable(tester3printf tester3printf.c)
27-
add_dependencies(tester3printf sleefquad sleefquad_headers ${TARGET_LIBSLEEF} ${TARGET_HEADERS})
28-
target_compile_definitions(tester3printf PRIVATE ${COMMON_TARGET_DEFINITIONS})
29-
set_target_properties(tester3printf PROPERTIES C_STANDARD 99)
29+
if (SLEEF_OPENSSL_FOUND)
3030
target_link_libraries(tester3printf sleefquad ${TARGET_LIBSLEEF} ${SLEEF_OPENSSL_LIBRARIES})
3131
target_include_directories(tester3printf PRIVATE ${SLEEF_OPENSSL_INCLUDE_DIR})
32+
else()
33+
target_link_libraries(tester3printf sleefquad ${TARGET_LIBSLEEF} ${TARGET_PSHA_OBJ})
34+
target_include_directories(tester3printf PRIVATE ${sleef_SOURCE_DIR}/src/common)
35+
target_compile_definitions(tester3printf PRIVATE SLEEF_USE_INTERNAL_SHA256=1)
36+
endif()
3237

33-
if (SDE_COMMAND)
34-
add_test(NAME tester3printf COMMAND ${SDE_COMMAND} "--" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tester3printf ${sleef_SOURCE_DIR}/src/quad-tester/hash_printf.txt)
35-
elseif(EMULATOR)
36-
add_test(NAME tester3printf COMMAND ${EMULATOR} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tester3printf ${sleef_SOURCE_DIR}/src/quad-tester/hash_printf.txt)
37-
else()
38-
add_test(NAME tester3printf COMMAND tester3printf ${sleef_SOURCE_DIR}/src/quad-tester/hash_printf.txt)
39-
endif()
40-
set_tests_properties(tester3printf PROPERTIES COST 5.0)
38+
if (SDE_COMMAND)
39+
add_test(NAME tester3printf COMMAND ${SDE_COMMAND} "--" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tester3printf ${sleef_SOURCE_DIR}/src/quad-tester/hash_printf.txt)
40+
elseif(EMULATOR)
41+
add_test(NAME tester3printf COMMAND ${EMULATOR} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tester3printf ${sleef_SOURCE_DIR}/src/quad-tester/hash_printf.txt)
42+
else()
43+
add_test(NAME tester3printf COMMAND tester3printf ${sleef_SOURCE_DIR}/src/quad-tester/hash_printf.txt)
4144
endif()
45+
set_tests_properties(tester3printf PROPERTIES COST 5.0)
4246

4347
#
4448

src/quad-tester/hash_printf.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Pe 7ff4a1686c831c7a9b1bd62faffe9b14
2-
Pf 84331dfc378b032877f7a07767db7cc5
3-
Pg 2351f96a90d34bf4dd80dd6341a47624
4-
Pa ad6bb18af2f2648e791098ebf87ce25d
1+
Pe 5bac203cf4f186c11a0a80cdcce2674ae0ef62c076415a88b8d4c7a2ee0d42df
2+
Pf a932665a1becd55826e899b63d72bbd700c3aef8981f25452c4cd3bb98239043
3+
Pg 2377240e7d3ae40fd1dc96a23a7c3c2e32d5d8a2eeb8917428fd4aebf14546d8
4+
Pa 0903bb415feeadb4bf002223540cf2e6a30dc27831141396d3200a997930e3e3

0 commit comments

Comments
 (0)