[PATCH] D41667: [DAGCombine] Fix for PR35761
    Simon Pilgrim via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sun Jan  7 02:44:41 PST 2018
    
    
  
RKSimon added inline comments.
================
Comment at: lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3924
+      else
+        DAG.UpdateNodeOperands(LogicN, LogicN->getOperand(1), And);
     }
----------------
It might be clearer if you just do something like:
```
SDValue Op0 = LogicN->getOperand(0);
SDValue Op1 = LogicN->getOperand(1);
if (isa<ConstantSDNode>(Op0))
  std::swap(Op0, Op1);
SDValue And = DAG.getNode(ISD::AND, SDLoc(Op1), Op1.getValueType(), Op1, MaskOp);
DAG.UpdateNodeOperands(LogicN, Op0, And);
```
================
Comment at: test/CodeGen/X86/pr35761.ll:66
+  ret void
+}
+
----------------
Please can you try to reduce this further
https://reviews.llvm.org/D41667
    
    
More information about the llvm-commits
mailing list