]> granicus.if.org Git - llvm/commitdiff
[ARM] Remove rbit intrinsics and autoupgrade to generic bitreverse.
authorChad Rosier <mcrosier@codeaurora.org>
Tue, 10 Jan 2017 19:23:51 +0000 (19:23 +0000)
committerChad Rosier <mcrosier@codeaurora.org>
Tue, 10 Jan 2017 19:23:51 +0000 (19:23 +0000)
Testing already covered by CodeGen/ARM/rbit.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291587 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/IntrinsicsARM.td
lib/IR/AutoUpgrade.cpp
lib/Target/ARM/ARMISelLowering.cpp

index 0995985968853982a994868ce0fe94f4e546b611..24239689a62ee71d9809850f647fd4d0063da598 100644 (file)
@@ -155,11 +155,6 @@ def int_arm_crc32cw : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
 def int_arm_hint : Intrinsic<[], [llvm_i32_ty]>;
 def int_arm_dbg : Intrinsic<[], [llvm_i32_ty]>;
 
-//===----------------------------------------------------------------------===//
-// RBIT
-
-def int_arm_rbit : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
-
 //===----------------------------------------------------------------------===//
 // UND (reserved undefined sequence)
 
index 6a66d1344e8f6dfd47bab3e52e22e6df6fb6034e..e3a7bae02e0a5e42e367ec0e75af9936be7e6019 100644 (file)
@@ -77,7 +77,7 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) {
   switch (Name[0]) {
   default: break;
   case 'a': {
-    if (Name.startswith("aarch64.rbit")) {
+    if (Name.startswith("arm.rbit") || Name.startswith("aarch64.rbit")) {
       NewFn = Intrinsic::getDeclaration(F->getParent(), Intrinsic::bitreverse,
                                         F->arg_begin()->getType());
       return true;
index afba1587a743f4f339818e88209895e89508ab0a..441551595eb19ea1041bca931e2b379219b7c717 100644 (file)
@@ -3305,11 +3305,6 @@ ARMTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op, SelectionDAG &DAG,
   SDLoc dl(Op);
   switch (IntNo) {
   default: return SDValue();    // Don't custom lower most intrinsics.
-  case Intrinsic::arm_rbit: {
-    assert(Op.getOperand(1).getValueType() == MVT::i32 &&
-           "RBIT intrinsic must have i32 type!");
-    return DAG.getNode(ISD::BITREVERSE, dl, MVT::i32, Op.getOperand(1));
-  }
   case Intrinsic::thread_pointer: {
     EVT PtrVT = getPointerTy(DAG.getDataLayout());
     return DAG.getNode(ARMISD::THREAD_POINTER, dl, PtrVT);