blob: aeb4823e94b3e9b1d71f1604914c7df046bbcc72 [file] [log] [blame]
Owen Anderson95b97662010-11-01 18:33:37 +00001@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
Owen Anderson1cfb0432010-10-29 01:01:56 +00002
3
Owen Anderson95b97662010-11-01 18:33:37 +00004@ CHECK: vadd.i8 d16, d17, d16 @ encoding: [0xa0,0x08,0x41,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +00005 vadd.i8 d16, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +00006@ CHECK: vadd.i16 d16, d17, d16 @ encoding: [0xa0,0x08,0x51,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +00007 vadd.i16 d16, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +00008@ CHECK: vadd.i64 d16, d17, d16 @ encoding: [0xa0,0x08,0x71,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +00009 vadd.i64 d16, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +000010@ CHECK: vadd.i32 d16, d17, d16 @ encoding: [0xa0,0x08,0x61,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000011 vadd.i32 d16, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +000012@ CHECK: vadd.f32 d16, d16, d17 @ encoding: [0xa1,0x0d,0x40,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000013 vadd.f32 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000014@ CHECK: vadd.f32 q8, q8, q9 @ encoding: [0xe2,0x0d,0x40,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000015 vadd.f32 q8, q8, q9
16
Owen Anderson95b97662010-11-01 18:33:37 +000017@ CHECK: vaddl.s8 q8, d17, d16 @ encoding: [0xa0,0x00,0xc1,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000018 vaddl.s8 q8, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +000019@ CHECK: vaddl.s16 q8, d17, d16 @ encoding: [0xa0,0x00,0xd1,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000020 vaddl.s16 q8, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +000021@ CHECK: vaddl.s32 q8, d17, d16 @ encoding: [0xa0,0x00,0xe1,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000022 vaddl.s32 q8, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +000023@ CHECK: vaddl.u8 q8, d17, d16 @ encoding: [0xa0,0x00,0xc1,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000024 vaddl.u8 q8, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +000025@ CHECK: vaddl.u16 q8, d17, d16 @ encoding: [0xa0,0x00,0xd1,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000026 vaddl.u16 q8, d17, d16
Owen Anderson95b97662010-11-01 18:33:37 +000027@ CHECK: vaddl.u32 q8, d17, d16 @ encoding: [0xa0,0x00,0xe1,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000028 vaddl.u32 q8, d17, d16
29
Owen Anderson95b97662010-11-01 18:33:37 +000030@ CHECK: vaddw.s8 q8, q8, d18 @ encoding: [0xa2,0x01,0xc0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000031 vaddw.s8 q8, q8, d18
Owen Anderson95b97662010-11-01 18:33:37 +000032@ CHECK: vaddw.s16 q8, q8, d18 @ encoding: [0xa2,0x01,0xd0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000033 vaddw.s16 q8, q8, d18
Owen Anderson95b97662010-11-01 18:33:37 +000034@ CHECK: vaddw.s32 q8, q8, d18 @ encoding: [0xa2,0x01,0xe0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000035 vaddw.s32 q8, q8, d18
Owen Anderson95b97662010-11-01 18:33:37 +000036@ CHECK: vaddw.u8 q8, q8, d18 @ encoding: [0xa2,0x01,0xc0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000037 vaddw.u8 q8, q8, d18
Owen Anderson95b97662010-11-01 18:33:37 +000038@ CHECK: vaddw.u16 q8, q8, d18 @ encoding: [0xa2,0x01,0xd0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000039 vaddw.u16 q8, q8, d18
Owen Anderson95b97662010-11-01 18:33:37 +000040@ CHECK: vaddw.u32 q8, q8, d18 @ encoding: [0xa2,0x01,0xe0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000041 vaddw.u32 q8, q8, d18
42
Owen Anderson95b97662010-11-01 18:33:37 +000043@ CHECK: vhadd.s8 d16, d16, d17 @ encoding: [0xa1,0x00,0x40,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000044 vhadd.s8 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000045@ CHECK: vhadd.s16 d16, d16, d17 @ encoding: [0xa1,0x00,0x50,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000046 vhadd.s16 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000047@ CHECK: vhadd.s32 d16, d16, d17 @ encoding: [0xa1,0x00,0x60,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000048 vhadd.s32 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000049@ CHECK: vhadd.u8 d16, d16, d17 @ encoding: [0xa1,0x00,0x40,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000050 vhadd.u8 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000051@ CHECK: vhadd.u16 d16, d16, d17 @ encoding: [0xa1,0x00,0x50,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000052 vhadd.u16 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000053@ CHECK: vhadd.u32 d16, d16, d17 @ encoding: [0xa1,0x00,0x60,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000054 vhadd.u32 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000055@ CHECK: vhadd.s8 q8, q8, q9 @ encoding: [0xe2,0x00,0x40,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000056 vhadd.s8 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000057@ CHECK: vhadd.s16 q8, q8, q9 @ encoding: [0xe2,0x00,0x50,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000058 vhadd.s16 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000059@ CHECK: vhadd.s32 q8, q8, q9 @ encoding: [0xe2,0x00,0x60,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000060 vhadd.s32 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000061 @ CHECK: vhadd.u8 q8, q8, q9 @ encoding: [0xe2,0x00,0x40,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000062 vhadd.u8 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000063@ CHECK: vhadd.u16 q8, q8, q9 @ encoding: [0xe2,0x00,0x50,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000064 vhadd.u16 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000065@ CHECK: vhadd.u32 q8, q8, q9 @ encoding: [0xe2,0x00,0x60,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000066 vhadd.u32 q8, q8, q9
Jim Grosbachdbd6ba32012-04-16 17:14:07 +000067
Owen Anderson1cfb0432010-10-29 01:01:56 +000068 vrhadd.s8 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000069 vrhadd.s16 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000070 vrhadd.s32 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000071 vrhadd.u8 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000072 vrhadd.u16 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000073 vrhadd.u32 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000074 vrhadd.s8 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +000075 vrhadd.s16 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +000076 vrhadd.s32 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +000077 vrhadd.u8 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +000078 vrhadd.u16 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +000079 vrhadd.u32 q8, q8, q9
80
Jim Grosbachdbd6ba32012-04-16 17:14:07 +000081@ CHECK: vrhadd.s8 d16, d16, d17 @ encoding: [0xa1,0x01,0x40,0xf2]
82@ CHECK: vrhadd.s16 d16, d16, d17 @ encoding: [0xa1,0x01,0x50,0xf2]
83@ CHECK: vrhadd.s32 d16, d16, d17 @ encoding: [0xa1,0x01,0x60,0xf2]
84@ CHECK: vrhadd.u8 d16, d16, d17 @ encoding: [0xa1,0x01,0x40,0xf3]
85@ CHECK: vrhadd.u16 d16, d16, d17 @ encoding: [0xa1,0x01,0x50,0xf3]
86@ CHECK: vrhadd.u32 d16, d16, d17 @ encoding: [0xa1,0x01,0x60,0xf3]
87@ CHECK: vrhadd.s8 q8, q8, q9 @ encoding: [0xe2,0x01,0x40,0xf2]
88@ CHECK: vrhadd.s16 q8, q8, q9 @ encoding: [0xe2,0x01,0x50,0xf2]
89@ CHECK: vrhadd.s32 q8, q8, q9 @ encoding: [0xe2,0x01,0x60,0xf2]
90@ CHECK: vrhadd.u8 q8, q8, q9 @ encoding: [0xe2,0x01,0x40,0xf3]
91@ CHECK: vrhadd.u16 q8, q8, q9 @ encoding: [0xe2,0x01,0x50,0xf3]
92@ CHECK: vrhadd.u32 q8, q8, q9 @ encoding: [0xe2,0x01,0x60,0xf3]
93
Owen Anderson1cfb0432010-10-29 01:01:56 +000094 vqadd.s8 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000095 vqadd.s16 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000096 vqadd.s32 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000097 vqadd.s64 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000098 vqadd.u8 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000099 vqadd.u16 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +0000100 vqadd.u32 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +0000101 vqadd.u64 d16, d16, d17
Jim Grosbach9e7b42a2011-12-08 20:49:43 +0000102
103@ CHECK: vqadd.s8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf2]
104@ CHECK: vqadd.s16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf2]
105@ CHECK: vqadd.s32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf2]
106@ CHECK: vqadd.s64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf2]
107@ CHECK: vqadd.u8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf3]
108@ CHECK: vqadd.u16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf3]
109@ CHECK: vqadd.u32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf3]
110@ CHECK: vqadd.u64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf3]
111
Owen Anderson1cfb0432010-10-29 01:01:56 +0000112 vqadd.s8 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000113 vqadd.s16 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000114 vqadd.s32 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000115 vqadd.s64 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000116 vqadd.u8 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000117 vqadd.u16 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000118 vqadd.u32 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000119 vqadd.u64 q8, q8, q9
120
Jim Grosbach9e7b42a2011-12-08 20:49:43 +0000121@ CHECK: vqadd.s8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf2]
122@ CHECK: vqadd.s16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf2]
123@ CHECK: vqadd.s32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf2]
124@ CHECK: vqadd.s64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf2]
125@ CHECK: vqadd.u8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf3]
126@ CHECK: vqadd.u16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf3]
127@ CHECK: vqadd.u32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf3]
128@ CHECK: vqadd.u64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf3]
129
130
131@ two-operand variants.
132 vqadd.s8 d16, d17
133 vqadd.s16 d16, d17
134 vqadd.s32 d16, d17
135 vqadd.s64 d16, d17
136 vqadd.u8 d16, d17
137 vqadd.u16 d16, d17
138 vqadd.u32 d16, d17
139 vqadd.u64 d16, d17
140
141@ CHECK: vqadd.s8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf2]
142@ CHECK: vqadd.s16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf2]
143@ CHECK: vqadd.s32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf2]
144@ CHECK: vqadd.s64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf2]
145@ CHECK: vqadd.u8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf3]
146@ CHECK: vqadd.u16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf3]
147@ CHECK: vqadd.u32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf3]
148@ CHECK: vqadd.u64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf3]
149
150 vqadd.s8 q8, q9
151 vqadd.s16 q8, q9
152 vqadd.s32 q8, q9
153 vqadd.s64 q8, q9
154 vqadd.u8 q8, q9
155 vqadd.u16 q8, q9
156 vqadd.u32 q8, q9
157 vqadd.u64 q8, q9
158
159@ CHECK: vqadd.s8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf2]
160@ CHECK: vqadd.s16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf2]
161@ CHECK: vqadd.s32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf2]
162@ CHECK: vqadd.s64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf2]
163@ CHECK: vqadd.u8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf3]
164@ CHECK: vqadd.u16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf3]
165@ CHECK: vqadd.u32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf3]
166@ CHECK: vqadd.u64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf3]
167
168
Owen Anderson95b97662010-11-01 18:33:37 +0000169@ CHECK: vaddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000170 vaddhn.i16 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000171@ CHECK: vaddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000172 vaddhn.i32 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000173@ CHECK: vaddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000174 vaddhn.i64 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000175@ CHECK: vraddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000176 vraddhn.i16 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000177@ CHECK: vraddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000178 vraddhn.i32 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000179@ CHECK: vraddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000180 vraddhn.i64 d16, q8, q9
Jim Grosbachd9004412011-12-07 22:52:54 +0000181
182
183@ Two-operand variants
184
185 vadd.i8 d6, d5
186 vadd.i16 d7, d1
187 vadd.i32 d8, d2
188 vadd.i64 d9, d3
189
190 vadd.i8 q6, q5
191 vadd.i16 q7, q1
192 vadd.i32 q8, q2
193 vadd.i64 q9, q3
194
195@ CHECK: vadd.i8 d6, d6, d5 @ encoding: [0x05,0x68,0x06,0xf2]
196@ CHECK: vadd.i16 d7, d7, d1 @ encoding: [0x01,0x78,0x17,0xf2]
197@ CHECK: vadd.i32 d8, d8, d2 @ encoding: [0x02,0x88,0x28,0xf2]
198@ CHECK: vadd.i64 d9, d9, d3 @ encoding: [0x03,0x98,0x39,0xf2]
199
200@ CHECK: vadd.i8 q6, q6, q5 @ encoding: [0x4a,0xc8,0x0c,0xf2]
201@ CHECK: vadd.i16 q7, q7, q1 @ encoding: [0x42,0xe8,0x1e,0xf2]
202@ CHECK: vadd.i32 q8, q8, q2 @ encoding: [0xc4,0x08,0x60,0xf2]
203@ CHECK: vadd.i64 q9, q9, q3 @ encoding: [0xc6,0x28,0x72,0xf2]
Jim Grosbach30a264e2011-12-07 23:01:10 +0000204
205
206 vaddw.s8 q6, d5
207 vaddw.s16 q7, d1
208 vaddw.s32 q8, d2
209
210 vaddw.u8 q6, d5
211 vaddw.u16 q7, d1
212 vaddw.u32 q8, d2
213
214@ CHECK: vaddw.s8 q6, q6, d5 @ encoding: [0x05,0xc1,0x8c,0xf2]
215@ CHECK: vaddw.s16 q7, q7, d1 @ encoding: [0x01,0xe1,0x9e,0xf2]
216@ CHECK: vaddw.s32 q8, q8, d2 @ encoding: [0x82,0x01,0xe0,0xf2]
217
218@ CHECK: vaddw.u8 q6, q6, d5 @ encoding: [0x05,0xc1,0x8c,0xf3]
219@ CHECK: vaddw.u16 q7, q7, d1 @ encoding: [0x01,0xe1,0x9e,0xf3]
220@ CHECK: vaddw.u32 q8, q8, d2 @ encoding: [0x82,0x01,0xe0,0xf3]