summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>2018-04-17 21:40:04 +0000
committerStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>2018-04-17 21:40:04 +0000
commit0bee630814d0031fa17997c3c21c8499ac42db60 (patch)
treed7feaaf3d7d7f15c80083a503cf385b2c2746c39 /llvm/test
parentf437e35671089ab3bdbf11b65a53fe22b9f24172 (diff)
downloadbcm5719-llvm-0bee630814d0031fa17997c3c21c8499ac42db60.tar.gz
bcm5719-llvm-0bee630814d0031fa17997c3c21c8499ac42db60.zip
LoadStoreVectorizer crashes due to unsized type
When we skip bitcasts while looking for GEP in LoadSoreVectorizer we should also verify that the type is sized otherwise we assert Differential Revision: https://reviews.llvm.org/D45709 llvm-svn: 330221
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/loadStore_vectorizer.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/loadStore_vectorizer.ll b/llvm/test/CodeGen/X86/loadStore_vectorizer.ll
new file mode 100644
index 00000000000..03f6ccce6c4
--- /dev/null
+++ b/llvm/test/CodeGen/X86/loadStore_vectorizer.ll
@@ -0,0 +1,16 @@
+; RUN: opt -load-store-vectorizer < %s -S | FileCheck %s
+
+%struct_render_pipeline_state = type opaque
+
+define fastcc void @main(%struct_render_pipeline_state addrspace(1)* %pso) unnamed_addr {
+; CHECK: load i16
+; CHECK: load i16
+entry:
+ %tmp = bitcast %struct_render_pipeline_state addrspace(1)* %pso to i16 addrspace(1)*
+ %tmp1 = load i16, i16 addrspace(1)* %tmp, align 2
+ %tmp2 = bitcast %struct_render_pipeline_state addrspace(1)* %pso to i8 addrspace(1)*
+ %sunkaddr51 = getelementptr i8, i8 addrspace(1)* %tmp2, i64 6
+ %tmp3 = bitcast i8 addrspace(1)* %sunkaddr51 to i16 addrspace(1)*
+ %tmp4 = load i16, i16 addrspace(1)* %tmp3, align 2
+ ret void
+}
OpenPOWER on IntegriCloud