[LLVMdev] NEON intrinsics preventing redundant load optimization? (original) (raw)

Tim Northover t.p.northover at gmail.com
Sun Jan 4 13:06:58 PST 2015


I’ve managed to replace the load/store intrinsics with pointer dereferences (along with a typedef to get the alignment correct). This generates 100% the same IR + asm as the auto-vectorized C version (both using -O3), and works with the toolchain in the latest XCode. Are there any concerns around doing this? My view is that you should only use intrinsics where the language has no semantics for it. Since this is not the case, using pointers is probably the best way, anyway.

I think dereferencing pointers is explicitly discouraged in the documentation for portability reasons. It may well have issues on wrong-endian targets.

Tim.



More information about the llvm-dev mailing list