[PATCH] D74228: [PatternMatch] Match XOR variant of unsigned-add overflow check.
    Sanjay Patel via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Feb 10 09:14:32 PST 2020
    
    
  
spatel added a comment.
In D74228#1867093 <https://reviews.llvm.org/D74228#1867093>, @fhahn wrote:
> InstCombine started turning (a + b <u a)  into (a ^ -1 <u b), but CGP looks for  (a + b <u a)  and misses the case now. Does that answer your question?
Ah, I see it now. I wasn't reading the diff in InstCombiner::visitICmpInst() correctly. Might be nicer to include something like:
  // m_UAddWithOverflow can match patterns that do not include
  // an explicit "add" instruction, so check the opcode of the matched op.
   
> It might be good to have tests that run instcombine & CGP to catch regressions such as this?
Yes, that would be an improvement. Two potential options:
1. Add 'opt' RUNs that include CGP to llvm/test/Transforms/PhaseOrdering (this is probably stretching the intent of "PhaseOrdering"; we'll need a new target-specific test directory because CGP will require that we pick a target).
2. Add full end-to-end tests for C --> asm to test-suite.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74228/new/
https://reviews.llvm.org/D74228
    
    
More information about the llvm-commits
mailing list