~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/X86/lea-recursion.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-64 | grep lea | count 12
 
2
 
 
3
; This testcase was written to demonstrate an instruction-selection problem,
 
4
; however it also happens to expose a limitation in the DAGCombiner's
 
5
; expression reassociation which causes it to miss opportunities for
 
6
; constant folding due to the intermediate adds having multiple uses.
 
7
; The Reassociate pass has similar limitations. If these limitations are
 
8
; fixed, the test commands above will need to be updated to expect fewer
 
9
; lea instructions.
 
10
 
 
11
@g0 = weak global [1000 x i32] zeroinitializer, align 32                ; <[1000 x i32]*> [#uses=8]
 
12
@g1 = weak global [1000 x i32] zeroinitializer, align 32                ; <[1000 x i32]*> [#uses=7]
 
13
 
 
14
define void @foo() {
 
15
entry:
 
16
        %tmp4 = load i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 0)               ; <i32> [#uses=1]
 
17
        %tmp8 = load i32* getelementptr ([1000 x i32]* @g1, i32 0, i32 0)               ; <i32> [#uses=1]
 
18
        %tmp9 = add i32 %tmp4, 1                ; <i32> [#uses=1]
 
19
        %tmp10 = add i32 %tmp9, %tmp8           ; <i32> [#uses=2]
 
20
        store i32 %tmp10, i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 1)
 
21
        %tmp8.1 = load i32* getelementptr ([1000 x i32]* @g1, i32 0, i32 1)             ; <i32> [#uses=1]
 
22
        %tmp9.1 = add i32 %tmp10, 1             ; <i32> [#uses=1]
 
23
        %tmp10.1 = add i32 %tmp9.1, %tmp8.1             ; <i32> [#uses=2]
 
24
        store i32 %tmp10.1, i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 2)
 
25
        %tmp8.2 = load i32* getelementptr ([1000 x i32]* @g1, i32 0, i32 2)             ; <i32> [#uses=1]
 
26
        %tmp9.2 = add i32 %tmp10.1, 1           ; <i32> [#uses=1]
 
27
        %tmp10.2 = add i32 %tmp9.2, %tmp8.2             ; <i32> [#uses=2]
 
28
        store i32 %tmp10.2, i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 3)
 
29
        %tmp8.3 = load i32* getelementptr ([1000 x i32]* @g1, i32 0, i32 3)             ; <i32> [#uses=1]
 
30
        %tmp9.3 = add i32 %tmp10.2, 1           ; <i32> [#uses=1]
 
31
        %tmp10.3 = add i32 %tmp9.3, %tmp8.3             ; <i32> [#uses=2]
 
32
        store i32 %tmp10.3, i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 4)
 
33
        %tmp8.4 = load i32* getelementptr ([1000 x i32]* @g1, i32 0, i32 4)             ; <i32> [#uses=1]
 
34
        %tmp9.4 = add i32 %tmp10.3, 1           ; <i32> [#uses=1]
 
35
        %tmp10.4 = add i32 %tmp9.4, %tmp8.4             ; <i32> [#uses=2]
 
36
        store i32 %tmp10.4, i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 5)
 
37
        %tmp8.5 = load i32* getelementptr ([1000 x i32]* @g1, i32 0, i32 5)             ; <i32> [#uses=1]
 
38
        %tmp9.5 = add i32 %tmp10.4, 1           ; <i32> [#uses=1]
 
39
        %tmp10.5 = add i32 %tmp9.5, %tmp8.5             ; <i32> [#uses=2]
 
40
        store i32 %tmp10.5, i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 6)
 
41
        %tmp8.6 = load i32* getelementptr ([1000 x i32]* @g1, i32 0, i32 6)             ; <i32> [#uses=1]
 
42
        %tmp9.6 = add i32 %tmp10.5, 1           ; <i32> [#uses=1]
 
43
        %tmp10.6 = add i32 %tmp9.6, %tmp8.6             ; <i32> [#uses=1]
 
44
        store i32 %tmp10.6, i32* getelementptr ([1000 x i32]* @g0, i32 0, i32 7)
 
45
        ret void
 
46
}
 
47