| > The pattern is clear: every major project that actually needs portable SIMD in production chose a third-party library or a different language of course they chose third-party library, because C++26 is just only published and don't have wide support/adoption experience. > And the most damning data point might be EVE itself — a committee member looked at std::simd, decided it wasn’t good enough, and built his own library. It's just a manipulation. First commit in eve[1] was published in 2018. There was no any std::simd in standard at that time. > Nobody waited for std::simd. By the time it ships in C++26, these libraries will have a decade of production battle-testing, real user feedback, and cross-platform coverage that std::simd can’t match on day one. Manipulation 2. No library have decade "of production battle-testing, real user feedback, and cross-platform coverage" on day one. So, why their authors created them? > Including <experimental/simd> pulls in deeply nested template machinery — simd.h, simd_x86.h, simd_builtin.h, and friends. A trivial function computing sin on a SIMD vector takes about 2.2 seconds to compile. The equivalent scalar for-loop? 0.2 seconds. Would be more interesting if you compare this with precompiled headers and C++20 modules. > The std::simd version? It emits actual vsqrtps + vmulps because the optimizer can’t perform algebraic simplification through opaque template function calls: opaque template function calls? What is this? Of course there is 1000 examples when compiler can do better job with scalar loop. And there is 1000 examples when it can't. But, for some reason people do write simd manually. Probably because they want predictable code generation - no massive slowdown on another compiler/another compiler version/another cpu/another one line of loop changed. > sqrt(x) * sqrt(x) what compiler would generate with manual simd intrinsincs? I doubt the same as scalar mul. > The frustrating part is that the problems are well-understood. SIMD programmers have been asking for the same things for years, and none of them are in std::simd. Show me your proposal with critique of std::simd, if you asking for them. Or at least someone other proposal.
How you can understand that someone asking? Too many emotional statements in, too little technical details. [1] https://github.com/jfalcou/eve |