29 lines
1.3 KiB
Bash
Executable File
29 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
ROOT=$(cd "$(dirname "$0")/../../.." && pwd)
|
|
OUT=${TMPDIR:-/tmp}/tms-m0
|
|
mkdir -p "$OUT"
|
|
TMS_CLANG=${TMS_CLANG:-$ROOT/build/llvm-build/bin/clang}
|
|
TMS_OPT=${TMS_OPT:-$ROOT/build/llvm-build/bin/opt}
|
|
TMS_BITADDR=${TMS_BITADDR:-$ROOT/tools/tms-bitaddr/tms-bitaddr}
|
|
export TMS_CLANG TMS_OPT TMS_BITADDR
|
|
|
|
"$ROOT/scripts/tms-clang" -O2 -o "$OUT/pdiff.ll" "$ROOT/scripts/tests/m0/ptrdiff.c"
|
|
grep -A2 'define.*@int_diff(' "$OUT/pdiff.ll" | grep -q 'ret i32 8'
|
|
grep -A2 'define.*@int_diff4' "$OUT/pdiff.ll" | grep -q 'ret i32 32'
|
|
grep -A6 'define.*@pd_char' "$OUT/pdiff.ll" | grep -Eq 'sdiv|ashr|udiv'
|
|
grep -A6 'define.*@pd_int' "$OUT/pdiff.ll" | grep -Eq 'sdiv|ashr|udiv'
|
|
grep -Eq 'add i32 %bit.base[0-9]*, 24' "$OUT/pdiff.ll"
|
|
"$TMS_OPT" -passes=verify -disable-output "$OUT/pdiff.ll"
|
|
|
|
"$ROOT/scripts/tms-clang" -O2 -I "$ROOT/spike" -o "$OUT/xclient.ll" "$ROOT/spike/xclient.c"
|
|
test "$(grep -c getelementptr "$OUT/xclient.ll")" -eq 0
|
|
grep -Eq 'add i32 %bit.base[0-9]*, 1056' "$OUT/xclient.ll"
|
|
grep -Eq 'mul i32 [^,]+, 640' "$OUT/xclient.ll"
|
|
grep -Eq 'add i32 %bit.addr[0-9]*, 320' "$OUT/xclient.ll"
|
|
"$TMS_OPT" -passes=verify -disable-output "$OUT/xclient.ll"
|
|
|
|
"$ROOT/scripts/tms-clang" -O0 -o "$OUT/pdiff.o0.ll" "$ROOT/scripts/tests/m0/ptrdiff.c"
|
|
test "$(grep -c getelementptr "$OUT/pdiff.o0.ll")" -eq 0
|
|
echo "M0 pipeline: PASS"
|