brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 02d68ad Raw
102 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_sp --no_x86_scrub_mem_shuffle2; RUN: llc < %s -mtriple=i386-pc-windows-msvc | FileCheck %s --check-prefix=MSVC3; RUN: llc < %s -mtriple=i386-pc-mingw32 | FileCheck %s --check-prefix=MINGW4; RUN: llc < %s -mtriple=i386-pc-linux-gnu | FileCheck %s --check-prefix=LINUX5; RUN: llc < %s -mtriple=i386--apple-darwin  | FileCheck %s --check-prefix=DARWIN6 7define void @foo(i32 %0, x86_fp80 %1, i32 %2) nounwind {8; MSVC-LABEL: foo:9; MSVC:       # %bb.0:10; MSVC-NEXT:    pushl %ebp11; MSVC-NEXT:    movl %esp, %ebp12; MSVC-NEXT:    andl $-16, %esp13; MSVC-NEXT:    subl $32, %esp14; MSVC-NEXT:    fldt 24(%ebp)15; MSVC-NEXT:    fstpt (%esp)16; MSVC-NEXT:    leal 8(%ebp), %eax17; MSVC-NEXT:    pushl %eax18; MSVC-NEXT:    calll _escape19; MSVC-NEXT:    addl $4, %esp20; MSVC-NEXT:    movl %esp, %eax21; MSVC-NEXT:    pushl %eax22; MSVC-NEXT:    calll _escape23; MSVC-NEXT:    addl $4, %esp24; MSVC-NEXT:    leal 40(%ebp), %eax25; MSVC-NEXT:    pushl %eax26; MSVC-NEXT:    calll _escape27; MSVC-NEXT:    addl $4, %esp28; MSVC-NEXT:    movl %ebp, %esp29; MSVC-NEXT:    popl %ebp30; MSVC-NEXT:    retl31;32; MINGW-LABEL: foo:33; MINGW:       # %bb.0:34; MINGW-NEXT:    pushl %ebp35; MINGW-NEXT:    movl %esp, %ebp36; MINGW-NEXT:    andl $-16, %esp37; MINGW-NEXT:    subl $32, %esp38; MINGW-NEXT:    fldt 12(%ebp)39; MINGW-NEXT:    fstpt (%esp)40; MINGW-NEXT:    leal 8(%ebp), %eax41; MINGW-NEXT:    pushl %eax42; MINGW-NEXT:    calll _escape43; MINGW-NEXT:    addl $4, %esp44; MINGW-NEXT:    movl %esp, %eax45; MINGW-NEXT:    pushl %eax46; MINGW-NEXT:    calll _escape47; MINGW-NEXT:    addl $4, %esp48; MINGW-NEXT:    leal 24(%ebp), %eax49; MINGW-NEXT:    pushl %eax50; MINGW-NEXT:    calll _escape51; MINGW-NEXT:    addl $4, %esp52; MINGW-NEXT:    movl %ebp, %esp53; MINGW-NEXT:    popl %ebp54; MINGW-NEXT:    retl55;56; LINUX-LABEL: foo:57; LINUX:       # %bb.0:58; LINUX-NEXT:    subl $28, %esp59; LINUX-NEXT:    fldt 36(%esp)60; LINUX-NEXT:    fstpt 16(%esp)61; LINUX-NEXT:    leal 32(%esp), %eax62; LINUX-NEXT:    movl %eax, (%esp)63; LINUX-NEXT:    calll escape@PLT64; LINUX-NEXT:    leal 16(%esp), %eax65; LINUX-NEXT:    movl %eax, (%esp)66; LINUX-NEXT:    calll escape@PLT67; LINUX-NEXT:    leal 48(%esp), %eax68; LINUX-NEXT:    movl %eax, (%esp)69; LINUX-NEXT:    calll escape@PLT70; LINUX-NEXT:    addl $28, %esp71; LINUX-NEXT:    retl72;73; DARWIN-LABEL: foo:74; DARWIN:       ## %bb.0:75; DARWIN-NEXT:    subl $44, %esp76; DARWIN-NEXT:    fldt 52(%esp)77; DARWIN-NEXT:    fstpt 16(%esp)78; DARWIN-NEXT:    leal 48(%esp), %eax79; DARWIN-NEXT:    movl %eax, (%esp)80; DARWIN-NEXT:    calll _escape81; DARWIN-NEXT:    leal 16(%esp), %eax82; DARWIN-NEXT:    movl %eax, (%esp)83; DARWIN-NEXT:    calll _escape84; DARWIN-NEXT:    leal 68(%esp), %eax85; DARWIN-NEXT:    movl %eax, (%esp)86; DARWIN-NEXT:    calll _escape87; DARWIN-NEXT:    addl $44, %esp88; DARWIN-NEXT:    retl89  %4 = alloca i32, align 490  %5 = alloca x86_fp80, align 1691  %6 = alloca i32, align 492  store i32 %0, ptr %4, align 493  store x86_fp80 %1, ptr %5, align 1694  store i32 %2, ptr %6, align 495  call void @escape(ptr nonnull %4)96  call void @escape(ptr nonnull %5)97  call void @escape(ptr nonnull %6)98  ret void99}100 101declare void @escape(ptr)102