~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/PowerPC/2009-09-18-carrybit.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 -march=ppc32 < %s | FileCheck %s
 
2
; ModuleID = '<stdin>'
 
3
target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
 
4
target triple = "powerpc-apple-darwin9.6"
 
5
 
 
6
define i64 @foo(i64 %r.0.ph, i64 %q.0.ph, i32 %sr1.1.ph) nounwind {
 
7
entry:
 
8
; CHECK: foo:
 
9
; CHECK: subfc
 
10
; CHECK: subfe
 
11
; CHECK: subfc
 
12
; CHECK: subfe
 
13
  %tmp0 = add i64 %r.0.ph, -1                           ; <i64> [#uses=1]
 
14
  br label %bb40
 
15
 
 
16
bb40:                                             ; preds = %bb40, %entry
 
17
  %indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb40 ] ; <i32> [#uses=1]
 
18
  %carry.0274 = phi i32 [ 0, %entry ], [%tmp122, %bb40 ] ; <i32> [#uses=1]
 
19
  %r.0273 = phi i64 [ %r.0.ph, %entry ], [ %tmp124, %bb40 ] ; <i64> [#uses=2]
 
20
  %q.0272 = phi i64 [ %q.0.ph, %entry ], [ %ins169, %bb40 ] ; <i64> [#uses=3]
 
21
  %tmp1 = lshr i64 %r.0273, 31                     ; <i64> [#uses=1]
 
22
  %tmp2 = trunc i64 %tmp1 to i32                    ; <i32> [#uses=1]
 
23
  %tmp3 = and i32 %tmp2, -2                         ; <i32> [#uses=1]
 
24
  %tmp213 = trunc i64 %r.0273 to i32              ; <i32> [#uses=2]
 
25
  %tmp106 = lshr i32 %tmp213, 31                     ; <i32> [#uses=1]
 
26
  %tmp107 = or i32 %tmp3, %tmp106                        ; <i32> [#uses=1]
 
27
  %tmp215 = zext i32 %tmp107 to i64                  ; <i64> [#uses=1]
 
28
  %tmp216 = shl i64 %tmp215, 32                   ; <i64> [#uses=1]
 
29
  %tmp108 = shl i32 %tmp213, 1                       ; <i32> [#uses=1]
 
30
  %tmp109 = lshr i64 %q.0272, 63                     ; <i64> [#uses=1]
 
31
  %tmp110 = trunc i64 %tmp109 to i32                    ; <i32> [#uses=1]
 
32
  %tmp111 = or i32 %tmp108, %tmp110                        ; <i32> [#uses=1]
 
33
  %tmp222 = zext i32 %tmp111 to i64                  ; <i64> [#uses=1]
 
34
  %ins224 = or i64 %tmp216, %tmp222               ; <i64> [#uses=2]
 
35
  %tmp112 = lshr i64 %q.0272, 31                     ; <i64> [#uses=1]
 
36
  %tmp113 = trunc i64 %tmp112 to i32                    ; <i32> [#uses=1]
 
37
  %tmp114 = and i32 %tmp113, -2                         ; <i32> [#uses=1]
 
38
  %tmp158 = trunc i64 %q.0272 to i32              ; <i32> [#uses=2]
 
39
  %tmp115 = lshr i32 %tmp158, 31                     ; <i32> [#uses=1]
 
40
  %tmp116 = or i32 %tmp114, %tmp115                        ; <i32> [#uses=1]
 
41
  %tmp160 = zext i32 %tmp116 to i64                  ; <i64> [#uses=1]
 
42
  %tmp161 = shl i64 %tmp160, 32                   ; <i64> [#uses=1]
 
43
  %tmp117 = shl i32 %tmp158, 1                       ; <i32> [#uses=1]
 
44
  %tmp118 = or i32 %tmp117, %carry.0274                 ; <i32> [#uses=1]
 
45
  %tmp167 = zext i32 %tmp118 to i64                  ; <i64> [#uses=1]
 
46
  %ins169 = or i64 %tmp161, %tmp167               ; <i64> [#uses=2]
 
47
  %tmp119 = sub i64 %tmp0, %ins224                    ; <i64> [#uses=1]
 
48
  %tmp120 = ashr i64 %tmp119, 63                        ; <i64> [#uses=2]
 
49
  %tmp121 = trunc i64 %tmp120 to i32                    ; <i32> [#uses=1]
 
50
  %tmp122 = and i32 %tmp121, 1                          ; <i32> [#uses=2]
 
51
  %tmp123 = and i64 %tmp120, %q.0.ph                         ; <i64> [#uses=1]
 
52
  %tmp124 = sub i64 %ins224, %tmp123                    ; <i64> [#uses=2]
 
53
  %indvar.next = add i32 %indvar, 1               ; <i32> [#uses=2]
 
54
  %exitcond = icmp eq i32 %indvar.next, %sr1.1.ph ; <i1> [#uses=1]
 
55
  br i1 %exitcond, label %bb41.bb42_crit_edge, label %bb40
 
56
 
 
57
bb41.bb42_crit_edge:                              ; preds = %bb40
 
58
  %phitmp278 = zext i32 %tmp122 to i64               ; <i64> [#uses=1]
 
59
  %tmp125 = shl i64 %ins169, 1                    ; <i64> [#uses=1]
 
60
  %tmp126 = or i64 %phitmp278, %tmp125              ; <i64> [#uses=2]
 
61
  ret i64 %tmp126
 
62
}