blob: 5e671d555900d6f17351fe46db97e35f16cd5296 [file] [log] [blame]
add_definitions(-DHAVE_CONFIG_H)
include_directories(${BENCHMARK_DIR}/src ${BENCHMARK_DIR}/src/libutil)
list(APPEND LDFLAGS -lm)
list(APPEND CFLAGS -fsigned-char)
macro(test_input run_type)
llvm_test_run(RUN_TYPE ${run_type}
WORKDIR %S/data/${run_type}/input
ctlfile . args.an4
> %S/data/${run_type}/input/an4.log
)
llvm_test_verify(RUN_TYPE ${run_type}
%b/${FPCMP} -r .0004
%S/data/${run_type}/output/considered.out
%S/data/${run_type}/input/considered.out
)
llvm_test_verify(RUN_TYPE ${run_type}
%b/${FPCMP} -r 1e-6
%S/data/${run_type}/output/total_considered.out
%S/data/${run_type}/input/total_considered.out
)
llvm_test_verify(RUN_TYPE ${run_type}
%b/${FPCMP} -r .001
%S/data/${run_type}/output/an4.log
%S/data/${run_type}/input/an4.log
)
endmacro()
test_input(test)
test_input(train)
test_input(ref)
# The benchmark includes the filenames of the .c files in its output and we
# cannot have full paths in there so hack around...
foreach(s ${Source})
get_filename_component(basename ${s} NAME)
set_source_files_properties(${s} PROPERTIES COMPILE_DEFINITIONS __FILE__="${basename}")
endforeach()
llvm_test_executable(482.sphinx3 ${Source})
macro(prepare_data run_type)
set(DESTDIR ${CMAKE_CURRENT_BINARY_DIR}/data/${run_type}/input)
llvm_copy_dir(482.sphinx3 ${DESTDIR}/model
${BENCHMARK_DIR}/data/all/input/model
)
llvm_copy(482.sphinx3 ${DESTDIR} ${BENCHMARK_DIR}/data/${run_type}/input/args.an4)
llvm_copy(482.sphinx3 ${DESTDIR} ${BENCHMARK_DIR}/data/${run_type}/input/beams.dat)
# Create ctlfile and copy .raw files depending on endianess
if(IS_BIGENDIAN)
file(GLOB files "${BENCHMARK_DIR}/data/${run_type}/input/*.be.raw")
else()
file(GLOB files "${BENCHMARK_DIR}/data/${run_type}/input/*.le.raw")
endif()
list(SORT files)
set(CTLFILE "")
foreach(f ${files})
get_filename_component(basename ${f} NAME)
string(REGEX REPLACE ".(be|le).raw$" "" basename "${basename}")
llvm_copy(482.sphinx3 ${DESTDIR}/${basename}.raw ${f})
# Determine file size...
file(READ ${f} content HEX)
string(LENGTH ${content} content_length)
math(EXPR filesize "${content_length} / 2")
# Append line to ctlfile
set(CTLFILE "${CTLFILE}${basename} ${filesize}\n")
endforeach()
file(GENERATE OUTPUT ${DESTDIR}/ctlfile CONTENT "${CTLFILE}")
endmacro()
prepare_data(test)
prepare_data(train)
prepare_data(ref)
llvm_test_data_spec(482.sphinx3 MUST_COPY
data/test/output
data/train/output
data/ref/output
)
# Data comes with *.test files which should not be read by lit.
file(GENERATE
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/data/lit.local.cfg
CONTENT "config.suffixes = []"
)