summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll')
-rw-r--r--llvm/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll25
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll b/llvm/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll
new file mode 100644
index 00000000000..9bd0dd874b4
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll
@@ -0,0 +1,25 @@
+; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s
+
+; CHECK-LABEL: TestFoo:
+; CHECK: std
+; CHECK: bl TestBar
+; CHECK: stbu
+; CHECK: std
+; CHECK: blr
+
+%StructA = type <{ i64, { i64, i64 }, { i64, i64 } }>
+
+define void @TestFoo(%StructA* %this) {
+ %tmp = getelementptr inbounds %StructA, %StructA* %this, i64 0, i32 1
+ %tmp11 = getelementptr inbounds %StructA, %StructA* %this, i64 0, i32 1, i32 1
+ %tmp12 = bitcast { i64, i64 }* %tmp to i64**
+ store i64* %tmp11, i64** %tmp12
+ call void @TestBar()
+ %tmp13 = getelementptr inbounds %StructA, %StructA* %this, i64 0, i32 2, i32 1
+ store i64* %tmp13, i64** undef
+ %.cast.i.i.i = bitcast i64* %tmp13 to i8*
+ store i8 0, i8* %.cast.i.i.i
+ ret void
+}
+
+declare void @TestBar()
OpenPOWER on IntegriCloud