The GitHub Actions job "Lint" on tvm.git/fix/llvm-asin-acos-precision has 
failed.
Run started by GitHub user swjng (triggered by swjng).

Head commit for run:
aa1918320b700e5fe42f218a39cf4edac8610a91 / Soowon Jeong <[email protected]>
[BugFix][LLVM] Use libm for asin/acos instead of buggy inline Taylor

The `tirx.asin` LLVM legalization rule used a 6-term Taylor series for
|x| < 0.5 with incorrect coefficients. The recurrence multipliers
(`9/40`, `25/112`, `1225/3456`, `3969/28160`) do not match the standard
asin Taylor series ratios (`9/20`, `25/42`, `49/72`, `81/110`), so the
series under-counted higher-order terms and lost roughly 1e-3 of
precision in the mid-range (x ≈ 0.3–0.5) — well over a thousand ULP at
float32. `tirx.acos` inherits the same error via `π/2 - asin(x)` for
|x| < 0.5.

The Taylor branch was added as the original implementation in #17945
with no libm fallback; #18582 later patched the boundary at |x| ≥ 0.5
by switching to the libm extern. There is no evidence the inline series
was ever a deliberate fast-path — it was simply incomplete.

This change drops the inline series and routes the whole input range
through the existing libm extern (`asinf`/`acosf`), keeping only the
out-of-range NaN guard. ULP-grade precision is restored across the full
domain. The Asin/Acos cases that were commented out of `test_unary`
with a "Taylor approximation precision loss" TODO are re-enabled.

Fixes #19563.

Report URL: https://github.com/apache/tvm/actions/runs/25905375301

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to