Index: libitm/config/x86/target.h
===================================================================
--- libitm/config/x86/target.h	(revision 189100)
+++ libitm/config/x86/target.h	(working copy)
@@ -63,7 +63,7 @@ typedef struct gtm_jmpbuf
 static inline void
 cpu_relax (void)
 {
-  __asm volatile ("rep; nop" : : : "memory");
+  __builtin_ia32_pause ();
 }
 
 } // namespace GTM
Index: gcc/config/i386/xmmintrin.h
===================================================================
--- gcc/config/i386/xmmintrin.h	(revision 189100)
+++ gcc/config/i386/xmmintrin.h	(working copy)
@@ -1225,7 +1225,7 @@ _mm_sfence (void)
 extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _mm_pause (void)
 {
-  __asm__ __volatile__ ("rep; nop" : : );
+  __builtin_ia32_pause ();
 }
 
 /* Transpose the 4x4 matrix composed of row[0-3].  */
Index: libgomp/config/linux/x86/futex.h
===================================================================
--- libgomp/config/linux/x86/futex.h	(revision 189100)
+++ libgomp/config/linux/x86/futex.h	(working copy)
@@ -143,5 +143,5 @@ futex_wake (int *addr, int count)
 static inline void
 cpu_relax (void)
 {
-  __asm volatile ("rep; nop" : : : "memory");
+  __builtin_ia32_pause ();
 }
Index: libgomp/testsuite/libgomp.c/sort-1.c
===================================================================
--- libgomp/testsuite/libgomp.c/sort-1.c	(revision 189100)
+++ libgomp/testsuite/libgomp.c/sort-1.c	(working copy)
@@ -100,7 +100,7 @@ static inline void
 busy_wait (void)
 {
 #if defined __i386__ || defined __x86_64__
-  __asm volatile ("rep; nop" : : : "memory");
+  __builtin_ia32_pause ();
 #elif defined __ia64__
   __asm volatile ("hint @pause" : : : "memory");
 #elif defined __sparc__ && (defined __arch64__ || defined __sparc_v9__)
