1 The files in this directory are compiled multiple times for different CPU vector instruction 2 sets (e.g. AVX, AVX2). The purpose of putting code in this directory is to make 3 sure we can generate the optimal code for a given processor's vector 4 capabilities. Much of this is done via preprocessor guards in vec256_qint.h. 5 6 The considerations for code written in this directory include: 7 - Keep code in this directory to a minimum, since we're compiling it several 8 times. 9 - All code in this file should go through the DECLARE_DISPATCH, 10 DEFINE_DISPATCH, and REGISTER_DISPATCH mechanism to ensure the correct 11 runtime dispatch occurs. 12 - THE CODE MUST RESIDE IN THE ANONYMOUS NAMESPACE. FAILURE TO ENSURE THIS 13 IS THE CASE CAN LEAD TO HARD-TO-DEBUG ODR VIOLATIONS. 14 - **Make sure different variants of the code (AVX, AVX2) are tested!** 15 There are build variants that do things like have NO AVX and NO AVX2 in 16 CI. Make sure they work! 17