This isn't really an assembler test. This tests to make sure the
authorChris Lattner <sabre@nondot.org>
Sun, 11 Jan 2004 23:56:03 +0000 (23:56 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 11 Jan 2004 23:56:03 +0000 (23:56 +0000)
ConstantExpr::getGetElementPtr method folds two getelementptr instructions
when possible.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10758 91177308-0d34-0410-b5e6-96231b3b80d8

test/Assembler/2004-01-11-getelementptrfolding.llx [new file with mode: 0644]

diff --git a/test/Assembler/2004-01-11-getelementptrfolding.llx b/test/Assembler/2004-01-11-getelementptrfolding.llx
new file mode 100644 (file)
index 0000000..6f7f06a
--- /dev/null
@@ -0,0 +1,11 @@
+; RUN: llvm-as < %s | llvm-dis | not grep 'getelementptr.*getelementptr'
+
+        %struct.TUVVertex = type { short, short, short, short }
+        %struct.TTriangleItem = type { sbyte*, sbyte*, [3 x %struct.TUVVertex] }
+
+%data_triangleItems = internal constant [2908 x %struct.TTriangleItem] zeroinitializer          
+
+void %foo() {
+        store short 0, short* getelementptr ([3 x %struct.TUVVertex]* getelementptr ([2908 x %struct.TTriangleItem]* %data_triangleItems, long 0, long 0, ubyte 2), long 0, long 0, ubyte 0)
+       ret void
+}