In another thread in this forum (http://software.intel.com/en-us/forums/topic/305582), there was a comment:
The _mm_?fence thererfor serves to purposes: 1) inform the compiler of the requirement of pending reads or writes not to be moved before or after the specified fence statement. And 2) the compiler is to insert an appropriate processor fence instruction, or lacking that a function call to perform the equivilent fencing behavior.
My question is, is there an authoritative source for #1? I have yet to find a credible reference that says that _mm_mfence generates a compiler ReadWriteBarrier.