~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/MC/ARM/neon-add-encoding.s

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
 
2
 
 
3
 
 
4
@ CHECK: vadd.i8        d16, d17, d16           @ encoding: [0xa0,0x08,0x41,0xf2]
 
5
        vadd.i8 d16, d17, d16
 
6
@ CHECK: vadd.i16       d16, d17, d16   @ encoding: [0xa0,0x08,0x51,0xf2]
 
7
        vadd.i16        d16, d17, d16
 
8
@ CHECK: vadd.i64       d16, d17, d16   @ encoding: [0xa0,0x08,0x71,0xf2]
 
9
        vadd.i64        d16, d17, d16
 
10
@ CHECK: vadd.i32       d16, d17, d16   @ encoding: [0xa0,0x08,0x61,0xf2]
 
11
        vadd.i32        d16, d17, d16
 
12
@ CHECK: vadd.f32       d16, d16, d17   @ encoding: [0xa1,0x0d,0x40,0xf2]
 
13
        vadd.f32        d16, d16, d17
 
14
@ CHECK: vadd.f32       q8, q8, q9      @ encoding: [0xe2,0x0d,0x40,0xf2]
 
15
        vadd.f32        q8, q8, q9
 
16
 
 
17
@ CHECK: vaddl.s8       q8, d17, d16    @ encoding: [0xa0,0x00,0xc1,0xf2]
 
18
        vaddl.s8        q8, d17, d16
 
19
@ CHECK: vaddl.s16      q8, d17, d16    @ encoding: [0xa0,0x00,0xd1,0xf2]
 
20
        vaddl.s16       q8, d17, d16
 
21
@ CHECK: vaddl.s32      q8, d17, d16    @ encoding: [0xa0,0x00,0xe1,0xf2]
 
22
        vaddl.s32       q8, d17, d16
 
23
@ CHECK: vaddl.u8       q8, d17, d16    @ encoding: [0xa0,0x00,0xc1,0xf3]
 
24
        vaddl.u8        q8, d17, d16
 
25
@ CHECK: vaddl.u16      q8, d17, d16    @ encoding: [0xa0,0x00,0xd1,0xf3]
 
26
        vaddl.u16       q8, d17, d16
 
27
@ CHECK: vaddl.u32      q8, d17, d16    @ encoding: [0xa0,0x00,0xe1,0xf3]
 
28
        vaddl.u32       q8, d17, d16
 
29
 
 
30
@ CHECK: vaddw.s8       q8, q8, d18     @ encoding: [0xa2,0x01,0xc0,0xf2]
 
31
        vaddw.s8        q8, q8, d18
 
32
@ CHECK: vaddw.s16      q8, q8, d18     @ encoding: [0xa2,0x01,0xd0,0xf2]
 
33
        vaddw.s16       q8, q8, d18
 
34
@ CHECK: vaddw.s32      q8, q8, d18     @ encoding: [0xa2,0x01,0xe0,0xf2]
 
35
        vaddw.s32       q8, q8, d18
 
36
@ CHECK: vaddw.u8       q8, q8, d18     @ encoding: [0xa2,0x01,0xc0,0xf3]
 
37
        vaddw.u8        q8, q8, d18
 
38
@ CHECK: vaddw.u16      q8, q8, d18     @ encoding: [0xa2,0x01,0xd0,0xf3]
 
39
        vaddw.u16       q8, q8, d18
 
40
@ CHECK: vaddw.u32      q8, q8, d18     @ encoding: [0xa2,0x01,0xe0,0xf3]
 
41
        vaddw.u32       q8, q8, d18
 
42
 
 
43
@ CHECK: vhadd.s8       d16, d16, d17   @ encoding: [0xa1,0x00,0x40,0xf2]
 
44
        vhadd.s8        d16, d16, d17
 
45
@ CHECK: vhadd.s16      d16, d16, d17   @ encoding: [0xa1,0x00,0x50,0xf2]
 
46
        vhadd.s16       d16, d16, d17
 
47
@ CHECK: vhadd.s32      d16, d16, d17   @ encoding: [0xa1,0x00,0x60,0xf2]
 
48
        vhadd.s32       d16, d16, d17
 
49
@ CHECK: vhadd.u8       d16, d16, d17   @ encoding: [0xa1,0x00,0x40,0xf3]
 
50
        vhadd.u8        d16, d16, d17
 
51
@ CHECK: vhadd.u16      d16, d16, d17   @ encoding: [0xa1,0x00,0x50,0xf3]
 
52
        vhadd.u16       d16, d16, d17
 
53
@ CHECK: vhadd.u32      d16, d16, d17   @ encoding: [0xa1,0x00,0x60,0xf3]
 
54
        vhadd.u32       d16, d16, d17
 
55
@ CHECK: vhadd.s8       q8, q8, q9      @ encoding: [0xe2,0x00,0x40,0xf2]
 
56
        vhadd.s8        q8, q8, q9
 
57
@ CHECK: vhadd.s16      q8, q8, q9      @ encoding: [0xe2,0x00,0x50,0xf2]
 
58
        vhadd.s16       q8, q8, q9
 
59
@ CHECK: vhadd.s32      q8, q8, q9      @ encoding: [0xe2,0x00,0x60,0xf2]
 
60
        vhadd.s32       q8, q8, q9
 
61
  @ CHECK: vhadd.u8     q8, q8, q9      @ encoding: [0xe2,0x00,0x40,0xf3]
 
62
        vhadd.u8        q8, q8, q9
 
63
@ CHECK: vhadd.u16      q8, q8, q9      @ encoding: [0xe2,0x00,0x50,0xf3]
 
64
        vhadd.u16       q8, q8, q9
 
65
@ CHECK: vhadd.u32      q8, q8, q9      @ encoding: [0xe2,0x00,0x60,0xf3]
 
66
        vhadd.u32       q8, q8, q9
 
67
 
 
68
 
 
69
        vhadd.s8        d11, d24
 
70
        vhadd.s16       d12, d23
 
71
        vhadd.s32       d13, d22
 
72
        vhadd.u8        d14, d21
 
73
        vhadd.u16       d15, d20
 
74
        vhadd.u32       d16, d19
 
75
        vhadd.s8        q1, q12
 
76
        vhadd.s16       q2, q11
 
77
        vhadd.s32       q3, q10
 
78
        vhadd.u8        q4, q9
 
79
        vhadd.u16       q5, q8
 
80
        vhadd.u32       q6, q7
 
81
 
 
82
@ CHECK: vhadd.s8       d11, d11, d24   @ encoding: [0x28,0xb0,0x0b,0xf2]
 
83
@ CHECK: vhadd.s16      d12, d12, d23   @ encoding: [0x27,0xc0,0x1c,0xf2]
 
84
@ CHECK: vhadd.s32      d13, d13, d22   @ encoding: [0x26,0xd0,0x2d,0xf2]
 
85
@ CHECK: vhadd.u8       d14, d14, d21   @ encoding: [0x25,0xe0,0x0e,0xf3]
 
86
@ CHECK: vhadd.u16      d15, d15, d20   @ encoding: [0x24,0xf0,0x1f,0xf3]
 
87
@ CHECK: vhadd.u32      d16, d16, d19   @ encoding: [0xa3,0x00,0x60,0xf3]
 
88
@ CHECK: vhadd.s8       q1, q1, q12     @ encoding: [0x68,0x20,0x02,0xf2]
 
89
@ CHECK: vhadd.s16      q2, q2, q11     @ encoding: [0x66,0x40,0x14,0xf2]
 
90
@ CHECK: vhadd.s32      q3, q3, q10     @ encoding: [0x64,0x60,0x26,0xf2]
 
91
@ CHECK: vhadd.u8       q4, q4, q9      @ encoding: [0x62,0x80,0x08,0xf3]
 
92
@ CHECK: vhadd.u16      q5, q5, q8      @ encoding: [0x60,0xa0,0x1a,0xf3]
 
93
@ CHECK: vhadd.u32      q6, q6, q7      @ encoding: [0x4e,0xc0,0x2c,0xf3]
 
94
 
 
95
        vrhadd.s8       d16, d16, d17
 
96
        vrhadd.s16      d16, d16, d17
 
97
        vrhadd.s32      d16, d16, d17
 
98
        vrhadd.u8       d16, d16, d17
 
99
        vrhadd.u16      d16, d16, d17
 
100
        vrhadd.u32      d16, d16, d17
 
101
        vrhadd.s8       q8, q8, q9
 
102
        vrhadd.s16      q8, q8, q9
 
103
        vrhadd.s32      q8, q8, q9
 
104
        vrhadd.u8       q8, q8, q9
 
105
        vrhadd.u16      q8, q8, q9
 
106
        vrhadd.u32      q8, q8, q9
 
107
        @ Two-operand forms.
 
108
        vrhadd.s8       d16, d17
 
109
        vrhadd.s16      d16, d17
 
110
        vrhadd.s32      d16, d17
 
111
        vrhadd.u8       d16, d17
 
112
        vrhadd.u16      d16, d17
 
113
        vrhadd.u32      d16, d17
 
114
        vrhadd.s8       q8, q9
 
115
        vrhadd.s16      q8, q9
 
116
        vrhadd.s32      q8, q9
 
117
        vrhadd.u8       q8, q9
 
118
        vrhadd.u16      q8, q9
 
119
        vrhadd.u32      q8, q9
 
120
 
 
121
@ CHECK: vrhadd.s8      d16, d16, d17   @ encoding: [0xa1,0x01,0x40,0xf2]
 
122
@ CHECK: vrhadd.s16     d16, d16, d17   @ encoding: [0xa1,0x01,0x50,0xf2]
 
123
@ CHECK: vrhadd.s32     d16, d16, d17   @ encoding: [0xa1,0x01,0x60,0xf2]
 
124
@ CHECK: vrhadd.u8      d16, d16, d17   @ encoding: [0xa1,0x01,0x40,0xf3]
 
125
@ CHECK: vrhadd.u16     d16, d16, d17   @ encoding: [0xa1,0x01,0x50,0xf3]
 
126
@ CHECK: vrhadd.u32     d16, d16, d17   @ encoding: [0xa1,0x01,0x60,0xf3]
 
127
@ CHECK: vrhadd.s8      q8, q8, q9      @ encoding: [0xe2,0x01,0x40,0xf2]
 
128
@ CHECK: vrhadd.s16     q8, q8, q9      @ encoding: [0xe2,0x01,0x50,0xf2]
 
129
@ CHECK: vrhadd.s32     q8, q8, q9      @ encoding: [0xe2,0x01,0x60,0xf2]
 
130
@ CHECK: vrhadd.u8      q8, q8, q9      @ encoding: [0xe2,0x01,0x40,0xf3]
 
131
@ CHECK: vrhadd.u16     q8, q8, q9      @ encoding: [0xe2,0x01,0x50,0xf3]
 
132
@ CHECK: vrhadd.u32     q8, q8, q9      @ encoding: [0xe2,0x01,0x60,0xf3]
 
133
 
 
134
@ CHECK: vrhadd.s8      d16, d16, d17   @ encoding: [0xa1,0x01,0x40,0xf2]
 
135
@ CHECK: vrhadd.s16     d16, d16, d17   @ encoding: [0xa1,0x01,0x50,0xf2]
 
136
@ CHECK: vrhadd.s32     d16, d16, d17   @ encoding: [0xa1,0x01,0x60,0xf2]
 
137
@ CHECK: vrhadd.u8      d16, d16, d17   @ encoding: [0xa1,0x01,0x40,0xf3]
 
138
@ CHECK: vrhadd.u16     d16, d16, d17   @ encoding: [0xa1,0x01,0x50,0xf3]
 
139
@ CHECK: vrhadd.u32     d16, d16, d17   @ encoding: [0xa1,0x01,0x60,0xf3]
 
140
@ CHECK: vrhadd.s8      q8, q8, q9      @ encoding: [0xe2,0x01,0x40,0xf2]
 
141
@ CHECK: vrhadd.s16     q8, q8, q9      @ encoding: [0xe2,0x01,0x50,0xf2]
 
142
@ CHECK: vrhadd.s32     q8, q8, q9      @ encoding: [0xe2,0x01,0x60,0xf2]
 
143
@ CHECK: vrhadd.u8      q8, q8, q9      @ encoding: [0xe2,0x01,0x40,0xf3]
 
144
@ CHECK: vrhadd.u16     q8, q8, q9      @ encoding: [0xe2,0x01,0x50,0xf3]
 
145
@ CHECK: vrhadd.u32     q8, q8, q9      @ encoding: [0xe2,0x01,0x60,0xf3]
 
146
 
 
147
 
 
148
        vqadd.s8        d16, d16, d17
 
149
        vqadd.s16       d16, d16, d17
 
150
        vqadd.s32       d16, d16, d17
 
151
        vqadd.s64       d16, d16, d17
 
152
        vqadd.u8        d16, d16, d17
 
153
        vqadd.u16       d16, d16, d17
 
154
        vqadd.u32       d16, d16, d17
 
155
        vqadd.u64       d16, d16, d17
 
156
 
 
157
@ CHECK: vqadd.s8       d16, d16, d17   @ encoding: [0xb1,0x00,0x40,0xf2]
 
158
@ CHECK: vqadd.s16      d16, d16, d17   @ encoding: [0xb1,0x00,0x50,0xf2]
 
159
@ CHECK: vqadd.s32      d16, d16, d17   @ encoding: [0xb1,0x00,0x60,0xf2]
 
160
@ CHECK: vqadd.s64      d16, d16, d17   @ encoding: [0xb1,0x00,0x70,0xf2]
 
161
@ CHECK: vqadd.u8       d16, d16, d17   @ encoding: [0xb1,0x00,0x40,0xf3]
 
162
@ CHECK: vqadd.u16      d16, d16, d17   @ encoding: [0xb1,0x00,0x50,0xf3]
 
163
@ CHECK: vqadd.u32      d16, d16, d17   @ encoding: [0xb1,0x00,0x60,0xf3]
 
164
@ CHECK: vqadd.u64      d16, d16, d17   @ encoding: [0xb1,0x00,0x70,0xf3]
 
165
 
 
166
        vqadd.s8        q8, q8, q9
 
167
        vqadd.s16       q8, q8, q9
 
168
        vqadd.s32       q8, q8, q9
 
169
        vqadd.s64       q8, q8, q9
 
170
        vqadd.u8        q8, q8, q9
 
171
        vqadd.u16       q8, q8, q9
 
172
        vqadd.u32       q8, q8, q9
 
173
        vqadd.u64       q8, q8, q9
 
174
 
 
175
@ CHECK: vqadd.s8       q8, q8, q9      @ encoding: [0xf2,0x00,0x40,0xf2]
 
176
@ CHECK: vqadd.s16      q8, q8, q9      @ encoding: [0xf2,0x00,0x50,0xf2]
 
177
@ CHECK: vqadd.s32      q8, q8, q9      @ encoding: [0xf2,0x00,0x60,0xf2]
 
178
@ CHECK: vqadd.s64      q8, q8, q9      @ encoding: [0xf2,0x00,0x70,0xf2]
 
179
@ CHECK: vqadd.u8       q8, q8, q9      @ encoding: [0xf2,0x00,0x40,0xf3]
 
180
@ CHECK: vqadd.u16      q8, q8, q9      @ encoding: [0xf2,0x00,0x50,0xf3]
 
181
@ CHECK: vqadd.u32      q8, q8, q9      @ encoding: [0xf2,0x00,0x60,0xf3]
 
182
@ CHECK: vqadd.u64      q8, q8, q9      @ encoding: [0xf2,0x00,0x70,0xf3]
 
183
 
 
184
 
 
185
@ two-operand variants.
 
186
        vqadd.s8        d16, d17
 
187
        vqadd.s16       d16, d17
 
188
        vqadd.s32       d16, d17
 
189
        vqadd.s64       d16, d17
 
190
        vqadd.u8        d16, d17
 
191
        vqadd.u16       d16, d17
 
192
        vqadd.u32       d16, d17
 
193
        vqadd.u64       d16, d17
 
194
 
 
195
@ CHECK: vqadd.s8       d16, d16, d17   @ encoding: [0xb1,0x00,0x40,0xf2]
 
196
@ CHECK: vqadd.s16      d16, d16, d17   @ encoding: [0xb1,0x00,0x50,0xf2]
 
197
@ CHECK: vqadd.s32      d16, d16, d17   @ encoding: [0xb1,0x00,0x60,0xf2]
 
198
@ CHECK: vqadd.s64      d16, d16, d17   @ encoding: [0xb1,0x00,0x70,0xf2]
 
199
@ CHECK: vqadd.u8       d16, d16, d17   @ encoding: [0xb1,0x00,0x40,0xf3]
 
200
@ CHECK: vqadd.u16      d16, d16, d17   @ encoding: [0xb1,0x00,0x50,0xf3]
 
201
@ CHECK: vqadd.u32      d16, d16, d17   @ encoding: [0xb1,0x00,0x60,0xf3]
 
202
@ CHECK: vqadd.u64      d16, d16, d17   @ encoding: [0xb1,0x00,0x70,0xf3]
 
203
 
 
204
        vqadd.s8        q8, q9
 
205
        vqadd.s16       q8, q9
 
206
        vqadd.s32       q8, q9
 
207
        vqadd.s64       q8, q9
 
208
        vqadd.u8        q8, q9
 
209
        vqadd.u16       q8, q9
 
210
        vqadd.u32       q8, q9
 
211
        vqadd.u64       q8, q9
 
212
 
 
213
@ CHECK: vqadd.s8       q8, q8, q9      @ encoding: [0xf2,0x00,0x40,0xf2]
 
214
@ CHECK: vqadd.s16      q8, q8, q9      @ encoding: [0xf2,0x00,0x50,0xf2]
 
215
@ CHECK: vqadd.s32      q8, q8, q9      @ encoding: [0xf2,0x00,0x60,0xf2]
 
216
@ CHECK: vqadd.s64      q8, q8, q9      @ encoding: [0xf2,0x00,0x70,0xf2]
 
217
@ CHECK: vqadd.u8       q8, q8, q9      @ encoding: [0xf2,0x00,0x40,0xf3]
 
218
@ CHECK: vqadd.u16      q8, q8, q9      @ encoding: [0xf2,0x00,0x50,0xf3]
 
219
@ CHECK: vqadd.u32      q8, q8, q9      @ encoding: [0xf2,0x00,0x60,0xf3]
 
220
@ CHECK: vqadd.u64      q8, q8, q9      @ encoding: [0xf2,0x00,0x70,0xf3]
 
221
 
 
222
 
 
223
@ CHECK: vaddhn.i16     d16, q8, q9     @ encoding: [0xa2,0x04,0xc0,0xf2]
 
224
        vaddhn.i16      d16, q8, q9
 
225
@ CHECK: vaddhn.i32     d16, q8, q9     @ encoding: [0xa2,0x04,0xd0,0xf2]
 
226
        vaddhn.i32      d16, q8, q9
 
227
@ CHECK: vaddhn.i64     d16, q8, q9     @ encoding: [0xa2,0x04,0xe0,0xf2]
 
228
        vaddhn.i64      d16, q8, q9
 
229
@ CHECK: vraddhn.i16    d16, q8, q9     @ encoding: [0xa2,0x04,0xc0,0xf3]
 
230
        vraddhn.i16     d16, q8, q9
 
231
@ CHECK: vraddhn.i32    d16, q8, q9     @ encoding: [0xa2,0x04,0xd0,0xf3]
 
232
        vraddhn.i32     d16, q8, q9
 
233
@ CHECK: vraddhn.i64    d16, q8, q9     @ encoding: [0xa2,0x04,0xe0,0xf3]
 
234
        vraddhn.i64     d16, q8, q9
 
235
 
 
236
 
 
237
@ Two-operand variants
 
238
 
 
239
        vadd.i8  d6, d5
 
240
        vadd.i16 d7, d1
 
241
        vadd.i32 d8, d2
 
242
        vadd.i64 d9, d3
 
243
 
 
244
        vadd.i8  q6, q5
 
245
        vadd.i16 q7, q1
 
246
        vadd.i32 q8, q2
 
247
        vadd.i64 q9, q3
 
248
 
 
249
@ CHECK: vadd.i8        d6, d6, d5      @ encoding: [0x05,0x68,0x06,0xf2]
 
250
@ CHECK: vadd.i16       d7, d7, d1      @ encoding: [0x01,0x78,0x17,0xf2]
 
251
@ CHECK: vadd.i32       d8, d8, d2      @ encoding: [0x02,0x88,0x28,0xf2]
 
252
@ CHECK: vadd.i64       d9, d9, d3      @ encoding: [0x03,0x98,0x39,0xf2]
 
253
 
 
254
@ CHECK: vadd.i8        q6, q6, q5      @ encoding: [0x4a,0xc8,0x0c,0xf2]
 
255
@ CHECK: vadd.i16       q7, q7, q1      @ encoding: [0x42,0xe8,0x1e,0xf2]
 
256
@ CHECK: vadd.i32       q8, q8, q2      @ encoding: [0xc4,0x08,0x60,0xf2]
 
257
@ CHECK: vadd.i64       q9, q9, q3      @ encoding: [0xc6,0x28,0x72,0xf2]
 
258
 
 
259
 
 
260
        vaddw.s8  q6, d5
 
261
        vaddw.s16 q7, d1
 
262
        vaddw.s32 q8, d2
 
263
 
 
264
        vaddw.u8  q6, d5
 
265
        vaddw.u16 q7, d1
 
266
        vaddw.u32 q8, d2
 
267
 
 
268
@ CHECK: vaddw.s8       q6, q6, d5      @ encoding: [0x05,0xc1,0x8c,0xf2]
 
269
@ CHECK: vaddw.s16      q7, q7, d1      @ encoding: [0x01,0xe1,0x9e,0xf2]
 
270
@ CHECK: vaddw.s32      q8, q8, d2      @ encoding: [0x82,0x01,0xe0,0xf2]
 
271
 
 
272
@ CHECK: vaddw.u8       q6, q6, d5      @ encoding: [0x05,0xc1,0x8c,0xf3]
 
273
@ CHECK: vaddw.u16      q7, q7, d1      @ encoding: [0x01,0xe1,0x9e,0xf3]
 
274
@ CHECK: vaddw.u32      q8, q8, d2      @ encoding: [0x82,0x01,0xe0,0xf3]