commit be98de5e51866601a18064d691b78e7be4d03fda
parent 586ad5a64c6b437ca1ea066d3845e42aadc1f491
Author: Ryan Sepassi <rsepassi@gmail.com>
Date: Fri, 29 May 2026 12:42:43 -0700
test: add opt-in test-parse-rv64-wide target for rv64 128-bit scalars
End-to-end coverage of __int128 (i128_*) and IEEE-754 binary128 long double
(ldbl128_*) built with cfree and run on riscv64 — exercises the soft-float / i128
runtime lowering, the LP64D register-pair ABI for 16-byte scalars, and the
conditional-branch range fix the large soft-float helpers depend on. Opt-in
(needs qemu/podman riscv64), excluded from the default test target like
test-smoke-rv64.
Diffstat:
1 file changed, 14 insertions(+), 0 deletions(-)
diff --git a/test/test.mk b/test/test.mk
@@ -70,6 +70,7 @@ TEST_TARGETS = \
test-parse \
test-parse-err \
test-parse-ok \
+ test-parse-rv64-wide \
test-pp \
test-pp-err \
test-pp-ok \
@@ -602,6 +603,19 @@ test-smoke-x64:
test-smoke-rv64:
bash test/smoke/rv64.sh
+# test-parse-rv64-wide: end-to-end coverage of the rv64 128-bit scalar types
+# — __int128 (i128_*) and IEEE-754 binary128 long double (ldbl128_*) — built
+# with cfree and run on riscv64. Exercises the soft-float / i128 lowering to
+# the compiler-rt-style runtime (fp_tf, fp_ti, int64), the LP64D register-pair
+# ABI for 16-byte scalars, and the conditional-branch range fix that large
+# soft-float helpers depend on. Opt-in (needs qemu-riscv64 or podman with
+# riscv64 emulation), so excluded from the default `test` target; mirrors
+# test-smoke-rv64. Run a single case with
+# CFREE_TEST_ARCH=rv64 bash test/parse/run.sh ldbl128_03_arith
+test-parse-rv64-wide: lib rt-riscv64-linux $(PARSE_RUNNER) $(ROUNDTRIP_BIN) \
+ $(LINK_EXE_RUNNER)
+ @CFREE_TEST_ARCH=rv64 CFREE_TEST_PATHS=RE bash test/parse/run.sh 128
+
# test-bounce: format-bounce stress test. Compiles small programs with
# cfree, then bounces each object through chains of format conversions
# (ELF<->Mach-O<->COFF), partial links (ld -r), strip, and archive