The intrinsics look quite useful and easy to use. The downside is that, of course, they are different from SSE, causing another code fork. I hate platform-specific code.Urs wrote: Tue Jul 14, 2020 9:42 amI'll have a go at it in 2-3 weeks, but from a glance at the instruction set I think NEON has everything that SSE has, and much more. Kind of paradox that a RISC platform has the more complex and thorough implementation of this concept than the CISC one.
I think I'll be able to get away with just the autovectorization. I revisited it and learned quite about where and why it works. I found 7 not very critical loops I could force to vectorize with a #pragma. The others all failed due to variable loop sizes, method calls, inline conditionals, or mostly, just not worth the bits to vectorize, according to the LLVM cost model. Maybe if I get bored, I'll test those out and see, but for now, I'm trusting my compiler.
