blob: 78bfcb4197b238bdee434cd72297b0b1087bc7e5 [file] [log] [blame]
Chris Lattnerbcecb4b2003-04-18 19:22:39 +00001; This testcases makes sure that mem2reg can handle unreachable blocks.
Tanya Lattnere6d5d392008-03-19 07:28:33 +00002; RUN: llvm-as < %s | opt -mem2reg
Chris Lattnerbcecb4b2003-04-18 19:22:39 +00003
Tanya Lattnere6d5d392008-03-19 07:28:33 +00004define i32 @test() {
5 %X = alloca i32 ; <i32*> [#uses=2]
6 store i32 6, i32* %X
Chris Lattnerbcecb4b2003-04-18 19:22:39 +00007 br label %Loop
Tanya Lattnere6d5d392008-03-19 07:28:33 +00008Loop: ; preds = %EndOfLoop, %0
9 store i32 5, i32* %X
Chris Lattnerbcecb4b2003-04-18 19:22:39 +000010 br label %EndOfLoop
Tanya Lattnere6d5d392008-03-19 07:28:33 +000011Unreachable: ; No predecessors!
Chris Lattnerbcecb4b2003-04-18 19:22:39 +000012 br label %EndOfLoop
Tanya Lattnere6d5d392008-03-19 07:28:33 +000013EndOfLoop: ; preds = %Unreachable, %Loop
Chris Lattnerbcecb4b2003-04-18 19:22:39 +000014 br label %Loop
15}
Tanya Lattnere6d5d392008-03-19 07:28:33 +000016