libdpf/thirdparty/simde/test/check-flags.sh
Ryan Henry 3f10e05176 Update googletest to 1.18.0 and SIMDe to 0.8.2.
Googletest 1.18 asks for CMake 3.13 or newer, so configuring the tests no longer warns that CMake compatibility below 3.10 is deprecated.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 14:30:19 -06:00

92 lines
2 KiB
Bash
Executable file

#!/bin/bash
# Some CI workers support different ISA extensions on x86. We want to
# run the tests if the extension is supported, but skip them if it
# isn't. Currently this only works on x86.
INTEL_TARGET=${INTEL_TARGET:-tgl}
if [ -z "${SDE_PATH}" ]; then
SDE_PATH="/opt/intel/sde"
fi
if [ ! -d "${SDE_PATH}" ]; then
mkdir -p "${SDE_PATH}"
fi
if [ -e /lib/ld-linux-x86-64.so.2 ]; then
LD=/lib/ld-linux-x86-64.so.2
else
LD=/lib64/ld-linux-x86-64.so.2
fi
NATIVE_SUPPORT=1
for FLAG in $CFLAGS; do
if echo "$FLAG" | grep -q '\-march=x86-64$' ; then
if grep -qP " x86_64 \(supported" <(${LD} --help) ; then
continue
else
NATIVE_SUPPORT=0
continue
fi
elif echo "$FLAG" | grep -q '\-march=x86-64-v[234]$'; then
if grep -qP " ${FLAG:7} \(supported" <(${LD} --help) ; then
continue
else
NATIVE_SUPPORT=0
continue
fi
fi
echo "$FLAG" | grep -qP '^\-m[0-9a-zA-Z\.-]+$' || continue
case "${FLAG:2}" in
# sse3 doesn't show up in /proc/cpuinfo (?!?!)
"avx512bf16")
grep -qP " avx512_bf16 " /proc/cpuinfo || NATIVE_SUPPORT=0
;;
"avx512bitalg")
grep -qP " avx512_bitalg " /proc/cpuinfo || NATIVE_SUPPORT=0
;;
"avx512vbmi2")
grep -qP " avx512_vbmi2 " /proc/cpuinfo || NATIVE_SUPPORT=0
;;
"avx512vnni")
grep -qP " avx512_vnni " /proc/cpuinfo || NATIVE_SUPPORT=0
;;
"sse3")
;;
*)
grep -qP " ${FLAG:2} " /proc/cpuinfo || NATIVE_SUPPORT=0
;;
esac
done
COMMAND="$1"
shift
case "$COMMAND" in
"try" | "sde" | "query")
;;
*)
echo "Unknown command ($COMMAND)" >&2
exit 1
;;
esac
if [ "$COMMAND" = "query" ]; then
test $NATIVE_SUPPORT -eq 1
exit $?
elif [ $NATIVE_SUPPORT -eq 1 ]; then
"$@"
exit $?
elif [ "$COMMAND" = "sde" ]; then
(
flock 9
if [ ! -e "${SDE_PATH}/sde64" ]; then
"$(dirname "$0")"/download-sde.sh "${SDE_PATH}"
fi
) 9>/tmp/sde-download.lock
"${SDE_PATH}/sde64" "-${INTEL_TARGET}" -- "$@"
exit $?
else
echo "Flags not supported, skipping"
fi