diff --git a/test/Transforms/TailDup/PHIUpdateTest.ll b/test/Transforms/TailDup/PHIUpdateTest.ll new file mode 100644 index 00000000000..08112b4b466 --- /dev/null +++ b/test/Transforms/TailDup/PHIUpdateTest.ll @@ -0,0 +1,20 @@ +; This test checks to make sure phi nodes are updated properly +; +; RUN: as < %s | opt -tailduplicate -disable-output + + + +int %test(bool %c, int %X, int %Y) { + br label %L + +L: + %A = add int %X, %Y + br bool %c, label %T, label %F + +F: + br bool %c, label %L, label %T + +T: + %V = phi int [%A, %L], [0, %F] + ret int %V +} diff --git a/test/Transforms/TailDup/basictest.ll b/test/Transforms/TailDup/basictest.ll new file mode 100644 index 00000000000..66dcf635029 --- /dev/null +++ b/test/Transforms/TailDup/basictest.ll @@ -0,0 +1,22 @@ +; RUN: as < %s | opt -tailduplicate -disable-output + +declare void %__main() + +int %main() { +entry: ; No predecessors! + call void %__main( ) + br label %loopentry + +loopentry: ; preds = %entry, %no_exit + %i.0 = phi int [ %inc, %no_exit ], [ 0, %entry ] ; [#uses=2] + %tmp.1 = setle int %i.0, 99 ; [#uses=1] + br bool %tmp.1, label %no_exit, label %return + +no_exit: ; preds = %loopentry + %tmp.51 = call int %main( ) ; [#uses=0] + %inc = add int %i.0, 1 ; [#uses=1] + br label %loopentry + +return: ; preds = %loopentry + ret int %i.0 +}