summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/overflow-mul.ll
Commit message (Collapse)AuthorAgeFilesLines
* InstCombine: Don't assume that m_ZExt matches an InstructionDavid Majnemer2014-11-011-0/+13
| | | | | | | | | | | | m_ZExt might bind against a ConstantExpr instead of an Instruction. Assuming this, using cast<Instruction>, results in InstCombine crashing. Instead, introduce ZExtOperator to bridge both Instruction and ConstantExpr ZExts. This fixes PR21445. llvm-svn: 221069
* InstCombine: Disable umul.with.overflow recognition for vectors.Benjamin Kramer2014-06-241-0/+11
| | | | | | It doesn't make a lot on most targets and the code isn't ready for it. PR20113. llvm-svn: 211583
* Recognize test for overflow in integer multiplication.Serge Pavlov2014-04-131-0/+164
If multiplication involves zero-extended arguments and the result is compared as in the patterns: %mul32 = trunc i64 %mul64 to i32 %zext = zext i32 %mul32 to i64 %overflow = icmp ne i64 %mul64, %zext or %overflow = icmp ugt i64 %mul64 , 0xffffffff then the multiplication may be replaced by call to umul.with.overflow. This change fixes PR4917 and PR4918. Differential Revision: http://llvm-reviews.chandlerc.com/D2814 llvm-svn: 206137
OpenPOWER on IntegriCloud