<div dir="ltr">Fixed.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Sep 27, 2013 at 10:59 PM, Charles Davis <span dir="ltr"><<a href="mailto:cdavis5x@gmail.com" target="_blank">cdavis5x@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
On Sep 27, 2013, at 5:57 PM, Warren Hunt wrote:<br>
> Modified: cfe/trunk/lib/Headers/Intrin.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/Intrin.h?rev=191590&r1=191589&r2=191590&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/Intrin.h?rev=191590&r1=191589&r2=191590&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/lib/Headers/Intrin.h (original)<br>
> +++ cfe/trunk/lib/Headers/Intrin.h Fri Sep 27 18:57:26 2013<br>
</div>[...]<br>
<div class="im">> @@ -343,6 +392,369 @@ void __cdecl _xsaveopt64(void *, unsigne<br>
><br>
> #endif /* __X86_64__ */<br>
</div>This should be testing for __x86_64__ (i.e. lowercase 'x').<br>
<div><div class="h5">><br>
> +/*----------------------------------------------------------------------------*\<br>
> +|* Bit Twiddling<br>
> +\*----------------------------------------------------------------------------*/<br>
> +static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))<br>
> +_rotl8(unsigned char _Value, unsigned char _Shift) {<br>
> +  _Shift &= 0x7;<br>
> +  return _Shift ? (_Value << _Shift) | (_Value >> (8 - _Shift)) : _Value;<br>
> +}<br>
> +static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))<br>
> +_rotr8(unsigned char _Value, unsigned char _Shift) {<br>
> +  _Shift &= 0x7;<br>
> +  return _Shift ? (_Value >> _Shift) | (_Value << (8 - _Shift)) : _Value;<br>
> +}<br>
> +static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__))<br>
> +_rotl16(unsigned short _Value, unsigned char _Shift) {<br>
> +  _Shift &= 0xf;<br>
> +  return _Shift ? (_Value << _Shift) | (_Value >> (16 - _Shift)) : _Value;<br>
> +}<br>
> +static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__))<br>
> +_rotr16(unsigned short _Value, unsigned char _Shift) {<br>
> +  _Shift &= 0xf;<br>
> +  return _Shift ? (_Value >> _Shift) | (_Value << (16 - _Shift)) : _Value;<br>
> +}<br>
> +static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))<br>
> +_rotl(unsigned int _Value, int _Shift) {<br>
> +  _Shift &= 0x1f;<br>
> +  return _Shift ? (_Value << _Shift) | (_Value >> (32 - _Shift)) : _Value;<br>
> +}<br>
> +static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))<br>
> +_rotr(unsigned int _Value, int _Shift) {<br>
> +  _Shift &= 0x1f;<br>
> +  return _Shift ? (_Value >> _Shift) | (_Value << (32 - _Shift)) : _Value;<br>
> +}<br>
> +static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__))<br>
> +_lrotl(unsigned long _Value, int _Shift) {<br>
> +  _Shift &= 0x1f;<br>
> +  return _Shift ? (_Value << _Shift) | (_Value >> (32 - _Shift)) : _Value;<br>
> +}<br>
> +static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__))<br>
> +_lrotr(unsigned long _Value, int _Shift) {<br>
> +  _Shift &= 0x1f;<br>
> +  return _Shift ? (_Value >> _Shift) | (_Value << (32 - _Shift)) : _Value;<br>
> +}<br>
> +static<br>
> +__inline__ unsigned __int64 __attribute__((__always_inline__, __nodebug__))<br>
> +_rotl64(unsigned __int64 _Value, int _Shift) {<br>
> +  _Shift &= 0x3f;<br>
> +  return _Shift ? (_Value << _Shift) | (_Value >> (64 - _Shift)) : _Value;<br>
> +}<br>
> +static<br>
> +__inline__ unsigned __int64 __attribute__((__always_inline__, __nodebug__))<br>
> +_rotr64(unsigned __int64 _Value, int _Shift) {<br>
> +  _Shift &= 0x3f;<br>
> +  return _Shift ? (_Value >> _Shift) | (_Value << (64 - _Shift)) : _Value;<br>
> +}<br>
> +/*----------------------------------------------------------------------------*\<br>
> +|* Bit Counting and Testing<br>
> +\*----------------------------------------------------------------------------*/<br>
> +static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))<br>
> +_BitScanForward(unsigned long *_Index, unsigned long _Mask) {<br>
> +  if (!_Mask)<br>
> +    return 0;<br>
> +  *_Index = __builtin_ctzl(_Mask);<br>
> +  return 1;<br>
> +}<br>
> +static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))<br>
> +_BitScanReverse(unsigned long *_Index, unsigned long _Mask) {<br>
> +  if (!_Mask)<br>
> +    return 0;<br>
> +  *_Index = 31 - __builtin_clzl(_Mask);<br>
> +  return 1;<br>
> +}<br>
> +static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))<br>
> +_lzcnt_u32(unsigned int a) {<br>
> +  if (!a)<br>
> +    return 32;<br>
> +  return __builtin_clzl(a);<br>
> +}<br>
> +static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__))<br>
> +__popcnt16(unsigned short value) {<br>
> +  return __builtin_popcount((int)value);<br>
> +}<br>
> +static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))<br>
> +__popcnt(unsigned int value) {<br>
> +  return __builtin_popcount(value);<br>
> +}<br>
> +static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))<br>
> +_bittest(long const *a, long b) {<br>
> +  return (*a >> b) & 1;<br>
> +}<br>
> +static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))<br>
> +_bittestandcomplement(long *a, long b) {<br>
> +  unsigned char x = (*a >> b) & 1;<br>
> +  *a = *a ^ (1 << b);<br>
> +  return x;<br>
> +}<br>
> +static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))<br>
> +_bittestandreset(long *a, long b) {<br>
> +  unsigned char x = (*a >> b) & 1;<br>
> +  *a = *a & ~(1 << b);<br>
> +  return x;<br>
> +}<br>
> +static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))<br>
> +_bittestandset(long *a, long b) {<br>
> +  unsigned char x = (*a >> b) & 1;<br>
> +  *a = *a & (1 << b);<br>
> +  return x;<br>
> +}<br>
> +#ifdef __X86_64__<br>
</div></div>In fact, all the ones that test this macro should. I know this isn't your fault--it was testing __X86_64__ (uppercase 'X') before. But just so you know, no one that I know of defines __X86_64__--certainly not Clang.<br>

<br>
Chip<br>
<br>
</blockquote></div><br></div>