diff --git a/test/Transforms/LoopPreheaders/Makefile b/test/Transforms/LoopPreheaders/Makefile new file mode 100644 index 00000000000..91acd4d481b --- /dev/null +++ b/test/Transforms/LoopPreheaders/Makefile @@ -0,0 +1,10 @@ + +LEVEL = ../../../.. +include $(LEVEL)/test/Makefile.tests + +TESTS := $(wildcard *.ll) + +all:: $(addprefix Output/, $(TESTS:%.ll=%.ll.out)) + +Output/%.ll.out: %.ll Output/.dir $(LOPT) + -$(TESTRUNR) $< diff --git a/test/Transforms/LoopPreheaders/basictest.ll b/test/Transforms/LoopPreheaders/basictest.ll new file mode 100644 index 00000000000..15402190d09 --- /dev/null +++ b/test/Transforms/LoopPreheaders/basictest.ll @@ -0,0 +1,17 @@ +; RUN: as < %s | opt -preheaders + +implementation + +; This function should get a preheader inserted before BB3, that is jumped +; to by BB1 & BB2 +; +void "test"() +begin + br bool true, label %BB1, label %BB2 +BB1: br label %BB3 +BB2: br label %BB3 + + +BB3: + br label %BB3 +end diff --git a/test/Transforms/LoopPreheaders/hardertest.ll b/test/Transforms/LoopPreheaders/hardertest.ll new file mode 100644 index 00000000000..7c11fbaa05b --- /dev/null +++ b/test/Transforms/LoopPreheaders/hardertest.ll @@ -0,0 +1,17 @@ +; RUN: as < %s | opt -preheaders + +void %foo(bool %C) { + br bool %C, label %T, label %F +T: + br label %Loop +F: + br label %Loop + +Loop: ; Two backedges, two incoming edges. + %Val = phi int [0, %T], [1, %F], [2, %Loop], [3, %L2] + + br bool %C, label %Loop, label %L2 + +L2: + br label %Loop +} diff --git a/test/Transforms/LoopSimplify/basictest.ll b/test/Transforms/LoopSimplify/basictest.ll new file mode 100644 index 00000000000..15402190d09 --- /dev/null +++ b/test/Transforms/LoopSimplify/basictest.ll @@ -0,0 +1,17 @@ +; RUN: as < %s | opt -preheaders + +implementation + +; This function should get a preheader inserted before BB3, that is jumped +; to by BB1 & BB2 +; +void "test"() +begin + br bool true, label %BB1, label %BB2 +BB1: br label %BB3 +BB2: br label %BB3 + + +BB3: + br label %BB3 +end diff --git a/test/Transforms/LoopSimplify/hardertest.ll b/test/Transforms/LoopSimplify/hardertest.ll new file mode 100644 index 00000000000..7c11fbaa05b --- /dev/null +++ b/test/Transforms/LoopSimplify/hardertest.ll @@ -0,0 +1,17 @@ +; RUN: as < %s | opt -preheaders + +void %foo(bool %C) { + br bool %C, label %T, label %F +T: + br label %Loop +F: + br label %Loop + +Loop: ; Two backedges, two incoming edges. + %Val = phi int [0, %T], [1, %F], [2, %Loop], [3, %L2] + + br bool %C, label %Loop, label %L2 + +L2: + br label %Loop +}