~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/X86/2009-10-19-atomic-cmp-eflags.ll

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-03-12 11:30:04 UTC
  • mfrom: (0.41.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100312113004-b0fop4bkycszdd0z
Tags: 0.96~rc1+dfsg-0ubuntu1
* New upstream RC - FFE (LP: #537636):
  - Add OfficialDatabaseOnly option to clamav-base.postinst.in
  - Add LocalSocketGroup option to clamav-base.postinst.in
  - Add LocalSocketMode option to clamav-base.postinst.in
  - Add CrossFilesystems option to clamav-base.postinst.in
  - Add ClamukoScannerCount option to clamav-base.postinst.in
  - Add BytecodeSecurity opiton to clamav-base.postinst.in
  - Add DetectionStatsHostID option to clamav-freshclam.postinst.in
  - Add Bytecode option to clamav-freshclam.postinst.in
  - Add MilterSocketGroup option to clamav-milter.postinst.in
  - Add MilterSocketMode option to clamav-milter.postinst.in
  - Add ReportHostname option to clamav-milter.postinst.in
  - Bump libclamav SO version to 6.1.0 in libclamav6.install
  - Drop clamdmon from clamav.examples (no longer shipped by upstream)
  - Drop libclamav.a from libclamav-dev.install (not built by upstream)
  - Update SO version for lintian override for libclamav6
  - Add new Bytecode Testing Tool, usr/bin/clambc, to clamav.install
  - Add build-depends on python and python-setuptools for new test suite
  - Update debian/copyright for the embedded copy of llvm (using the system
    llvm is not currently feasible)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llvm-as <%s | llc | FileCheck %s
 
2
; PR 5247
 
3
; check that cmp is not scheduled before the add
 
4
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
 
5
target triple = "x86_64-unknown-linux-gnu"
 
6
 
 
7
@.str76843 = external constant [45 x i8]          ; <[45 x i8]*> [#uses=1]
 
8
@__profiling_callsite_timestamps_live = external global [1216 x i64] ; <[1216 x i64]*> [#uses=2]
 
9
 
 
10
define i32 @cl_init(i32 %initoptions) nounwind {
 
11
entry:
 
12
  %retval.i = alloca i32                          ; <i32*> [#uses=3]
 
13
  %retval = alloca i32                            ; <i32*> [#uses=2]
 
14
  %initoptions.addr = alloca i32                  ; <i32*> [#uses=2]
 
15
  tail call void asm sideeffect "cpuid", "~{ax},~{bx},~{cx},~{dx},~{memory},~{dirflag},~{fpsr},~{flags}"() nounwind
 
16
  %0 = tail call i64 @llvm.readcyclecounter() nounwind ; <i64> [#uses=1]
 
17
  store i32 %initoptions, i32* %initoptions.addr
 
18
  %1 = bitcast i32* %initoptions.addr to { }*     ; <{ }*> [#uses=0]
 
19
  call void asm sideeffect "cpuid", "~{ax},~{bx},~{cx},~{dx},~{memory},~{dirflag},~{fpsr},~{flags}"() nounwind
 
20
  %2 = call i64 @llvm.readcyclecounter() nounwind ; <i64> [#uses=1]
 
21
  %call.i = call i32 @lt_dlinit() nounwind        ; <i32> [#uses=1]
 
22
  %tobool.i = icmp ne i32 %call.i, 0              ; <i1> [#uses=1]
 
23
  br i1 %tobool.i, label %if.then.i, label %if.end.i
 
24
 
 
25
if.then.i:                                        ; preds = %entry
 
26
  %call1.i = call i32 @warn_dlerror(i8* getelementptr inbounds ([45 x i8]* @.str76843, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
 
27
  store i32 -1, i32* %retval.i
 
28
  br label %lt_init.exit
 
29
 
 
30
if.end.i:                                         ; preds = %entry
 
31
  store i32 0, i32* %retval.i
 
32
  br label %lt_init.exit
 
33
 
 
34
lt_init.exit:                                     ; preds = %if.end.i, %if.then.i
 
35
  %3 = load i32* %retval.i                        ; <i32> [#uses=1]
 
36
  call void asm sideeffect "cpuid", "~{ax},~{bx},~{cx},~{dx},~{memory},~{dirflag},~{fpsr},~{flags}"() nounwind
 
37
  %4 = call i64 @llvm.readcyclecounter() nounwind ; <i64> [#uses=1]
 
38
  %5 = sub i64 %4, %2                             ; <i64> [#uses=1]
 
39
  %6 = call i64 @llvm.atomic.load.add.i64.p0i64(i64* getelementptr inbounds ([1216 x i64]* @__profiling_callsite_timestamps_live, i32 0, i32 51), i64 %5) nounwind ; <i64> [#uses=0]
 
40
;CHECK: lock
 
41
;CHECK-NEXT: {{xadd|addq}} %rdx, __profiling_callsite_timestamps_live
 
42
;CHECK-NEXT: cmpl $0,
 
43
;CHECK-NEXT: jne
 
44
  %cmp = icmp eq i32 %3, 0                        ; <i1> [#uses=1]
 
45
  br i1 %cmp, label %if.then, label %if.end
 
46
 
 
47
if.then:                                          ; preds = %lt_init.exit
 
48
  call void @cli_rarload()
 
49
  br label %if.end
 
50
 
 
51
if.end:                                           ; preds = %if.then, %lt_init.exit
 
52
  store i32 0, i32* %retval
 
53
  %7 = load i32* %retval                          ; <i32> [#uses=1]
 
54
  tail call void asm sideeffect "cpuid", "~{ax},~{bx},~{cx},~{dx},~{memory},~{dirflag},~{fpsr},~{flags}"() nounwind
 
55
  %8 = tail call i64 @llvm.readcyclecounter() nounwind ; <i64> [#uses=1]
 
56
  %9 = sub i64 %8, %0                             ; <i64> [#uses=1]
 
57
  %10 = call i64 @llvm.atomic.load.add.i64.p0i64(i64* getelementptr inbounds ([1216 x i64]* @__profiling_callsite_timestamps_live, i32 0, i32 50), i64 %9) ; <i64> [#uses=0]
 
58
  ret i32 %7
 
59
}
 
60
 
 
61
declare void @cli_rarload() nounwind
 
62
 
 
63
declare i32 @lt_dlinit()
 
64
 
 
65
declare i32 @warn_dlerror(i8*) nounwind
 
66
 
 
67
declare i64 @llvm.atomic.load.add.i64.p0i64(i64* nocapture, i64) nounwind
 
68
 
 
69
declare i64 @llvm.readcyclecounter() nounwind