diff --git a/llvm/test/Regression/Transforms/InstCombine/Makefile b/llvm/test/Regression/Transforms/InstCombine/Makefile new file mode 100644 index 000000000000..91acd4d481b9 --- /dev/null +++ b/llvm/test/Regression/Transforms/InstCombine/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/llvm/test/Regression/Transforms/InstCombine/getelementptr.ll b/llvm/test/Regression/Transforms/InstCombine/getelementptr.ll new file mode 100644 index 000000000000..c22871b3b126 --- /dev/null +++ b/llvm/test/Regression/Transforms/InstCombine/getelementptr.ll @@ -0,0 +1,21 @@ +; The %A getelementptr instruction should be eliminated here + +; RUN: if as < %s | opt -instcombine -dce | dis | grep getelementptr | grep -v '%C' +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +implementation + +int *"foo"(int * %I) +begin + %A = getelementptr int* %I, uint 17 + store int 23, int* %A + + %B = load int* %A + store int %B, int* %A, uint 0 + + %C = getelementptr int* %A + ret int* %C +end +