LICM: Do not loose alignment on promotion
[oota-llvm.git] / test / Transforms / LICM / 2011-07-06-Alignment.ll
1 ; RUN: opt -licm -S %s | FileCheck %s
2
3 @A = common global [1024 x float] zeroinitializer, align 4
4
5 define i32 @main() nounwind {
6 entry:
7   br label %for.cond
8
9 for.cond:
10   %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ]
11   %arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 3
12   %vecidx = bitcast float* %arrayidx to <4 x float>*
13   store <4 x float> zeroinitializer, <4 x float>* %vecidx, align 4
14   %indvar.next = add i64 %indvar, 1
15   %exitcond = icmp ne i64 %indvar, 1024
16   br i1 %exitcond, label %for.body, label %for.end
17
18 for.body:
19   br label %for.cond
20
21 for.end:
22   ret i32 0
23 }
24
25 ;CHECK: store <4 x float> {{.*}} align 4
26