summaryrefslogtreecommitdiff
path: root/test/CodeGen/Generic/pr2625.ll
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-08-04 23:30:41 +0000
committerDan Gohman <gohman@apple.com>2008-08-04 23:30:41 +0000
commit1f565bcff6781d0a4395b4c386f7168df13ddbca (patch)
tree176fd93cbe4f4b7fccc340a16d46deaf35266cb1 /test/CodeGen/Generic/pr2625.ll
parentd0859943ac16389fb843f1357746aade3cd07a6f (diff)
downloadllvm-1f565bcff6781d0a4395b4c386f7168df13ddbca.tar.gz
llvm-1f565bcff6781d0a4395b4c386f7168df13ddbca.tar.bz2
llvm-1f565bcff6781d0a4395b4c386f7168df13ddbca.tar.xz
Fix SDISel lowering of zeroinitializer and undef to use ComputeValueVTs.
This allows it to work correctly on nested aggregate values. This fixes PR2625. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54330 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Generic/pr2625.ll')
-rw-r--r--test/CodeGen/Generic/pr2625.ll17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/CodeGen/Generic/pr2625.ll b/test/CodeGen/Generic/pr2625.ll
new file mode 100644
index 0000000000..c1f585de73
--- /dev/null
+++ b/test/CodeGen/Generic/pr2625.ll
@@ -0,0 +1,17 @@
+; RUN: llvm-as < %s | llc
+; PR2625
+
+define i32 @main({ i32, { i32 } }*) {
+entry:
+ %state = alloca { i32, { i32 } }* ; <{ i32, { i32 } }**> [#uses=2]
+ store { i32, { i32 } }* %0, { i32, { i32 } }** %state
+ %retval = alloca i32 ; <i32*> [#uses=2]
+ store i32 0, i32* %retval
+ load { i32, { i32 } }** %state ; <{ i32, { i32 } }*>:1 [#uses=1]
+ store { i32, { i32 } } zeroinitializer, { i32, { i32 } }* %1
+ br label %return
+
+return: ; preds = %entry
+ load i32* %retval ; <i32>:2 [#uses=1]
+ ret i32 %2
+}