On 2026-07-27 5:50 p.m., Fabien Romano wrote:
On 7/27/26 21:14, Thomas Frohwein wrote:
On Sat, 25 Jul 2026 18:24:57 -0400
Brad Smith <[email protected]> wrote:
Within the last few months recoil-rts has gained support for building
on aarch64. The following diff fixes building the port on aarch64.
Thanks, Brad. This is a fairly big port and I'm reluctant to enable it
for arm64 without reports on the test suite (`make test`) and runtime.
With the below diff, you can check if the math is correct from upstream.
https://github.com/beyond-all-reason/RecoilEngine/blob/master/.github/workflows/streflop-float-test.yml
This is what I get on amd64 here (RESULT: BIT-EXACT MATCH):
cd /mnt/ext/_ports/pobj/recoil-rts-2026.06.12/RecoilEngine-2026.06.12 && python3
./tools/sync-test/compare_results.py
./tools/sync-test/reference/streflop_results_NEON_arm64.bin
/mnt/ext/_ports/pobj/recoil-rts-2026.06.12/build-amd64/results.`uname -m`.bin
Reference: ./tools/sync-test/reference/streflop_results_NEON_arm64.bin
Test:
/mnt/ext/_ports/pobj/recoil-rts-2026.06.12/build-amd64/results.amd64.bin
Reference: STREFLOP_NEON on arm64 (52,080 tests)
Test: STREFLOP_SSE on x86_64 (52,080 tests)
============================================================
COMPARISON SUMMARY
============================================================
Common tests: 52,080
Matching: 52,080 (100.0%)
Mismatched: 0 (0.0%)
NaN-both: 71 (counted as match)
RESULT: BIT-EXACT MATCH
cd /mnt/ext/_ports/pobj/recoil-rts-2026.06.12/RecoilEngine-2026.06.12 && python3
./tools/sync-test/compare_results.py
./tools/sync-test/reference/streflop_results_SSE_x86_64.bin
/mnt/ext/_ports/pobj/recoil-rts-2026.06.12/build-amd64/results.`uname -m`.bin
Reference: ./tools/sync-test/reference/streflop_results_SSE_x86_64.bin
Test:
/mnt/ext/_ports/pobj/recoil-rts-2026.06.12/build-amd64/results.amd64.bin
Reference: STREFLOP_SSE on x86_64 (47,852 tests)
Test: STREFLOP_SSE on x86_64 (52,080 tests)
WARNING: Different test counts (ref=47,852, test=52,080)
Comparing first 47,852 records
============================================================
COMPARISON SUMMARY
============================================================
Common tests: 47,852
Matching: 47,852 (100.0%)
Mismatched: 0 (0.0%)
RESULT: BIT-EXACT MATCH
arm64$ make test
===> Regression tests for recoil-rts-2026.07.04p0
cd /home/brad/ports/pobj/recoil-rts-2026.07.04/build-aarch64 &&
./streflop-float-test -n 10000 results.`uname -m`
STREFLOP Float Comparison Test
Mode: STREFLOP_NEON
Arch: arm64
Compiler: Clang 22.1.6
FP-contract: off (set by CMake)
Inputs: 10000
Hash-only: no
Estimated binary output: ~650.0 KB
Initializing streflop (STREFLOP_NEON)...
Simple init OK
Double init OK
Opening binary output: results.arm64.bin
Opening text output: results.arm64.txt
Generating 10000 deterministic input values...
Generated in 0.00 seconds
Running Category A: Basic arithmetic (limit=2000)...
5000 tests [hash: 028748A131B6DE45]
Running Category B: Transcendentals (limit=2000)...
40050 tests [hash: 90A499DDF050A110]
Running Category C: Double precision (limit=1000)...
2500 tests [hash: 8AC013D704C7DC9C]
Running Category D: Compound operations (limit=300)...
302 tests [hash: AD402488FCDFB689]
Running Category E: Edge cases (denormals, inf, NaN, zero)...
4228 tests [hash: EA2881A4F127BF10]
Total: 52080 tests in 0.05 seconds (1041600 tests/sec)
Binary file: results.arm64.bin (677.1 KB)
============================================================
VERIFICATION HASH (FNV-1a of all 52080 result records)
Hash: EA2881A4F127BF10
Tests: 52080
Mode: STREFLOP_NEON on arm64
============================================================
Compare with:
python3 compare_results.py <reference>.bin results.arm64.bin
Or just compare the hash above across architectures.
cd /home/brad/ports/pobj/recoil-rts-2026.07.04/RecoilEngine-2026.07.04
&& python3 ./tools/sync-test/compare_results.py
./tools/sync-test/reference/streflop_results_NEON_arm64.bin
/home/brad/ports/pobj/recoil-rts-2026.07.04/build-aarch64/results.`uname
-m`.bin
Reference: ./tools/sync-test/reference/streflop_results_NEON_arm64.bin
Test:
/home/brad/ports/pobj/recoil-rts-2026.07.04/build-aarch64/results.arm64.bin
Reference: STREFLOP_NEON on arm64 (52,080 tests)
Test: STREFLOP_NEON on arm64 (52,080 tests)
============================================================
COMPARISON SUMMARY
============================================================
Common tests: 52,080
Matching: 52,080 (100.0%)
Mismatched: 0 (0.0%)
RESULT: BIT-EXACT MATCH
cd /home/brad/ports/pobj/recoil-rts-2026.07.04/RecoilEngine-2026.07.04
&& python3 ./tools/sync-test/compare_results.py
./tools/sync-test/reference/streflop_results_SSE_x86_64.bin
/home/brad/ports/pobj/recoil-rts-2026.07.04/build-aarch64/results.`uname
-m`.bin
Reference: ./tools/sync-test/reference/streflop_results_SSE_x86_64.bin
Test:
/home/brad/ports/pobj/recoil-rts-2026.07.04/build-aarch64/results.arm64.bin
Reference: STREFLOP_SSE on x86_64 (47,852 tests)
Test: STREFLOP_NEON on arm64 (52,080 tests)
WARNING: Different test counts (ref=47,852, test=52,080)
Comparing first 47,852 records
============================================================
COMPARISON SUMMARY
============================================================
Common tests: 47,852
Matching: 47,852 (100.0%)
Mismatched: 0 (0.0%)
RESULT: BIT-EXACT MATCH