[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / llvm / test / CodeGen / X86 / apm.ll
blob6e57c2e1f6df7fb9b2aa71ef3a1b8dc736ea1898
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
6 ; PR8573
8 define void @foo(ptr %P, i32 %E, i32 %H) nounwind {
9 ; X86-LABEL: foo:
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
14 ; X86-NEXT:    monitor
15 ; X86-NEXT:    retl
17 ; X64-LABEL: foo:
18 ; X64:       # %bb.0: # %entry
19 ; X64-NEXT:    movl %esi, %ecx
20 ; X64-NEXT:    movq %rdi, %rax
21 ; X64-NEXT:    monitor
22 ; X64-NEXT:    retq
24 ; WIN64-LABEL: foo:
25 ; WIN64:       # %bb.0: # %entry
26 ; WIN64-NEXT:    movq %rcx, %rax
27 ; WIN64-NEXT:    movl %edx, %ecx
28 ; WIN64-NEXT:    movl %r8d, %edx
29 ; WIN64-NEXT:    monitor
30 ; WIN64-NEXT:    retq
31 entry:
32   tail call void @llvm.x86.sse3.monitor(ptr %P, i32 %E, i32 %H)
33   ret void
36 declare void @llvm.x86.sse3.monitor(ptr, i32, i32) nounwind
38 define void @bar(i32 %E, i32 %H) nounwind {
39 ; X86-LABEL: bar:
40 ; X86:       # %bb.0: # %entry
41 ; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
42 ; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
43 ; X86-NEXT:    mwait
44 ; X86-NEXT:    retl
46 ; X64-LABEL: bar:
47 ; X64:       # %bb.0: # %entry
48 ; X64-NEXT:    movl %esi, %eax
49 ; X64-NEXT:    movl %edi, %ecx
50 ; X64-NEXT:    mwait
51 ; X64-NEXT:    retq
53 ; WIN64-LABEL: bar:
54 ; WIN64:       # %bb.0: # %entry
55 ; WIN64-NEXT:    movl %edx, %eax
56 ; WIN64-NEXT:    mwait
57 ; WIN64-NEXT:    retq
58 entry:
59   tail call void @llvm.x86.sse3.mwait(i32 %E, i32 %H)
60   ret void
63 declare void @llvm.x86.sse3.mwait(i32, i32) nounwind