Quick answer: Unity Burst job's inner loop scalar despite being Burst-compiled? A managed call in the loop breaks vectorization - move the managed call outside or mark with [BurstDiscard].
Inner loop calls a debug logger. Burst Inspector shows scalar code path; expected SIMD.
Hoist managed calls
Move Debug.Log outside the inner loop. Inner loop becomes pure Burst; vectorizes.
[BurstDiscard] on the helper
Marks the method as Burst-incompatible. Burst skips it; vectorization survives.
Verify in Burst Inspector
Generated assembly shows SIMD instructions. Scalar = vectorization disabled; one managed call is enough.
“Burst vectorizes pure loops. Impurity kills vectorization.”
If your Burst job is slow, the first check is for managed calls in hot loops. They're easy to miss; profiler-visible only as 'unexpectedly slow'.