More Thumb encodings.
[oota-llvm.git] / test / MC / ARM / neont2-add-encoding.s
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
2
3 .code 16
4
5 @ CHECK: vadd.i8        d16, d17, d16           @ encoding: [0xa0,0x08,0x41,0xef]
6         vadd.i8 d16, d17, d16
7 @ CHECK: vadd.i16       d16, d17, d16   @ encoding: [0xa0,0x08,0x51,0xef]
8         vadd.i16        d16, d17, d16
9 @ CHECK: vadd.i64       d16, d17, d16   @ encoding: [0xa0,0x08,0x71,0xef]
10         vadd.i64        d16, d17, d16
11 @ CHECK: vadd.i32       d16, d17, d16   @ encoding: [0xa0,0x08,0x61,0xef]
12         vadd.i32        d16, d17, d16
13 @ CHECK: vadd.f32       d16, d16, d17   @ encoding: [0xa1,0x0d,0x40,0xef]
14         vadd.f32        d16, d16, d17
15 @ CHECK: vadd.f32       q8, q8, q9      @ encoding: [0xe2,0x0d,0x40,0xef]
16         vadd.f32        q8, q8, q9
17
18 @ CHECK: vaddl.s8       q8, d17, d16    @ encoding: [0xa0,0x00,0xc1,0xef]
19         vaddl.s8        q8, d17, d16
20 @ CHECK: vaddl.s16      q8, d17, d16    @ encoding: [0xa0,0x00,0xd1,0xef]
21         vaddl.s16       q8, d17, d16
22 @ CHECK: vaddl.s32      q8, d17, d16    @ encoding: [0xa0,0x00,0xe1,0xef]
23         vaddl.s32       q8, d17, d16
24 @ CHECK: vaddl.u8       q8, d17, d16    @ encoding: [0xa0,0x00,0xc1,0xff]
25         vaddl.u8        q8, d17, d16
26 @ CHECK: vaddl.u16      q8, d17, d16    @ encoding: [0xa0,0x00,0xd1,0xff]
27         vaddl.u16       q8, d17, d16
28 @ CHECK: vaddl.u32      q8, d17, d16    @ encoding: [0xa0,0x00,0xe1,0xff]
29         vaddl.u32       q8, d17, d16
30
31 @ CHECK: vaddw.s8       q8, q8, d18     @ encoding: [0xa2,0x01,0xc0,0xef]
32         vaddw.s8        q8, q8, d18
33 @ CHECK: vaddw.s16      q8, q8, d18     @ encoding: [0xa2,0x01,0xd0,0xef]
34         vaddw.s16       q8, q8, d18
35 @ CHECK: vaddw.s32      q8, q8, d18     @ encoding: [0xa2,0x01,0xe0,0xef]
36         vaddw.s32       q8, q8, d18
37 @ CHECK: vaddw.u8       q8, q8, d18     @ encoding: [0xa2,0x01,0xc0,0xff]
38         vaddw.u8        q8, q8, d18
39 @ CHECK: vaddw.u16      q8, q8, d18     @ encoding: [0xa2,0x01,0xd0,0xff]
40         vaddw.u16       q8, q8, d18
41 @ CHECK: vaddw.u32      q8, q8, d18     @ encoding: [0xa2,0x01,0xe0,0xff]
42         vaddw.u32       q8, q8, d18
43
44 @ CHECK: vhadd.s8       d16, d16, d17   @ encoding: [0xa1,0x00,0x40,0xef]
45         vhadd.s8        d16, d16, d17
46 @ CHECK: vhadd.s16      d16, d16, d17   @ encoding: [0xa1,0x00,0x50,0xef]
47         vhadd.s16       d16, d16, d17
48 @ CHECK: vhadd.s32      d16, d16, d17   @ encoding: [0xa1,0x00,0x60,0xef]
49         vhadd.s32       d16, d16, d17
50 @ CHECK: vhadd.u8       d16, d16, d17   @ encoding: [0xa1,0x00,0x40,0xff]
51         vhadd.u8        d16, d16, d17
52 @ CHECK: vhadd.u16      d16, d16, d17   @ encoding: [0xa1,0x00,0x50,0xff]
53         vhadd.u16       d16, d16, d17
54 @ CHECK: vhadd.u32      d16, d16, d17   @ encoding: [0xa1,0x00,0x60,0xff]
55         vhadd.u32       d16, d16, d17
56 @ CHECK: vhadd.s8       q8, q8, q9      @ encoding: [0xe2,0x00,0x40,0xef]
57         vhadd.s8        q8, q8, q9
58 @ CHECK: vhadd.s16      q8, q8, q9      @ encoding: [0xe2,0x00,0x50,0xef]
59         vhadd.s16       q8, q8, q9
60 @ CHECK: vhadd.s32      q8, q8, q9      @ encoding: [0xe2,0x00,0x60,0xef]
61         vhadd.s32       q8, q8, q9
62   @ CHECK: vhadd.u8     q8, q8, q9      @ encoding: [0xe2,0x00,0x40,0xff]
63         vhadd.u8        q8, q8, q9
64 @ CHECK: vhadd.u16      q8, q8, q9      @ encoding: [0xe2,0x00,0x50,0xff]
65         vhadd.u16       q8, q8, q9
66 @ CHECK: vhadd.u32      q8, q8, q9      @ encoding: [0xe2,0x00,0x60,0xff]
67         vhadd.u32       q8, q8, q9
68         
69 @ CHECK: vrhadd.s8      d16, d16, d17   @ encoding: [0xa1,0x01,0x40,0xef]
70         vrhadd.s8       d16, d16, d17
71 @ CHECK: vrhadd.s16     d16, d16, d17   @ encoding: [0xa1,0x01,0x50,0xef]
72         vrhadd.s16      d16, d16, d17
73 @ CHECK: vrhadd.s32     d16, d16, d17   @ encoding: [0xa1,0x01,0x60,0xef]
74         vrhadd.s32      d16, d16, d17
75 @ CHECK: vrhadd.u8      d16, d16, d17   @ encoding: [0xa1,0x01,0x40,0xff]
76         vrhadd.u8       d16, d16, d17
77 @ CHECK: vrhadd.u16     d16, d16, d17   @ encoding: [0xa1,0x01,0x50,0xff]
78         vrhadd.u16      d16, d16, d17
79 @ CHECK: vrhadd.u32     d16, d16, d17   @ encoding: [0xa1,0x01,0x60,0xff]
80         vrhadd.u32      d16, d16, d17
81 @ CHECK: vrhadd.s8      q8, q8, q9      @ encoding: [0xe2,0x01,0x40,0xef]
82         vrhadd.s8       q8, q8, q9
83 @ CHECK: vrhadd.s16     q8, q8, q9      @ encoding: [0xe2,0x01,0x50,0xef]
84         vrhadd.s16      q8, q8, q9
85 @ CHECK: vrhadd.s32     q8, q8, q9      @ encoding: [0xe2,0x01,0x60,0xef]
86         vrhadd.s32      q8, q8, q9
87 @ CHECK: vrhadd.u8      q8, q8, q9      @ encoding: [0xe2,0x01,0x40,0xff]
88         vrhadd.u8       q8, q8, q9
89 @ CHECK: vrhadd.u16     q8, q8, q9      @ encoding: [0xe2,0x01,0x50,0xff]
90         vrhadd.u16      q8, q8, q9
91 @ CHECK: vrhadd.u32     q8, q8, q9      @ encoding: [0xe2,0x01,0x60,0xff]
92         vrhadd.u32      q8, q8, q9
93
94 @ CHECK: vqadd.s8       d16, d16, d17   @ encoding: [0xb1,0x00,0x40,0xef]
95         vqadd.s8        d16, d16, d17
96 @ CHECK: vqadd.s16      d16, d16, d17   @ encoding: [0xb1,0x00,0x50,0xef]
97         vqadd.s16       d16, d16, d17
98 @ CHECK: vqadd.s32      d16, d16, d17   @ encoding: [0xb1,0x00,0x60,0xef]
99         vqadd.s32       d16, d16, d17
100 @ CHECK: vqadd.s64      d16, d16, d17   @ encoding: [0xb1,0x00,0x70,0xef]
101         vqadd.s64       d16, d16, d17
102 @ CHECK: vqadd.u8       d16, d16, d17   @ encoding: [0xb1,0x00,0x40,0xff]
103         vqadd.u8        d16, d16, d17
104 @ CHECK: vqadd.u16      d16, d16, d17   @ encoding: [0xb1,0x00,0x50,0xff]
105         vqadd.u16       d16, d16, d17
106 @ CHECK: vqadd.u32      d16, d16, d17   @ encoding: [0xb1,0x00,0x60,0xff]
107         vqadd.u32       d16, d16, d17
108 @ CHECK: vqadd.u64      d16, d16, d17   @ encoding: [0xb1,0x00,0x70,0xff]
109         vqadd.u64       d16, d16, d17
110 @ CHECK: vqadd.s8       q8, q8, q9      @ encoding: [0xf2,0x00,0x40,0xef]
111         vqadd.s8        q8, q8, q9
112 @ CHECK: vqadd.s16      q8, q8, q9      @ encoding: [0xf2,0x00,0x50,0xef]
113         vqadd.s16       q8, q8, q9
114 @ CHECK: vqadd.s32      q8, q8, q9      @ encoding: [0xf2,0x00,0x60,0xef]
115         vqadd.s32       q8, q8, q9
116 @ CHECK: vqadd.s64      q8, q8, q9      @ encoding: [0xf2,0x00,0x70,0xef]
117         vqadd.s64       q8, q8, q9
118 @ CHECK: vqadd.u8       q8, q8, q9      @ encoding: [0xf2,0x00,0x40,0xff]
119         vqadd.u8        q8, q8, q9
120 @ CHECK: vqadd.u16      q8, q8, q9      @ encoding: [0xf2,0x00,0x50,0xff]
121         vqadd.u16       q8, q8, q9
122 @ CHECK: vqadd.u32      q8, q8, q9      @ encoding: [0xf2,0x00,0x60,0xff]
123         vqadd.u32       q8, q8, q9
124 @ CHECK: vqadd.u64      q8, q8, q9      @ encoding: [0xf2,0x00,0x70,0xff]
125         vqadd.u64       q8, q8, q9
126
127 @ CHECK: vaddhn.i16     d16, q8, q9     @ encoding: [0xa2,0x04,0xc0,0xef]
128         vaddhn.i16      d16, q8, q9
129 @ CHECK: vaddhn.i32     d16, q8, q9     @ encoding: [0xa2,0x04,0xd0,0xef]
130         vaddhn.i32      d16, q8, q9
131 @ CHECK: vaddhn.i64     d16, q8, q9     @ encoding: [0xa2,0x04,0xe0,0xef]
132         vaddhn.i64      d16, q8, q9
133 @ CHECK: vraddhn.i16    d16, q8, q9     @ encoding: [0xa2,0x04,0xc0,0xff]
134         vraddhn.i16     d16, q8, q9
135 @ CHECK: vraddhn.i32    d16, q8, q9     @ encoding: [0xa2,0x04,0xd0,0xff]
136         vraddhn.i32     d16, q8, q9
137 @ CHECK: vraddhn.i64    d16, q8, q9     @ encoding: [0xa2,0x04,0xe0,0xff]
138         vraddhn.i64     d16, q8, q9