summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/bmi-builtins.c
diff options
context:
space:
mode:
authorMichael Zuckerman <Michael.zuckerman@intel.com>2016-06-22 12:32:43 +0000
committerMichael Zuckerman <Michael.zuckerman@intel.com>2016-06-22 12:32:43 +0000
commit716859aa644f0df05a84b77f8bd11a057083efe1 (patch)
treea8548369aa3845f3eade287a4e69169cfa551334 /clang/test/CodeGen/bmi-builtins.c
parent397a34a08db195717d0357a6e55437ee4f84fd2c (diff)
downloadbcm5719-llvm-716859aa644f0df05a84b77f8bd11a057083efe1.tar.gz
bcm5719-llvm-716859aa644f0df05a84b77f8bd11a057083efe1.zip
[Clang][bmi][intrinsics] Adding _mm_tzcnt_64 _mm_tzcnt_32 intrinsics to clang.
Differential Revision: http://reviews.llvm.org/D21373 llvm-svn: 273401
Diffstat (limited to 'clang/test/CodeGen/bmi-builtins.c')
-rw-r--r--clang/test/CodeGen/bmi-builtins.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/CodeGen/bmi-builtins.c b/clang/test/CodeGen/bmi-builtins.c
index aac491d1a59..b9e22f9b20f 100644
--- a/clang/test/CodeGen/bmi-builtins.c
+++ b/clang/test/CodeGen/bmi-builtins.c
@@ -64,6 +64,13 @@ unsigned int test__tzcnt_u32(unsigned int __X) {
return __tzcnt_u32(__X);
}
+int test_mm_tzcnt_32(unsigned int __X) {
+ // CHECK-LABEL: test_mm_tzcnt_32
+ // CHECK: icmp ne i32 %{{.*}}, 0
+ // CHECK: i32 @llvm.cttz.i32(i32 %{{.*}}, i1 true)
+ return _mm_tzcnt_32(__X);
+}
+
unsigned long long test__andn_u64(unsigned long __X, unsigned long __Y) {
// CHECK-LABEL: test__andn_u64
// CHECK: xor i64 %{{.*}}, -1
@@ -105,6 +112,13 @@ unsigned long long test__tzcnt_u64(unsigned long long __X) {
return __tzcnt_u64(__X);
}
+long long test_mm_tzcnt_64(unsigned long long __X) {
+ // CHECK-LABEL: test_mm_tzcnt_64
+ // CHECK: icmp ne i64 %{{.*}}, 0
+ // CHECK: i64 @llvm.cttz.i64(i64 %{{.*}}, i1 true)
+ return _mm_tzcnt_64(__X);
+}
+
// Intel intrinsics
unsigned short test_tzcnt_u16(unsigned short __X) {
OpenPOWER on IntegriCloud