1 @ RUN
: llvm-mc
-triple armv8a-none-eabi
-mattr
=+fullfp16
-show-encoding
< %s | FileCheck
%s
--check-prefix
=ARM
2 @ RUN
: llvm-mc
-triple armv8a-none-eabi
-mattr
=+fullfp16
,+thumb-mode
-show-encoding
< %s | FileCheck
%s
--check-prefix
=THUMB
3 @ RUN
: llvm-mc
-triple thumbv8.1m.main
-mattr
=+mve.fp
,+fullfp16
-show-encoding
< %s | FileCheck
%s
--check-prefix
=THUMB
4 @ RUN
: llvm-mc
-triple thumbv8.1m.main
-mattr
=+fullfp16
-show-encoding
< %s | FileCheck
%s
--check-prefix
=THUMB
7 @ ARM
: vadd.
f16 s0
, s1
, s0 @ encoding
: [0x80,0x09,0x30,0xee]
8 @ THUMB
: vadd.
f16 s0
, s1
, s0 @ encoding
: [0x30,0xee,0x80,0x09]
11 @ ARM
: vsub.
f16 s0
, s1
, s0 @ encoding
: [0xc0,0x09,0x30,0xee]
12 @ THUMB
: vsub.
f16 s0
, s1
, s0 @ encoding
: [0x30,0xee,0xc0,0x09]
15 @ ARM
: vdiv.
f16 s0
, s1
, s0 @ encoding
: [0x80,0x09,0x80,0xee]
16 @ THUMB
: vdiv.
f16 s0
, s1
, s0 @ encoding
: [0x80,0xee,0x80,0x09]
19 @ ARM
: vmul.
f16 s0
, s1
, s0 @ encoding
: [0x80,0x09,0x20,0xee]
20 @ THUMB
: vmul.
f16 s0
, s1
, s0 @ encoding
: [0x20,0xee,0x80,0x09]
23 @ ARM
: vnmul.
f16 s0
, s1
, s0 @ encoding
: [0xc0,0x09,0x20,0xee]
24 @ THUMB
: vnmul.
f16 s0
, s1
, s0 @ encoding
: [0x20,0xee,0xc0,0x09]
27 @ ARM
: vmla.
f16 s1
, s2
, s0 @ encoding
: [0x00,0x09,0x41,0xee]
28 @ THUMB
: vmla.
f16 s1
, s2
, s0 @ encoding
: [0x41,0xee,0x00,0x09]
31 @ ARM
: vmls.
f16 s1
, s2
, s0 @ encoding
: [0x40,0x09,0x41,0xee]
32 @ THUMB
: vmls.
f16 s1
, s2
, s0 @ encoding
: [0x41,0xee,0x40,0x09]
35 @ ARM
: vnmla.
f16 s1
, s2
, s0 @ encoding
: [0x40,0x09,0x51,0xee]
36 @ THUMB
: vnmla.
f16 s1
, s2
, s0 @ encoding
: [0x51,0xee,0x40,0x09]
39 @ ARM
: vnmls.
f16 s1
, s2
, s0 @ encoding
: [0x00,0x09,0x51,0xee]
40 @ THUMB
: vnmls.
f16 s1
, s2
, s0 @ encoding
: [0x51,0xee,0x00,0x09]
43 @ ARM
: vcmp.
f16 s0
, s1 @ encoding
: [0x60,0x09,0xb4,0xee]
44 @ THUMB
: vcmp.
f16 s0
, s1 @ encoding
: [0xb4,0xee,0x60,0x09]
47 @ ARM
: vcmp.
f16 s2
, #0 @ encoding: [0x40,0x19,0xb5,0xee]
48 @ THUMB
: vcmp.
f16 s2
, #0 @ encoding: [0xb5,0xee,0x40,0x19]
51 @ ARM
: vcmpe.
f16 s1
, s0 @ encoding
: [0xc0,0x09,0xf4,0xee]
52 @ THUMB
: vcmpe.
f16 s1
, s0 @ encoding
: [0xf4,0xee,0xc0,0x09]
55 @ ARM
: vcmpe.
f16 s0
, #0 @ encoding: [0xc0,0x09,0xb5,0xee]
56 @ THUMB
: vcmpe.
f16 s0
, #0 @ encoding: [0xb5,0xee,0xc0,0x09]
59 @ ARM
: vabs.
f16 s0
, s0 @ encoding
: [0xc0,0x09,0xb0,0xee]
60 @ THUMB
: vabs.
f16 s0
, s0 @ encoding
: [0xb0,0xee,0xc0,0x09]
63 @ ARM
: vneg.
f16 s0
, s0 @ encoding
: [0x40,0x09,0xb1,0xee]
64 @ THUMB
: vneg.
f16 s0
, s0 @ encoding
: [0xb1,0xee,0x40,0x09]
67 @ ARM
: vsqrt.
f16 s0
, s0 @ encoding
: [0xc0,0x09,0xb1,0xee]
68 @ THUMB
: vsqrt.
f16 s0
, s0 @ encoding
: [0xb1,0xee,0xc0,0x09]
74 @ ARM
: vcvt.f16.s32 s0
, s0 @ encoding
: [0xc0,0x09,0xb8,0xee]
75 @ ARM
: vcvt.f16.u32 s0
, s0 @ encoding
: [0x40,0x09,0xb8,0xee]
76 @ ARM
: vcvt.s32.
f16 s0
, s0 @ encoding
: [0xc0,0x09,0xbd,0xee]
77 @ ARM
: vcvt.u32.
f16 s0
, s0 @ encoding
: [0xc0,0x09,0xbc,0xee]
78 @ THUMB
: vcvt.f16.s32 s0
, s0 @ encoding
: [0xb8,0xee,0xc0,0x09]
79 @ THUMB
: vcvt.f16.u32 s0
, s0 @ encoding
: [0xb8,0xee,0x40,0x09]
80 @ THUMB
: vcvt.s32.
f16 s0
, s0 @ encoding
: [0xbd,0xee,0xc0,0x09]
81 @ THUMB
: vcvt.u32.
f16 s0
, s0 @ encoding
: [0xbc,0xee,0xc0,0x09]
85 @ ARM
: vcvtr.s32.
f16 s0
, s1 @ encoding
: [0x60,0x09,0xbd,0xee]
86 @ ARM
: vcvtr.u32.
f16 s0
, s1 @ encoding
: [0x60,0x09,0xbc,0xee]
87 @ THUMB
: vcvtr.s32.
f16 s0
, s1 @ encoding
: [0xbd,0xee,0x60,0x09]
88 @ THUMB
: vcvtr.u32.
f16 s0
, s1 @ encoding
: [0xbc,0xee,0x60,0x09]
90 vcvt.f16.u32 s0
, s0
, #20
91 vcvt.f16.u16 s0
, s0
, #1
92 vcvt.f16.s32 s1
, s1
, #20
93 vcvt.f16.s16 s17
, s17
, #1
94 vcvt.u32.
f16 s12
, s12
, #20
95 vcvt.u16.
f16 s28
, s28
, #1
96 vcvt.s32.
f16 s1
, s1
, #20
97 vcvt.s16.
f16 s17
, s17
, #1
98 @ ARM
: vcvt.f16.u32 s0
, s0
, #20 @ encoding: [0xc6,0x09,0xbb,0xee]
99 @ ARM
: vcvt.f16.u16 s0
, s0
, #1 @ encoding: [0x67,0x09,0xbb,0xee]
100 @ ARM
: vcvt.f16.s32 s1
, s1
, #20 @ encoding: [0xc6,0x09,0xfa,0xee]
101 @ ARM
: vcvt.f16.s16 s17
, s17
, #1 @ encoding: [0x67,0x89,0xfa,0xee]
102 @ ARM
: vcvt.u32.
f16 s12
, s12
, #20 @ encoding: [0xc6,0x69,0xbf,0xee]
103 @ ARM
: vcvt.u16.
f16 s28
, s28
, #1 @ encoding: [0x67,0xe9,0xbf,0xee]
104 @ ARM
: vcvt.s32.
f16 s1
, s1
, #20 @ encoding: [0xc6,0x09,0xfe,0xee]
105 @ ARM
: vcvt.s16.
f16 s17
, s17
, #1 @ encoding: [0x67,0x89,0xfe,0xee]
106 @ THUMB
: vcvt.f16.u32 s0
, s0
, #20 @ encoding: [0xbb,0xee,0xc6,0x09]
107 @ THUMB
: vcvt.f16.u16 s0
, s0
, #1 @ encoding: [0xbb,0xee,0x67,0x09]
108 @ THUMB
: vcvt.f16.s32 s1
, s1
, #20 @ encoding: [0xfa,0xee,0xc6,0x09]
109 @ THUMB
: vcvt.f16.s16 s17
, s17
, #1 @ encoding: [0xfa,0xee,0x67,0x89]
110 @ THUMB
: vcvt.u32.
f16 s12
, s12
, #20 @ encoding: [0xbf,0xee,0xc6,0x69]
111 @ THUMB
: vcvt.u16.
f16 s28
, s28
, #1 @ encoding: [0xbf,0xee,0x67,0xe9]
112 @ THUMB
: vcvt.s32.
f16 s1
, s1
, #20 @ encoding: [0xfe,0xee,0xc6,0x09]
113 @ THUMB
: vcvt.s16.
f16 s17
, s17
, #1 @ encoding: [0xfe,0xee,0x67,0x89]
116 @ ARM
: vcvta.s32.
f16 s2
, s3 @ encoding
: [0xe1,0x19,0xbc,0xfe]
117 @ THUMB
: vcvta.s32.
f16 s2
, s3 @ encoding
: [0xbc,0xfe,0xe1,0x19]
119 vcvtn.s32.
f16 s6
, s23
120 @ ARM
: vcvtn.s32.
f16 s6
, s23 @ encoding
: [0xeb,0x39,0xbd,0xfe]
121 @ THUMB
: vcvtn.s32.
f16 s6
, s23 @ encoding
: [0xbd,0xfe,0xeb,0x39]
124 @ ARM
: vcvtp.s32.
f16 s0
, s4 @ encoding
: [0xc2,0x09,0xbe,0xfe]
125 @ THUMB
: vcvtp.s32.
f16 s0
, s4 @ encoding
: [0xbe,0xfe,0xc2,0x09]
127 vcvtm.s32.
f16 s17
, s8
128 @ ARM
: vcvtm.s32.
f16 s17
, s8 @ encoding
: [0xc4,0x89,0xff,0xfe]
129 @ THUMB
: vcvtm.s32.
f16 s17
, s8 @ encoding
: [0xff,0xfe,0xc4,0x89]
132 @ ARM
: vcvta.u32.
f16 s2
, s3 @ encoding
: [0x61,0x19,0xbc,0xfe]
133 @ THUMB
: vcvta.u32.
f16 s2
, s3 @ encoding
: [0xbc,0xfe,0x61,0x19]
135 vcvtn.u32.
f16 s6
, s23
136 @ ARM
: vcvtn.u32.
f16 s6
, s23 @ encoding
: [0x6b,0x39,0xbd,0xfe]
137 @ THUMB
: vcvtn.u32.
f16 s6
, s23 @ encoding
: [0xbd,0xfe,0x6b,0x39]
140 @ ARM
: vcvtp.u32.
f16 s0
, s4 @ encoding
: [0x42,0x09,0xbe,0xfe]
141 @ THUMB
: vcvtp.u32.
f16 s0
, s4 @ encoding
: [0xbe,0xfe,0x42,0x09]
143 vcvtm.u32.
f16 s17
, s8
144 @ ARM
: vcvtm.u32.
f16 s17
, s8 @ encoding
: [0x44,0x89,0xff,0xfe]
145 @ THUMB
: vcvtm.u32.
f16 s17
, s8 @ encoding
: [0xff,0xfe,0x44,0x89]
147 vselge.
f16 s4
, s1
, s23
148 @ ARM
: vselge.
f16 s4
, s1
, s23 @ encoding
: [0xab,0x29,0x20,0xfe]
149 @ THUMB
: vselge.
f16 s4
, s1
, s23 @ encoding
: [0x20,0xfe,0xab,0x29]
151 vselgt.
f16 s0
, s1
, s0
152 @ ARM
: vselgt.
f16 s0
, s1
, s0 @ encoding
: [0x80,0x09,0x30,0xfe]
153 @ THUMB
: vselgt.
f16 s0
, s1
, s0 @ encoding
: [0x30,0xfe,0x80,0x09]
155 vseleq.
f16 s30
, s28
, s23
156 @ ARM
: vseleq.
f16 s30
, s28
, s23 @ encoding
: [0x2b,0xf9,0x0e,0xfe]
157 @ THUMB
: vseleq.
f16 s30
, s28
, s23 @ encoding
: [0x0e,0xfe,0x2b,0xf9]
159 vselvs.
f16 s21
, s16
, s14
160 @ ARM
: vselvs.
f16 s21
, s16
, s14 @ encoding
: [0x07,0xa9,0x58,0xfe]
161 @ THUMB
: vselvs.
f16 s21
, s16
, s14 @ encoding
: [0x58,0xfe,0x07,0xa9]
163 vmaxnm.
f16 s5
, s12
, s0
164 @ ARM
: vmaxnm.
f16 s5
, s12
, s0 @ encoding
: [0x00,0x29,0xc6,0xfe]
165 @ THUMB
: vmaxnm.
f16 s5
, s12
, s0 @ encoding
: [0xc6,0xfe,0x00,0x29]
167 vminnm.
f16 s0
, s0
, s12
168 @ ARM
: vminnm.
f16 s0
, s0
, s12 @ encoding
: [0x46,0x09,0x80,0xfe]
169 @ THUMB
: vminnm.
f16 s0
, s0
, s12 @ encoding
: [0x80,0xfe,0x46,0x09]
172 @ ARM
: vrintz.
f16 s3
, s24 @ encoding
: [0xcc,0x19,0xf6,0xee]
173 @ THUMB
: vrintz.
f16 s3
, s24 @ encoding
: [0xf6,0xee,0xcc,0x19]
176 @ ARM
: vrintr.
f16 s0
, s9 @ encoding
: [0x64,0x09,0xb6,0xee]
177 @ THUMB
: vrintr.
f16 s0
, s9 @ encoding
: [0xb6,0xee,0x64,0x09]
180 @ ARM
: vrintx.
f16 s10
, s14 @ encoding
: [0x47,0x59,0xb7,0xee]
181 @ THUMB
: vrintx.
f16 s10
, s14 @ encoding
: [0xb7,0xee,0x47,0x59]
184 @ ARM
: vrinta.
f16 s12
, s1 @ encoding
: [0x60,0x69,0xb8,0xfe]
185 @ THUMB
: vrinta.
f16 s12
, s1 @ encoding
: [0xb8,0xfe,0x60,0x69]
188 @ ARM
: vrintn.
f16 s12
, s1 @ encoding
: [0x60,0x69,0xb9,0xfe]
189 @ THUMB
: vrintn.
f16 s12
, s1 @ encoding
: [0xb9,0xfe,0x60,0x69]
192 @ ARM
: vrintp.
f16 s12
, s1 @ encoding
: [0x60,0x69,0xba,0xfe]
193 @ THUMB
: vrintp.
f16 s12
, s1 @ encoding
: [0xba,0xfe,0x60,0x69]
196 @ ARM
: vrintm.
f16 s12
, s1 @ encoding
: [0x60,0x69,0xbb,0xfe]
197 @ THUMB
: vrintm.
f16 s12
, s1 @ encoding
: [0xbb,0xfe,0x60,0x69]
200 @ ARM
: vfma.
f16 s2
, s7
, s4 @ encoding
: [0x82,0x19,0xa3,0xee]
201 @ THUMB
: vfma.
f16 s2
, s7
, s4 @ encoding
: [0xa3,0xee,0x82,0x19]
204 @ ARM
: vfms.
f16 s2
, s7
, s4 @ encoding
: [0xc2,0x19,0xa3,0xee]
205 @ THUMB
: vfms.
f16 s2
, s7
, s4 @ encoding
: [0xa3,0xee,0xc2,0x19]
208 @ ARM
: vfnma.
f16 s2
, s7
, s4 @ encoding
: [0xc2,0x19,0x93,0xee]
209 @ THUMB
: vfnma.
f16 s2
, s7
, s4 @ encoding
: [0x93,0xee,0xc2,0x19]
212 @ ARM
: vfnms.
f16 s2
, s7
, s4 @ encoding
: [0x82,0x19,0x93,0xee]
213 @ THUMB
: vfnms.
f16 s2
, s7
, s4 @ encoding
: [0x93,0xee,0x82,0x19]
217 @ ARM
: vmovx.
f16 s2
, s5 @ encoding
: [0x62,0x1a,0xb0,0xfe]
218 @ ARM
: vins.
f16 s2
, s5 @ encoding
: [0xe2,0x1a,0xb0,0xfe]
219 @ THUMB
: vmovx.
f16 s2
, s5 @ encoding
: [0xb0,0xfe,0x62,0x1a]
220 @ THUMB
: vins.
f16 s2
, s5 @ encoding
: [0xb0,0xfe,0xe2,0x1a]
224 vldr.16 s2
, [pc
, #510]
225 vldr.16 s3
, [pc
, #-510]
226 vldr.16 s4
, [r4, #-18]
227 @ ARM
: vldr.16 s1
, [pc
, #6] @ encoding: [0x03,0x09,0xdf,0xed]
228 @ ARM
: vldr.16 s2
, [pc
, #510] @ encoding: [0xff,0x19,0x9f,0xed]
229 @ ARM
: vldr.16 s3
, [pc
, #-510] @ encoding: [0xff,0x19,0x5f,0xed]
230 @ ARM
: vldr.16 s4
, [r4, #-18] @ encoding: [0x09,0x29,0x14,0xed]
231 @ THUMB
: vldr.16 s1
, [pc
, #6] @ encoding: [0xdf,0xed,0x03,0x09]
232 @ THUMB
: vldr.16 s2
, [pc
, #510] @ encoding: [0x9f,0xed,0xff,0x19]
233 @ THUMB
: vldr.16 s3
, [pc
, #-510] @ encoding: [0x5f,0xed,0xff,0x19]
234 @ THUMB
: vldr.16 s4
, [r4, #-18] @ encoding: [0x14,0xed,0x09,0x29]
238 vstr.16 s2
, [pc
, #510]
239 vstr.16 s3
, [pc
, #-510]
240 vstr.16 s4
, [r4, #-18]
241 @ ARM
: vstr.16 s1
, [pc
, #6] @ encoding: [0x03,0x09,0xcf,0xed]
242 @ ARM
: vstr.16 s2
, [pc
, #510] @ encoding: [0xff,0x19,0x8f,0xed]
243 @ ARM
: vstr.16 s3
, [pc
, #-510] @ encoding: [0xff,0x19,0x4f,0xed]
244 @ ARM
: vstr.16 s4
, [r4, #-18] @ encoding: [0x09,0x29,0x04,0xed]
245 @ THUMB
: vstr.16 s1
, [pc
, #6] @ encoding: [0xcf,0xed,0x03,0x09]
246 @ THUMB
: vstr.16 s2
, [pc
, #510] @ encoding: [0x8f,0xed,0xff,0x19]
247 @ THUMB
: vstr.16 s3
, [pc
, #-510] @ encoding: [0x4f,0xed,0xff,0x19]
248 @ THUMB
: vstr.16 s4
, [r4, #-18] @ encoding: [0x04,0xed,0x09,0x29]
251 @ ARM
: vmov.
f16 s0
, #1.000000e+00 @ encoding: [0x00,0x09,0xb7,0xee]
252 @ THUMB
: vmov.
f16 s0
, #1.000000e+00 @ encoding: [0xb7,0xee,0x00,0x09]
256 @ ARM
: vmov.
f16 s1
, r2 @ encoding
: [0x90,0x29,0x00,0xee]
257 @ ARM
: vmov.
f16 r3, s4 @ encoding
: [0x10,0x39,0x12,0xee]
258 @ THUMB
: vmov.
f16 s1
, r2 @ encoding
: [0x00,0xee,0x90,0x29]
259 @ THUMB
: vmov.
f16 r3, s4 @ encoding
: [0x12,0xee,0x10,0x39]