From 016d7b9ed8099c9f195464bbf0b35c6f2b1e92fe Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 27 May 2003 15:51:17 +0000 Subject: [PATCH] Initial testcases for scalar replacement of aggregates pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6347 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/ScalarRepl/Makefile | 10 ++++++++++ test/Transforms/ScalarRepl/arraytest.ll | 13 +++++++++++++ test/Transforms/ScalarRepl/badarray.ll | 10 ++++++++++ test/Transforms/ScalarRepl/basictest.ll | 13 +++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 test/Transforms/ScalarRepl/Makefile create mode 100644 test/Transforms/ScalarRepl/arraytest.ll create mode 100644 test/Transforms/ScalarRepl/badarray.ll create mode 100644 test/Transforms/ScalarRepl/basictest.ll diff --git a/test/Transforms/ScalarRepl/Makefile b/test/Transforms/ScalarRepl/Makefile new file mode 100644 index 00000000000..91acd4d481b --- /dev/null +++ b/test/Transforms/ScalarRepl/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/ScalarRepl/arraytest.ll b/test/Transforms/ScalarRepl/arraytest.ll new file mode 100644 index 00000000000..a6474070e31 --- /dev/null +++ b/test/Transforms/ScalarRepl/arraytest.ll @@ -0,0 +1,13 @@ +; RUN: if as < %s | opt -scalarrepl -mem2reg | dis | grep alloca +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +int %test() { + %X = alloca [ 4 x int ] + %Y = getelementptr [4x int]* %X, long 0, long 0 + store int 0, int* %Y + + %Z = load int* %Y + ret int %Z +} diff --git a/test/Transforms/ScalarRepl/badarray.ll b/test/Transforms/ScalarRepl/badarray.ll new file mode 100644 index 00000000000..22e84f8b832 --- /dev/null +++ b/test/Transforms/ScalarRepl/badarray.ll @@ -0,0 +1,10 @@ +; RUN: as < %s | opt -scalarrepl -mem2reg | dis | grep alloca + +int %test() { + %X = alloca [ 4 x int ] + %Y = getelementptr [4x int]* %X, long 0, long 6 ; Off end of array! + store int 0, int* %Y + + %Z = load int* %Y + ret int %Z +} diff --git a/test/Transforms/ScalarRepl/basictest.ll b/test/Transforms/ScalarRepl/basictest.ll new file mode 100644 index 00000000000..0582a34c692 --- /dev/null +++ b/test/Transforms/ScalarRepl/basictest.ll @@ -0,0 +1,13 @@ +; RUN: if as < %s | opt -scalarrepl -mem2reg | dis | grep alloca +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +int %test() { + %X = alloca { int, float } + %Y = getelementptr {int,float}* %X, long 0, ubyte 0 + store int 0, int* %Y + + %Z = load int* %Y + ret int %Z +}