| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 1 | ; THis testcase caused an assertion failure because a PHI node did not have | 
|  | 2 | ; entries for it's postdominator.  But I think this can only happen when the | 
|  | 3 | ; PHI node is dead, so we just avoid patching up dead PHI nodes. | 
|  | 4 |  | 
| David Callahan | ebcf916 | 2016-12-13 16:42:18 +0000 | [diff] [blame] | 5 | ; RUN: opt < %s -adce                    -S | FileCheck %s | 
|  | 6 | ; RUN: opt < %s -adce -adce-remove-loops -S | FileCheck %s | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 7 |  | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 8 | target datalayout = "e-p:32:32" | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 9 |  | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 10 | define void @dead_test8() { | 
|  | 11 | entry: | 
|  | 12 | br label %loopentry | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 13 |  | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 14 | loopentry:              ; preds = %endif, %entry | 
|  | 15 | %k.1 = phi i32 [ %k.0, %endif ], [ 0, %entry ]          ; <i32> [#uses=1] | 
|  | 16 | br i1 false, label %no_exit, label %return | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 17 |  | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 18 | no_exit:                ; preds = %loopentry | 
| David Callahan | ebcf916 | 2016-12-13 16:42:18 +0000 | [diff] [blame] | 19 | ; CHECK: br label %then | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 20 | br i1 false, label %then, label %else | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 21 |  | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 22 | then:           ; preds = %no_exit | 
|  | 23 | br label %endif | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 24 |  | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 25 | else:           ; preds = %no_exit | 
|  | 26 | %dec = add i32 %k.1, -1         ; <i32> [#uses=1] | 
|  | 27 | br label %endif | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 28 |  | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 29 | endif:          ; preds = %else, %then | 
|  | 30 | %k.0 = phi i32 [ %dec, %else ], [ 0, %then ]            ; <i32> [#uses=1] | 
|  | 31 | store i32 2, i32* null | 
|  | 32 | br label %loopentry | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 33 |  | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 34 | return:         ; preds = %loopentry | 
|  | 35 | ret void | 
| Chris Lattner | b093bf3 | 2003-04-25 22:53:12 +0000 | [diff] [blame] | 36 | } | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 37 |  |