~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/ARM/vdup.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=+neon | FileCheck %s
 
2
 
 
3
define <8 x i8> @v_dup8(i8 %A) nounwind {
 
4
;CHECK: v_dup8:
 
5
;CHECK: vdup.8
 
6
        %tmp1 = insertelement <8 x i8> zeroinitializer, i8 %A, i32 0
 
7
        %tmp2 = insertelement <8 x i8> %tmp1, i8 %A, i32 1
 
8
        %tmp3 = insertelement <8 x i8> %tmp2, i8 %A, i32 2
 
9
        %tmp4 = insertelement <8 x i8> %tmp3, i8 %A, i32 3
 
10
        %tmp5 = insertelement <8 x i8> %tmp4, i8 %A, i32 4
 
11
        %tmp6 = insertelement <8 x i8> %tmp5, i8 %A, i32 5
 
12
        %tmp7 = insertelement <8 x i8> %tmp6, i8 %A, i32 6
 
13
        %tmp8 = insertelement <8 x i8> %tmp7, i8 %A, i32 7
 
14
        ret <8 x i8> %tmp8
 
15
}
 
16
 
 
17
define <4 x i16> @v_dup16(i16 %A) nounwind {
 
18
;CHECK: v_dup16:
 
19
;CHECK: vdup.16
 
20
        %tmp1 = insertelement <4 x i16> zeroinitializer, i16 %A, i32 0
 
21
        %tmp2 = insertelement <4 x i16> %tmp1, i16 %A, i32 1
 
22
        %tmp3 = insertelement <4 x i16> %tmp2, i16 %A, i32 2
 
23
        %tmp4 = insertelement <4 x i16> %tmp3, i16 %A, i32 3
 
24
        ret <4 x i16> %tmp4
 
25
}
 
26
 
 
27
define <2 x i32> @v_dup32(i32 %A) nounwind {
 
28
;CHECK: v_dup32:
 
29
;CHECK: vdup.32
 
30
        %tmp1 = insertelement <2 x i32> zeroinitializer, i32 %A, i32 0
 
31
        %tmp2 = insertelement <2 x i32> %tmp1, i32 %A, i32 1
 
32
        ret <2 x i32> %tmp2
 
33
}
 
34
 
 
35
define <2 x float> @v_dupfloat(float %A) nounwind {
 
36
;CHECK: v_dupfloat:
 
37
;CHECK: vdup.32
 
38
        %tmp1 = insertelement <2 x float> zeroinitializer, float %A, i32 0
 
39
        %tmp2 = insertelement <2 x float> %tmp1, float %A, i32 1
 
40
        ret <2 x float> %tmp2
 
41
}
 
42
 
 
43
define <16 x i8> @v_dupQ8(i8 %A) nounwind {
 
44
;CHECK: v_dupQ8:
 
45
;CHECK: vdup.8
 
46
        %tmp1 = insertelement <16 x i8> zeroinitializer, i8 %A, i32 0
 
47
        %tmp2 = insertelement <16 x i8> %tmp1, i8 %A, i32 1
 
48
        %tmp3 = insertelement <16 x i8> %tmp2, i8 %A, i32 2
 
49
        %tmp4 = insertelement <16 x i8> %tmp3, i8 %A, i32 3
 
50
        %tmp5 = insertelement <16 x i8> %tmp4, i8 %A, i32 4
 
51
        %tmp6 = insertelement <16 x i8> %tmp5, i8 %A, i32 5
 
52
        %tmp7 = insertelement <16 x i8> %tmp6, i8 %A, i32 6
 
53
        %tmp8 = insertelement <16 x i8> %tmp7, i8 %A, i32 7
 
54
        %tmp9 = insertelement <16 x i8> %tmp8, i8 %A, i32 8
 
55
        %tmp10 = insertelement <16 x i8> %tmp9, i8 %A, i32 9
 
56
        %tmp11 = insertelement <16 x i8> %tmp10, i8 %A, i32 10
 
57
        %tmp12 = insertelement <16 x i8> %tmp11, i8 %A, i32 11
 
58
        %tmp13 = insertelement <16 x i8> %tmp12, i8 %A, i32 12
 
59
        %tmp14 = insertelement <16 x i8> %tmp13, i8 %A, i32 13
 
60
        %tmp15 = insertelement <16 x i8> %tmp14, i8 %A, i32 14
 
61
        %tmp16 = insertelement <16 x i8> %tmp15, i8 %A, i32 15
 
62
        ret <16 x i8> %tmp16
 
63
}
 
64
 
 
65
define <8 x i16> @v_dupQ16(i16 %A) nounwind {
 
66
;CHECK: v_dupQ16:
 
67
;CHECK: vdup.16
 
68
        %tmp1 = insertelement <8 x i16> zeroinitializer, i16 %A, i32 0
 
69
        %tmp2 = insertelement <8 x i16> %tmp1, i16 %A, i32 1
 
70
        %tmp3 = insertelement <8 x i16> %tmp2, i16 %A, i32 2
 
71
        %tmp4 = insertelement <8 x i16> %tmp3, i16 %A, i32 3
 
72
        %tmp5 = insertelement <8 x i16> %tmp4, i16 %A, i32 4
 
73
        %tmp6 = insertelement <8 x i16> %tmp5, i16 %A, i32 5
 
74
        %tmp7 = insertelement <8 x i16> %tmp6, i16 %A, i32 6
 
75
        %tmp8 = insertelement <8 x i16> %tmp7, i16 %A, i32 7
 
76
        ret <8 x i16> %tmp8
 
77
}
 
78
 
 
79
define <4 x i32> @v_dupQ32(i32 %A) nounwind {
 
80
;CHECK: v_dupQ32:
 
81
;CHECK: vdup.32
 
82
        %tmp1 = insertelement <4 x i32> zeroinitializer, i32 %A, i32 0
 
83
        %tmp2 = insertelement <4 x i32> %tmp1, i32 %A, i32 1
 
84
        %tmp3 = insertelement <4 x i32> %tmp2, i32 %A, i32 2
 
85
        %tmp4 = insertelement <4 x i32> %tmp3, i32 %A, i32 3
 
86
        ret <4 x i32> %tmp4
 
87
}
 
88
 
 
89
define <4 x float> @v_dupQfloat(float %A) nounwind {
 
90
;CHECK: v_dupQfloat:
 
91
;CHECK: vdup.32
 
92
        %tmp1 = insertelement <4 x float> zeroinitializer, float %A, i32 0
 
93
        %tmp2 = insertelement <4 x float> %tmp1, float %A, i32 1
 
94
        %tmp3 = insertelement <4 x float> %tmp2, float %A, i32 2
 
95
        %tmp4 = insertelement <4 x float> %tmp3, float %A, i32 3
 
96
        ret <4 x float> %tmp4
 
97
}
 
98
 
 
99
; Check to make sure it works with shuffles, too.
 
100
 
 
101
define <8 x i8> @v_shuffledup8(i8 %A) nounwind {
 
102
;CHECK: v_shuffledup8:
 
103
;CHECK: vdup.8
 
104
        %tmp1 = insertelement <8 x i8> undef, i8 %A, i32 0
 
105
        %tmp2 = shufflevector <8 x i8> %tmp1, <8 x i8> undef, <8 x i32> zeroinitializer
 
106
        ret <8 x i8> %tmp2
 
107
}
 
108
 
 
109
define <4 x i16> @v_shuffledup16(i16 %A) nounwind {
 
110
;CHECK: v_shuffledup16:
 
111
;CHECK: vdup.16
 
112
        %tmp1 = insertelement <4 x i16> undef, i16 %A, i32 0
 
113
        %tmp2 = shufflevector <4 x i16> %tmp1, <4 x i16> undef, <4 x i32> zeroinitializer
 
114
        ret <4 x i16> %tmp2
 
115
}
 
116
 
 
117
define <2 x i32> @v_shuffledup32(i32 %A) nounwind {
 
118
;CHECK: v_shuffledup32:
 
119
;CHECK: vdup.32
 
120
        %tmp1 = insertelement <2 x i32> undef, i32 %A, i32 0
 
121
        %tmp2 = shufflevector <2 x i32> %tmp1, <2 x i32> undef, <2 x i32> zeroinitializer
 
122
        ret <2 x i32> %tmp2
 
123
}
 
124
 
 
125
define <2 x float> @v_shuffledupfloat(float %A) nounwind {
 
126
;CHECK: v_shuffledupfloat:
 
127
;CHECK: vdup.32
 
128
        %tmp1 = insertelement <2 x float> undef, float %A, i32 0
 
129
        %tmp2 = shufflevector <2 x float> %tmp1, <2 x float> undef, <2 x i32> zeroinitializer
 
130
        ret <2 x float> %tmp2
 
131
}
 
132
 
 
133
define <16 x i8> @v_shuffledupQ8(i8 %A) nounwind {
 
134
;CHECK: v_shuffledupQ8:
 
135
;CHECK: vdup.8
 
136
        %tmp1 = insertelement <16 x i8> undef, i8 %A, i32 0
 
137
        %tmp2 = shufflevector <16 x i8> %tmp1, <16 x i8> undef, <16 x i32> zeroinitializer
 
138
        ret <16 x i8> %tmp2
 
139
}
 
140
 
 
141
define <8 x i16> @v_shuffledupQ16(i16 %A) nounwind {
 
142
;CHECK: v_shuffledupQ16:
 
143
;CHECK: vdup.16
 
144
        %tmp1 = insertelement <8 x i16> undef, i16 %A, i32 0
 
145
        %tmp2 = shufflevector <8 x i16> %tmp1, <8 x i16> undef, <8 x i32> zeroinitializer
 
146
        ret <8 x i16> %tmp2
 
147
}
 
148
 
 
149
define <4 x i32> @v_shuffledupQ32(i32 %A) nounwind {
 
150
;CHECK: v_shuffledupQ32:
 
151
;CHECK: vdup.32
 
152
        %tmp1 = insertelement <4 x i32> undef, i32 %A, i32 0
 
153
        %tmp2 = shufflevector <4 x i32> %tmp1, <4 x i32> undef, <4 x i32> zeroinitializer
 
154
        ret <4 x i32> %tmp2
 
155
}
 
156
 
 
157
define <4 x float> @v_shuffledupQfloat(float %A) nounwind {
 
158
;CHECK: v_shuffledupQfloat:
 
159
;CHECK: vdup.32
 
160
        %tmp1 = insertelement <4 x float> undef, float %A, i32 0
 
161
        %tmp2 = shufflevector <4 x float> %tmp1, <4 x float> undef, <4 x i32> zeroinitializer
 
162
        ret <4 x float> %tmp2
 
163
}
 
164
 
 
165
define <2 x float> @v_shuffledupfloat2(float* %A) nounwind {
 
166
;CHECK: v_shuffledupfloat2:
 
167
;CHECK: vdup.32
 
168
        %tmp0 = load float* %A
 
169
        %tmp1 = insertelement <2 x float> undef, float %tmp0, i32 0
 
170
        %tmp2 = shufflevector <2 x float> %tmp1, <2 x float> undef, <2 x i32> zeroinitializer
 
171
        ret <2 x float> %tmp2
 
172
}
 
173
 
 
174
define <4 x float> @v_shuffledupQfloat2(float* %A) nounwind {
 
175
;CHECK: v_shuffledupQfloat2:
 
176
;CHECK: vdup.32
 
177
        %tmp0 = load float* %A
 
178
        %tmp1 = insertelement <4 x float> undef, float %tmp0, i32 0
 
179
        %tmp2 = shufflevector <4 x float> %tmp1, <4 x float> undef, <4 x i32> zeroinitializer
 
180
        ret <4 x float> %tmp2
 
181
}
 
182
 
 
183
define <8 x i8> @vduplane8(<8 x i8>* %A) nounwind {
 
184
;CHECK: vduplane8:
 
185
;CHECK: vdup.8
 
186
        %tmp1 = load <8 x i8>* %A
 
187
        %tmp2 = shufflevector <8 x i8> %tmp1, <8 x i8> undef, <8 x i32> < i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1 >
 
188
        ret <8 x i8> %tmp2
 
189
}
 
190
 
 
191
define <4 x i16> @vduplane16(<4 x i16>* %A) nounwind {
 
192
;CHECK: vduplane16:
 
193
;CHECK: vdup.16
 
194
        %tmp1 = load <4 x i16>* %A
 
195
        %tmp2 = shufflevector <4 x i16> %tmp1, <4 x i16> undef, <4 x i32> < i32 1, i32 1, i32 1, i32 1 >
 
196
        ret <4 x i16> %tmp2
 
197
}
 
198
 
 
199
define <2 x i32> @vduplane32(<2 x i32>* %A) nounwind {
 
200
;CHECK: vduplane32:
 
201
;CHECK: vdup.32
 
202
        %tmp1 = load <2 x i32>* %A
 
203
        %tmp2 = shufflevector <2 x i32> %tmp1, <2 x i32> undef, <2 x i32> < i32 1, i32 1 >
 
204
        ret <2 x i32> %tmp2
 
205
}
 
206
 
 
207
define <2 x float> @vduplanefloat(<2 x float>* %A) nounwind {
 
208
;CHECK: vduplanefloat:
 
209
;CHECK: vdup.32
 
210
        %tmp1 = load <2 x float>* %A
 
211
        %tmp2 = shufflevector <2 x float> %tmp1, <2 x float> undef, <2 x i32> < i32 1, i32 1 >
 
212
        ret <2 x float> %tmp2
 
213
}
 
214
 
 
215
define <16 x i8> @vduplaneQ8(<8 x i8>* %A) nounwind {
 
216
;CHECK: vduplaneQ8:
 
217
;CHECK: vdup.8
 
218
        %tmp1 = load <8 x i8>* %A
 
219
        %tmp2 = shufflevector <8 x i8> %tmp1, <8 x i8> undef, <16 x i32> < i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1 >
 
220
        ret <16 x i8> %tmp2
 
221
}
 
222
 
 
223
define <8 x i16> @vduplaneQ16(<4 x i16>* %A) nounwind {
 
224
;CHECK: vduplaneQ16:
 
225
;CHECK: vdup.16
 
226
        %tmp1 = load <4 x i16>* %A
 
227
        %tmp2 = shufflevector <4 x i16> %tmp1, <4 x i16> undef, <8 x i32> < i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1 >
 
228
        ret <8 x i16> %tmp2
 
229
}
 
230
 
 
231
define <4 x i32> @vduplaneQ32(<2 x i32>* %A) nounwind {
 
232
;CHECK: vduplaneQ32:
 
233
;CHECK: vdup.32
 
234
        %tmp1 = load <2 x i32>* %A
 
235
        %tmp2 = shufflevector <2 x i32> %tmp1, <2 x i32> undef, <4 x i32> < i32 1, i32 1, i32 1, i32 1 >
 
236
        ret <4 x i32> %tmp2
 
237
}
 
238
 
 
239
define <4 x float> @vduplaneQfloat(<2 x float>* %A) nounwind {
 
240
;CHECK: vduplaneQfloat:
 
241
;CHECK: vdup.32
 
242
        %tmp1 = load <2 x float>* %A
 
243
        %tmp2 = shufflevector <2 x float> %tmp1, <2 x float> undef, <4 x i32> < i32 1, i32 1, i32 1, i32 1 >
 
244
        ret <4 x float> %tmp2
 
245
}
 
246
 
 
247
define arm_apcscc <2 x i64> @foo(<2 x i64> %arg0_int64x1_t) nounwind readnone {
 
248
entry:
 
249
  %0 = shufflevector <2 x i64> %arg0_int64x1_t, <2 x i64> undef, <2 x i32> <i32 1, i32 1>
 
250
  ret <2 x i64> %0
 
251
}
 
252
 
 
253
define arm_apcscc <2 x i64> @bar(<2 x i64> %arg0_int64x1_t) nounwind readnone {
 
254
entry:
 
255
  %0 = shufflevector <2 x i64> %arg0_int64x1_t, <2 x i64> undef, <2 x i32> <i32 0, i32 0>
 
256
  ret <2 x i64> %0
 
257
}
 
258
 
 
259
define arm_apcscc <2 x double> @baz(<2 x double> %arg0_int64x1_t) nounwind readnone {
 
260
entry:
 
261
  %0 = shufflevector <2 x double> %arg0_int64x1_t, <2 x double> undef, <2 x i32> <i32 1, i32 1>
 
262
  ret <2 x double> %0
 
263
}
 
264
 
 
265
define arm_apcscc <2 x double> @qux(<2 x double> %arg0_int64x1_t) nounwind readnone {
 
266
entry:
 
267
  %0 = shufflevector <2 x double> %arg0_int64x1_t, <2 x double> undef, <2 x i32> <i32 0, i32 0>
 
268
  ret <2 x double> %0
 
269
}