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

Reply via email to