|  | ; RUN: llc < %s -mtriple=i686-windows | FileCheck %s -check-prefix=CHECK -check-prefix=NORMAL | 
|  | ; RUN: llc < %s -mtriple=i686-windows -mattr=slow-two-mem-ops | FileCheck %s -check-prefix=CHECK -check-prefix=SLM | 
|  |  | 
|  | declare void @foo(i32 %r) | 
|  |  | 
|  | define void @test(i32 %a, i32 %b) optsize nounwind { | 
|  | ; CHECK-LABEL: test: | 
|  | ; CHECK: movl [[EAX:%e..]], (%esp) | 
|  | ; CHECK-NEXT: pushl [[EAX]] | 
|  | ; CHECK-NEXT: calll | 
|  | ; CHECK-NEXT: addl $4, %esp | 
|  | ; CHECK: nop | 
|  | ; NORMAL: pushl (%esp) | 
|  | ; SLM: movl (%esp), [[RELOAD:%e..]] | 
|  | ; SLM-NEXT: pushl [[RELOAD]] | 
|  | ; CHECK: calll | 
|  | ; CHECK-NEXT: addl $8, %esp | 
|  | %c = add i32 %a, %b | 
|  | call void @foo(i32 %c) | 
|  | call void asm sideeffect "nop", "~{ax},~{bx},~{cx},~{dx},~{bp},~{si},~{di}"() | 
|  | call void @foo(i32 %c) | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define void @test_min(i32 %a, i32 %b) minsize nounwind { | 
|  | ; CHECK-LABEL: test_min: | 
|  | ; CHECK: movl [[EAX:%e..]], (%esp) | 
|  | ; CHECK-NEXT: pushl [[EAX]] | 
|  | ; CHECK-NEXT: calll | 
|  | ; CHECK-NEXT: popl | 
|  | ; CHECK: nop | 
|  | ; CHECK: pushl (%esp) | 
|  | ; CHECK: calll | 
|  | ; CHECK-NEXT: popl | 
|  | %c = add i32 %a, %b | 
|  | call void @foo(i32 %c) | 
|  | call void asm sideeffect "nop", "~{ax},~{bx},~{cx},~{dx},~{bp},~{si},~{di}"() | 
|  | call void @foo(i32 %c) | 
|  | ret void | 
|  | } |