1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i686-linux -mattr=+sse3 | FileCheck %s --check-prefix=X86
3 ; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse3 | FileCheck %s --check-prefix=X64
4 ; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse3 | FileCheck %s --check-prefix=WIN64
8 define void @foo(ptr %P, i32 %E, i32 %H) nounwind {
10 ; X86: # %bb.0: # %entry
11 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
12 ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
13 ; X86-NEXT: movl {{[0-9]+}}(%esp), %edx
18 ; X64: # %bb.0: # %entry
19 ; X64-NEXT: movl %esi, %ecx
20 ; X64-NEXT: movq %rdi, %rax
25 ; WIN64: # %bb.0: # %entry
26 ; WIN64-NEXT: movq %rcx, %rax
27 ; WIN64-NEXT: movl %edx, %ecx
28 ; WIN64-NEXT: movl %r8d, %edx
32 tail call void @llvm.x86.sse3.monitor(ptr %P, i32 %E, i32 %H)
36 declare void @llvm.x86.sse3.monitor(ptr, i32, i32) nounwind
38 define void @bar(i32 %E, i32 %H) nounwind {
40 ; X86: # %bb.0: # %entry
41 ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
42 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
47 ; X64: # %bb.0: # %entry
48 ; X64-NEXT: movl %esi, %eax
49 ; X64-NEXT: movl %edi, %ecx
54 ; WIN64: # %bb.0: # %entry
55 ; WIN64-NEXT: movl %edx, %eax
59 tail call void @llvm.x86.sse3.mwait(i32 %E, i32 %H)
63 declare void @llvm.x86.sse3.mwait(i32, i32) nounwind