~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/X86/loop-strength-reduce4.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: llc < %s -march=x86 -relocation-model=static -mtriple=i686-apple-darwin | FileCheck %s -check-prefix=STATIC
 
2
; RUN: llc < %s -march=x86 -relocation-model=pic | FileCheck %s -check-prefix=PIC
 
3
 
 
4
; By starting the IV at -64 instead of 0, a cmp is eliminated,
 
5
; as the flags from the add can be used directly.
 
6
 
 
7
; STATIC: movl    $-64, %ecx
 
8
 
 
9
; STATIC: movl    %eax, _state+76(%ecx)
 
10
; STATIC: addl    $16, %ecx
 
11
; STATIC: jne
 
12
 
 
13
; In PIC mode the symbol can't be folded, so the change-compare-stride
 
14
; trick applies.
 
15
 
 
16
; PIC: cmpl $64
 
17
 
 
18
@state = external global [0 x i32]              ; <[0 x i32]*> [#uses=4]
 
19
@S = external global [0 x i32]          ; <[0 x i32]*> [#uses=4]
 
20
 
 
21
define i32 @foo() nounwind {
 
22
entry:
 
23
        br label %bb
 
24
 
 
25
bb:             ; preds = %bb, %entry
 
26
        %indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb ]          ; <i32> [#uses=2]
 
27
        %t.063.0 = phi i32 [ 0, %entry ], [ %tmp47, %bb ]               ; <i32> [#uses=1]
 
28
        %j.065.0 = shl i32 %indvar, 2           ; <i32> [#uses=4]
 
29
        %tmp3 = getelementptr [0 x i32]* @state, i32 0, i32 %j.065.0            ; <i32*> [#uses=2]
 
30
        %tmp4 = load i32* %tmp3, align 4                ; <i32> [#uses=1]
 
31
        %tmp6 = getelementptr [0 x i32]* @S, i32 0, i32 %t.063.0                ; <i32*> [#uses=1]
 
32
        %tmp7 = load i32* %tmp6, align 4                ; <i32> [#uses=1]
 
33
        %tmp8 = xor i32 %tmp7, %tmp4            ; <i32> [#uses=2]
 
34
        store i32 %tmp8, i32* %tmp3, align 4
 
35
        %tmp1378 = or i32 %j.065.0, 1           ; <i32> [#uses=1]
 
36
        %tmp16 = getelementptr [0 x i32]* @state, i32 0, i32 %tmp1378           ; <i32*> [#uses=2]
 
37
        %tmp17 = load i32* %tmp16, align 4              ; <i32> [#uses=1]
 
38
        %tmp19 = getelementptr [0 x i32]* @S, i32 0, i32 %tmp8          ; <i32*> [#uses=1]
 
39
        %tmp20 = load i32* %tmp19, align 4              ; <i32> [#uses=1]
 
40
        %tmp21 = xor i32 %tmp20, %tmp17         ; <i32> [#uses=2]
 
41
        store i32 %tmp21, i32* %tmp16, align 4
 
42
        %tmp2680 = or i32 %j.065.0, 2           ; <i32> [#uses=1]
 
43
        %tmp29 = getelementptr [0 x i32]* @state, i32 0, i32 %tmp2680           ; <i32*> [#uses=2]
 
44
        %tmp30 = load i32* %tmp29, align 4              ; <i32> [#uses=1]
 
45
        %tmp32 = getelementptr [0 x i32]* @S, i32 0, i32 %tmp21         ; <i32*> [#uses=1]
 
46
        %tmp33 = load i32* %tmp32, align 4              ; <i32> [#uses=1]
 
47
        %tmp34 = xor i32 %tmp33, %tmp30         ; <i32> [#uses=2]
 
48
        store i32 %tmp34, i32* %tmp29, align 4
 
49
        %tmp3982 = or i32 %j.065.0, 3           ; <i32> [#uses=1]
 
50
        %tmp42 = getelementptr [0 x i32]* @state, i32 0, i32 %tmp3982           ; <i32*> [#uses=2]
 
51
        %tmp43 = load i32* %tmp42, align 4              ; <i32> [#uses=1]
 
52
        %tmp45 = getelementptr [0 x i32]* @S, i32 0, i32 %tmp34         ; <i32*> [#uses=1]
 
53
        %tmp46 = load i32* %tmp45, align 4              ; <i32> [#uses=1]
 
54
        %tmp47 = xor i32 %tmp46, %tmp43         ; <i32> [#uses=3]
 
55
        store i32 %tmp47, i32* %tmp42, align 4
 
56
        %indvar.next = add i32 %indvar, 1               ; <i32> [#uses=2]
 
57
        %exitcond = icmp eq i32 %indvar.next, 4         ; <i1> [#uses=1]
 
58
        br i1 %exitcond, label %bb57, label %bb
 
59
 
 
60
bb57:           ; preds = %bb
 
61
        %tmp59 = and i32 %tmp47, 255            ; <i32> [#uses=1]
 
62
        ret i32 %tmp59
 
63
}