Skip to content

Commit 8f15c4b

Browse files
quentin kuttenkulerclaude
authored andcommitted
Add FMA rewrites and fused d4 inverse codelets for all ISA tiers
Inverse twiddle recombinations used ADD(MUL,MUL) instead of MADD/MSUB, missing FMA opportunities on every ISA. Fixed in norm_q_inv, norm2_inv_fused, and codelet_d3_tw_res_inv for both f32 (V4F) and double (V2) paths. NEON FMA count in the inverse schedule runner went from 8 to 38. Added codelet_d4_inv_f32 (SSE2/NEON) and codelet_d4_inv (AVX2+FMA) that fuse two d3_inv leaves with the q=8 norm_q_inv butterfly, keeping all intermediate values in registers instead of storing/reloading 32 elements through the data array. Wired into both the recursive path and the schedule runner for both precisions. Assembly impact: NEON total instructions 1162→961, SSE2 1535→1286. AVX2 double d4 fusion: 2212 instructions, 55 FMAs, 330 spill/reloads (expected for 16 YMM registers; spills hit L1 stack). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 950d0e8 commit 8f15c4b

2 files changed

Lines changed: 354 additions & 41 deletions

File tree

0 commit comments

Comments
 (0)