[llvm-branch-commits] [llvm-branch] r216089 - Merging r216064:

Bill Wendling isanbard at gmail.com
Wed Aug 20 10:42:35 PDT 2014


Author: void
Date: Wed Aug 20 12:42:35 2014
New Revision: 216089

URL: http://llvm.org/viewvc/llvm-project?rev=216089&view=rev
Log:
Merging r216064:
------------------------------------------------------------------------
r216064 | kongyi | 2014-08-20 03:40:20 -0700 (Wed, 20 Aug 2014) | 9 lines

ARM: Fix codegen for rbit intrinsic

LLVM generates illegal `rbit r0, #352` instruction for rbit intrinsic.
According to ARM ARM, rbit only takes register as argument, not immediate.
The correct instruction should be rbit <Rd>, <Rm>.

The bug was originally introduced in r211057.

Differential Revision: http://reviews.llvm.org/D4980
------------------------------------------------------------------------

Added:
    llvm/branches/release_35/test/CodeGen/AArch64/rbit.ll
      - copied unchanged from r216064, llvm/trunk/test/CodeGen/AArch64/rbit.ll
    llvm/branches/release_35/test/CodeGen/ARM/rbit.ll
      - copied unchanged from r216064, llvm/trunk/test/CodeGen/ARM/rbit.ll
Modified:
    llvm/branches/release_35/   (props changed)
    llvm/branches/release_35/lib/Target/ARM/ARMISelLowering.cpp

Propchange: llvm/branches/release_35/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 20 12:42:35 2014
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,213653,213665,213726,213749,213773,213793,213798-213799,213815,213847,213880,213883-213884,213894-213896,213899,213915,213966,213999,214060,214129,214180,214287,214331,214423,214429,214519,214670,214674,214679,215685,215711,215806
+/llvm/trunk:155241,213653,213665,213726,213749,213773,213793,213798-213799,213815,213847,213880,213883-213884,213894-213896,213899,213915,213966,213999,214060,214129,214180,214287,214331,214423,214429,214519,214670,214674,214679,215685,215711,215806,216064

Modified: llvm/branches/release_35/lib/Target/ARM/ARMISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_35/lib/Target/ARM/ARMISelLowering.cpp?rev=216089&r1=216088&r2=216089&view=diff
==============================================================================
--- llvm/branches/release_35/lib/Target/ARM/ARMISelLowering.cpp (original)
+++ llvm/branches/release_35/lib/Target/ARM/ARMISelLowering.cpp Wed Aug 20 12:42:35 2014
@@ -2578,9 +2578,9 @@ ARMTargetLowering::LowerINTRINSIC_WO_CHA
   switch (IntNo) {
   default: return SDValue();    // Don't custom lower most intrinsics.
   case Intrinsic::arm_rbit: {
-    assert(Op.getOperand(0).getValueType() == MVT::i32 &&
+    assert(Op.getOperand(1).getValueType() == MVT::i32 &&
            "RBIT intrinsic must have i32 type!");
-    return DAG.getNode(ARMISD::RBIT, dl, MVT::i32, Op.getOperand(0));
+    return DAG.getNode(ARMISD::RBIT, dl, MVT::i32, Op.getOperand(1));
   }
   case Intrinsic::arm_thread_pointer: {
     EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();





More information about the llvm-branch-commits mailing list