xref: /llvm-project/llvm/test/MC/ARM/neon-sub-encoding.s (revision 2937df45a811273c198c4795a3dc11fe7e784424)
1c3ff538dSBob Wilson@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
2a7d98573SOwen Anderson
3a7d98573SOwen Anderson	vsub.i8	d16, d17, d16
4a7d98573SOwen Anderson	vsub.i16	d16, d17, d16
5a7d98573SOwen Anderson	vsub.i32	d16, d17, d16
6a7d98573SOwen Anderson	vsub.i64	d16, d17, d16
7a7d98573SOwen Anderson	vsub.f32	d16, d16, d17
8a7d98573SOwen Anderson	vsub.i8	q8, q8, q9
9a7d98573SOwen Anderson	vsub.i16	q8, q8, q9
10a7d98573SOwen Anderson	vsub.i32	q8, q8, q9
11a7d98573SOwen Anderson	vsub.i64	q8, q8, q9
12a7d98573SOwen Anderson	vsub.f32	q8, q8, q9
1327a33edfSJim Grosbach
14ab9c8bb4SJim Grosbach	vsub.i8  d13, d21
15ab9c8bb4SJim Grosbach	vsub.i16 d14, d22
16ab9c8bb4SJim Grosbach	vsub.i32 d15, d23
17ab9c8bb4SJim Grosbach	vsub.i64 d16, d24
18ab9c8bb4SJim Grosbach	vsub.f32 d17, d25
19ab9c8bb4SJim Grosbach	vsub.i8  q1, q10
20ab9c8bb4SJim Grosbach	vsub.i16 q2, q9
21ab9c8bb4SJim Grosbach	vsub.i32 q3, q8
22ab9c8bb4SJim Grosbach	vsub.i64 q4, q7
23ab9c8bb4SJim Grosbach	vsub.f32 q5, q6
24ab9c8bb4SJim Grosbach
2527a33edfSJim Grosbach@ CHECK: vsub.i8	d16, d17, d16   @ encoding: [0xa0,0x08,0x41,0xf3]
2627a33edfSJim Grosbach@ CHECK: vsub.i16	d16, d17, d16   @ encoding: [0xa0,0x08,0x51,0xf3]
2727a33edfSJim Grosbach@ CHECK: vsub.i32	d16, d17, d16   @ encoding: [0xa0,0x08,0x61,0xf3]
2827a33edfSJim Grosbach@ CHECK: vsub.i64	d16, d17, d16   @ encoding: [0xa0,0x08,0x71,0xf3]
2927a33edfSJim Grosbach@ CHECK: vsub.f32	d16, d16, d17   @ encoding: [0xa1,0x0d,0x60,0xf2]
3027a33edfSJim Grosbach@ CHECK: vsub.i8	q8, q8, q9      @ encoding: [0xe2,0x08,0x40,0xf3]
3127a33edfSJim Grosbach@ CHECK: vsub.i16	q8, q8, q9      @ encoding: [0xe2,0x08,0x50,0xf3]
3227a33edfSJim Grosbach@ CHECK: vsub.i32	q8, q8, q9      @ encoding: [0xe2,0x08,0x60,0xf3]
3327a33edfSJim Grosbach@ CHECK: vsub.i64	q8, q8, q9      @ encoding: [0xe2,0x08,0x70,0xf3]
3427a33edfSJim Grosbach@ CHECK: vsub.f32	q8, q8, q9      @ encoding: [0xe2,0x0d,0x60,0xf2]
35ab9c8bb4SJim Grosbach
36ab9c8bb4SJim Grosbach@ CHECK: vsub.i8	d13, d13, d21   @ encoding: [0x25,0xd8,0x0d,0xf3]
37ab9c8bb4SJim Grosbach@ CHECK: vsub.i16	d14, d14, d22   @ encoding: [0x26,0xe8,0x1e,0xf3]
38ab9c8bb4SJim Grosbach@ CHECK: vsub.i32	d15, d15, d23   @ encoding: [0x27,0xf8,0x2f,0xf3]
39ab9c8bb4SJim Grosbach@ CHECK: vsub.i64	d16, d16, d24   @ encoding: [0xa8,0x08,0x70,0xf3]
40ab9c8bb4SJim Grosbach@ CHECK: vsub.f32	d17, d17, d25   @ encoding: [0xa9,0x1d,0x61,0xf2]
41ab9c8bb4SJim Grosbach@ CHECK: vsub.i8	q1, q1, q10     @ encoding: [0x64,0x28,0x02,0xf3]
42ab9c8bb4SJim Grosbach@ CHECK: vsub.i16	q2, q2, q9      @ encoding: [0x62,0x48,0x14,0xf3]
43ab9c8bb4SJim Grosbach@ CHECK: vsub.i32	q3, q3, q8      @ encoding: [0x60,0x68,0x26,0xf3]
44ab9c8bb4SJim Grosbach@ CHECK: vsub.i64	q4, q4, q7      @ encoding: [0x4e,0x88,0x38,0xf3]
45ab9c8bb4SJim Grosbach@ CHECK: vsub.f32	q5, q5, q6      @ encoding: [0x4c,0xad,0x2a,0xf2]
46ab9c8bb4SJim Grosbach
47ab9c8bb4SJim Grosbach
48ab9c8bb4SJim Grosbach
49a7d98573SOwen Anderson@ CHECK: vsubl.s8	q8, d17, d16    @ encoding: [0xa0,0x02,0xc1,0xf2]
50a7d98573SOwen Anderson	vsubl.s8	q8, d17, d16
51a7d98573SOwen Anderson@ CHECK: vsubl.s16	q8, d17, d16    @ encoding: [0xa0,0x02,0xd1,0xf2]
52a7d98573SOwen Anderson	vsubl.s16	q8, d17, d16
53a7d98573SOwen Anderson@ CHECK: vsubl.s32	q8, d17, d16    @ encoding: [0xa0,0x02,0xe1,0xf2]
54a7d98573SOwen Anderson	vsubl.s32	q8, d17, d16
55a7d98573SOwen Anderson@ CHECK: vsubl.u8	q8, d17, d16    @ encoding: [0xa0,0x02,0xc1,0xf3]
56a7d98573SOwen Anderson	vsubl.u8	q8, d17, d16
57a7d98573SOwen Anderson@ CHECK: vsubl.u16	q8, d17, d16    @ encoding: [0xa0,0x02,0xd1,0xf3]
58a7d98573SOwen Anderson	vsubl.u16	q8, d17, d16
59a7d98573SOwen Anderson@ CHECK: vsubl.u32	q8, d17, d16    @ encoding: [0xa0,0x02,0xe1,0xf3]
60a7d98573SOwen Anderson	vsubl.u32	q8, d17, d16
61a7d98573SOwen Anderson@ CHECK: vsubw.s8	q8, q8, d18     @ encoding: [0xa2,0x03,0xc0,0xf2]
62a7d98573SOwen Anderson	vsubw.s8	q8, q8, d18
63a7d98573SOwen Anderson@ CHECK: vsubw.s16	q8, q8, d18     @ encoding: [0xa2,0x03,0xd0,0xf2]
64a7d98573SOwen Anderson	vsubw.s16	q8, q8, d18
65a7d98573SOwen Anderson@ CHECK: vsubw.s32	q8, q8, d18     @ encoding: [0xa2,0x03,0xe0,0xf2]
66a7d98573SOwen Anderson	vsubw.s32	q8, q8, d18
67a7d98573SOwen Anderson@ CHECK: vsubw.u8	q8, q8, d18     @ encoding: [0xa2,0x03,0xc0,0xf3]
68a7d98573SOwen Anderson	vsubw.u8	q8, q8, d18
69a7d98573SOwen Anderson@ CHECK: vsubw.u16	q8, q8, d18     @ encoding: [0xa2,0x03,0xd0,0xf3]
70a7d98573SOwen Anderson	vsubw.u16	q8, q8, d18
71a7d98573SOwen Anderson@ CHECK: vsubw.u32	q8, q8, d18     @ encoding: [0xa2,0x03,0xe0,0xf3]
72a7d98573SOwen Anderson	vsubw.u32	q8, q8, d18
73a7d98573SOwen Anderson@ CHECK: vhsub.s8	d16, d16, d17   @ encoding: [0xa1,0x02,0x40,0xf2]
74a7d98573SOwen Anderson	vhsub.s8	d16, d16, d17
75a7d98573SOwen Anderson@ CHECK: vhsub.s16	d16, d16, d17   @ encoding: [0xa1,0x02,0x50,0xf2]
76a7d98573SOwen Anderson	vhsub.s16	d16, d16, d17
77a7d98573SOwen Anderson@ CHECK: vhsub.s32	d16, d16, d17   @ encoding: [0xa1,0x02,0x60,0xf2]
78a7d98573SOwen Anderson	vhsub.s32	d16, d16, d17
79a7d98573SOwen Anderson@ CHECK: vhsub.u8	d16, d16, d17   @ encoding: [0xa1,0x02,0x40,0xf3]
80a7d98573SOwen Anderson	vhsub.u8	d16, d16, d17
81a7d98573SOwen Anderson@ CHECK: vhsub.u16	d16, d16, d17   @ encoding: [0xa1,0x02,0x50,0xf3]
82a7d98573SOwen Anderson	vhsub.u16	d16, d16, d17
83a7d98573SOwen Anderson@ CHECK: vhsub.u32	d16, d16, d17   @ encoding: [0xa1,0x02,0x60,0xf3]
84a7d98573SOwen Anderson	vhsub.u32	d16, d16, d17
85a7d98573SOwen Anderson@ CHECK: vhsub.s8	q8, q8, q9      @ encoding: [0xe2,0x02,0x40,0xf2]
86a7d98573SOwen Anderson	vhsub.s8	q8, q8, q9
87a7d98573SOwen Anderson@ CHECK: vhsub.s16	q8, q8, q9      @ encoding: [0xe2,0x02,0x50,0xf2]
88a7d98573SOwen Anderson	vhsub.s16	q8, q8, q9
89a7d98573SOwen Anderson@ CHECK: vhsub.s32	q8, q8, q9      @ encoding: [0xe2,0x02,0x60,0xf2]
90a7d98573SOwen Anderson	vhsub.s32	q8, q8, q9
91a7d98573SOwen Anderson@ CHECK: vqsub.s8	d16, d16, d17   @ encoding: [0xb1,0x02,0x40,0xf2]
92a7d98573SOwen Anderson	vqsub.s8	d16, d16, d17
93a7d98573SOwen Anderson@ CHECK: vqsub.s16	d16, d16, d17   @ encoding: [0xb1,0x02,0x50,0xf2]
94a7d98573SOwen Anderson	vqsub.s16	d16, d16, d17
95a7d98573SOwen Anderson@ CHECK: vqsub.s32	d16, d16, d17   @ encoding: [0xb1,0x02,0x60,0xf2]
96a7d98573SOwen Anderson	vqsub.s32	d16, d16, d17
97a7d98573SOwen Anderson@ CHECK: vqsub.s64	d16, d16, d17   @ encoding: [0xb1,0x02,0x70,0xf2]
98a7d98573SOwen Anderson	vqsub.s64	d16, d16, d17
99a7d98573SOwen Anderson@ CHECK: vqsub.u8	d16, d16, d17   @ encoding: [0xb1,0x02,0x40,0xf3]
100a7d98573SOwen Anderson	vqsub.u8	d16, d16, d17
101a7d98573SOwen Anderson@ CHECK: vqsub.u16	d16, d16, d17   @ encoding: [0xb1,0x02,0x50,0xf3]
102a7d98573SOwen Anderson	vqsub.u16	d16, d16, d17
103a7d98573SOwen Anderson@ CHECK: vqsub.u32	d16, d16, d17   @ encoding: [0xb1,0x02,0x60,0xf3]
104a7d98573SOwen Anderson	vqsub.u32	d16, d16, d17
105a7d98573SOwen Anderson@ CHECK: vqsub.u64	d16, d16, d17   @ encoding: [0xb1,0x02,0x70,0xf3]
106a7d98573SOwen Anderson	vqsub.u64	d16, d16, d17
107a7d98573SOwen Anderson@ CHECK: vqsub.s8	q8, q8, q9      @ encoding: [0xf2,0x02,0x40,0xf2]
108a7d98573SOwen Anderson	vqsub.s8	q8, q8, q9
109a7d98573SOwen Anderson@ CHECK: vqsub.s16	q8, q8, q9      @ encoding: [0xf2,0x02,0x50,0xf2]
110a7d98573SOwen Anderson	vqsub.s16	q8, q8, q9
111a7d98573SOwen Anderson@ CHECK: vqsub.s32	q8, q8, q9      @ encoding: [0xf2,0x02,0x60,0xf2]
112a7d98573SOwen Anderson	vqsub.s32	q8, q8, q9
113a7d98573SOwen Anderson@ CHECK: vqsub.s64	q8, q8, q9      @ encoding: [0xf2,0x02,0x70,0xf2]
114a7d98573SOwen Anderson	vqsub.s64	q8, q8, q9
115a7d98573SOwen Anderson@ CHECK: vqsub.u8	q8, q8, q9      @ encoding: [0xf2,0x02,0x40,0xf3]
116a7d98573SOwen Anderson	vqsub.u8	q8, q8, q9
117a7d98573SOwen Anderson@ CHECK: vqsub.u16	q8, q8, q9      @ encoding: [0xf2,0x02,0x50,0xf3]
118a7d98573SOwen Anderson	vqsub.u16	q8, q8, q9
119a7d98573SOwen Anderson@ CHECK: vqsub.u32	q8, q8, q9      @ encoding: [0xf2,0x02,0x60,0xf3]
120a7d98573SOwen Anderson	vqsub.u32	q8, q8, q9
121a7d98573SOwen Anderson@ CHECK: vqsub.u64	q8, q8, q9      @ encoding: [0xf2,0x02,0x70,0xf3]
122a7d98573SOwen Anderson	vqsub.u64	q8, q8, q9
123a7d98573SOwen Anderson@ CHECK: vsubhn.i16	d16, q8, q9     @ encoding: [0xa2,0x06,0xc0,0xf2]
124a7d98573SOwen Anderson	vsubhn.i16	d16, q8, q9
125a7d98573SOwen Anderson@ CHECK: vsubhn.i32	d16, q8, q9     @ encoding: [0xa2,0x06,0xd0,0xf2]
126a7d98573SOwen Anderson	vsubhn.i32	d16, q8, q9
127a7d98573SOwen Anderson@ CHECK: vsubhn.i64	d16, q8, q9     @ encoding: [0xa2,0x06,0xe0,0xf2]
128a7d98573SOwen Anderson	vsubhn.i64	d16, q8, q9
129a7d98573SOwen Anderson@ CHECK: vrsubhn.i16	d16, q8, q9     @ encoding: [0xa2,0x06,0xc0,0xf3]
130a7d98573SOwen Anderson	vrsubhn.i16	d16, q8, q9
131a7d98573SOwen Anderson@ CHECK: vrsubhn.i32	d16, q8, q9     @ encoding: [0xa2,0x06,0xd0,0xf3]
132a7d98573SOwen Anderson	vrsubhn.i32	d16, q8, q9
133a7d98573SOwen Anderson@ CHECK: vrsubhn.i64	d16, q8, q9     @ encoding: [0xa2,0x06,0xe0,0xf3]
134a7d98573SOwen Anderson	vrsubhn.i64	d16, q8, q9
1352bf5f739SJim Grosbach
1362bf5f739SJim Grosbach	vhsub.s8	d11, d24
1372bf5f739SJim Grosbach	vhsub.s16	d12, d23
1382bf5f739SJim Grosbach	vhsub.s32	d13, d22
1392bf5f739SJim Grosbach	vhsub.u8	d14, d21
1402bf5f739SJim Grosbach	vhsub.u16	d15, d20
1412bf5f739SJim Grosbach	vhsub.u32	d16, d19
1422bf5f739SJim Grosbach	vhsub.s8	q1, q12
1432bf5f739SJim Grosbach	vhsub.s16	q2, q11
1442bf5f739SJim Grosbach	vhsub.s32	q3, q10
1452bf5f739SJim Grosbach	vhsub.u8	q4, q9
1462bf5f739SJim Grosbach	vhsub.u16	q5, q8
1472bf5f739SJim Grosbach	vhsub.u32	q6, q7
1482bf5f739SJim Grosbach
1492bf5f739SJim Grosbach@ CHECK: vhsub.s8	d11, d11, d24   @ encoding: [0x28,0xb2,0x0b,0xf2]
1502bf5f739SJim Grosbach@ CHECK: vhsub.s16	d12, d12, d23   @ encoding: [0x27,0xc2,0x1c,0xf2]
1512bf5f739SJim Grosbach@ CHECK: vhsub.s32	d13, d13, d22   @ encoding: [0x26,0xd2,0x2d,0xf2]
1522bf5f739SJim Grosbach@ CHECK: vhsub.u8	d14, d14, d21   @ encoding: [0x25,0xe2,0x0e,0xf3]
1532bf5f739SJim Grosbach@ CHECK: vhsub.u16	d15, d15, d20   @ encoding: [0x24,0xf2,0x1f,0xf3]
1542bf5f739SJim Grosbach@ CHECK: vhsub.u32	d16, d16, d19   @ encoding: [0xa3,0x02,0x60,0xf3]
1552bf5f739SJim Grosbach@ CHECK: vhsub.s8	q1, q1, q12     @ encoding: [0x68,0x22,0x02,0xf2]
1562bf5f739SJim Grosbach@ CHECK: vhsub.s16	q2, q2, q11     @ encoding: [0x66,0x42,0x14,0xf2]
1572bf5f739SJim Grosbach@ CHECK: vhsub.s32	q3, q3, q10     @ encoding: [0x64,0x62,0x26,0xf2]
1582bf5f739SJim Grosbach@ CHECK: vhsub.u8	q4, q4, q9      @ encoding: [0x62,0x82,0x08,0xf3]
1592bf5f739SJim Grosbach@ CHECK: vhsub.u16	q5, q5, q8      @ encoding: [0x60,0xa2,0x1a,0xf3]
1602bf5f739SJim Grosbach@ CHECK: vhsub.u32	q6, q6, q7      @ encoding: [0x4e,0xc2,0x2c,0xf3]
161*2937df45SJim Grosbach
162*2937df45SJim Grosbach
163*2937df45SJim Grosbach	vsubw.s8  q6, d5
164*2937df45SJim Grosbach	vsubw.s16 q7, d1
165*2937df45SJim Grosbach	vsubw.s32 q8, d2
166*2937df45SJim Grosbach	vsubw.u8  q6, d5
167*2937df45SJim Grosbach	vsubw.u16 q7, d1
168*2937df45SJim Grosbach	vsubw.u32 q8, d2
169*2937df45SJim Grosbach
170*2937df45SJim Grosbach@ CHECK: vsubw.s8	q6, q6, d5      @ encoding: [0x05,0xc3,0x8c,0xf2]
171*2937df45SJim Grosbach@ CHECK: vsubw.s16	q7, q7, d1      @ encoding: [0x01,0xe3,0x9e,0xf2]
172*2937df45SJim Grosbach@ CHECK: vsubw.s32	q8, q8, d2      @ encoding: [0x82,0x03,0xe0,0xf2]
173*2937df45SJim Grosbach@ CHECK: vsubw.u8	q6, q6, d5      @ encoding: [0x05,0xc3,0x8c,0xf3]
174*2937df45SJim Grosbach@ CHECK: vsubw.u16	q7, q7, d1      @ encoding: [0x01,0xe3,0x9e,0xf3]
175*2937df45SJim Grosbach@ CHECK: vsubw.u32	q8, q8, d2      @ encoding: [0x82,0x03,0xe0,0xf3]
176