I am not sure, but for some reason when the code is "compiled" it probably thinks it is not used and just removes it.
If you move it to before the s = peek(internbuf, rdix, 0, interp="linear", boundmode="wrap"); it magically recognizes it, as it is used bellow.
I don't think it has something to do with your code, it seemds OK. It is probably a bit of a buggy behaviour from [gen~].
Thank you Nikolas! Updating accumulators at the end of a loop has become such a ingrained habit that I didn't even consider this. I learned something. Btw, in the example I speak of, it is at the end but adds in4 (ix += in4); that works fine.