Fix PR24354.
authorSanjoy Das <sanjoy@playingwithpointers.com>
Tue, 11 Aug 2015 21:33:55 +0000 (21:33 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Tue, 11 Aug 2015 21:33:55 +0000 (21:33 +0000)
commit827529e7a05d19185ff54aa8997a363c77f9baf0
treefef620d2d0b0975f4849b6cf002d43a7fae17e44
parent2e0551f8d2c6414c11780716c66192c832e62365
Fix PR24354.

`InstCombiner::OptimizeOverflowCheck` was asserting an
invariant (operands to binary operations are ordered by decreasing
complexity) that wasn't really an invariant.  Fix this by instead having
`InstCombiner::OptimizeOverflowCheck` establish the invariant if it does
not hold.

llvm-svn: 244676
llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
llvm/test/Transforms/InstCombine/pr24354.ll [new file with mode: 0644]