~ubuntu-branches/ubuntu/maverick/clamav/maverick-backports

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/ARM/vld4.ll

  • Committer: Bazaar Package Importer
  • Author(s): Stephen Gran, Stephen Gran, Michael Tautschnig
  • Date: 2010-04-26 21:41:18 UTC
  • mfrom: (2.1.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100426214118-i6lo606wnh7ywfj6
Tags: 0.96+dfsg-4
[ Stephen Gran ]
* Fixed typo in clamav-milter's postinst

[ Michael Tautschnig ]
* Fixed typo in clamav-freshclam's postinst (closes: #579271)
* Debconf translation updates
  - Portuguese (closes: #579068)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s
 
2
 
 
3
%struct.__neon_int8x8x4_t = type { <8 x i8>,  <8 x i8>,  <8 x i8>, <8 x i8> }
 
4
%struct.__neon_int16x4x4_t = type { <4 x i16>, <4 x i16>, <4 x i16>, <4 x i16> }
 
5
%struct.__neon_int32x2x4_t = type { <2 x i32>, <2 x i32>, <2 x i32>, <2 x i32> }
 
6
%struct.__neon_float32x2x4_t = type { <2 x float>, <2 x float>, <2 x float>, <2 x float> }
 
7
%struct.__neon_int64x1x4_t = type { <1 x i64>, <1 x i64>, <1 x i64>, <1 x i64> }
 
8
 
 
9
%struct.__neon_int8x16x4_t = type { <16 x i8>,  <16 x i8>,  <16 x i8>, <16 x i8> }
 
10
%struct.__neon_int16x8x4_t = type { <8 x i16>, <8 x i16>, <8 x i16>, <8 x i16> }
 
11
%struct.__neon_int32x4x4_t = type { <4 x i32>, <4 x i32>, <4 x i32>, <4 x i32> }
 
12
%struct.__neon_float32x4x4_t = type { <4 x float>, <4 x float>, <4 x float>, <4 x float> }
 
13
 
 
14
define <8 x i8> @vld4i8(i8* %A) nounwind {
 
15
;CHECK: vld4i8:
 
16
;CHECK: vld4.8
 
17
        %tmp1 = call %struct.__neon_int8x8x4_t @llvm.arm.neon.vld4.v8i8(i8* %A)
 
18
        %tmp2 = extractvalue %struct.__neon_int8x8x4_t %tmp1, 0
 
19
        %tmp3 = extractvalue %struct.__neon_int8x8x4_t %tmp1, 2
 
20
        %tmp4 = add <8 x i8> %tmp2, %tmp3
 
21
        ret <8 x i8> %tmp4
 
22
}
 
23
 
 
24
define <4 x i16> @vld4i16(i16* %A) nounwind {
 
25
;CHECK: vld4i16:
 
26
;CHECK: vld4.16
 
27
        %tmp1 = call %struct.__neon_int16x4x4_t @llvm.arm.neon.vld4.v4i16(i16* %A)
 
28
        %tmp2 = extractvalue %struct.__neon_int16x4x4_t %tmp1, 0
 
29
        %tmp3 = extractvalue %struct.__neon_int16x4x4_t %tmp1, 2
 
30
        %tmp4 = add <4 x i16> %tmp2, %tmp3
 
31
        ret <4 x i16> %tmp4
 
32
}
 
33
 
 
34
define <2 x i32> @vld4i32(i32* %A) nounwind {
 
35
;CHECK: vld4i32:
 
36
;CHECK: vld4.32
 
37
        %tmp1 = call %struct.__neon_int32x2x4_t @llvm.arm.neon.vld4.v2i32(i32* %A)
 
38
        %tmp2 = extractvalue %struct.__neon_int32x2x4_t %tmp1, 0
 
39
        %tmp3 = extractvalue %struct.__neon_int32x2x4_t %tmp1, 2
 
40
        %tmp4 = add <2 x i32> %tmp2, %tmp3
 
41
        ret <2 x i32> %tmp4
 
42
}
 
43
 
 
44
define <2 x float> @vld4f(float* %A) nounwind {
 
45
;CHECK: vld4f:
 
46
;CHECK: vld4.32
 
47
        %tmp1 = call %struct.__neon_float32x2x4_t @llvm.arm.neon.vld4.v2f32(float* %A)
 
48
        %tmp2 = extractvalue %struct.__neon_float32x2x4_t %tmp1, 0
 
49
        %tmp3 = extractvalue %struct.__neon_float32x2x4_t %tmp1, 2
 
50
        %tmp4 = add <2 x float> %tmp2, %tmp3
 
51
        ret <2 x float> %tmp4
 
52
}
 
53
 
 
54
define <1 x i64> @vld4i64(i64* %A) nounwind {
 
55
;CHECK: vld4i64:
 
56
;CHECK: vld1.64
 
57
        %tmp1 = call %struct.__neon_int64x1x4_t @llvm.arm.neon.vld4.v1i64(i64* %A)
 
58
        %tmp2 = extractvalue %struct.__neon_int64x1x4_t %tmp1, 0
 
59
        %tmp3 = extractvalue %struct.__neon_int64x1x4_t %tmp1, 2
 
60
        %tmp4 = add <1 x i64> %tmp2, %tmp3
 
61
        ret <1 x i64> %tmp4
 
62
}
 
63
 
 
64
define <16 x i8> @vld4Qi8(i8* %A) nounwind {
 
65
;CHECK: vld4Qi8:
 
66
;CHECK: vld4.8
 
67
;CHECK: vld4.8
 
68
        %tmp1 = call %struct.__neon_int8x16x4_t @llvm.arm.neon.vld4.v16i8(i8* %A)
 
69
        %tmp2 = extractvalue %struct.__neon_int8x16x4_t %tmp1, 0
 
70
        %tmp3 = extractvalue %struct.__neon_int8x16x4_t %tmp1, 2
 
71
        %tmp4 = add <16 x i8> %tmp2, %tmp3
 
72
        ret <16 x i8> %tmp4
 
73
}
 
74
 
 
75
define <8 x i16> @vld4Qi16(i16* %A) nounwind {
 
76
;CHECK: vld4Qi16:
 
77
;CHECK: vld4.16
 
78
;CHECK: vld4.16
 
79
        %tmp1 = call %struct.__neon_int16x8x4_t @llvm.arm.neon.vld4.v8i16(i16* %A)
 
80
        %tmp2 = extractvalue %struct.__neon_int16x8x4_t %tmp1, 0
 
81
        %tmp3 = extractvalue %struct.__neon_int16x8x4_t %tmp1, 2
 
82
        %tmp4 = add <8 x i16> %tmp2, %tmp3
 
83
        ret <8 x i16> %tmp4
 
84
}
 
85
 
 
86
define <4 x i32> @vld4Qi32(i32* %A) nounwind {
 
87
;CHECK: vld4Qi32:
 
88
;CHECK: vld4.32
 
89
;CHECK: vld4.32
 
90
        %tmp1 = call %struct.__neon_int32x4x4_t @llvm.arm.neon.vld4.v4i32(i32* %A)
 
91
        %tmp2 = extractvalue %struct.__neon_int32x4x4_t %tmp1, 0
 
92
        %tmp3 = extractvalue %struct.__neon_int32x4x4_t %tmp1, 2
 
93
        %tmp4 = add <4 x i32> %tmp2, %tmp3
 
94
        ret <4 x i32> %tmp4
 
95
}
 
96
 
 
97
define <4 x float> @vld4Qf(float* %A) nounwind {
 
98
;CHECK: vld4Qf:
 
99
;CHECK: vld4.32
 
100
;CHECK: vld4.32
 
101
        %tmp1 = call %struct.__neon_float32x4x4_t @llvm.arm.neon.vld4.v4f32(float* %A)
 
102
        %tmp2 = extractvalue %struct.__neon_float32x4x4_t %tmp1, 0
 
103
        %tmp3 = extractvalue %struct.__neon_float32x4x4_t %tmp1, 2
 
104
        %tmp4 = add <4 x float> %tmp2, %tmp3
 
105
        ret <4 x float> %tmp4
 
106
}
 
107
 
 
108
declare %struct.__neon_int8x8x4_t @llvm.arm.neon.vld4.v8i8(i8*) nounwind readonly
 
109
declare %struct.__neon_int16x4x4_t @llvm.arm.neon.vld4.v4i16(i8*) nounwind readonly
 
110
declare %struct.__neon_int32x2x4_t @llvm.arm.neon.vld4.v2i32(i8*) nounwind readonly
 
111
declare %struct.__neon_float32x2x4_t @llvm.arm.neon.vld4.v2f32(i8*) nounwind readonly
 
112
declare %struct.__neon_int64x1x4_t @llvm.arm.neon.vld4.v1i64(i8*) nounwind readonly
 
113
 
 
114
declare %struct.__neon_int8x16x4_t @llvm.arm.neon.vld4.v16i8(i8*) nounwind readonly
 
115
declare %struct.__neon_int16x8x4_t @llvm.arm.neon.vld4.v8i16(i8*) nounwind readonly
 
116
declare %struct.__neon_int32x4x4_t @llvm.arm.neon.vld4.v4i32(i8*) nounwind readonly
 
117
declare %struct.__neon_float32x4x4_t @llvm.arm.neon.vld4.v4f32(i8*) nounwind readonly