+// Define a dummy template to workaround a compile error if _mm_popcnt_u64() is not defined.
+//
+// If _mm_popcnt_u64() is defined in <nmmintrin.h> it will be choosen first due to
+// C++ overload rules that always prefer a function to a template with the same name.
+// If not, we avoid a compile error and because cpu_has_popcnt() should return false,
+// our templetized _mm_popcnt_u64() is never called anyway.
+template<typename T> inline unsigned _mm_popcnt_u64(T) { return 0; } // Is never called