summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-08-19 19:08:52 +0000
committerChris Lattner <sabre@nondot.org>2002-08-19 19:08:52 +0000
commitf278b67b460ba35116ef524ca79195381b966a8c (patch)
tree566d9fbb6436a8b821f9582e71d8ea10344dcbde
parent243b5751a0e5a85d8b783829134b40d53a174dca (diff)
downloadbcm5719-llvm-f278b67b460ba35116ef524ca79195381b966a8c.tar.gz
bcm5719-llvm-f278b67b460ba35116ef524ca79195381b966a8c.zip
New testcase
llvm-svn: 3385
-rw-r--r--llvm/test/Regression/Transforms/FunctionResolve/2002-08-19-ResolveGlobalVars.ll25
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/test/Regression/Transforms/FunctionResolve/2002-08-19-ResolveGlobalVars.ll b/llvm/test/Regression/Transforms/FunctionResolve/2002-08-19-ResolveGlobalVars.ll
new file mode 100644
index 00000000000..7dfbf900604
--- /dev/null
+++ b/llvm/test/Regression/Transforms/FunctionResolve/2002-08-19-ResolveGlobalVars.ll
@@ -0,0 +1,25 @@
+; Test that: extern int X[] and int X[] = { 1, 2, 3, 4 } are resolved correctly.
+;
+; RUN: if as < %s | opt -gcse -instcombine -constprop -dce | dis | grep getelementptr
+; RUN: then exit 1
+; RUN: else exit 0
+; RUN: fi
+;
+
+%X = uninitialized global int ; <int*> [#uses=1]
+%X = global [4 x int] [ int 1, int 2, int 3, int 4 ] ; <[4 x int]*> [#uses=1]
+
+implementation ; Functions:
+
+int %foo(int %x) {
+bb1: ;[#uses=0]
+ %reg107-idxcast = cast int %x to uint ; <uint> [#uses=2]
+ %reg113 = getelementptr int* %X, uint %reg107-idxcast ; <int*> [#uses=1]
+ %reg120 = getelementptr [4 x int]* %X, uint 0, uint %reg107-idxcast ; <int*> [#uses=1]
+ %reg123 = sub int* %reg113, %reg120 ; <int*> [#uses=1]
+ %cast232 = cast int* %reg123 to long ; <long> [#uses=1]
+ %reg234 = div long %cast232, 4 ; <long> [#uses=1]
+ %cast108 = cast long %reg234 to int ; <int> [#uses=1]
+ ret int %cast108
+}
+
OpenPOWER on IntegriCloud