1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +lzcnt -emit-llvm -o - | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li // Don't include mm_malloc.h, it's system specific. 4*67e74705SXin Li #define __MM_MALLOC_H 5*67e74705SXin Li 6*67e74705SXin Li #include <x86intrin.h> 7*67e74705SXin Li test__lzcnt16(unsigned short __X)8*67e74705SXin Liunsigned short test__lzcnt16(unsigned short __X) 9*67e74705SXin Li { 10*67e74705SXin Li // CHECK: @llvm.ctlz.i16 11*67e74705SXin Li return __lzcnt16(__X); 12*67e74705SXin Li } 13*67e74705SXin Li test_lzcnt32(unsigned int __X)14*67e74705SXin Liunsigned int test_lzcnt32(unsigned int __X) 15*67e74705SXin Li { 16*67e74705SXin Li // CHECK: @llvm.ctlz.i32 17*67e74705SXin Li return __lzcnt32(__X); 18*67e74705SXin Li } 19*67e74705SXin Li test__lzcnt64(unsigned long long __X)20*67e74705SXin Liunsigned long long test__lzcnt64(unsigned long long __X) 21*67e74705SXin Li { 22*67e74705SXin Li // CHECK: @llvm.ctlz.i64 23*67e74705SXin Li return __lzcnt64(__X); 24*67e74705SXin Li } 25*67e74705SXin Li test_lzcnt_u32(unsigned int __X)26*67e74705SXin Liunsigned int test_lzcnt_u32(unsigned int __X) 27*67e74705SXin Li { 28*67e74705SXin Li // CHECK: @llvm.ctlz.i32 29*67e74705SXin Li return _lzcnt_u32(__X); 30*67e74705SXin Li } 31*67e74705SXin Li test__lzcnt_u64(unsigned long long __X)32*67e74705SXin Liunsigned long long test__lzcnt_u64(unsigned long long __X) 33*67e74705SXin Li { 34*67e74705SXin Li // CHECK: @llvm.ctlz.i64 35*67e74705SXin Li return _lzcnt_u64(__X); 36*67e74705SXin Li } 37