diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2017-01-10 17:20:28 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2017-01-10 17:20:28 +0000 |
commit | 5a4a1be690272a7d388e2fde1abf9d2f4e45aa18 (patch) | |
tree | 4907d27abace5b3106653d1ee9aa198af895290b /clang | |
parent | b7e2ee2abab757db5d31c4b54ad41705ec504ed5 (diff) | |
download | bcm5719-llvm-5a4a1be690272a7d388e2fde1abf9d2f4e45aa18.tar.gz bcm5719-llvm-5a4a1be690272a7d388e2fde1abf9d2f4e45aa18.zip |
[AArch64] Use generic bitreverse intrinsic, rather than AArch64 specific.
Differential Revision: https://reviews.llvm.org/D28400
llvm-svn: 291574
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 4 | ||||
-rw-r--r-- | clang/test/CodeGen/arm_acle.c | 6 | ||||
-rw-r--r-- | clang/test/CodeGen/builtins-arm64.c | 4 |
3 files changed, 7 insertions, 7 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 4d34b3e9222..f297d622c33 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -5226,14 +5226,14 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID, "rbit of unusual size!"); llvm::Value *Arg = EmitScalarExpr(E->getArg(0)); return Builder.CreateCall( - CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, "rbit"); + CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit"); } if (BuiltinID == AArch64::BI__builtin_arm_rbit64) { assert((getContext().getTypeSize(E->getType()) == 64) && "rbit of unusual size!"); llvm::Value *Arg = EmitScalarExpr(E->getArg(0)); return Builder.CreateCall( - CGM.getIntrinsic(Intrinsic::aarch64_rbit, Arg->getType()), Arg, "rbit"); + CGM.getIntrinsic(Intrinsic::bitreverse, Arg->getType()), Arg, "rbit"); } if (BuiltinID == AArch64::BI__clear_cache) { diff --git a/clang/test/CodeGen/arm_acle.c b/clang/test/CodeGen/arm_acle.c index 0884394fbf1..60e95e52669 100644 --- a/clang/test/CodeGen/arm_acle.c +++ b/clang/test/CodeGen/arm_acle.c @@ -245,14 +245,14 @@ int16_t test_revsh(int16_t t) { // ARM-LABEL: test_rbit // AArch32: call i32 @llvm.arm.rbit -// AArch64: call i32 @llvm.aarch64.rbit.i32 +// AArch64: call i32 @llvm.bitreverse.i32 uint32_t test_rbit(uint32_t t) { return __rbit(t); } // ARM-LABEL: test_rbitl // AArch32: call i32 @llvm.arm.rbit -// AArch64: call i64 @llvm.aarch64.rbit.i64 +// AArch64: call i64 @llvm.bitreverse.i64 long test_rbitl(long t) { return __rbitl(t); } @@ -260,7 +260,7 @@ long test_rbitl(long t) { // ARM-LABEL: test_rbitll // AArch32: call i32 @llvm.arm.rbit // AArch32: call i32 @llvm.arm.rbit -// AArch64: call i64 @llvm.aarch64.rbit.i64 +// AArch64: call i64 @llvm.bitreverse.i64 uint64_t test_rbitll(uint64_t t) { return __rbitll(t); } diff --git a/clang/test/CodeGen/builtins-arm64.c b/clang/test/CodeGen/builtins-arm64.c index 20eb2abc947..dc5fb6f31cf 100644 --- a/clang/test/CodeGen/builtins-arm64.c +++ b/clang/test/CodeGen/builtins-arm64.c @@ -10,12 +10,12 @@ void *tp (void) { // CHECK: call {{.*}} @llvm.thread.pointer() } -// CHECK: call {{.*}} @llvm.aarch64.rbit.i32(i32 %a) +// CHECK: call {{.*}} @llvm.bitreverse.i32(i32 %a) unsigned rbit(unsigned a) { return __builtin_arm_rbit(a); } -// CHECK: call {{.*}} @llvm.aarch64.rbit.i64(i64 %a) +// CHECK: call {{.*}} @llvm.bitreverse.i64(i64 %a) unsigned long long rbit64(unsigned long long a) { return __builtin_arm_rbit64(a); } |