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.)
Can we declare __builtin_prefetch to volatile one in Builtins.def: