Add testcase for PR3795.
authorBob Wilson <bob.wilson@apple.com>
Wed, 8 Apr 2009 18:00:55 +0000 (18:00 +0000)
committerBob Wilson <bob.wilson@apple.com>
Wed, 8 Apr 2009 18:00:55 +0000 (18:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68620 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/ARM/2009-04-08-AggregateAddr.ll [new file with mode: 0644]

diff --git a/test/CodeGen/ARM/2009-04-08-AggregateAddr.ll b/test/CodeGen/ARM/2009-04-08-AggregateAddr.ll
new file mode 100644 (file)
index 0000000..c00b1fb
--- /dev/null
@@ -0,0 +1,18 @@
+; RUN: llvm-as < %s | llc -march=arm
+; PR3795
+
+define fastcc void @_D3foo3fooFAriZv({ i32, { double, double }* } %d_arg, i32 %x_arg) {
+entry:
+       %d = alloca { i32, { double, double }* }                ; <{ i32, { double, double }* }*> [#uses=2]
+       %x = alloca i32         ; <i32*> [#uses=2]
+       %b = alloca { double, double }          ; <{ double, double }*> [#uses=1]
+       store { i32, { double, double }* } %d_arg, { i32, { double, double }* }* %d
+       store i32 %x_arg, i32* %x
+       %tmp = load i32* %x             ; <i32> [#uses=1]
+       %tmp1 = getelementptr { i32, { double, double }* }* %d, i32 0, i32 1            ; <{ double, double }**> [#uses=1]
+       %.ptr = load { double, double }** %tmp1         ; <{ double, double }*> [#uses=1]
+       %tmp2 = getelementptr { double, double }* %.ptr, i32 %tmp               ; <{ double, double }*> [#uses=1]
+       %tmp3 = load { double, double }* %tmp2          ; <{ double, double }> [#uses=1]
+       store { double, double } %tmp3, { double, double }* %b
+       ret void
+}