Dereferencing and taking the address cancel each other out, you could do this:
for(src_line, dst_line) |s, *d|
copy(s, d);
Compare the disassembly of both options. It’s easier than measuring and a lot of times you can derive a conclusive answer without having to measure. I’m pretty sure both options will generate the same machine code.
Compile it and check the assembly, my friend. If you see SIMD instructions emitted for the platform(s) you care about, then it does SIMD.
If you are unfamiliar with assembly, you can look for vector registers being used. On x86 this would be any time you see xmm/ymm/zmm registers being used. On ARM it’s usually a register with a v in front but unfortunately they have aliases as well.
I am a bit familiar with assembler, no expert, but i cannot see the assembler anywhere. I still have to find out some details.
Currently in vscode I cannot build or debug. Just run…