Craig Topper | f2855ad | 2011-12-25 06:25:37 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 %s -O3 -triple=x86_64-apple-darwin -target-feature +bmi -S -o - | FileCheck %s |
| 2 | |
| 3 | // Don't include mm_malloc.h, it's system specific. |
| 4 | #define __MM_MALLOC_H |
| 5 | |
| 6 | #include <x86intrin.h> |
| 7 | |
Craig Topper | a06d4a1 | 2011-12-25 07:27:12 +0000 | [diff] [blame^] | 8 | unsigned short test__tzcnt16(unsigned short __X) { |
Craig Topper | f2855ad | 2011-12-25 06:25:37 +0000 | [diff] [blame] | 9 | // CHECK: tzcntw |
| 10 | return __tzcnt16(__X); |
| 11 | } |
| 12 | |
Craig Topper | a06d4a1 | 2011-12-25 07:27:12 +0000 | [diff] [blame^] | 13 | unsigned int test__andn_u32(unsigned int __X, unsigned int __Y) { |
| 14 | // CHECK: andnl |
| 15 | return __andn_u32(__X, __Y); |
| 16 | } |
| 17 | |
| 18 | unsigned int test__bextr_u32(unsigned int __X, unsigned int __Y) { |
| 19 | // CHECK: bextrl |
| 20 | return __bextr_u32(__X, __Y); |
| 21 | } |
| 22 | |
| 23 | unsigned int test__blsi_u32(unsigned int __X) { |
| 24 | // CHECK: blsil |
| 25 | return __blsi_u32(__X); |
| 26 | } |
| 27 | |
| 28 | unsigned int test__blsmsk_u32(unsigned int __X) { |
| 29 | // CHECK: blsmskl |
| 30 | return __blsmsk_u32(__X); |
| 31 | } |
| 32 | |
| 33 | unsigned int test__blsr_u32(unsigned int __X) { |
| 34 | // CHECK: blsrl |
| 35 | return __blsr_u32(__X); |
| 36 | } |
| 37 | |
| 38 | unsigned int test_tzcnt32(unsigned int __X) { |
Craig Topper | f2855ad | 2011-12-25 06:25:37 +0000 | [diff] [blame] | 39 | // CHECK: tzcntl |
| 40 | return __tzcnt32(__X); |
| 41 | } |
| 42 | |
Craig Topper | a06d4a1 | 2011-12-25 07:27:12 +0000 | [diff] [blame^] | 43 | unsigned long long test__andn_u64(unsigned long __X, unsigned long __Y) { |
| 44 | // CHECK: andnq |
| 45 | return __andn_u64(__X, __Y); |
| 46 | } |
| 47 | |
| 48 | unsigned long long test__bextr_u64(unsigned long __X, unsigned long __Y) { |
| 49 | // CHECK: bextrq |
| 50 | return __bextr_u64(__X, __Y); |
| 51 | } |
| 52 | |
| 53 | unsigned long long test__blsi_u64(unsigned long long __X) { |
| 54 | // CHECK: blsiq |
| 55 | return __blsi_u64(__X); |
| 56 | } |
| 57 | |
| 58 | unsigned long long test__blsmsk_u64(unsigned long long __X) { |
| 59 | // CHECK: blsmskq |
| 60 | return __blsmsk_u64(__X); |
| 61 | } |
| 62 | |
| 63 | unsigned long long test__blsr_u64(unsigned long long __X) { |
| 64 | // CHECK: blsrq |
| 65 | return __blsr_u64(__X); |
| 66 | } |
| 67 | |
| 68 | unsigned long long test__tzcnt64(unsigned long long __X) { |
Craig Topper | f2855ad | 2011-12-25 06:25:37 +0000 | [diff] [blame] | 69 | // CHECK: tzcntq |
| 70 | return __tzcnt64(__X); |
| 71 | } |