brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · eb02c11 Raw
55 lines · c
1// RUN: %clang_cc1 -x c -ffreestanding %s -triple=x86_64-apple-darwin -emit-llvm -o - | FileCheck %s2// RUN: %clang_cc1 -x c++ -std=c++11 -ffreestanding %s -triple=x86_64-apple-darwin -emit-llvm -o - | FileCheck %s3 4// RUN: %clang_cc1 -x c -ffreestanding %s -triple=x86_64-apple-darwin -emit-llvm -o - -fexperimental-new-constant-interpreter | FileCheck %s5// RUN: %clang_cc1 -x c++ -std=c++11 -ffreestanding %s -triple=x86_64-apple-darwin -emit-llvm -o - -fexperimental-new-constant-interpreter | FileCheck %s6 7 8#include <immintrin.h>9#include "builtin_test_helpers.h"10 11unsigned short test__lzcnt16(unsigned short __X)12{13  // CHECK: @llvm.ctlz.i16(i16 %{{.*}}, i1 false)14  return __lzcnt16(__X);15}16TEST_CONSTEXPR(__lzcnt16(0x0000) == 16);17TEST_CONSTEXPR(__lzcnt16(0x8000) ==  0);18TEST_CONSTEXPR(__lzcnt16(0x0010) == 11);19 20unsigned int test_lzcnt32(unsigned int __X)21{22  // CHECK: @llvm.ctlz.i32(i32 %{{.*}}, i1 false)23  return __lzcnt32(__X);24}25TEST_CONSTEXPR(__lzcnt32(0x00000000) == 32);26TEST_CONSTEXPR(__lzcnt32(0x80000000) ==  0);27TEST_CONSTEXPR(__lzcnt32(0x00000010) == 27);28 29unsigned long long test__lzcnt64(unsigned long long __X)30{31  // CHECK: @llvm.ctlz.i64(i64 %{{.*}}, i1 false)32  return __lzcnt64(__X);33}34TEST_CONSTEXPR(__lzcnt64(0x0000000000000000ULL) == 64);35TEST_CONSTEXPR(__lzcnt64(0x8000000000000000ULL) ==  0);36TEST_CONSTEXPR(__lzcnt64(0x0000000100000000ULL) == 31);37 38unsigned int test_lzcnt_u32(unsigned int __X)39{40  // CHECK: @llvm.ctlz.i32(i32 %{{.*}}, i1 false)41  return _lzcnt_u32(__X);42}43TEST_CONSTEXPR(_lzcnt_u32(0x00000000) == 32);44TEST_CONSTEXPR(_lzcnt_u32(0x80000000) ==  0);45TEST_CONSTEXPR(_lzcnt_u32(0x00000010) == 27);46 47unsigned long long test__lzcnt_u64(unsigned long long __X)48{49  // CHECK: @llvm.ctlz.i64(i64 %{{.*}}, i1 false)50  return _lzcnt_u64(__X);51}52TEST_CONSTEXPR(_lzcnt_u64(0x0000000000000000ULL) == 64);53TEST_CONSTEXPR(_lzcnt_u64(0x8000000000000000ULL) ==  0);54TEST_CONSTEXPR(_lzcnt_u64(0x0000000100000000ULL) == 31);55