]> granicus.if.org Git - clang/commitdiff
Add _lzcnt_u32 and _lzcnt_u64 to lzcntintrin.h to match Intel documentation names...
authorCraig Topper <craig.topper@gmail.com>
Sat, 1 Nov 2014 22:50:57 +0000 (22:50 +0000)
committerCraig Topper <craig.topper@gmail.com>
Sat, 1 Nov 2014 22:50:57 +0000 (22:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221066 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Headers/lzcntintrin.h
test/CodeGen/lzcnt-builtins.c

index 5bb74355047f662b972d52d20c3fc97b29e8a105..35d6659d245b81a52f37a30f3a80b24085e68eea 100644 (file)
@@ -44,12 +44,24 @@ __lzcnt32(unsigned int __X)
   return __X ? __builtin_clz(__X) : 32;
 }
 
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_lzcnt_u32(unsigned int __X)
+{
+  return __X ? __builtin_clz(__X) : 32;
+}
+
 #ifdef __x86_64__
 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
 __lzcnt64(unsigned long long __X)
 {
   return __X ? __builtin_clzll(__X) : 64;
 }
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+_lzcnt_u64(unsigned long long __X)
+{
+  return __X ? __builtin_clzll(__X) : 64;
+}
 #endif
 
 #endif /* __LZCNTINTRIN_H */
index a43c4eede4521fb5d4a609f492f812c781ae64d8..a083de9d35f0a8fc309b0e062ff91edbcab6279c 100644 (file)
@@ -22,3 +22,15 @@ unsigned long long test__lzcnt64(unsigned long long __X)
   // CHECK: @llvm.ctlz.i64
   return __lzcnt64(__X);
 }
+
+unsigned int test_lzcnt_u32(unsigned int __X)
+{
+  // CHECK: @llvm.ctlz.i32
+  return _lzcnt_u32(__X);
+}
+
+unsigned long long test__lzcnt_u64(unsigned long long __X)
+{
+  // CHECK: @llvm.ctlz.i64
+  return _lzcnt_u64(__X);
+}