diff options
author | Chris Lattner <sabre@nondot.org> | 2010-08-18 03:14:36 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-08-18 03:14:36 +0000 |
commit | 2fa7b48eb594db245dc6af6060c92bbd2b19546b (patch) | |
tree | cc208466680c5d9d0cf3830a893c1d40b7ee41de /test/Transforms/JumpThreading | |
parent | c7e31fcf496e164cd6b45e6d15e06df54c3441a6 (diff) |
Fix PR7755: knowing something about an inval for a pred
from the LHS should disable reconsidering that pred on the
RHS. However, knowing something about the pred on the RHS
shouldn't disable subsequent additions on the RHS from
happening.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111349 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/JumpThreading')
-rw-r--r-- | test/Transforms/JumpThreading/crash.ll | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/Transforms/JumpThreading/crash.ll b/test/Transforms/JumpThreading/crash.ll index 4fe94e5ea0..cfd9042431 100644 --- a/test/Transforms/JumpThreading/crash.ll +++ b/test/Transforms/JumpThreading/crash.ll @@ -436,4 +436,28 @@ for.cond1040: ; preds = %for.body1044, %for. ret void } +; PR7755 +define void @test16(i1 %c, i1 %c2, i1 %c3, i1 %c4) nounwind ssp { +entry: + %cmp = icmp sgt i32 undef, 1 ; <i1> [#uses=1] + br i1 %c, label %land.end, label %land.rhs + +land.rhs: ; preds = %entry + br i1 %c2, label %lor.lhs.false.i, label %land.end + +lor.lhs.false.i: ; preds = %land.rhs + br i1 %c3, label %land.end, label %land.end + +land.end: + %0 = phi i1 [ true, %entry ], [ false, %land.rhs ], [false, %lor.lhs.false.i], [false, %lor.lhs.false.i] ; <i1> [#uses=1] + %cmp12 = and i1 %cmp, %0 + %xor1 = xor i1 %cmp12, %c4 + br i1 %xor1, label %if.then, label %if.end + +if.then: + ret void + +if.end: + ret void +} |