0%

Evaluator: dual-execution parity

Goal

Make eval observably identical to LLVM by construction.

Implementation Sketch

Default vectorization: eval runs the scalar form (provably equal). Under #fast_math, eval AND LLVM adopt the SAME compiler-defined reduction-tree / lane-visitation order; never eval-scalar-vs-LLVM-reassociated.

Spec References

Proposal §6 parity contract two regimes; §4 #fast_math definition.

Work Items

  • For default vectorization, eval executes the ordinary scalar loop (parity by construction; no SIMD interpreter needed).
  • Under #fast_math, eval AND LLVM implement the same compiler-defined reduction-tree / lane-visitation order so the reordered value/panic is identical across backends; never let eval stay on the divergent scalar left-fold while LLVM reassociates.