[mips] Add initial release notes for MIPS32.
[oota-llvm.git] / test / MC / ARM / neon-cmp-encoding.s
1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
2
3         vceq.i8 d16, d16, d17
4         vceq.i16        d16, d16, d17
5         vceq.i32        d16, d16, d17
6         vceq.f32        d16, d16, d17
7         vceq.i8 q8, q8, q9
8         vceq.i16        q8, q8, q9
9         vceq.i32        q8, q8, q9
10         vceq.f32        q8, q8, q9
11
12 @ CHECK: vceq.i8        d16, d16, d17   @ encoding: [0xb1,0x08,0x40,0xf3]
13 @ CHECK: vceq.i16       d16, d16, d17   @ encoding: [0xb1,0x08,0x50,0xf3]
14 @ CHECK: vceq.i32       d16, d16, d17   @ encoding: [0xb1,0x08,0x60,0xf3]
15 @ CHECK: vceq.f32       d16, d16, d17   @ encoding: [0xa1,0x0e,0x40,0xf2]
16 @ CHECK: vceq.i8        q8, q8, q9      @ encoding: [0xf2,0x08,0x40,0xf3]
17 @ CHECK: vceq.i16       q8, q8, q9      @ encoding: [0xf2,0x08,0x50,0xf3]
18 @ CHECK: vceq.i32       q8, q8, q9      @ encoding: [0xf2,0x08,0x60,0xf3]
19 @ CHECK: vceq.f32       q8, q8, q9      @ encoding: [0xe2,0x0e,0x40,0xf2]
20
21         vcge.s8 d16, d16, d17
22         vcge.s16        d16, d16, d17
23         vcge.s32        d16, d16, d17
24         vcge.u8 d16, d16, d17
25         vcge.u16        d16, d16, d17
26         vcge.u32        d16, d16, d17
27         vcge.f32        d16, d16, d17
28         vcge.s8 q8, q8, q9
29         vcge.s16        q8, q8, q9
30         vcge.s32        q8, q8, q9
31         vcge.u8 q8, q8, q9
32         vcge.u16        q8, q8, q9
33         vcge.u32        q8, q8, q9
34         vcge.f32        q8, q8, q9
35         vacge.f32       d16, d16, d17
36         vacge.f32       q8, q8, q9
37
38 @ CHECK: vcge.s8        d16, d16, d17   @ encoding: [0xb1,0x03,0x40,0xf2]
39 @ CHECK: vcge.s16       d16, d16, d17   @ encoding: [0xb1,0x03,0x50,0xf2]
40 @ CHECK: vcge.s32       d16, d16, d17   @ encoding: [0xb1,0x03,0x60,0xf2]
41 @ CHECK: vcge.u8        d16, d16, d17   @ encoding: [0xb1,0x03,0x40,0xf3]
42 @ CHECK: vcge.u16       d16, d16, d17   @ encoding: [0xb1,0x03,0x50,0xf3]
43 @ CHECK: vcge.u32       d16, d16, d17   @ encoding: [0xb1,0x03,0x60,0xf3]
44 @ CHECK: vcge.f32       d16, d16, d17   @ encoding: [0xa1,0x0e,0x40,0xf3]
45 @ CHECK: vcge.s8        q8, q8, q9      @ encoding: [0xf2,0x03,0x40,0xf2]
46 @ CHECK: vcge.s16       q8, q8, q9      @ encoding: [0xf2,0x03,0x50,0xf2]
47 @ CHECK: vcge.s32       q8, q8, q9      @ encoding: [0xf2,0x03,0x60,0xf2]
48 @ CHECK: vcge.u8        q8, q8, q9      @ encoding: [0xf2,0x03,0x40,0xf3]
49 @ CHECK: vcge.u16       q8, q8, q9      @ encoding: [0xf2,0x03,0x50,0xf3]
50 @ CHECK: vcge.u32       q8, q8, q9      @ encoding: [0xf2,0x03,0x60,0xf3]
51 @ CHECK: vcge.f32       q8, q8, q9      @ encoding: [0xe2,0x0e,0x40,0xf3]
52 @ CHECK: vacge.f32      d16, d16, d17   @ encoding: [0xb1,0x0e,0x40,0xf3]
53 @ CHECK: vacge.f32      q8, q8, q9      @ encoding: [0xf2,0x0e,0x40,0xf3]
54
55         vcgt.s8 d16, d16, d17
56         vcgt.s16        d16, d16, d17
57         vcgt.s32        d16, d16, d17
58         vcgt.u8 d16, d16, d17
59         vcgt.u16        d16, d16, d17
60         vcgt.u32        d16, d16, d17
61         vcgt.f32        d16, d16, d17
62         vcgt.s8 q8, q8, q9
63         vcgt.s16        q8, q8, q9
64         vcgt.s32        q8, q8, q9
65         vcgt.u8 q8, q8, q9
66         vcgt.u16        q8, q8, q9
67         vcgt.u32        q8, q8, q9
68         vcgt.f32        q8, q8, q9
69         vacgt.f32       d16, d16, d17
70         vacgt.f32       q8, q8, q9
71
72 @ CHECK: vcgt.s8        d16, d16, d17   @ encoding: [0xa1,0x03,0x40,0xf2]
73 @ CHECK: vcgt.s16       d16, d16, d17   @ encoding: [0xa1,0x03,0x50,0xf2]
74 @ CHECK: vcgt.s32       d16, d16, d17   @ encoding: [0xa1,0x03,0x60,0xf2]
75 @ CHECK: vcgt.u8        d16, d16, d17   @ encoding: [0xa1,0x03,0x40,0xf3]
76 @ CHECK: vcgt.u16       d16, d16, d17   @ encoding: [0xa1,0x03,0x50,0xf3]
77 @ CHECK: vcgt.u32       d16, d16, d17   @ encoding: [0xa1,0x03,0x60,0xf3]
78 @ CHECK: vcgt.f32       d16, d16, d17   @ encoding: [0xa1,0x0e,0x60,0xf3]
79 @ CHECK: vcgt.s8        q8, q8, q9      @ encoding: [0xe2,0x03,0x40,0xf2]
80 @ CHECK: vcgt.s16       q8, q8, q9      @ encoding: [0xe2,0x03,0x50,0xf2]
81 @ CHECK: vcgt.s32       q8, q8, q9      @ encoding: [0xe2,0x03,0x60,0xf2]
82 @ CHECK: vcgt.u8        q8, q8, q9      @ encoding: [0xe2,0x03,0x40,0xf3]
83 @ CHECK: vcgt.u16       q8, q8, q9      @ encoding: [0xe2,0x03,0x50,0xf3]
84 @ CHECK: vcgt.u32       q8, q8, q9      @ encoding: [0xe2,0x03,0x60,0xf3]
85 @ CHECK: vcgt.f32       q8, q8, q9      @ encoding: [0xe2,0x0e,0x60,0xf3]
86 @ CHECK: vacgt.f32      d16, d16, d17   @ encoding: [0xb1,0x0e,0x60,0xf3]
87 @ CHECK: vacgt.f32      q8, q8, q9      @ encoding: [0xf2,0x0e,0x60,0xf3]
88
89         vtst.8  d16, d16, d17
90         vtst.16 d16, d16, d17
91         vtst.32 d16, d16, d17
92         vtst.8  q8, q8, q9
93         vtst.16 q8, q8, q9
94         vtst.32 q8, q8, q9
95
96 @ CHECK: vtst.8 d16, d16, d17           @ encoding: [0xb1,0x08,0x40,0xf2]
97 @ CHECK: vtst.16        d16, d16, d17   @ encoding: [0xb1,0x08,0x50,0xf2]
98 @ CHECK: vtst.32        d16, d16, d17   @ encoding: [0xb1,0x08,0x60,0xf2]
99 @ CHECK: vtst.8 q8, q8, q9              @ encoding: [0xf2,0x08,0x40,0xf2]
100 @ CHECK: vtst.16        q8, q8, q9      @ encoding: [0xf2,0x08,0x50,0xf2]
101 @ CHECK: vtst.32        q8, q8, q9      @ encoding: [0xf2,0x08,0x60,0xf2]
102
103         vceq.i8 d16, d16, #0
104         vcge.s8 d16, d16, #0
105         vcle.s8 d16, d16, #0
106         vcgt.s8 d16, d16, #0
107         vclt.s8 d16, d16, #0
108
109 @ CHECK: vceq.i8        d16, d16, #0    @ encoding: [0x20,0x01,0xf1,0xf3]
110 @ CHECK: vcge.s8        d16, d16, #0    @ encoding: [0xa0,0x00,0xf1,0xf3]
111 @ CHECK: vcle.s8        d16, d16, #0    @ encoding: [0xa0,0x01,0xf1,0xf3]
112 @ CHECK: vcgt.s8        d16, d16, #0    @ encoding: [0x20,0x00,0xf1,0xf3]
113 @ CHECK: vclt.s8        d16, d16, #0    @ encoding: [0x20,0x02,0xf1,0xf3]
114
115
116         vclt.s8 q12, q13, q3
117         vclt.s16 q12, q13, q3
118         vclt.s32 q12, q13, q3
119         vclt.u8 q12, q13, q3
120         vclt.u16 q12, q13, q3
121         vclt.u32 q12, q13, q3
122         vclt.f32 q12, q13, q3
123
124         vclt.s8 d12, d13, d3
125         vclt.s16 d12, d13, d3
126         vclt.s32 d12, d13, d3
127         vclt.u8 d12, d13, d3
128         vclt.u16 d12, d13, d3
129         vclt.u32 d12, d13, d3
130         vclt.f32 d12, d13, d3
131
132 @ CHECK: vcgt.s8        q12, q3, q13    @ encoding: [0x6a,0x83,0x46,0xf2]
133 @ CHECK: vcgt.s16       q12, q3, q13    @ encoding: [0x6a,0x83,0x56,0xf2]
134 @ CHECK: vcgt.s32       q12, q3, q13    @ encoding: [0x6a,0x83,0x66,0xf2]
135 @ CHECK: vcgt.u8        q12, q3, q13    @ encoding: [0x6a,0x83,0x46,0xf3]
136 @ CHECK: vcgt.u16       q12, q3, q13    @ encoding: [0x6a,0x83,0x56,0xf3]
137 @ CHECK: vcgt.u32       q12, q3, q13    @ encoding: [0x6a,0x83,0x66,0xf3]
138 @ CHECK: vcgt.f32       q12, q3, q13    @ encoding: [0x6a,0x8e,0x66,0xf3]
139
140 @ CHECK: vcgt.s8        d12, d3, d13    @ encoding: [0x0d,0xc3,0x03,0xf2]
141 @ CHECK: vcgt.s16       d12, d3, d13    @ encoding: [0x0d,0xc3,0x13,0xf2]
142 @ CHECK: vcgt.s32       d12, d3, d13    @ encoding: [0x0d,0xc3,0x23,0xf2]
143 @ CHECK: vcgt.u8        d12, d3, d13    @ encoding: [0x0d,0xc3,0x03,0xf3]
144 @ CHECK: vcgt.u16       d12, d3, d13    @ encoding: [0x0d,0xc3,0x13,0xf3]
145 @ CHECK: vcgt.u32       d12, d3, d13    @ encoding: [0x0d,0xc3,0x23,0xf3]
146 @ CHECK: vcgt.f32       d12, d3, d13    @ encoding: [0x0d,0xce,0x23,0xf3]
147
148         vcle.s8 d16, d16, d17
149         vcle.s16 d16, d16, d17
150         vcle.s32 d16, d16, d17
151         vcle.u8 d16, d16, d17
152         vcle.u16 d16, d16, d17
153         vcle.u32 d16, d16, d17
154         vcle.f32 d16, d16, d17
155         vcle.s8 q8, q8, q9
156         vcle.s16 q8, q8, q9
157         vcle.s32 q8, q8, q9
158         vcle.u8 q8, q8, q9
159         vcle.u16 q8, q8, q9
160         vcle.u32 q8, q8, q9
161         vcle.f32 q8, q8, q9
162
163 @ CHECK: vcge.s8        d16, d17, d16           @ encoding: [0xb0,0x03,0x41,0xf2]
164 @ CHECK: vcge.s16       d16, d17, d16   @ encoding: [0xb0,0x03,0x51,0xf2]
165 @ CHECK: vcge.s32       d16, d17, d16   @ encoding: [0xb0,0x03,0x61,0xf2]
166 @ CHECK: vcge.u8        d16, d17, d16           @ encoding: [0xb0,0x03,0x41,0xf3]
167 @ CHECK: vcge.u16       d16, d17, d16   @ encoding: [0xb0,0x03,0x51,0xf3]
168 @ CHECK: vcge.u32       d16, d17, d16   @ encoding: [0xb0,0x03,0x61,0xf3]
169 @ CHECK: vcge.f32       d16, d17, d16   @ encoding: [0xa0,0x0e,0x41,0xf3]
170 @ CHECK: vcge.s8        q8, q9, q8              @ encoding: [0xf0,0x03,0x42,0xf2]
171 @ CHECK: vcge.s16       q8, q9, q8      @ encoding: [0xf0,0x03,0x52,0xf2]
172 @ CHECK: vcge.s32       q8, q9, q8      @ encoding: [0xf0,0x03,0x62,0xf2]
173 @ CHECK: vcge.u8        q8, q9, q8              @ encoding: [0xf0,0x03,0x42,0xf3]
174 @ CHECK: vcge.u16       q8, q9, q8      @ encoding: [0xf0,0x03,0x52,0xf3]
175 @ CHECK: vcge.u32       q8, q9, q8      @ encoding: [0xf0,0x03,0x62,0xf3]
176 @ CHECK: vcge.f32       q8, q9, q8      @ encoding: [0xe0,0x0e,0x42,0xf3]
177
178
179 @ VACLT is an alias for VACGT w/ the source operands reversed.
180 @ VACLE is an alias for VACGE w/ the source operands reversed.
181         vaclt.f32 q9, q11, q12
182         vaclt.f32 d9, d11, d12
183         vaclt.f32 q11, q12
184         vaclt.f32 d11, d12
185         vacle.f32 q9, q11, q12
186         vacle.f32 d9, d11, d12
187         vacle.f32 q11, q12
188         vacle.f32 d11, d12
189
190 @ CHECK: vacgt.f32      q9, q12, q11    @ encoding: [0xf6,0x2e,0x68,0xf3]
191 @ CHECK: vacgt.f32      d9, d12, d11    @ encoding: [0x1b,0x9e,0x2c,0xf3]
192 @ CHECK: vacgt.f32      q11, q12, q11   @ encoding: [0xf6,0x6e,0x68,0xf3]
193 @ CHECK: vacgt.f32      d11, d12, d11   @ encoding: [0x1b,0xbe,0x2c,0xf3]
194 @ CHECK: vacge.f32      q9, q12, q11    @ encoding: [0xf6,0x2e,0x48,0xf3]
195 @ CHECK: vacge.f32      d9, d12, d11    @ encoding: [0x1b,0x9e,0x0c,0xf3]
196 @ CHECK: vacge.f32      q11, q12, q11   @ encoding: [0xf6,0x6e,0x48,0xf3]
197 @ CHECK: vacge.f32      d11, d12, d11   @ encoding: [0x1b,0xbe,0x0c,0xf3]