[llvm] r261720 - AMDGPU: Check cheaper condition before SignBitIsZero

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 23 20:56:04 PST 2016


Author: arsenm
Date: Tue Feb 23 22:55:29 2016
New Revision: 261720

URL: http://llvm.org/viewvc/llvm-project?rev=261720&view=rev
Log:
AMDGPU: Check cheaper condition before SignBitIsZero

Don't do an expensive computeKnownBits call when we
can do the cheap check for legal offsets first.

Modified:
    llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp

Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp?rev=261720&r1=261719&r2=261720&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp Tue Feb 23 22:55:29 2016
@@ -1063,14 +1063,13 @@ bool AMDGPUDAGToDAGISel::SelectMUBUFScra
   if (CurDAG->isBaseWithConstantOffset(Addr)) {
     SDValue N0 = Addr.getOperand(0);
     SDValue N1 = Addr.getOperand(1);
+
     // Offsets in vaddr must be positive.
-    if (CurDAG->SignBitIsZero(N0)) {
-      ConstantSDNode *C1 = cast<ConstantSDNode>(N1);
-      if (isLegalMUBUFImmOffset(C1)) {
-        VAddr = N0;
-        ImmOffset = CurDAG->getTargetConstant(C1->getZExtValue(), DL, MVT::i16);
-        return true;
-      }
+    ConstantSDNode *C1 = cast<ConstantSDNode>(N1);
+    if (isLegalMUBUFImmOffset(C1) && CurDAG->SignBitIsZero(N0)) {
+      VAddr = N0;
+      ImmOffset = CurDAG->getTargetConstant(C1->getZExtValue(), DL, MVT::i16);
+      return true;
     }
   }
 




More information about the llvm-commits mailing list