Optimizing compilers reload vector constants needlessly

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

JetBrains - Tell us how you use coding tools. You may win a prize!
Are you a developer or a data analyst? Share your thoughts about your coding tools in our short survey and get a chance to win prizes!
surveys.jetbrains.com
featured
Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
  1. compiler-explorer

    Run compilers interactively from your web browser and interact with the assembly

    It should be part of these discussions to proof what you claim. Always. With code samples, directly to the compiler and corresponding assembler.

    https://godbolt.org/

    Statistics are worthless alone, at the end all that counts is the arena of performance and what the code becomes and how it runs against the handcrafted version.

  2. JetBrains

    Tell us how you use coding tools. You may win a prize! Are you a developer or a data analyst? Share your thoughts about your coding tools in our short survey and get a chance to win prizes!

    JetBrains logo
  3. OpenBLAS

    OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.

  4. std-simd

    std::experimental::simd for GCC [ISO/IEC TS 19570:2018]

    Bad news. For SIMD there are not cross-platform intrinsics. Intel intrinsics map directly to SSE/AVX instructions and ARM intrinsics map directly to NEON instructions.

    For cross-platform, your best bet is probably https://github.com/VcDevel/std-simd

    There's https://eigen.tuxfamily.org/index.php?title=Main_Page But, it's tremendously complicated for anything other than large-scale linear algebra.

    And, there's https://github.com/microsoft/DirectXMath But, it has obvious biases :P

  5. DirectXMath

    DirectXMath is an all inline SIMD C++ linear algebra library for use in games and graphics apps

    Bad news. For SIMD there are not cross-platform intrinsics. Intel intrinsics map directly to SSE/AVX instructions and ARM intrinsics map directly to NEON instructions.

    For cross-platform, your best bet is probably https://github.com/VcDevel/std-simd

    There's https://eigen.tuxfamily.org/index.php?title=Main_Page But, it's tremendously complicated for anything other than large-scale linear algebra.

    And, there's https://github.com/microsoft/DirectXMath But, it has obvious biases :P

  6. FFmpeg

    Mirror of https://git.ffmpeg.org/ffmpeg.git

  7. highway

    Performance-portable, length-agnostic SIMD with runtime dispatch

    __builtin_shufflevector requires a known vector length, and can be pessimized (fusing two into one general all-to-all permute which is more expensive than two simple shuffles).

    Also, vqsort (https://github.com/google/highway/tree/master/hwy/contrib/so...) almost entirely consists of

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Vc 1.4.2 released: portable SIMD programming for C++

    3 projects | /r/cpp | 23 Jun 2021
  • C Is Not Suited to SIMD

    7 projects | news.ycombinator.com | 27 Jan 2025
  • The Case of the Missing SIMD Code

    7 projects | news.ycombinator.com | 8 Jun 2023
  • Similarity Measures on Arm SVE and NEON, x86 AVX2 and AVX-512

    2 projects | /r/simd | 25 Mar 2023
  • Portable SIMD library

    3 projects | /r/C_Programming | 15 Nov 2022

Did you know that C++ is
the 7th most popular programming language
based on number of references?