1 ; RUN: llc -fast-isel-sink-local-values < %s -mtriple=i686-pc-linux -mcpu=corei7 | FileCheck --check-prefix=DAG %s
2 ; RUN: llc -fast-isel-sink-local-values < %s -mtriple=i686-pc-linux -mcpu=corei7 -O0 | FileCheck --check-prefix=FAST %s
4 %struct.s1 = type { double, float }
6 define void @g1() nounwind {
8 %tmp = alloca %struct.s1, align 4
9 call void @f(%struct.s1* inreg sret %tmp, i32 inreg 41, i32 inreg 42, i32 43)
12 ; DAG: subl $[[AMT:.*]], %esp
13 ; DAG-NEXT: $43, (%esp)
14 ; DAG-NEXT: leal 16(%esp), %eax
15 ; DAG-NEXT: movl $41, %edx
16 ; DAG-NEXT: movl $42, %ecx
18 ; DAG-NEXT: addl $[[AMT]], %esp
22 ; FAST: subl $[[AMT:.*]], %esp
23 ; FAST-NEXT: leal 16(%esp), %eax
24 ; FAST-NEXT: movl $41, %edx
25 ; FAST-NEXT: movl $42, %ecx
28 ; FAST-NEXT: addl $[[AMT]], %esp
32 declare void @f(%struct.s1* inreg sret, i32 inreg, i32 inreg, i32)
36 define void @g2(%struct.s2* inreg sret %agg.result) nounwind {