Experiments in coding with SSE and AVX.
- Verify that arrays are 16-bit aligned.
- Verify that proper compiler flags are used.
// first determine how to print out an __m128i vector (char, short, int) https://stackoverflow.com/questions/13257166/print-a-m128i-variable
// ensure memory is aligned to 16 byte boundaries https://stackoverflow.com/questions/6563120/what-does-posix-memalign-memalign-do
https://software.intel.com/sites/landingpage/IntrinsicsGuide/ https://software.intel.com/en-us/forums/intel-c-compiler/topic/285227
https://felix.abecassis.me/2011/09/cpp-getting-started-with-sse/ https://www.cs.fsu.edu/~engelen/courses/HPC-adv/MMXandSSEexamples.txt http://www.aristeia.com/TalkNotes/ACCU2011_CPUCaches.pdf https://www.scss.tcd.ie/Jeremy.Jones/CS3021/5%20caches.pdf
https://stackoverflow.com/questions/11228855/header-files-for-x86-simd-intrinsics https://stackoverflow.com/questions/13257166/print-a-m128i-variable/46751594?noredirect=1#comment80450845_46751594 https://stackoverflow.com/users/224132/peter-cordes
https://carrv.github.io/papers/clark-rv8-carrv2017.pdf
https://locklessinc.com/articles/vectorize, remember to use 'restrict' and '__builtin_assume_aligned'
https://apple.stackexchange.com/questions/238777/how-do-i-identify-which-cpu-a-macbook-uses