~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/ARM/tail-opts.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 -mtriple=arm-apple-darwin -mcpu=cortex-a8 -asm-verbose=false | FileCheck %s
 
2
 
 
3
declare void @bar(i32)
 
4
declare void @car(i32)
 
5
declare void @dar(i32)
 
6
declare void @ear(i32)
 
7
declare void @far(i32)
 
8
declare i1 @qux()
 
9
 
 
10
@GHJK = global i32 0
 
11
 
 
12
declare i8* @choose(i8*, i8*)
 
13
 
 
14
; BranchFolding should tail-duplicate the indirect jump to avoid
 
15
; redundant branching.
 
16
 
 
17
; CHECK: tail_duplicate_me:
 
18
; CHECK:      qux
 
19
; CHECK:      qux
 
20
; CHECK:      ldr r{{.}}, LCPI
 
21
; CHECK:      str r
 
22
; CHECK-NEXT: bx r
 
23
; CHECK:      ldr r{{.}}, LCPI
 
24
; CHECK:      str r
 
25
; CHECK-NEXT: bx r
 
26
; CHECK:      ldr r{{.}}, LCPI
 
27
; CHECK:      str r
 
28
; CHECK-NEXT: bx r
 
29
 
 
30
define void @tail_duplicate_me() nounwind {
 
31
entry:
 
32
  %a = call i1 @qux()
 
33
  %c = call i8* @choose(i8* blockaddress(@tail_duplicate_me, %return),
 
34
                        i8* blockaddress(@tail_duplicate_me, %altret))
 
35
  br i1 %a, label %A, label %next
 
36
next:
 
37
  %b = call i1 @qux()
 
38
  br i1 %b, label %B, label %C
 
39
 
 
40
A:
 
41
  call void @bar(i32 0)
 
42
  store i32 0, i32* @GHJK
 
43
  br label %M
 
44
 
 
45
B:
 
46
  call void @car(i32 1)
 
47
  store i32 0, i32* @GHJK
 
48
  br label %M
 
49
 
 
50
C:
 
51
  call void @dar(i32 2)
 
52
  store i32 0, i32* @GHJK
 
53
  br label %M
 
54
 
 
55
M:
 
56
  indirectbr i8* %c, [label %return, label %altret]
 
57
 
 
58
return:
 
59
  call void @ear(i32 1000)
 
60
  ret void
 
61
altret:
 
62
  call void @far(i32 1001)
 
63
  ret void
 
64
}