blob: 1fdfa4c13dfb81c3681329b4d89665e7e0086c76 [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
67
Owen Anderson95b97662010-11-01 18:33:37 +000068@ CHECK: vrhadd.s8 d16, d16, d17 @ encoding: [0xa1,0x01,0x40,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000069 vrhadd.s8 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000070@ CHECK: vrhadd.s16 d16, d16, d17 @ encoding: [0xa1,0x01,0x50,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000071 vrhadd.s16 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000072@ CHECK: vrhadd.s32 d16, d16, d17 @ encoding: [0xa1,0x01,0x60,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000073 vrhadd.s32 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000074@ CHECK: vrhadd.u8 d16, d16, d17 @ encoding: [0xa1,0x01,0x40,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000075 vrhadd.u8 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000076@ CHECK: vrhadd.u16 d16, d16, d17 @ encoding: [0xa1,0x01,0x50,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000077 vrhadd.u16 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000078@ CHECK: vrhadd.u32 d16, d16, d17 @ encoding: [0xa1,0x01,0x60,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000079 vrhadd.u32 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000080@ CHECK: vrhadd.s8 q8, q8, q9 @ encoding: [0xe2,0x01,0x40,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000081 vrhadd.s8 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000082@ CHECK: vrhadd.s16 q8, q8, q9 @ encoding: [0xe2,0x01,0x50,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000083 vrhadd.s16 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000084@ CHECK: vrhadd.s32 q8, q8, q9 @ encoding: [0xe2,0x01,0x60,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000085 vrhadd.s32 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000086@ CHECK: vrhadd.u8 q8, q8, q9 @ encoding: [0xe2,0x01,0x40,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000087 vrhadd.u8 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000088@ CHECK: vrhadd.u16 q8, q8, q9 @ encoding: [0xe2,0x01,0x50,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000089 vrhadd.u16 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +000090@ CHECK: vrhadd.u32 q8, q8, q9 @ encoding: [0xe2,0x01,0x60,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +000091 vrhadd.u32 q8, q8, q9
92
Owen Anderson1cfb0432010-10-29 01:01:56 +000093 vqadd.s8 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000094 vqadd.s16 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000095 vqadd.s32 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000096 vqadd.s64 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000097 vqadd.u8 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000098 vqadd.u16 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +000099 vqadd.u32 d16, d16, d17
Owen Anderson1cfb0432010-10-29 01:01:56 +0000100 vqadd.u64 d16, d16, d17
Jim Grosbach9e7b42a2011-12-08 20:49:43 +0000101
102@ CHECK: vqadd.s8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf2]
103@ CHECK: vqadd.s16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf2]
104@ CHECK: vqadd.s32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf2]
105@ CHECK: vqadd.s64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf2]
106@ CHECK: vqadd.u8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf3]
107@ CHECK: vqadd.u16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf3]
108@ CHECK: vqadd.u32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf3]
109@ CHECK: vqadd.u64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf3]
110
Owen Anderson1cfb0432010-10-29 01:01:56 +0000111 vqadd.s8 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000112 vqadd.s16 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000113 vqadd.s32 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000114 vqadd.s64 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000115 vqadd.u8 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000116 vqadd.u16 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000117 vqadd.u32 q8, q8, q9
Owen Anderson1cfb0432010-10-29 01:01:56 +0000118 vqadd.u64 q8, q8, q9
119
Jim Grosbach9e7b42a2011-12-08 20:49:43 +0000120@ CHECK: vqadd.s8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf2]
121@ CHECK: vqadd.s16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf2]
122@ CHECK: vqadd.s32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf2]
123@ CHECK: vqadd.s64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf2]
124@ CHECK: vqadd.u8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf3]
125@ CHECK: vqadd.u16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf3]
126@ CHECK: vqadd.u32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf3]
127@ CHECK: vqadd.u64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf3]
128
129
130@ two-operand variants.
131 vqadd.s8 d16, d17
132 vqadd.s16 d16, d17
133 vqadd.s32 d16, d17
134 vqadd.s64 d16, d17
135 vqadd.u8 d16, d17
136 vqadd.u16 d16, d17
137 vqadd.u32 d16, d17
138 vqadd.u64 d16, d17
139
140@ CHECK: vqadd.s8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf2]
141@ CHECK: vqadd.s16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf2]
142@ CHECK: vqadd.s32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf2]
143@ CHECK: vqadd.s64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf2]
144@ CHECK: vqadd.u8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf3]
145@ CHECK: vqadd.u16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf3]
146@ CHECK: vqadd.u32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf3]
147@ CHECK: vqadd.u64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf3]
148
149 vqadd.s8 q8, q9
150 vqadd.s16 q8, q9
151 vqadd.s32 q8, q9
152 vqadd.s64 q8, q9
153 vqadd.u8 q8, q9
154 vqadd.u16 q8, q9
155 vqadd.u32 q8, q9
156 vqadd.u64 q8, q9
157
158@ CHECK: vqadd.s8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf2]
159@ CHECK: vqadd.s16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf2]
160@ CHECK: vqadd.s32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf2]
161@ CHECK: vqadd.s64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf2]
162@ CHECK: vqadd.u8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf3]
163@ CHECK: vqadd.u16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf3]
164@ CHECK: vqadd.u32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf3]
165@ CHECK: vqadd.u64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf3]
166
167
Owen Anderson95b97662010-11-01 18:33:37 +0000168@ CHECK: vaddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000169 vaddhn.i16 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000170@ CHECK: vaddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000171 vaddhn.i32 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000172@ CHECK: vaddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000173 vaddhn.i64 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000174@ CHECK: vraddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000175 vraddhn.i16 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000176@ CHECK: vraddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000177 vraddhn.i32 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000178@ CHECK: vraddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000179 vraddhn.i64 d16, q8, q9
Jim Grosbachd9004412011-12-07 22:52:54 +0000180
181
182@ Two-operand variants
183
184 vadd.i8 d6, d5
185 vadd.i16 d7, d1
186 vadd.i32 d8, d2
187 vadd.i64 d9, d3
188
189 vadd.i8 q6, q5
190 vadd.i16 q7, q1
191 vadd.i32 q8, q2
192 vadd.i64 q9, q3
193
194@ CHECK: vadd.i8 d6, d6, d5 @ encoding: [0x05,0x68,0x06,0xf2]
195@ CHECK: vadd.i16 d7, d7, d1 @ encoding: [0x01,0x78,0x17,0xf2]
196@ CHECK: vadd.i32 d8, d8, d2 @ encoding: [0x02,0x88,0x28,0xf2]
197@ CHECK: vadd.i64 d9, d9, d3 @ encoding: [0x03,0x98,0x39,0xf2]
198
199@ CHECK: vadd.i8 q6, q6, q5 @ encoding: [0x4a,0xc8,0x0c,0xf2]
200@ CHECK: vadd.i16 q7, q7, q1 @ encoding: [0x42,0xe8,0x1e,0xf2]
201@ CHECK: vadd.i32 q8, q8, q2 @ encoding: [0xc4,0x08,0x60,0xf2]
202@ CHECK: vadd.i64 q9, q9, q3 @ encoding: [0xc6,0x28,0x72,0xf2]
Jim Grosbach30a264e2011-12-07 23:01:10 +0000203
204
205 vaddw.s8 q6, d5
206 vaddw.s16 q7, d1
207 vaddw.s32 q8, d2
208
209 vaddw.u8 q6, d5
210 vaddw.u16 q7, d1
211 vaddw.u32 q8, d2
212
213@ CHECK: vaddw.s8 q6, q6, d5 @ encoding: [0x05,0xc1,0x8c,0xf2]
214@ CHECK: vaddw.s16 q7, q7, d1 @ encoding: [0x01,0xe1,0x9e,0xf2]
215@ CHECK: vaddw.s32 q8, q8, d2 @ encoding: [0x82,0x01,0xe0,0xf2]
216
217@ CHECK: vaddw.u8 q6, q6, d5 @ encoding: [0x05,0xc1,0x8c,0xf3]
218@ CHECK: vaddw.u16 q7, q7, d1 @ encoding: [0x01,0xe1,0x9e,0xf3]
219@ CHECK: vaddw.u32 q8, q8, d2 @ encoding: [0x82,0x01,0xe0,0xf3]