blob: b514cf6427d5332c5a16b2c4684cf96cddd5a17f [file] [log] [blame]
NAKAMURA Takumi37947c62011-03-16 13:52:51 +00001; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
2; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s -check-prefix=WIN64
Eric Christopher228232b2010-11-30 07:20:12 +00003; PR8573
4
Eric Christopherc459d062010-11-30 09:23:54 +00005; CHECK: foo:
Eric Christopher228232b2010-11-30 07:20:12 +00006; CHECK: leaq (%rdi), %rax
7; CHECK-NEXT: movl %esi, %ecx
8; CHECK-NEXT: monitor
NAKAMURA Takumi37947c62011-03-16 13:52:51 +00009; WIN64: foo:
10; WIN64: leaq (%rcx), %rax
11; WIN64-NEXT: movl %edx, %ecx
12; WIN64-NEXT: movl %r8d, %edx
13; WIN64-NEXT: monitor
Eric Christopher228232b2010-11-30 07:20:12 +000014define void @foo(i8* %P, i32 %E, i32 %H) nounwind {
15entry:
16 tail call void @llvm.x86.sse3.monitor(i8* %P, i32 %E, i32 %H)
17 ret void
18}
19
20declare void @llvm.x86.sse3.monitor(i8*, i32, i32) nounwind
21
Eric Christopherc459d062010-11-30 09:23:54 +000022; CHECK: bar:
Eric Christopher228232b2010-11-30 07:20:12 +000023; CHECK: movl %edi, %ecx
24; CHECK-NEXT: movl %esi, %eax
25; CHECK-NEXT: mwait
NAKAMURA Takumi37947c62011-03-16 13:52:51 +000026; WIN64: bar:
27; WIN64: movl %edx, %eax
28; WIN64-NEXT: mwait
Eric Christopher228232b2010-11-30 07:20:12 +000029define void @bar(i32 %E, i32 %H) nounwind {
30entry:
31 tail call void @llvm.x86.sse3.mwait(i32 %E, i32 %H)
32 ret void
33}
34
35declare void @llvm.x86.sse3.mwait(i32, i32) nounwind