From: Brad Smith Subject: Re: UPDATE: recoil-rts - arm64 To: Fabien Romano , Thomas Frohwein Cc: ports@openbsd.org Date: Thu, 27 Aug 2026 01:57:16 -0400 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 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 .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