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-prefixes=CHECK,X86
3 ; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse3 | FileCheck %s -check-prefixes=CHECK,X64
4 ; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse3 | FileCheck %s -check-prefixes=CHECK,WIN64
8 define void @foo(i8* %P, i32 %E, i32 %H) nounwind {
10 ; X86: # %bb.0: # %entry
11 ; X86-NEXT: movl {{[0-9]+}}(%esp), %edx
12 ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
13 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
14 ; X86-NEXT: leal (%eax), %eax
19 ; X64: # %bb.0: # %entry
20 ; X64-NEXT: movl %esi, %ecx
21 ; X64-NEXT: leaq (%rdi), %rax
26 ; WIN64: # %bb.0: # %entry
27 ; WIN64-NEXT: leaq (%rcx), %rax
28 ; WIN64-NEXT: movl %edx, %ecx
29 ; WIN64-NEXT: movl %r8d, %edx
33 tail call void @llvm.x86.sse3.monitor(i8* %P, i32 %E, i32 %H)
37 declare void @llvm.x86.sse3.monitor(i8*, i32, i32) nounwind
39 define void @bar(i32 %E, i32 %H) nounwind {
41 ; X86: # %bb.0: # %entry
42 ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
43 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
48 ; X64: # %bb.0: # %entry
49 ; X64-NEXT: movl %esi, %eax
50 ; X64-NEXT: movl %edi, %ecx
55 ; WIN64: # %bb.0: # %entry
56 ; WIN64-NEXT: movl %edx, %eax
60 tail call void @llvm.x86.sse3.mwait(i32 %E, i32 %H)
64 declare void @llvm.x86.sse3.mwait(i32, i32) nounwind