Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=i686-pc-win32 | FileCheck %s
      2 
      3 %Foo = type { i32, i32 }
      4 
      5 declare x86_stdcallcc void @f(%Foo* inalloca %a)
      6 declare x86_stdcallcc void @i(i32 %a)
      7 
      8 define void @g() {
      9 ; CHECK-LABEL: _g:
     10   %b = alloca inalloca %Foo
     11 ; CHECK: movl    $8, %eax
     12 ; CHECK: calll   __chkstk
     13 ; CHECK: movl   %[[REG:[^,]*]], %esp
     14   %f1 = getelementptr %Foo, %Foo* %b, i32 0, i32 0
     15   %f2 = getelementptr %Foo, %Foo* %b, i32 0, i32 1
     16   store i32 13, i32* %f1
     17   store i32 42, i32* %f2
     18 ; CHECK: movl    $13, (%[[REG]])
     19 ; CHECK: movl    $42, 4(%[[REG]])
     20   call x86_stdcallcc void @f(%Foo* inalloca %b)
     21 ; CHECK: calll   _f@8
     22 ; CHECK-NOT: %esp
     23 ; CHECK: pushl
     24 ; CHECK: calll   _i@4
     25   call x86_stdcallcc void @i(i32 0)
     26   ret void
     27 }
     28