~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/ARM/vzip.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> @vzipi8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
 
4
;CHECK: vzipi8:
 
5
;CHECK: vzip.8
 
6
;CHECK-NEXT: vadd.i8
 
7
        %tmp1 = load <8 x i8>* %A
 
8
        %tmp2 = load <8 x i8>* %B
 
9
        %tmp3 = shufflevector <8 x i8> %tmp1, <8 x i8> %tmp2, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11>
 
10
        %tmp4 = shufflevector <8 x i8> %tmp1, <8 x i8> %tmp2, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
 
11
        %tmp5 = add <8 x i8> %tmp3, %tmp4
 
12
        ret <8 x i8> %tmp5
 
13
}
 
14
 
 
15
define <4 x i16> @vzipi16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
 
16
;CHECK: vzipi16:
 
17
;CHECK: vzip.16
 
18
;CHECK-NEXT: vadd.i16
 
19
        %tmp1 = load <4 x i16>* %A
 
20
        %tmp2 = load <4 x i16>* %B
 
21
        %tmp3 = shufflevector <4 x i16> %tmp1, <4 x i16> %tmp2, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
 
22
        %tmp4 = shufflevector <4 x i16> %tmp1, <4 x i16> %tmp2, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
 
23
        %tmp5 = add <4 x i16> %tmp3, %tmp4
 
24
        ret <4 x i16> %tmp5
 
25
}
 
26
 
 
27
; VZIP.32 is equivalent to VTRN.32 for 64-bit vectors.
 
28
 
 
29
define <16 x i8> @vzipQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind {
 
30
;CHECK: vzipQi8:
 
31
;CHECK: vzip.8
 
32
;CHECK-NEXT: vadd.i8
 
33
        %tmp1 = load <16 x i8>* %A
 
34
        %tmp2 = load <16 x i8>* %B
 
35
        %tmp3 = shufflevector <16 x i8> %tmp1, <16 x i8> %tmp2, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23>
 
36
        %tmp4 = shufflevector <16 x i8> %tmp1, <16 x i8> %tmp2, <16 x i32> <i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
 
37
        %tmp5 = add <16 x i8> %tmp3, %tmp4
 
38
        ret <16 x i8> %tmp5
 
39
}
 
40
 
 
41
define <8 x i16> @vzipQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind {
 
42
;CHECK: vzipQi16:
 
43
;CHECK: vzip.16
 
44
;CHECK-NEXT: vadd.i16
 
45
        %tmp1 = load <8 x i16>* %A
 
46
        %tmp2 = load <8 x i16>* %B
 
47
        %tmp3 = shufflevector <8 x i16> %tmp1, <8 x i16> %tmp2, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11>
 
48
        %tmp4 = shufflevector <8 x i16> %tmp1, <8 x i16> %tmp2, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
 
49
        %tmp5 = add <8 x i16> %tmp3, %tmp4
 
50
        ret <8 x i16> %tmp5
 
51
}
 
52
 
 
53
define <4 x i32> @vzipQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind {
 
54
;CHECK: vzipQi32:
 
55
;CHECK: vzip.32
 
56
;CHECK-NEXT: vadd.i32
 
57
        %tmp1 = load <4 x i32>* %A
 
58
        %tmp2 = load <4 x i32>* %B
 
59
        %tmp3 = shufflevector <4 x i32> %tmp1, <4 x i32> %tmp2, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
 
60
        %tmp4 = shufflevector <4 x i32> %tmp1, <4 x i32> %tmp2, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
 
61
        %tmp5 = add <4 x i32> %tmp3, %tmp4
 
62
        ret <4 x i32> %tmp5
 
63
}
 
64
 
 
65
define <4 x float> @vzipQf(<4 x float>* %A, <4 x float>* %B) nounwind {
 
66
;CHECK: vzipQf:
 
67
;CHECK: vzip.32
 
68
;CHECK-NEXT: vadd.f32
 
69
        %tmp1 = load <4 x float>* %A
 
70
        %tmp2 = load <4 x float>* %B
 
71
        %tmp3 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
 
72
        %tmp4 = shufflevector <4 x float> %tmp1, <4 x float> %tmp2, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
 
73
        %tmp5 = add <4 x float> %tmp3, %tmp4
 
74
        ret <4 x float> %tmp5
 
75
}