3 ms·
Last I check, ICC is still leap and bound ahead of other compilers in autovectorization. But still, if it's not hot spot, probably won't really change in real
by innocenat 5y ago
Last I check, ICC is still leap and bound ahead of other compilers in autovectorization.
But still, if it's not hot spot, probably won't really change in real world situation. And if it is, you want to vectorize manually anyway.
- berkut 5y agoIt's still better, but the gap's closed quite a bit in my experience. It also still seems better than clang/gcc at working out whether inlining is worth it or not. But it's also still quite buggy (it used to be as well, the number of work-arounds/#ifdefs needed to get some cross-platform applications built used to be quite annoying. In some cases, we couldn't even use exactly the same version of the compiler per platform, we had to split versions per platform!).
- mkbosmans 5y agoVectorizing by hand is not very difficult, but even for moderately complex loops it gets tiresome very quickly. And that is before considering loop peeling for vector alignment, adding both vector and scalar remainder loops and loop multiversioning. This is really something you want your compiler to take care of. And that indeed is something icc excels at. You just don't have to care about code size, because that _will_ grow, big time. And no, Intel's new LLVM-based icx compiler is not at the same level yet as the (now 'classic') icc compiler.