blob: a9d03378521f871b2b6a423c254786e2aef91e29 [file] [log] [blame]
Dan Gohmana5e04812009-09-14 23:39:10 +00001; RUN: opt < %s -S -memcpyopt | FileCheck %s
2
3; The resulting memset is only 4-byte aligned, despite containing
4; a 16-byte alignmed store in the middle.
5
6; CHECK: call void @llvm.memset.i64(i8* %a01, i8 0, i64 16, i32 4)
7
8define void @foo(i32* %p) {
9 %a0 = getelementptr i32* %p, i64 0
10 store i32 0, i32* %a0, align 4
11 %a1 = getelementptr i32* %p, i64 1
12 store i32 0, i32* %a1, align 16
13 %a2 = getelementptr i32* %p, i64 2
14 store i32 0, i32* %a2, align 4
15 %a3 = getelementptr i32* %p, i64 3
16 store i32 0, i32* %a3, align 4
17 ret void
18}