+2015-07-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/66746.
+ * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
+ is defined.
+ (__crc32w): Likewise.
+ (__crc32d): Likewise.
+ (__rdpmc): Likewise.
+ (__rdtscp): Likewise.
+ (_rdpmc): Likewise.
+ (_rdtscp): Likewise.
+ * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
+ is defined.
+
2015-07-03 Richard Biener <rguenther@suse.de>
* fold-const.c (fold_mathfn_compare): Remove.
return __builtin_bswap32 (__X);
}
+#ifndef __iamcu__
+
#ifndef __SSE4_2__
#pragma GCC push_options
#pragma GCC target("sse4.2")
#pragma GCC pop_options
#endif /* __DISABLE_SSE4_2__ */
+#endif /* __iamcu__ */
+
/* 32bit popcnt */
extern __inline int
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
return __builtin_popcount (__X);
}
+#ifndef __iamcu__
+
/* rdpmc */
extern __inline unsigned long long
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
return __builtin_ia32_rdpmc (__S);
}
+#endif /* __iamcu__ */
+
/* rdtsc */
extern __inline unsigned long long
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
return __builtin_ia32_rdtsc ();
}
+#ifndef __iamcu__
+
/* rdtscp */
extern __inline unsigned long long
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
return __builtin_ia32_rdtscp (__A);
}
+#endif /* __iamcu__ */
+
/* 8bit rol */
extern __inline unsigned char
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
#define _bit_scan_reverse(a) __bsrd(a)
#define _bswap(a) __bswapd(a)
#define _popcnt32(a) __popcntd(a)
+#ifndef __iamcu__
#define _rdpmc(a) __rdpmc(a)
-#define _rdtsc() __rdtsc()
#define _rdtscp(a) __rdtscp(a)
+#endif /* __iamcu__ */
+#define _rdtsc() __rdtsc()
#define _rotwl(a,b) __rolw((a), (b))
#define _rotwr(a,b) __rorw((a), (b))
#define _rotl(a,b) __rold((a), (b))