summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/bitscan-builtins.c
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-06-13 17:26:16 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-06-13 17:26:16 +0000
commitad1944c89634e870ab1cae4ba3903d3609702bb2 (patch)
tree5e90bfe3c58267a0d7591b02dd029b5e03a51a9d /test/CodeGen/bitscan-builtins.c
parentf0c013a48e3039cbb369e7dc8779b95455e3fb7c (diff)
[immintrin] Reimplement _bit_scan_{forward,reverse}
There is no need to use a target-specific intrinsic to implement _bit_scan_forward or _bit_scan_reverse, reimplementing them using generic intrinsics makes it more likely that the middle end will understand what's going on. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272564 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/bitscan-builtins.c')
-rw-r--r--test/CodeGen/bitscan-builtins.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/test/CodeGen/bitscan-builtins.c b/test/CodeGen/bitscan-builtins.c
index 85a7542634..451e8f4570 100644
--- a/test/CodeGen/bitscan-builtins.c
+++ b/test/CodeGen/bitscan-builtins.c
@@ -7,11 +7,13 @@
int test_bit_scan_forward(int a) {
return _bit_scan_forward(a);
// CHECK: @test_bit_scan_forward
-// CHECK: call i32 @llvm.x86.bit.scan.forward
+// CHECK: %[[call:.*]] = call i32 @llvm.cttz.i32(
+// CHECK: ret i32 %[[call]]
}
int test_bit_scan_reverse(int a) {
return _bit_scan_reverse(a);
-// CHECK: @test_bit_scan_reverse
-// CHECK: call i32 @llvm.x86.bit.scan.reverse
+// CHECK: %[[call:.*]] = call i32 @llvm.ctlz.i32(
+// CHECK: %[[sub:.*]] = sub nsw i32 31, %2
+// CHECK: ret i32 %[[sub]]
}