File: apm.ll

package info (click to toggle)
llvm-2.9 2.9%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 69,236 kB
  • sloc: cpp: 439,289; ansic: 16,211; asm: 13,295; sh: 12,912; python: 4,459; ml: 4,274; perl: 2,093; makefile: 1,808; pascal: 1,481; exp: 427; objc: 334; xml: 283; ada: 235; lisp: 187; csh: 117; f90: 36
file content (35 lines) | stat: -rw-r--r-- 904 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s -check-prefix=WIN64
; PR8573

; CHECK: foo:
; CHECK: leaq    (%rdi), %rax
; CHECK-NEXT: movl    %esi, %ecx
; CHECK-NEXT: monitor
; WIN64: foo:
; WIN64:      leaq    (%rcx), %rax
; WIN64-NEXT: movl    %edx, %ecx
; WIN64-NEXT: movl    %r8d, %edx
; WIN64-NEXT: monitor
define void @foo(i8* %P, i32 %E, i32 %H) nounwind {
entry:
  tail call void @llvm.x86.sse3.monitor(i8* %P, i32 %E, i32 %H)
  ret void
}

declare void @llvm.x86.sse3.monitor(i8*, i32, i32) nounwind

; CHECK: bar:
; CHECK: movl    %edi, %ecx
; CHECK-NEXT: movl    %esi, %eax
; CHECK-NEXT: mwait
; WIN64: bar:
; WIN64:      movl    %edx, %eax
; WIN64-NEXT: mwait
define void @bar(i32 %E, i32 %H) nounwind {
entry:
  tail call void @llvm.x86.sse3.mwait(i32 %E, i32 %H)
  ret void
}

declare void @llvm.x86.sse3.mwait(i32, i32) nounwind