1 ; RUN: opt < %s -S -memcpyopt | FileCheck %s
3 ; The resulting memset is only 4-byte aligned, despite containing
4 ; a 16-byte alignmed store in the middle.
6 ; CHECK: call void @llvm.memset.i64(i8* %a01, i8 0, i64 16, i32 4)
8 define 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