1 ; Make sure that we realign the stack. Mingw32 uses 4 byte stack alignment, we
2 ; need 16 bytes for SSE and 32 bytes for AVX.
4 ; RUN: llc < %s -mtriple=i386-pc-mingw32 -mcpu=pentium2 | FileCheck %s -check-prefix=NOSSE
5 ; RUN: llc < %s -mtriple=i386-pc-mingw32 -mcpu=pentium3 | FileCheck %s -check-prefix=SSE1
6 ; RUN: llc < %s -mtriple=i386-pc-mingw32 -mcpu=yonah | FileCheck %s -check-prefix=SSE2
7 ; RUN: llc < %s -mtriple=i386-pc-mingw32 -mcpu=corei7-avx | FileCheck %s -check-prefix=AVX1
8 ; RUN: llc < %s -mtriple=i386-pc-mingw32 -mcpu=core-avx2 | FileCheck %s -check-prefix=AVX2
10 define void @test1(i32 %t) nounwind {
11 %tmp1210 = alloca i8, i32 32, align 4
12 call void @llvm.memset.p0i8.i64(i8* align 4 %tmp1210, i8 0, i64 32, i1 false)
13 %x = alloca i8, i32 %t
14 call void @dummy(i8* %x)
23 ; SSE1: movl %esp, %esi
28 ; SSE2: movl %esp, %esi
33 ; AVX1: movl %esp, %esi
38 ; AVX2: movl %esp, %esi
43 define void @test2(i32 %t) nounwind {
44 %tmp1210 = alloca i8, i32 16, align 4
45 call void @llvm.memset.p0i8.i64(i8* align 4 %tmp1210, i8 0, i64 16, i1 false)
46 %x = alloca i8, i32 %t
47 call void @dummy(i8* %x)
56 ; SSE1: movl %esp, %esi
61 ; SSE2: movl %esp, %esi
66 ; AVX1: movl %esp, %esi
71 ; AVX2: movl %esp, %esi
75 declare void @dummy(i8*)
77 declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) nounwind