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. 3 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 9 10 define void @test1(i32 %t) nounwind { 11 %tmp1210 = alloca i8, i32 32, align 4 12 call void @llvm.memset.p0i8.i64(i8* %tmp1210, i8 0, i64 32, i32 4, i1 false) 13 %x = alloca i8, i32 %t 14 call void @dummy(i8* %x) 15 ret void 16 17 ; NOSSE-LABEL: test1: 18 ; NOSSE-NOT: and 19 ; NOSSE: movl $0 20 21 ; SSE1-LABEL: test1: 22 ; SSE1: andl $-16 23 ; SSE1: movl %esp, %esi 24 ; SSE1: movaps 25 26 ; SSE2-LABEL: test1: 27 ; SSE2: andl $-16 28 ; SSE2: movl %esp, %esi 29 ; SSE2: movaps 30 31 ; AVX1-LABEL: test1: 32 ; AVX1: andl $-32 33 ; AVX1: movl %esp, %esi 34 ; AVX1: vmovaps %ymm 35 36 ; AVX2-LABEL: test1: 37 ; AVX2: andl $-32 38 ; AVX2: movl %esp, %esi 39 ; AVX2: vmovaps %ymm 40 41 } 42 43 define void @test2(i32 %t) nounwind { 44 %tmp1210 = alloca i8, i32 16, align 4 45 call void @llvm.memset.p0i8.i64(i8* %tmp1210, i8 0, i64 16, i32 4, i1 false) 46 %x = alloca i8, i32 %t 47 call void @dummy(i8* %x) 48 ret void 49 50 ; NOSSE-LABEL: test2: 51 ; NOSSE-NOT: and 52 ; NOSSE: movl $0 53 54 ; SSE1-LABEL: test2: 55 ; SSE1: andl $-16 56 ; SSE1: movl %esp, %esi 57 ; SSE1: movaps 58 59 ; SSE2-LABEL: test2: 60 ; SSE2: andl $-16 61 ; SSE2: movl %esp, %esi 62 ; SSE2: movaps 63 64 ; AVX1-LABEL: test2: 65 ; AVX1: andl $-16 66 ; AVX1: movl %esp, %esi 67 ; AVX1: vmovaps %xmm 68 69 ; AVX2-LABEL: test2: 70 ; AVX2: andl $-16 71 ; AVX2: movl %esp, %esi 72 ; AVX2: vmovaps %xmm 73 } 74 75 declare void @dummy(i8*) 76 77 declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind 78