For some reason, Microsoft declares _m_prefetch to take a const void*, but _m_prefetchw to take a /volatile/ const void*.
I can't think of any downside to just casting away the volatile here? (Besides having to suppress the warning in a somewhat ugly way.)
clang-tidy: error: "Never use <prfchwintrin.h> directly; include <x86intrin.h> or <mm3dnow.h> instead." [clang-diagnostic-error]
not useful