News for hackers. Stuff that matters.
Re:Transcoding Unicode with AVX-512: AMD Zen 4 vs. Intel Ice... by habitue on Thursday January 05, 2023 @08:26PM (#34269729)
Potentially both. Most compilers have vectorization optimizations if you compile for an architecture that supports it.

However, a lot of software is compiled on one machine to be run on potentially many possible architectures, so they target a very lowest common denominator arch like x86-64. This will have some SIMD instructions but (I don't think) AVX-512.

So if a developer wants to ensure those instructions are used if they're supported, they'll write two code paths. one path will explicitly call the avx512 instructions with compiler intrinsics and then the other path will just use the manual code and let the compiler decide how to turn it into x86-64 safe instructions.

[dead]
Re:Transcoding Unicode with AVX-512: AMD Zen 4 vs. Intel Ice... by janwas on Friday January 06, 2023 @04:06AM (#34272598)
A compiler turning C(++) code into SIMD instructions is called "autovectorization". In my experience this works for simple loops such as dot products (even that requires special compiler flags to enable FMA and reorders), but unfortunately the wheels often fall off for more complex code. Also, I haven't seen the compiler generate the more exotic instructions.