blob: 19d5b7e010f76a1b8aca96f0402e328c92b30edd [file] [log] [blame]
Owen Andersoncd9da222010-11-01 18:33:37 +00001@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
Owen Andersonb101af02010-10-29 01:01:56 +00002
3
Owen Andersoncd9da222010-11-01 18:33:37 +00004@ CHECK: vadd.i8 d16, d17, d16 @ encoding: [0xa0,0x08,0x41,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +00005 vadd.i8 d16, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +00006@ CHECK: vadd.i16 d16, d17, d16 @ encoding: [0xa0,0x08,0x51,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +00007 vadd.i16 d16, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +00008@ CHECK: vadd.i64 d16, d17, d16 @ encoding: [0xa0,0x08,0x71,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +00009 vadd.i64 d16, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +000010@ CHECK: vadd.i32 d16, d17, d16 @ encoding: [0xa0,0x08,0x61,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000011 vadd.i32 d16, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +000012@ CHECK: vadd.f32 d16, d16, d17 @ encoding: [0xa1,0x0d,0x40,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000013 vadd.f32 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000014@ CHECK: vadd.f32 q8, q8, q9 @ encoding: [0xe2,0x0d,0x40,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000015 vadd.f32 q8, q8, q9
16
Owen Andersoncd9da222010-11-01 18:33:37 +000017@ CHECK: vaddl.s8 q8, d17, d16 @ encoding: [0xa0,0x00,0xc1,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000018 vaddl.s8 q8, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +000019@ CHECK: vaddl.s16 q8, d17, d16 @ encoding: [0xa0,0x00,0xd1,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000020 vaddl.s16 q8, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +000021@ CHECK: vaddl.s32 q8, d17, d16 @ encoding: [0xa0,0x00,0xe1,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000022 vaddl.s32 q8, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +000023@ CHECK: vaddl.u8 q8, d17, d16 @ encoding: [0xa0,0x00,0xc1,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000024 vaddl.u8 q8, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +000025@ CHECK: vaddl.u16 q8, d17, d16 @ encoding: [0xa0,0x00,0xd1,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000026 vaddl.u16 q8, d17, d16
Owen Andersoncd9da222010-11-01 18:33:37 +000027@ CHECK: vaddl.u32 q8, d17, d16 @ encoding: [0xa0,0x00,0xe1,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000028 vaddl.u32 q8, d17, d16
29
Owen Andersoncd9da222010-11-01 18:33:37 +000030@ CHECK: vaddw.s8 q8, q8, d18 @ encoding: [0xa2,0x01,0xc0,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000031 vaddw.s8 q8, q8, d18
Owen Andersoncd9da222010-11-01 18:33:37 +000032@ CHECK: vaddw.s16 q8, q8, d18 @ encoding: [0xa2,0x01,0xd0,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000033 vaddw.s16 q8, q8, d18
Owen Andersoncd9da222010-11-01 18:33:37 +000034@ CHECK: vaddw.s32 q8, q8, d18 @ encoding: [0xa2,0x01,0xe0,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000035 vaddw.s32 q8, q8, d18
Owen Andersoncd9da222010-11-01 18:33:37 +000036@ CHECK: vaddw.u8 q8, q8, d18 @ encoding: [0xa2,0x01,0xc0,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000037 vaddw.u8 q8, q8, d18
Owen Andersoncd9da222010-11-01 18:33:37 +000038@ CHECK: vaddw.u16 q8, q8, d18 @ encoding: [0xa2,0x01,0xd0,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000039 vaddw.u16 q8, q8, d18
Owen Andersoncd9da222010-11-01 18:33:37 +000040@ CHECK: vaddw.u32 q8, q8, d18 @ encoding: [0xa2,0x01,0xe0,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000041 vaddw.u32 q8, q8, d18
42
Owen Andersoncd9da222010-11-01 18:33:37 +000043@ CHECK: vhadd.s8 d16, d16, d17 @ encoding: [0xa1,0x00,0x40,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000044 vhadd.s8 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000045@ CHECK: vhadd.s16 d16, d16, d17 @ encoding: [0xa1,0x00,0x50,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000046 vhadd.s16 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000047@ CHECK: vhadd.s32 d16, d16, d17 @ encoding: [0xa1,0x00,0x60,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000048 vhadd.s32 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000049@ CHECK: vhadd.u8 d16, d16, d17 @ encoding: [0xa1,0x00,0x40,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000050 vhadd.u8 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000051@ CHECK: vhadd.u16 d16, d16, d17 @ encoding: [0xa1,0x00,0x50,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000052 vhadd.u16 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000053@ CHECK: vhadd.u32 d16, d16, d17 @ encoding: [0xa1,0x00,0x60,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000054 vhadd.u32 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000055@ CHECK: vhadd.s8 q8, q8, q9 @ encoding: [0xe2,0x00,0x40,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000056 vhadd.s8 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000057@ CHECK: vhadd.s16 q8, q8, q9 @ encoding: [0xe2,0x00,0x50,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000058 vhadd.s16 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000059@ CHECK: vhadd.s32 q8, q8, q9 @ encoding: [0xe2,0x00,0x60,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000060 vhadd.s32 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000061 @ CHECK: vhadd.u8 q8, q8, q9 @ encoding: [0xe2,0x00,0x40,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000062 vhadd.u8 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000063@ CHECK: vhadd.u16 q8, q8, q9 @ encoding: [0xe2,0x00,0x50,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000064 vhadd.u16 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000065@ CHECK: vhadd.u32 q8, q8, q9 @ encoding: [0xe2,0x00,0x60,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000066 vhadd.u32 q8, q8, q9
67
Owen Andersoncd9da222010-11-01 18:33:37 +000068@ CHECK: vrhadd.s8 d16, d16, d17 @ encoding: [0xa1,0x01,0x40,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000069 vrhadd.s8 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000070@ CHECK: vrhadd.s16 d16, d16, d17 @ encoding: [0xa1,0x01,0x50,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000071 vrhadd.s16 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000072@ CHECK: vrhadd.s32 d16, d16, d17 @ encoding: [0xa1,0x01,0x60,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000073 vrhadd.s32 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000074@ CHECK: vrhadd.u8 d16, d16, d17 @ encoding: [0xa1,0x01,0x40,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000075 vrhadd.u8 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000076@ CHECK: vrhadd.u16 d16, d16, d17 @ encoding: [0xa1,0x01,0x50,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000077 vrhadd.u16 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000078@ CHECK: vrhadd.u32 d16, d16, d17 @ encoding: [0xa1,0x01,0x60,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000079 vrhadd.u32 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000080@ CHECK: vrhadd.s8 q8, q8, q9 @ encoding: [0xe2,0x01,0x40,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000081 vrhadd.s8 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000082@ CHECK: vrhadd.s16 q8, q8, q9 @ encoding: [0xe2,0x01,0x50,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000083 vrhadd.s16 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000084@ CHECK: vrhadd.s32 q8, q8, q9 @ encoding: [0xe2,0x01,0x60,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000085 vrhadd.s32 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000086@ CHECK: vrhadd.u8 q8, q8, q9 @ encoding: [0xe2,0x01,0x40,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000087 vrhadd.u8 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000088@ CHECK: vrhadd.u16 q8, q8, q9 @ encoding: [0xe2,0x01,0x50,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000089 vrhadd.u16 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +000090@ CHECK: vrhadd.u32 q8, q8, q9 @ encoding: [0xe2,0x01,0x60,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +000091 vrhadd.u32 q8, q8, q9
92
Owen Andersoncd9da222010-11-01 18:33:37 +000093@ CHECK: vqadd.s8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000094 vqadd.s8 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000095@ CHECK: vqadd.s16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000096 vqadd.s16 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000097@ CHECK: vqadd.s32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +000098 vqadd.s32 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +000099@ CHECK: vqadd.s64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +0000100 vqadd.s64 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +0000101@ CHECK: vqadd.u8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000102 vqadd.u8 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +0000103@ CHECK: vqadd.u16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000104 vqadd.u16 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +0000105@ CHECK: vqadd.u32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000106 vqadd.u32 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +0000107@ CHECK: vqadd.u64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000108 vqadd.u64 d16, d16, d17
Owen Andersoncd9da222010-11-01 18:33:37 +0000109@ CHECK: vqadd.s8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +0000110 vqadd.s8 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000111@ CHECK: vqadd.s16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +0000112 vqadd.s16 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000113@ CHECK: vqadd.s32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +0000114 vqadd.s32 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000115@ CHECK: vqadd.s64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +0000116 vqadd.s64 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000117@ CHECK: vqadd.u8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000118 vqadd.u8 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000119@ CHECK: vqadd.u16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000120 vqadd.u16 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000121@ CHECK: vqadd.u32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000122 vqadd.u32 q8, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000123@ CHECK: vqadd.u64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000124 vqadd.u64 q8, q8, q9
125
Owen Andersoncd9da222010-11-01 18:33:37 +0000126@ CHECK: vaddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +0000127 vaddhn.i16 d16, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000128@ CHECK: vaddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +0000129 vaddhn.i32 d16, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000130@ CHECK: vaddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf2]
Owen Andersonb101af02010-10-29 01:01:56 +0000131 vaddhn.i64 d16, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000132@ CHECK: vraddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000133 vraddhn.i16 d16, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000134@ CHECK: vraddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000135 vraddhn.i32 d16, q8, q9
Owen Andersoncd9da222010-11-01 18:33:37 +0000136@ CHECK: vraddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf3]
Owen Andersonb101af02010-10-29 01:01:56 +0000137 vraddhn.i64 d16, q8, q9
Jim Grosbach55269152011-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 Grosbach3744a7f2011-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]