Use SSE2 intrinsics to allow the Cray compiler to work.
diff --git a/asio/include/asio/detail/gcc_x86_fenced_block.hpp b/asio/include/asio/detail/gcc_x86_fenced_block.hpp
index fc64cd7..9a71a53 100644
--- a/asio/include/asio/detail/gcc_x86_fenced_block.hpp
+++ b/asio/include/asio/detail/gcc_x86_fenced_block.hpp
@@ -63,7 +63,11 @@
   static void lbarrier()
   {
 #if defined(__SSE2__)
+# if (__GNUC__ >= 4)
+    __builtin_ia32_lfence();
+# else // (__GNUC__ >= 4)
     __asm__ __volatile__ ("lfence" ::: "memory");
+# endif // (__GNUC__ >= 4)
 #else // defined(__SSE2__)
     barrier();
 #endif // defined(__SSE2__)
@@ -72,7 +76,11 @@
   static void sbarrier()
   {
 #if defined(__SSE2__)
+# if (__GNUC__ >= 4)
+    __builtin_ia32_sfence();
+# else // (__GNUC__ >= 4)
     __asm__ __volatile__ ("sfence" ::: "memory");
+# endif // (__GNUC__ >= 4)
 #else // defined(__SSE2__)
     barrier();
 #endif // defined(__SSE2__)