~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/ARM/vbits.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_andi8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
 
4
;CHECK: v_andi8:
 
5
;CHECK: vand
 
6
        %tmp1 = load <8 x i8>* %A
 
7
        %tmp2 = load <8 x i8>* %B
 
8
        %tmp3 = and <8 x i8> %tmp1, %tmp2
 
9
        ret <8 x i8> %tmp3
 
10
}
 
11
 
 
12
define <4 x i16> @v_andi16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
 
13
;CHECK: v_andi16:
 
14
;CHECK: vand
 
15
        %tmp1 = load <4 x i16>* %A
 
16
        %tmp2 = load <4 x i16>* %B
 
17
        %tmp3 = and <4 x i16> %tmp1, %tmp2
 
18
        ret <4 x i16> %tmp3
 
19
}
 
20
 
 
21
define <2 x i32> @v_andi32(<2 x i32>* %A, <2 x i32>* %B) nounwind {
 
22
;CHECK: v_andi32:
 
23
;CHECK: vand
 
24
        %tmp1 = load <2 x i32>* %A
 
25
        %tmp2 = load <2 x i32>* %B
 
26
        %tmp3 = and <2 x i32> %tmp1, %tmp2
 
27
        ret <2 x i32> %tmp3
 
28
}
 
29
 
 
30
define <1 x i64> @v_andi64(<1 x i64>* %A, <1 x i64>* %B) nounwind {
 
31
;CHECK: v_andi64:
 
32
;CHECK: vand
 
33
        %tmp1 = load <1 x i64>* %A
 
34
        %tmp2 = load <1 x i64>* %B
 
35
        %tmp3 = and <1 x i64> %tmp1, %tmp2
 
36
        ret <1 x i64> %tmp3
 
37
}
 
38
 
 
39
define <16 x i8> @v_andQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind {
 
40
;CHECK: v_andQi8:
 
41
;CHECK: vand
 
42
        %tmp1 = load <16 x i8>* %A
 
43
        %tmp2 = load <16 x i8>* %B
 
44
        %tmp3 = and <16 x i8> %tmp1, %tmp2
 
45
        ret <16 x i8> %tmp3
 
46
}
 
47
 
 
48
define <8 x i16> @v_andQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind {
 
49
;CHECK: v_andQi16:
 
50
;CHECK: vand
 
51
        %tmp1 = load <8 x i16>* %A
 
52
        %tmp2 = load <8 x i16>* %B
 
53
        %tmp3 = and <8 x i16> %tmp1, %tmp2
 
54
        ret <8 x i16> %tmp3
 
55
}
 
56
 
 
57
define <4 x i32> @v_andQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind {
 
58
;CHECK: v_andQi32:
 
59
;CHECK: vand
 
60
        %tmp1 = load <4 x i32>* %A
 
61
        %tmp2 = load <4 x i32>* %B
 
62
        %tmp3 = and <4 x i32> %tmp1, %tmp2
 
63
        ret <4 x i32> %tmp3
 
64
}
 
65
 
 
66
define <2 x i64> @v_andQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind {
 
67
;CHECK: v_andQi64:
 
68
;CHECK: vand
 
69
        %tmp1 = load <2 x i64>* %A
 
70
        %tmp2 = load <2 x i64>* %B
 
71
        %tmp3 = and <2 x i64> %tmp1, %tmp2
 
72
        ret <2 x i64> %tmp3
 
73
}
 
74
 
 
75
define <8 x i8> @v_bici8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
 
76
;CHECK: v_bici8:
 
77
;CHECK: vbic
 
78
        %tmp1 = load <8 x i8>* %A
 
79
        %tmp2 = load <8 x i8>* %B
 
80
        %tmp3 = xor <8 x i8> %tmp2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
 
81
        %tmp4 = and <8 x i8> %tmp1, %tmp3
 
82
        ret <8 x i8> %tmp4
 
83
}
 
84
 
 
85
define <4 x i16> @v_bici16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
 
86
;CHECK: v_bici16:
 
87
;CHECK: vbic
 
88
        %tmp1 = load <4 x i16>* %A
 
89
        %tmp2 = load <4 x i16>* %B
 
90
        %tmp3 = xor <4 x i16> %tmp2, < i16 -1, i16 -1, i16 -1, i16 -1 >
 
91
        %tmp4 = and <4 x i16> %tmp1, %tmp3
 
92
        ret <4 x i16> %tmp4
 
93
}
 
94
 
 
95
define <2 x i32> @v_bici32(<2 x i32>* %A, <2 x i32>* %B) nounwind {
 
96
;CHECK: v_bici32:
 
97
;CHECK: vbic
 
98
        %tmp1 = load <2 x i32>* %A
 
99
        %tmp2 = load <2 x i32>* %B
 
100
        %tmp3 = xor <2 x i32> %tmp2, < i32 -1, i32 -1 >
 
101
        %tmp4 = and <2 x i32> %tmp1, %tmp3
 
102
        ret <2 x i32> %tmp4
 
103
}
 
104
 
 
105
define <1 x i64> @v_bici64(<1 x i64>* %A, <1 x i64>* %B) nounwind {
 
106
;CHECK: v_bici64:
 
107
;CHECK: vbic
 
108
        %tmp1 = load <1 x i64>* %A
 
109
        %tmp2 = load <1 x i64>* %B
 
110
        %tmp3 = xor <1 x i64> %tmp2, < i64 -1 >
 
111
        %tmp4 = and <1 x i64> %tmp1, %tmp3
 
112
        ret <1 x i64> %tmp4
 
113
}
 
114
 
 
115
define <16 x i8> @v_bicQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind {
 
116
;CHECK: v_bicQi8:
 
117
;CHECK: vbic
 
118
        %tmp1 = load <16 x i8>* %A
 
119
        %tmp2 = load <16 x i8>* %B
 
120
        %tmp3 = xor <16 x i8> %tmp2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
 
121
        %tmp4 = and <16 x i8> %tmp1, %tmp3
 
122
        ret <16 x i8> %tmp4
 
123
}
 
124
 
 
125
define <8 x i16> @v_bicQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind {
 
126
;CHECK: v_bicQi16:
 
127
;CHECK: vbic
 
128
        %tmp1 = load <8 x i16>* %A
 
129
        %tmp2 = load <8 x i16>* %B
 
130
        %tmp3 = xor <8 x i16> %tmp2, < i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1 >
 
131
        %tmp4 = and <8 x i16> %tmp1, %tmp3
 
132
        ret <8 x i16> %tmp4
 
133
}
 
134
 
 
135
define <4 x i32> @v_bicQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind {
 
136
;CHECK: v_bicQi32:
 
137
;CHECK: vbic
 
138
        %tmp1 = load <4 x i32>* %A
 
139
        %tmp2 = load <4 x i32>* %B
 
140
        %tmp3 = xor <4 x i32> %tmp2, < i32 -1, i32 -1, i32 -1, i32 -1 >
 
141
        %tmp4 = and <4 x i32> %tmp1, %tmp3
 
142
        ret <4 x i32> %tmp4
 
143
}
 
144
 
 
145
define <2 x i64> @v_bicQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind {
 
146
;CHECK: v_bicQi64:
 
147
;CHECK: vbic
 
148
        %tmp1 = load <2 x i64>* %A
 
149
        %tmp2 = load <2 x i64>* %B
 
150
        %tmp3 = xor <2 x i64> %tmp2, < i64 -1, i64 -1 >
 
151
        %tmp4 = and <2 x i64> %tmp1, %tmp3
 
152
        ret <2 x i64> %tmp4
 
153
}
 
154
 
 
155
define <8 x i8> @v_eori8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
 
156
;CHECK: v_eori8:
 
157
;CHECK: veor
 
158
        %tmp1 = load <8 x i8>* %A
 
159
        %tmp2 = load <8 x i8>* %B
 
160
        %tmp3 = xor <8 x i8> %tmp1, %tmp2
 
161
        ret <8 x i8> %tmp3
 
162
}
 
163
 
 
164
define <4 x i16> @v_eori16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
 
165
;CHECK: v_eori16:
 
166
;CHECK: veor
 
167
        %tmp1 = load <4 x i16>* %A
 
168
        %tmp2 = load <4 x i16>* %B
 
169
        %tmp3 = xor <4 x i16> %tmp1, %tmp2
 
170
        ret <4 x i16> %tmp3
 
171
}
 
172
 
 
173
define <2 x i32> @v_eori32(<2 x i32>* %A, <2 x i32>* %B) nounwind {
 
174
;CHECK: v_eori32:
 
175
;CHECK: veor
 
176
        %tmp1 = load <2 x i32>* %A
 
177
        %tmp2 = load <2 x i32>* %B
 
178
        %tmp3 = xor <2 x i32> %tmp1, %tmp2
 
179
        ret <2 x i32> %tmp3
 
180
}
 
181
 
 
182
define <1 x i64> @v_eori64(<1 x i64>* %A, <1 x i64>* %B) nounwind {
 
183
;CHECK: v_eori64:
 
184
;CHECK: veor
 
185
        %tmp1 = load <1 x i64>* %A
 
186
        %tmp2 = load <1 x i64>* %B
 
187
        %tmp3 = xor <1 x i64> %tmp1, %tmp2
 
188
        ret <1 x i64> %tmp3
 
189
}
 
190
 
 
191
define <16 x i8> @v_eorQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind {
 
192
;CHECK: v_eorQi8:
 
193
;CHECK: veor
 
194
        %tmp1 = load <16 x i8>* %A
 
195
        %tmp2 = load <16 x i8>* %B
 
196
        %tmp3 = xor <16 x i8> %tmp1, %tmp2
 
197
        ret <16 x i8> %tmp3
 
198
}
 
199
 
 
200
define <8 x i16> @v_eorQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind {
 
201
;CHECK: v_eorQi16:
 
202
;CHECK: veor
 
203
        %tmp1 = load <8 x i16>* %A
 
204
        %tmp2 = load <8 x i16>* %B
 
205
        %tmp3 = xor <8 x i16> %tmp1, %tmp2
 
206
        ret <8 x i16> %tmp3
 
207
}
 
208
 
 
209
define <4 x i32> @v_eorQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind {
 
210
;CHECK: v_eorQi32:
 
211
;CHECK: veor
 
212
        %tmp1 = load <4 x i32>* %A
 
213
        %tmp2 = load <4 x i32>* %B
 
214
        %tmp3 = xor <4 x i32> %tmp1, %tmp2
 
215
        ret <4 x i32> %tmp3
 
216
}
 
217
 
 
218
define <2 x i64> @v_eorQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind {
 
219
;CHECK: v_eorQi64:
 
220
;CHECK: veor
 
221
        %tmp1 = load <2 x i64>* %A
 
222
        %tmp2 = load <2 x i64>* %B
 
223
        %tmp3 = xor <2 x i64> %tmp1, %tmp2
 
224
        ret <2 x i64> %tmp3
 
225
}
 
226
 
 
227
define <8 x i8> @v_mvni8(<8 x i8>* %A) nounwind {
 
228
;CHECK: v_mvni8:
 
229
;CHECK: vmvn
 
230
        %tmp1 = load <8 x i8>* %A
 
231
        %tmp2 = xor <8 x i8> %tmp1, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
 
232
        ret <8 x i8> %tmp2
 
233
}
 
234
 
 
235
define <4 x i16> @v_mvni16(<4 x i16>* %A) nounwind {
 
236
;CHECK: v_mvni16:
 
237
;CHECK: vmvn
 
238
        %tmp1 = load <4 x i16>* %A
 
239
        %tmp2 = xor <4 x i16> %tmp1, < i16 -1, i16 -1, i16 -1, i16 -1 >
 
240
        ret <4 x i16> %tmp2
 
241
}
 
242
 
 
243
define <2 x i32> @v_mvni32(<2 x i32>* %A) nounwind {
 
244
;CHECK: v_mvni32:
 
245
;CHECK: vmvn
 
246
        %tmp1 = load <2 x i32>* %A
 
247
        %tmp2 = xor <2 x i32> %tmp1, < i32 -1, i32 -1 >
 
248
        ret <2 x i32> %tmp2
 
249
}
 
250
 
 
251
define <1 x i64> @v_mvni64(<1 x i64>* %A) nounwind {
 
252
;CHECK: v_mvni64:
 
253
;CHECK: vmvn
 
254
        %tmp1 = load <1 x i64>* %A
 
255
        %tmp2 = xor <1 x i64> %tmp1, < i64 -1 >
 
256
        ret <1 x i64> %tmp2
 
257
}
 
258
 
 
259
define <16 x i8> @v_mvnQi8(<16 x i8>* %A) nounwind {
 
260
;CHECK: v_mvnQi8:
 
261
;CHECK: vmvn
 
262
        %tmp1 = load <16 x i8>* %A
 
263
        %tmp2 = xor <16 x i8> %tmp1, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
 
264
        ret <16 x i8> %tmp2
 
265
}
 
266
 
 
267
define <8 x i16> @v_mvnQi16(<8 x i16>* %A) nounwind {
 
268
;CHECK: v_mvnQi16:
 
269
;CHECK: vmvn
 
270
        %tmp1 = load <8 x i16>* %A
 
271
        %tmp2 = xor <8 x i16> %tmp1, < i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1 >
 
272
        ret <8 x i16> %tmp2
 
273
}
 
274
 
 
275
define <4 x i32> @v_mvnQi32(<4 x i32>* %A) nounwind {
 
276
;CHECK: v_mvnQi32:
 
277
;CHECK: vmvn
 
278
        %tmp1 = load <4 x i32>* %A
 
279
        %tmp2 = xor <4 x i32> %tmp1, < i32 -1, i32 -1, i32 -1, i32 -1 >
 
280
        ret <4 x i32> %tmp2
 
281
}
 
282
 
 
283
define <2 x i64> @v_mvnQi64(<2 x i64>* %A) nounwind {
 
284
;CHECK: v_mvnQi64:
 
285
;CHECK: vmvn
 
286
        %tmp1 = load <2 x i64>* %A
 
287
        %tmp2 = xor <2 x i64> %tmp1, < i64 -1, i64 -1 >
 
288
        ret <2 x i64> %tmp2
 
289
}
 
290
 
 
291
define <8 x i8> @v_orri8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
 
292
;CHECK: v_orri8:
 
293
;CHECK: vorr
 
294
        %tmp1 = load <8 x i8>* %A
 
295
        %tmp2 = load <8 x i8>* %B
 
296
        %tmp3 = or <8 x i8> %tmp1, %tmp2
 
297
        ret <8 x i8> %tmp3
 
298
}
 
299
 
 
300
define <4 x i16> @v_orri16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
 
301
;CHECK: v_orri16:
 
302
;CHECK: vorr
 
303
        %tmp1 = load <4 x i16>* %A
 
304
        %tmp2 = load <4 x i16>* %B
 
305
        %tmp3 = or <4 x i16> %tmp1, %tmp2
 
306
        ret <4 x i16> %tmp3
 
307
}
 
308
 
 
309
define <2 x i32> @v_orri32(<2 x i32>* %A, <2 x i32>* %B) nounwind {
 
310
;CHECK: v_orri32:
 
311
;CHECK: vorr
 
312
        %tmp1 = load <2 x i32>* %A
 
313
        %tmp2 = load <2 x i32>* %B
 
314
        %tmp3 = or <2 x i32> %tmp1, %tmp2
 
315
        ret <2 x i32> %tmp3
 
316
}
 
317
 
 
318
define <1 x i64> @v_orri64(<1 x i64>* %A, <1 x i64>* %B) nounwind {
 
319
;CHECK: v_orri64:
 
320
;CHECK: vorr
 
321
        %tmp1 = load <1 x i64>* %A
 
322
        %tmp2 = load <1 x i64>* %B
 
323
        %tmp3 = or <1 x i64> %tmp1, %tmp2
 
324
        ret <1 x i64> %tmp3
 
325
}
 
326
 
 
327
define <16 x i8> @v_orrQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind {
 
328
;CHECK: v_orrQi8:
 
329
;CHECK: vorr
 
330
        %tmp1 = load <16 x i8>* %A
 
331
        %tmp2 = load <16 x i8>* %B
 
332
        %tmp3 = or <16 x i8> %tmp1, %tmp2
 
333
        ret <16 x i8> %tmp3
 
334
}
 
335
 
 
336
define <8 x i16> @v_orrQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind {
 
337
;CHECK: v_orrQi16:
 
338
;CHECK: vorr
 
339
        %tmp1 = load <8 x i16>* %A
 
340
        %tmp2 = load <8 x i16>* %B
 
341
        %tmp3 = or <8 x i16> %tmp1, %tmp2
 
342
        ret <8 x i16> %tmp3
 
343
}
 
344
 
 
345
define <4 x i32> @v_orrQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind {
 
346
;CHECK: v_orrQi32:
 
347
;CHECK: vorr
 
348
        %tmp1 = load <4 x i32>* %A
 
349
        %tmp2 = load <4 x i32>* %B
 
350
        %tmp3 = or <4 x i32> %tmp1, %tmp2
 
351
        ret <4 x i32> %tmp3
 
352
}
 
353
 
 
354
define <2 x i64> @v_orrQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind {
 
355
;CHECK: v_orrQi64:
 
356
;CHECK: vorr
 
357
        %tmp1 = load <2 x i64>* %A
 
358
        %tmp2 = load <2 x i64>* %B
 
359
        %tmp3 = or <2 x i64> %tmp1, %tmp2
 
360
        ret <2 x i64> %tmp3
 
361
}
 
362
 
 
363
define <8 x i8> @v_orni8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
 
364
;CHECK: v_orni8:
 
365
;CHECK: vorn
 
366
        %tmp1 = load <8 x i8>* %A
 
367
        %tmp2 = load <8 x i8>* %B
 
368
        %tmp3 = xor <8 x i8> %tmp2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
 
369
        %tmp4 = or <8 x i8> %tmp1, %tmp3
 
370
        ret <8 x i8> %tmp4
 
371
}
 
372
 
 
373
define <4 x i16> @v_orni16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
 
374
;CHECK: v_orni16:
 
375
;CHECK: vorn
 
376
        %tmp1 = load <4 x i16>* %A
 
377
        %tmp2 = load <4 x i16>* %B
 
378
        %tmp3 = xor <4 x i16> %tmp2, < i16 -1, i16 -1, i16 -1, i16 -1 >
 
379
        %tmp4 = or <4 x i16> %tmp1, %tmp3
 
380
        ret <4 x i16> %tmp4
 
381
}
 
382
 
 
383
define <2 x i32> @v_orni32(<2 x i32>* %A, <2 x i32>* %B) nounwind {
 
384
;CHECK: v_orni32:
 
385
;CHECK: vorn
 
386
        %tmp1 = load <2 x i32>* %A
 
387
        %tmp2 = load <2 x i32>* %B
 
388
        %tmp3 = xor <2 x i32> %tmp2, < i32 -1, i32 -1 >
 
389
        %tmp4 = or <2 x i32> %tmp1, %tmp3
 
390
        ret <2 x i32> %tmp4
 
391
}
 
392
 
 
393
define <1 x i64> @v_orni64(<1 x i64>* %A, <1 x i64>* %B) nounwind {
 
394
;CHECK: v_orni64:
 
395
;CHECK: vorn
 
396
        %tmp1 = load <1 x i64>* %A
 
397
        %tmp2 = load <1 x i64>* %B
 
398
        %tmp3 = xor <1 x i64> %tmp2, < i64 -1 >
 
399
        %tmp4 = or <1 x i64> %tmp1, %tmp3
 
400
        ret <1 x i64> %tmp4
 
401
}
 
402
 
 
403
define <16 x i8> @v_ornQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind {
 
404
;CHECK: v_ornQi8:
 
405
;CHECK: vorn
 
406
        %tmp1 = load <16 x i8>* %A
 
407
        %tmp2 = load <16 x i8>* %B
 
408
        %tmp3 = xor <16 x i8> %tmp2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 >
 
409
        %tmp4 = or <16 x i8> %tmp1, %tmp3
 
410
        ret <16 x i8> %tmp4
 
411
}
 
412
 
 
413
define <8 x i16> @v_ornQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind {
 
414
;CHECK: v_ornQi16:
 
415
;CHECK: vorn
 
416
        %tmp1 = load <8 x i16>* %A
 
417
        %tmp2 = load <8 x i16>* %B
 
418
        %tmp3 = xor <8 x i16> %tmp2, < i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1 >
 
419
        %tmp4 = or <8 x i16> %tmp1, %tmp3
 
420
        ret <8 x i16> %tmp4
 
421
}
 
422
 
 
423
define <4 x i32> @v_ornQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind {
 
424
;CHECK: v_ornQi32:
 
425
;CHECK: vorn
 
426
        %tmp1 = load <4 x i32>* %A
 
427
        %tmp2 = load <4 x i32>* %B
 
428
        %tmp3 = xor <4 x i32> %tmp2, < i32 -1, i32 -1, i32 -1, i32 -1 >
 
429
        %tmp4 = or <4 x i32> %tmp1, %tmp3
 
430
        ret <4 x i32> %tmp4
 
431
}
 
432
 
 
433
define <2 x i64> @v_ornQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind {
 
434
;CHECK: v_ornQi64:
 
435
;CHECK: vorn
 
436
        %tmp1 = load <2 x i64>* %A
 
437
        %tmp2 = load <2 x i64>* %B
 
438
        %tmp3 = xor <2 x i64> %tmp2, < i64 -1, i64 -1 >
 
439
        %tmp4 = or <2 x i64> %tmp1, %tmp3
 
440
        ret <2 x i64> %tmp4
 
441
}
 
442
 
 
443
define <8 x i8> @vtsti8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
 
444
;CHECK: vtsti8:
 
445
;CHECK: vtst.8
 
446
        %tmp1 = load <8 x i8>* %A
 
447
        %tmp2 = load <8 x i8>* %B
 
448
        %tmp3 = and <8 x i8> %tmp1, %tmp2
 
449
        %tmp4 = icmp ne <8 x i8> %tmp3, zeroinitializer
 
450
        %tmp5 = sext <8 x i1> %tmp4 to <8 x i8>
 
451
        ret <8 x i8> %tmp5
 
452
}
 
453
 
 
454
define <4 x i16> @vtsti16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
 
455
;CHECK: vtsti16:
 
456
;CHECK: vtst.16
 
457
        %tmp1 = load <4 x i16>* %A
 
458
        %tmp2 = load <4 x i16>* %B
 
459
        %tmp3 = and <4 x i16> %tmp1, %tmp2
 
460
        %tmp4 = icmp ne <4 x i16> %tmp3, zeroinitializer
 
461
        %tmp5 = sext <4 x i1> %tmp4 to <4 x i16>
 
462
        ret <4 x i16> %tmp5
 
463
}
 
464
 
 
465
define <2 x i32> @vtsti32(<2 x i32>* %A, <2 x i32>* %B) nounwind {
 
466
;CHECK: vtsti32:
 
467
;CHECK: vtst.32
 
468
        %tmp1 = load <2 x i32>* %A
 
469
        %tmp2 = load <2 x i32>* %B
 
470
        %tmp3 = and <2 x i32> %tmp1, %tmp2
 
471
        %tmp4 = icmp ne <2 x i32> %tmp3, zeroinitializer
 
472
        %tmp5 = sext <2 x i1> %tmp4 to <2 x i32>
 
473
        ret <2 x i32> %tmp5
 
474
}
 
475
 
 
476
define <16 x i8> @vtstQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind {
 
477
;CHECK: vtstQi8:
 
478
;CHECK: vtst.8
 
479
        %tmp1 = load <16 x i8>* %A
 
480
        %tmp2 = load <16 x i8>* %B
 
481
        %tmp3 = and <16 x i8> %tmp1, %tmp2
 
482
        %tmp4 = icmp ne <16 x i8> %tmp3, zeroinitializer
 
483
        %tmp5 = sext <16 x i1> %tmp4 to <16 x i8>
 
484
        ret <16 x i8> %tmp5
 
485
}
 
486
 
 
487
define <8 x i16> @vtstQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind {
 
488
;CHECK: vtstQi16:
 
489
;CHECK: vtst.16
 
490
        %tmp1 = load <8 x i16>* %A
 
491
        %tmp2 = load <8 x i16>* %B
 
492
        %tmp3 = and <8 x i16> %tmp1, %tmp2
 
493
        %tmp4 = icmp ne <8 x i16> %tmp3, zeroinitializer
 
494
        %tmp5 = sext <8 x i1> %tmp4 to <8 x i16>
 
495
        ret <8 x i16> %tmp5
 
496
}
 
497
 
 
498
define <4 x i32> @vtstQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind {
 
499
;CHECK: vtstQi32:
 
500
;CHECK: vtst.32
 
501
        %tmp1 = load <4 x i32>* %A
 
502
        %tmp2 = load <4 x i32>* %B
 
503
        %tmp3 = and <4 x i32> %tmp1, %tmp2
 
504
        %tmp4 = icmp ne <4 x i32> %tmp3, zeroinitializer
 
505
        %tmp5 = sext <4 x i1> %tmp4 to <4 x i32>
 
506
        ret <4 x i32> %tmp5
 
507
}