Hey HN, I recently built an experimental AVX2 128 bit fixed point math library, and failed to achieve significantly better results than compiler optimized scalar code. The main bottlenecks I faced are:
1. No native unsigned 64-bit comparisons and 128-bit registers, and a lot of instructions trying to emulate carry chains
2. Juggling lo and hi limbs across registers chokes the allocator, and modern compilers can optimize scalar loops without these bottlenecks
Was curious if anyone has also attempted wide integer or fixed point math in AVX2, or used a AoS layout instead of an SoA layout.
arjavsharma91•3m ago
1. No native unsigned 64-bit comparisons and 128-bit registers, and a lot of instructions trying to emulate carry chains
2. Juggling lo and hi limbs across registers chokes the allocator, and modern compilers can optimize scalar loops without these bottlenecks
Was curious if anyone has also attempted wide integer or fixed point math in AVX2, or used a AoS layout instead of an SoA layout.
Thanks