[PATCH] D57754: [DAGCombiner] (add (umax X, C), -C) --> (usubsat X, C) (PR40111)
    Nikita Popov via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Feb  5 11:41:39 PST 2019
    
    
  
nikic added inline comments.
================
Comment at: lib/CodeGen/SelectionDAG/DAGCombiner.cpp:2164
+  if (N0.getOpcode() == ISD::UMAX &&
+      (!LegalOperations || TLI.isOperationLegal(ISD::USUBSAT, VT))) {
+    auto MatchUSUBSAT = [](ConstantSDNode *Max, ConstantSDNode *Op) {
----------------
I'm not familiar with the nuances of the legality checking here, but wondering if using the `hasOperation(ISD::USUBSAT, VT)` helper would make more sense? If usubsat is not legal or custom, then the created usubsat is going to be expanded back into umax+add during legalization again anyway.
Repository:
  rL LLVM
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57754/new/
https://reviews.llvm.org/D57754
    
    
More information about the llvm-commits
mailing list