~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/ARM/vfp.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=arm -mattr=+vfp2 | FileCheck %s
 
2
 
 
3
define void @test(float* %P, double* %D) {
 
4
        %A = load float* %P             ; <float> [#uses=1]
 
5
        %B = load double* %D            ; <double> [#uses=1]
 
6
        store float %A, float* %P
 
7
        store double %B, double* %D
 
8
        ret void
 
9
}
 
10
 
 
11
declare float @fabsf(float)
 
12
 
 
13
declare double @fabs(double)
 
14
 
 
15
define void @test_abs(float* %P, double* %D) {
 
16
;CHECK: test_abs:
 
17
        %a = load float* %P             ; <float> [#uses=1]
 
18
;CHECK: vabs.f32
 
19
        %b = call float @fabsf( float %a )              ; <float> [#uses=1]
 
20
        store float %b, float* %P
 
21
        %A = load double* %D            ; <double> [#uses=1]
 
22
;CHECK: vabs.f64
 
23
        %B = call double @fabs( double %A )             ; <double> [#uses=1]
 
24
        store double %B, double* %D
 
25
        ret void
 
26
}
 
27
 
 
28
define void @test_add(float* %P, double* %D) {
 
29
;CHECK: test_add:
 
30
        %a = load float* %P             ; <float> [#uses=2]
 
31
        %b = fadd float %a, %a          ; <float> [#uses=1]
 
32
        store float %b, float* %P
 
33
        %A = load double* %D            ; <double> [#uses=2]
 
34
        %B = fadd double %A, %A         ; <double> [#uses=1]
 
35
        store double %B, double* %D
 
36
        ret void
 
37
}
 
38
 
 
39
define void @test_ext_round(float* %P, double* %D) {
 
40
;CHECK: test_ext_round:
 
41
        %a = load float* %P             ; <float> [#uses=1]
 
42
;CHECK: vcvt.f64.f32
 
43
        %b = fpext float %a to double           ; <double> [#uses=1]
 
44
        %A = load double* %D            ; <double> [#uses=1]
 
45
;CHECK: vcvt.f32.f64
 
46
        %B = fptrunc double %A to float         ; <float> [#uses=1]
 
47
        store double %b, double* %D
 
48
        store float %B, float* %P
 
49
        ret void
 
50
}
 
51
 
 
52
define void @test_fma(float* %P1, float* %P2, float* %P3) {
 
53
;CHECK: test_fma:
 
54
        %a1 = load float* %P1           ; <float> [#uses=1]
 
55
        %a2 = load float* %P2           ; <float> [#uses=1]
 
56
        %a3 = load float* %P3           ; <float> [#uses=1]
 
57
;CHECK: vnmls.f32
 
58
        %X = fmul float %a1, %a2                ; <float> [#uses=1]
 
59
        %Y = fsub float %X, %a3         ; <float> [#uses=1]
 
60
        store float %Y, float* %P1
 
61
        ret void
 
62
}
 
63
 
 
64
define i32 @test_ftoi(float* %P1) {
 
65
;CHECK: test_ftoi:
 
66
        %a1 = load float* %P1           ; <float> [#uses=1]
 
67
;CHECK: vcvt.s32.f32
 
68
        %b1 = fptosi float %a1 to i32           ; <i32> [#uses=1]
 
69
        ret i32 %b1
 
70
}
 
71
 
 
72
define i32 @test_ftou(float* %P1) {
 
73
;CHECK: test_ftou:
 
74
        %a1 = load float* %P1           ; <float> [#uses=1]
 
75
;CHECK: vcvt.u32.f32
 
76
        %b1 = fptoui float %a1 to i32           ; <i32> [#uses=1]
 
77
        ret i32 %b1
 
78
}
 
79
 
 
80
define i32 @test_dtoi(double* %P1) {
 
81
;CHECK: test_dtoi:
 
82
        %a1 = load double* %P1          ; <double> [#uses=1]
 
83
;CHECK: vcvt.s32.f64
 
84
        %b1 = fptosi double %a1 to i32          ; <i32> [#uses=1]
 
85
        ret i32 %b1
 
86
}
 
87
 
 
88
define i32 @test_dtou(double* %P1) {
 
89
;CHECK: test_dtou:
 
90
        %a1 = load double* %P1          ; <double> [#uses=1]
 
91
;CHECK: vcvt.u32.f64
 
92
        %b1 = fptoui double %a1 to i32          ; <i32> [#uses=1]
 
93
        ret i32 %b1
 
94
}
 
95
 
 
96
define void @test_utod(double* %P1, i32 %X) {
 
97
;CHECK: test_utod:
 
98
;CHECK: vcvt.f64.u32
 
99
        %b1 = uitofp i32 %X to double           ; <double> [#uses=1]
 
100
        store double %b1, double* %P1
 
101
        ret void
 
102
}
 
103
 
 
104
define void @test_utod2(double* %P1, i8 %X) {
 
105
;CHECK: test_utod2:
 
106
;CHECK: vcvt.f64.u32
 
107
        %b1 = uitofp i8 %X to double            ; <double> [#uses=1]
 
108
        store double %b1, double* %P1
 
109
        ret void
 
110
}
 
111
 
 
112
define void @test_cmp(float* %glob, i32 %X) {
 
113
;CHECK: test_cmp:
 
114
entry:
 
115
        %tmp = load float* %glob                ; <float> [#uses=2]
 
116
        %tmp3 = getelementptr float* %glob, i32 2               ; <float*> [#uses=1]
 
117
        %tmp4 = load float* %tmp3               ; <float> [#uses=2]
 
118
        %tmp.upgrd.1 = fcmp oeq float %tmp, %tmp4               ; <i1> [#uses=1]
 
119
        %tmp5 = fcmp uno float %tmp, %tmp4              ; <i1> [#uses=1]
 
120
        %tmp6 = or i1 %tmp.upgrd.1, %tmp5               ; <i1> [#uses=1]
 
121
;CHECK: bmi
 
122
;CHECK-NEXT: bgt
 
123
        br i1 %tmp6, label %cond_true, label %cond_false
 
124
 
 
125
cond_true:              ; preds = %entry
 
126
        %tmp.upgrd.2 = tail call i32 (...)* @bar( )             ; <i32> [#uses=0]
 
127
        ret void
 
128
 
 
129
cond_false:             ; preds = %entry
 
130
        %tmp7 = tail call i32 (...)* @baz( )            ; <i32> [#uses=0]
 
131
        ret void
 
132
}
 
133
 
 
134
declare i1 @llvm.isunordered.f32(float, float)
 
135
 
 
136
declare i32 @bar(...)
 
137
 
 
138
declare i32 @baz(...)
 
139
 
 
140
define void @test_cmpfp0(float* %glob, i32 %X) {
 
141
;CHECK: test_cmpfp0:
 
142
entry:
 
143
        %tmp = load float* %glob                ; <float> [#uses=1]
 
144
;CHECK: vcmpe.f32
 
145
        %tmp.upgrd.3 = fcmp ogt float %tmp, 0.000000e+00                ; <i1> [#uses=1]
 
146
        br i1 %tmp.upgrd.3, label %cond_true, label %cond_false
 
147
 
 
148
cond_true:              ; preds = %entry
 
149
        %tmp.upgrd.4 = tail call i32 (...)* @bar( )             ; <i32> [#uses=0]
 
150
        ret void
 
151
 
 
152
cond_false:             ; preds = %entry
 
153
        %tmp1 = tail call i32 (...)* @baz( )            ; <i32> [#uses=0]
 
154
        ret void
 
155
}