aboutsummaryrefslogtreecommitdiff
path: root/tests/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test.sh')
-rwxr-xr-xtests/test.sh6
1 files changed, 5 insertions, 1 deletions
diff --git a/tests/test.sh b/tests/test.sh
index bc199e1..9dd04a8 100755
--- a/tests/test.sh
+++ b/tests/test.sh
@@ -54,7 +54,7 @@ CC=${CC:-$(sh src/tools/findcc.sh)} || exit 1
export CC
# the language server runs on the interpreter unless the host has a jit (arm64, or x86-64
# linux), and a check of a large document then takes many seconds: stretch the drivers'
-# deadlines. the x86-64 jit gets a little room, since it does not compile o3 regions
+# deadlines. the x86-64 jit gets a little room
if [ -z "${ZC_TEST_TIMEOUT_SCALE:-}" ]; then case "$(uname -s)-$(uname -m)" in *-arm64|*-aarch64) ZC_TEST_TIMEOUT_SCALE=1;; Linux-x86_64) ZC_TEST_TIMEOUT_SCALE=2;; *) ZC_TEST_TIMEOUT_SCALE=8;; esac; fi
export ZC_TEST_TIMEOUT_SCALE
# the default map, generated as make does it, and the tools built against it
@@ -511,6 +511,10 @@ s_jit() {
grep '^DIFF' $T/jit_x64.out
chk $r 0 "x86-64 jit agrees with the interpreter: $(tail -n 1 $T/jit_x64.out)"
chk "$(ZYNOENH=1 $T/zyx < tests/programs/enh_ops.zc | md5sum)" "$(md5sum < tests/programs/enh_ops.expected)" "x86-64 jit with enhancements called through xrun (ZYNOENH=1)"
+ chk "$(ZYTRACE=1 $T/zyx < tests/programs/o3.zc 2>&1 | grep -c 'bytes of x86-64')" "7" "x86-64 jit compiles the o3 regions it can (one has too many live values)"
+ for p in o3 o3copy o3licm o3push o3bytes fo3 o3call o3deep; do
+ chk "$($T/zyx < tests/programs/$p.zc 2>&1)" "$(ZYO3INTERP=1 $T/zyx < tests/programs/$p.zc 2>&1)" "x86-64 o3 code matches the region interpreter (ZYO3INTERP=1): $p"
+ done
fi
}