1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse3 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse3 | FileCheck %s -check-prefix=WIN64 3*9880d681SAndroid Build Coastguard Worker; PR8573 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: foo: 6*9880d681SAndroid Build Coastguard Worker; CHECK: leaq (%rdi), %rax 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movl %esi, %ecx 8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: monitor 9*9880d681SAndroid Build Coastguard Worker; WIN64-LABEL: foo: 10*9880d681SAndroid Build Coastguard Worker; WIN64: leaq (%rcx), %rax 11*9880d681SAndroid Build Coastguard Worker; WIN64-NEXT: movl %edx, %ecx 12*9880d681SAndroid Build Coastguard Worker; WIN64-NEXT: movl %r8d, %edx 13*9880d681SAndroid Build Coastguard Worker; WIN64-NEXT: monitor 14*9880d681SAndroid Build Coastguard Workerdefine void @foo(i8* %P, i32 %E, i32 %H) nounwind { 15*9880d681SAndroid Build Coastguard Workerentry: 16*9880d681SAndroid Build Coastguard Worker tail call void @llvm.x86.sse3.monitor(i8* %P, i32 %E, i32 %H) 17*9880d681SAndroid Build Coastguard Worker ret void 18*9880d681SAndroid Build Coastguard Worker} 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.sse3.monitor(i8*, i32, i32) nounwind 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bar: 23*9880d681SAndroid Build Coastguard Worker; CHECK: movl %edi, %ecx 24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movl %esi, %eax 25*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: mwait 26*9880d681SAndroid Build Coastguard Worker; WIN64-LABEL: bar: 27*9880d681SAndroid Build Coastguard Worker; WIN64: movl %edx, %eax 28*9880d681SAndroid Build Coastguard Worker; WIN64-NEXT: mwait 29*9880d681SAndroid Build Coastguard Workerdefine void @bar(i32 %E, i32 %H) nounwind { 30*9880d681SAndroid Build Coastguard Workerentry: 31*9880d681SAndroid Build Coastguard Worker tail call void @llvm.x86.sse3.mwait(i32 %E, i32 %H) 32*9880d681SAndroid Build Coastguard Worker ret void 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.x86.sse3.mwait(i32, i32) nounwind 36