blob: 19d5b7e010f76a1b8aca96f0402e328c92b30edd [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 Anderson95b97662010-11-01 18:33:37 +000093@ CHECK: vqadd.s8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000094 vqadd.s8 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000095@ CHECK: vqadd.s16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000096 vqadd.s16 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000097@ CHECK: vqadd.s32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +000098 vqadd.s32 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +000099@ CHECK: vqadd.s64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000100 vqadd.s64 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +0000101@ CHECK: vqadd.u8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000102 vqadd.u8 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +0000103@ CHECK: vqadd.u16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000104 vqadd.u16 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +0000105@ CHECK: vqadd.u32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000106 vqadd.u32 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +0000107@ CHECK: vqadd.u64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000108 vqadd.u64 d16, d16, d17
Owen Anderson95b97662010-11-01 18:33:37 +0000109@ CHECK: vqadd.s8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000110 vqadd.s8 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000111@ CHECK: vqadd.s16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000112 vqadd.s16 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000113@ CHECK: vqadd.s32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000114 vqadd.s32 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000115@ CHECK: vqadd.s64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000116 vqadd.s64 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000117@ CHECK: vqadd.u8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000118 vqadd.u8 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000119@ CHECK: vqadd.u16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000120 vqadd.u16 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000121@ CHECK: vqadd.u32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000122 vqadd.u32 q8, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000123@ CHECK: vqadd.u64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000124 vqadd.u64 q8, q8, q9
125
Owen Anderson95b97662010-11-01 18:33:37 +0000126@ CHECK: vaddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000127 vaddhn.i16 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000128@ CHECK: vaddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000129 vaddhn.i32 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000130@ CHECK: vaddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf2]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000131 vaddhn.i64 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000132@ CHECK: vraddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000133 vraddhn.i16 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000134@ CHECK: vraddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000135 vraddhn.i32 d16, q8, q9
Owen Anderson95b97662010-11-01 18:33:37 +0000136@ CHECK: vraddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf3]
Owen Anderson1cfb0432010-10-29 01:01:56 +0000137 vraddhn.i64 d16, q8, q9
Jim Grosbachd9004412011-12-07 22:52:54 +0000138
139
140@ Two-operand variants
141
142 vadd.i8 d6, d5
143 vadd.i16 d7, d1
144 vadd.i32 d8, d2
145 vadd.i64 d9, d3
146
147 vadd.i8 q6, q5
148 vadd.i16 q7, q1
149 vadd.i32 q8, q2
150 vadd.i64 q9, q3
151
152@ CHECK: vadd.i8 d6, d6, d5 @ encoding: [0x05,0x68,0x06,0xf2]
153@ CHECK: vadd.i16 d7, d7, d1 @ encoding: [0x01,0x78,0x17,0xf2]
154@ CHECK: vadd.i32 d8, d8, d2 @ encoding: [0x02,0x88,0x28,0xf2]
155@ CHECK: vadd.i64 d9, d9, d3 @ encoding: [0x03,0x98,0x39,0xf2]
156
157@ CHECK: vadd.i8 q6, q6, q5 @ encoding: [0x4a,0xc8,0x0c,0xf2]
158@ CHECK: vadd.i16 q7, q7, q1 @ encoding: [0x42,0xe8,0x1e,0xf2]
159@ CHECK: vadd.i32 q8, q8, q2 @ encoding: [0xc4,0x08,0x60,0xf2]
160@ CHECK: vadd.i64 q9, q9, q3 @ encoding: [0xc6,0x28,0x72,0xf2]
Jim Grosbach30a264e2011-12-07 23:01:10 +0000161
162
163 vaddw.s8 q6, d5
164 vaddw.s16 q7, d1
165 vaddw.s32 q8, d2
166
167 vaddw.u8 q6, d5
168 vaddw.u16 q7, d1
169 vaddw.u32 q8, d2
170
171@ CHECK: vaddw.s8 q6, q6, d5 @ encoding: [0x05,0xc1,0x8c,0xf2]
172@ CHECK: vaddw.s16 q7, q7, d1 @ encoding: [0x01,0xe1,0x9e,0xf2]
173@ CHECK: vaddw.s32 q8, q8, d2 @ encoding: [0x82,0x01,0xe0,0xf2]
174
175@ CHECK: vaddw.u8 q6, q6, d5 @ encoding: [0x05,0xc1,0x8c,0xf3]
176@ CHECK: vaddw.u16 q7, q7, d1 @ encoding: [0x01,0xe1,0x9e,0xf3]
177@ CHECK: vaddw.u32 q8, q8, d2 @ encoding: [0x82,0x01,0xe0,0xf3]