Chris Lattner
fdb19e5887
Fix PR2506 by being a bit more careful about reverse fact propagation when
disproving a condition. This actually compiles the existing testcase
(udiv_select_to_select_shift) to:
define i64 @test(i64 %X, i1 %Cond) {
entry:
%divisor1.t = lshr i64 %X, 3 ; <i64> [#uses=1]
%quotient2 = lshr i64 %X, 3 ; <i64> [#uses=1]
%sum = add i64 %divisor1.t, %quotient2 ; <i64> [#uses=1]
ret i64 %sum
}
instead of:
define i64 @test(i64 %X, i1 %Cond) {
entry:
%quotient1.v = select i1 %Cond, i64 3, i64 4 ; <i64> [#uses=1]
%quotient1 = lshr i64 %X, %quotient1.v ; <i64> [#uses=1]
%quotient2 = lshr i64 %X, 3 ; <i64> [#uses=1]
%sum = add i64 %quotient1, %quotient2 ; <i64> [#uses=1]
ret i64 %sum
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53534 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 00:15:52 +00:00
..
2008-07-03 17:21:41 +00:00
2008-05-13 00:00:25 +00:00
2008-06-08 20:54:56 +00:00
2008-05-13 00:00:25 +00:00
2008-06-21 22:08:46 +00:00
2008-05-13 00:00:25 +00:00
2008-05-13 01:48:26 +00:00
2008-06-21 22:08:46 +00:00
2008-07-11 20:05:13 +00:00
2008-06-05 07:55:49 +00:00
2008-06-22 20:18:58 +00:00
2008-07-14 00:15:52 +00:00
2008-05-27 11:50:51 +00:00
2008-06-22 20:18:58 +00:00
2008-06-23 23:23:49 +00:00
2008-07-09 00:12:01 +00:00
2008-06-19 17:37:25 +00:00
2008-07-07 19:51:32 +00:00
2008-07-03 07:04:22 +00:00
2008-07-03 17:37:52 +00:00
2007-12-29 20:09:26 +00:00
2008-06-01 22:26:26 +00:00
2008-05-27 00:59:05 +00:00
2008-05-16 19:29:10 +00:00
2008-05-16 19:29:10 +00:00
2008-03-20 17:16:03 +00:00
2008-06-23 17:11:23 +00:00
2008-06-20 16:41:17 +00:00
2008-05-14 20:38:44 +00:00
2008-06-30 07:31:25 +00:00
2008-06-12 20:55:39 +00:00
2008-06-14 00:49:48 +00:00