llvm.org GIT mirror llvm / ef64b17
[ARM] Remove rbit intrinsics and autoupgrade to generic bitreverse. 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 Chad Rosier 3 years ago
3 changed file(s) with 1 addition(s) and 11 deletion(s). Raw diff Collapse all Expand all
153153
154154 def int_arm_hint : Intrinsic<[], [llvm_i32_ty]>;
155155 def int_arm_dbg : Intrinsic<[], [llvm_i32_ty]>;
156
157 //===----------------------------------------------------------------------===//
158 // RBIT
159
160 def int_arm_rbit : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
161156
162157 //===----------------------------------------------------------------------===//
163158 // UND (reserved undefined sequence)
7676 switch (Name[0]) {
7777 default: break;
7878 case 'a': {
79 if (Name.startswith("aarch64.rbit")) {
79 if (Name.startswith("arm.rbit") || Name.startswith("aarch64.rbit")) {
8080 NewFn = Intrinsic::getDeclaration(F->getParent(), Intrinsic::bitreverse,
8181 F->arg_begin()->getType());
8282 return true;
33043304 SDLoc dl(Op);
33053305 switch (IntNo) {
33063306 default: return SDValue(); // Don't custom lower most intrinsics.
3307 case Intrinsic::arm_rbit: {
3308 assert(Op.getOperand(1).getValueType() == MVT::i32 &&
3309 "RBIT intrinsic must have i32 type!");
3310 return DAG.getNode(ISD::BITREVERSE, dl, MVT::i32, Op.getOperand(1));
3311 }
33123307 case Intrinsic::thread_pointer: {
33133308 EVT PtrVT = getPointerTy(DAG.getDataLayout());
33143309 return DAG.getNode(ARMISD::THREAD_POINTER, dl, PtrVT);