@@ -148,6 +148,8 @@ reproduced before it was made, and shown to fail without the fix (a
148148 - The cause in ` atan2 ` : ` rdh = 1/dh ` is subnormal when |dh| > 2^1022,
149149 and FTZ flushes it to 0. Over 2 million inputs with |dh| > 2^1022:
150150 0 right, 700 wrong, 90,167 ` exit(1) ` .
151+ - All four reproduce on aarch64 with FPCR.FZ too (qemu, 2026-09-29),
152+ where that ` atan2 ` gives ` 0x1p-841 ` instead of x86's ` 0x1p-840 ` .
151153
152154### ` 414f2f6 ` : build and checks (findings 5, 6, 7, 8, 4)
153155
@@ -309,6 +311,47 @@ exit non-zero.
309311 README and the Makefile record the numbers; the decision is the
310312 maintainer's. Per-function table below.
311313
314+ ### ` 48acde7 ` : the AVX-512 entry points at depth, and Intel SDE in CI
315+
316+ Items 1 and 2 of the further-work list the owner was given, re-ranked
317+ after openpocl's HANDOFF: correctness and coverage before more x86 speed,
318+ which openpocl lists under "What not to spend time on".
319+
320+ - ** Why:** the 512-bit core (E512) had every float input, but the doubles
321+ and pairs only ` cecheck e ` 's samples (raw bits, or values within ±32),
322+ and CI's runners mostly lack AVX-512.
323+ - ** Decision:** AVX-512 twins of ` crtest ` 's own checks, ` verify64e ` and
324+ ` verify2e ` , rather than a new program. They reuse its generators, hard
325+ cases, edges and parity pairs, 8 or 16 lanes a call.
326+ - The AVX2 modes are unchanged: ` cbrt ` and ` hypot ` give the same counts
327+ as before.
328+ - ** Result:** all 23 doubles (2^31 inputs each, plus hard cases and edges)
329+ and all six pair functions (2^30 pairs each, plus specials and parity):
330+ 0 differ. About 17 minutes on the Cascade Lake VM.
331+ - ** Control:** the 512-bit core built with its bounds zeroed, and nothing
332+ else changed (` PORTDEFS ` reaches only ` crmvec-port-e.o ` in the default
333+ x86 build).
334+ - ` verify64e ` finds errors in all seven doubles tried: 40 (` cbrt ` ) to
335+ 2,967,824 (` tan ` ).
336+ - ` verify2e ` finds 13,673 in ` pow ` and 1,383,016 in ` atan2 ` . These are
337+ the portable core's control counts at 256 bits, since the double pairs
338+ use the same seeds.
339+ - ` verify64 ` on the same binary passes, so the new modes reach the
340+ 512-bit core specifically.
341+ - ` hypot ` : 0, as documented: its midpoint test is reached only by
342+ ` hypot-midpoints ` .
343+ - ** CI:** where the runner lacks AVX-512 (most runs), a new step downloads
344+ Intel SDE and runs ` cecheck e . 10 ` under ` -skx ` (an emulated
345+ Skylake-SP).
346+ - Not testable from the cloud container: Intel's download site is
347+ blocked there, and so are CI logs. The step reports the download's
348+ sha256 and its verdict as notices, which the check-run annotations API
349+ returns.
350+ - ** To do:** pin that sha256 once a run reports it.
351+ - Two mirror URLs are tried (SDE 9.44.0, then 9.33.0).
352+ - Heavier checks (` crtest verify64e ` , ` cecheck e . floats ` ) stay local;
353+ under emulation they would take hours.
354+
312355## Deliberately not done
313356
314357- ** ` bcheck ` 's ` powr ` /` pown ` reference is the library's own scalar code.**
0 commit comments