mirror of
https://github.com/RPCSX/llvm.git
synced 2025-03-03 02:17:41 +00:00
ARM: intrinsic support for rbit.
We already have an ARMISD node. Create an intrinsic to map to it so we can add support for the frontend __rbit() intrinsic. rdar://9283021 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211057 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
212ec3a739
commit
5c1a1b2249
@ -125,6 +125,11 @@ 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_hint : Intrinsic<[], [llvm_i32_ty]>;
|
||||||
|
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
// RBIT
|
||||||
|
|
||||||
|
def int_arm_rbit : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// UND (reserved undefined sequence)
|
// UND (reserved undefined sequence)
|
||||||
|
|
||||||
|
@ -2542,6 +2542,11 @@ ARMTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op, SelectionDAG &DAG,
|
|||||||
SDLoc dl(Op);
|
SDLoc dl(Op);
|
||||||
switch (IntNo) {
|
switch (IntNo) {
|
||||||
default: return SDValue(); // Don't custom lower most intrinsics.
|
default: return SDValue(); // Don't custom lower most intrinsics.
|
||||||
|
case Intrinsic::arm_rbit: {
|
||||||
|
assert(Op.getOperand(0).getValueType() == MVT::i32 &&
|
||||||
|
"RBIT intrinsic must have i32 type!");
|
||||||
|
return DAG.getNode(ARMISD::RBIT, dl, MVT::i32, Op.getOperand(0));
|
||||||
|
}
|
||||||
case Intrinsic::arm_thread_pointer: {
|
case Intrinsic::arm_thread_pointer: {
|
||||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||||
return DAG.getNode(ARMISD::THREAD_POINTER, dl, PtrVT);
|
return DAG.getNode(ARMISD::THREAD_POINTER, dl, PtrVT);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user