The element insertion code in scalar replacement doesn't handle incorrect
[oota-llvm.git] / test / Transforms / ScalarRepl / 2011-10-22-VectorCrash.ll
1 ; RUN: opt < %s -S -scalarrepl | FileCheck %s
2 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
3 target triple = "thumbv7-apple-ios5.0.0"
4
5 %union.anon = type { <4 x float> }
6
7 ; CHECK: @test
8 ; CHECK-NOT: alloca
9
10 define void @test() nounwind {
11 entry:
12   %u = alloca %union.anon, align 16
13   %u164 = bitcast %union.anon* %u to [4 x i32]*
14   %arrayidx165 = getelementptr inbounds [4 x i32]* %u164, i32 0, i32 0
15   store i32 undef, i32* %arrayidx165, align 4
16   %v186 = bitcast %union.anon* %u to <4 x float>*
17   store <4 x float> undef, <4 x float>* %v186, align 16
18   ret void
19 }