diff options
Diffstat (limited to 'test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll')
-rw-r--r-- | test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll b/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll index e9cac7f..43bff82 100644 --- a/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll +++ b/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; Date: May 28, 2003. ;; From: test/Programs/SingleSource/richards_benchmark.c @@ -9,26 +9,25 @@ ;; causes llc to produces an invalid register <NULL VALUE> ;; for the phi arguments. - %struct..packet = type { %struct..packet*, int, int, int, [4 x sbyte] } - %struct..task = type { %struct..task*, int, int, %struct..packet*, int, %struct..task* (%struct..packet*)*, int, int } -%v1 = external global int -%v2 = external global int + %struct..packet = type { %struct..packet*, i32, i32, i32, [4 x i8] } + %struct..task = type { %struct..task*, i32, i32, %struct..packet*, i32, %struct..task* (%struct..packet*)*, i32, i32 } +@v1 = external global i32 ; <i32*> [#uses=1] +@v2 = external global i32 ; <i32*> [#uses=1] -implementation ; Functions: +define %struct..task* @handlerfn(%struct..packet* %pkt.2) { +entry: + %tmp.1 = icmp ne %struct..packet* %pkt.2, null ; <i1> [#uses=1] + br i1 %tmp.1, label %cond_false, label %cond_continue -%struct..task* %handlerfn(%struct..packet* %pkt.2) { -entry: ; No predecessors! - %tmp.1 = setne %struct..packet* %pkt.2, null - br bool %tmp.1, label %cond_false, label %cond_continue +cond_false: ; preds = %entry + br label %cond_continue -cond_false: ; preds = %entry - br label %cond_continue - -cond_continue: ; preds = %entry, %cond_false - %mem_tmp.0 = phi int* [ %v2, %cond_false ], [ %v1, %entry ] - %tmp.12 = cast int* %mem_tmp.0 to %struct..packet* - call void %append( %struct..packet* %pkt.2, %struct..packet* %tmp.12 ) - ret %struct..task* null +cond_continue: ; preds = %cond_false, %entry + %mem_tmp.0 = phi i32* [ @v2, %cond_false ], [ @v1, %entry ] ; <i32*> [#uses=1] + %tmp.12 = bitcast i32* %mem_tmp.0 to %struct..packet* ; <%struct..packet*> [#uses=1] + call void @append( %struct..packet* %pkt.2, %struct..packet* %tmp.12 ) + ret %struct..task* null } -declare void %append(%struct..packet*, %struct..packet*) +declare void @append(%struct..packet*, %struct..packet*) + |