1 ; RUN: llc < %s -mtriple=i686-windows | FileCheck %s -check-prefix=CHECK -check-prefix=NORMAL
2 ; RUN: llc < %s -mtriple=i686-windows -mattr=slow-two-mem-ops | FileCheck %s -check-prefix=CHECK -check-prefix=SLM
4 declare void @foo(i32 %r)
6 define void @test(i32 %a, i32 %b) optsize nounwind {
8 ; CHECK: movl [[EAX:%e..]], (%esp)
9 ; CHECK-NEXT: pushl [[EAX]]
11 ; CHECK-NEXT: addl $4, %esp
13 ; NORMAL: pushl (%esp)
14 ; SLM: movl (%esp), [[RELOAD:%e..]]
15 ; SLM-NEXT: pushl [[RELOAD]]
17 ; CHECK-NEXT: addl $8, %esp
19 call void @foo(i32 %c)
20 call void asm sideeffect "nop", "~{ax},~{bx},~{cx},~{dx},~{bp},~{si},~{di}"()
21 call void @foo(i32 %c)
25 define void @test_min(i32 %a, i32 %b) minsize nounwind {
26 ; CHECK-LABEL: test_min:
27 ; CHECK: movl [[EAX:%e..]], (%esp)
28 ; CHECK-NEXT: pushl [[EAX]]
36 call void @foo(i32 %c)
37 call void asm sideeffect "nop", "~{ax},~{bx},~{cx},~{dx},~{bp},~{si},~{di}"()
38 call void @foo(i32 %c)