mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
af782eed2a
While Promoting alloca instruction of Vector Type, Check total size in bits of its slices too. If they don't match, don't promote the alloca instruction. Bug : https://bugs.llvm.org/show_bug.cgi?id=42585 llvm-svn: 372480
25 lines
774 B
LLVM
25 lines
774 B
LLVM
; RUN: opt < %s -sroa -S | FileCheck %s
|
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n8:16:32:64"
|
|
|
|
define <4 x i1> @vector_bitcast() {
|
|
; CHECK-LABEL: @vector_bitcast
|
|
; CHECK: alloca i1
|
|
|
|
%a = alloca <3 x i1>
|
|
store <3 x i1> <i1 1,i1 0,i1 1>, <3 x i1>* %a
|
|
%cast = bitcast <3 x i1>* %a to <4 x i1>*
|
|
%vec = load <4 x i1>, <4 x i1>* %cast
|
|
ret <4 x i1> %vec
|
|
}
|
|
|
|
define void @vector_bitcast_2() {
|
|
; CHECK-LABEL: @vector_bitcast_2
|
|
; CHECK: alloca <32 x i16>
|
|
|
|
%"sum$1.host2" = alloca <32 x i16>
|
|
store <32 x i16> undef, <32 x i16>* %"sum$1.host2"
|
|
%bc = bitcast <32 x i16>* %"sum$1.host2" to <64 x i16>*
|
|
%bcl = load <64 x i16>, <64 x i16>* %bc
|
|
ret void
|
|
}
|