1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
llvm-mirror/test/CodeGen/X86/loadStore_vectorizer.ll
Roman Tereshin 3fbd4dc188 Reapply "[LSV] Refactoring + supporting bitcasts to a type of different size"
This reapplies commit r337489 reverted by r337541
Additionally, this commit contains a speculative fix to the issue reported in r337541
(the report does not contain an actionable reproducer, just a stack trace)

llvm-svn: 337606
2018-07-20 20:10:04 +00:00

31 lines
1.2 KiB
LLVM

; RUN: opt -mtriple x86_64-- -load-store-vectorizer < %s -S | FileCheck %s
%struct_render_pipeline_state = type opaque
define fastcc void @test1(%struct_render_pipeline_state addrspace(1)* %pso) unnamed_addr {
; CHECK-LABEL: @test1
; 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
}
define fastcc void @test2(%struct_render_pipeline_state addrspace(1)* %pso) unnamed_addr {
; CHECK-LABEL: @test2
; CHECK: load <2 x 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 2
%tmp3 = bitcast i8 addrspace(1)* %sunkaddr51 to i16 addrspace(1)*
%tmp4 = load i16, i16 addrspace(1)* %tmp3, align 2
ret void
}