diff options
| author | Stanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com> | 2018-04-17 21:40:04 +0000 |
|---|---|---|
| committer | Stanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com> | 2018-04-17 21:40:04 +0000 |
| commit | 0bee630814d0031fa17997c3c21c8499ac42db60 (patch) | |
| tree | d7feaaf3d7d7f15c80083a503cf385b2c2746c39 /llvm/test | |
| parent | f437e35671089ab3bdbf11b65a53fe22b9f24172 (diff) | |
| download | bcm5719-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.ll | 16 |
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 +} |

