| commit | dad2103801e58b559bf14164d1aebdf7f444da5b | [log] [tgz] |
|---|---|---|
| author | David Majnemer <david.majnemer@gmail.com> | Tue Oct 14 20:28:40 2014 +0000 |
| committer | David Majnemer <david.majnemer@gmail.com> | Tue Oct 14 20:28:40 2014 +0000 |
| tree | a009b90f69dd507d4bba464c231f5f53dc6f01e0 | |
| parent | c694e693b098ca624a65815f2481be3223385107 [diff] |
InstCombine: Don't miscompile X % ((Pow2 << A) >>u B) We assumed that A must be greater than B because the right hand side of a remainder operator must be nonzero. However, it is possible for A to be less than B if Pow2 is a power of two greater than 1. Take for example: i32 %A = 0 i32 %B = 31 i32 Pow2 = 2147483648 ((Pow2 << 0) >>u 31) is non-zero but A is less than B. This fixes PR21274. llvm-svn: 219713