xref: /llvm-project/llvm/test/MC/Disassembler/ARM/fp-encoding.txt (revision 75d43d383450def4d2e373ddc9cdd829302b2bff)
1# RUN: llvm-mc -triple armv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s
2
30xa0 0x0b 0x71 0xee
4# CHECK: vadd.f64        d16, d17, d16
5
60x80 0x0a 0x30 0xee
7# CHECK: vadd.f32        s0, s1, s0
8
90xe0 0x0b 0x71 0xee
10# CHECK: vsub.f64        d16, d17, d16
11
120xc0 0x0a 0x30 0xee
13# CHECK: vsub.f32        s0, s1, s0
14
150xa0 0x0b 0xc1 0xee
16# CHECK: vdiv.f64        d16, d17, d16
17
180x80 0x0a 0x80 0xee
19# CHECK: vdiv.f32        s0, s1, s0
20
210xa0 0x0b 0x61 0xee
22# CHECK: vmul.f64        d16, d17, d16
23
240x80 0x0a 0x20 0xee
25# CHECK: vmul.f32        s0, s1, s0
26
270xe0 0x0b 0x61 0xee
28# CHECK: vnmul.f64       d16, d17, d16
29
300x41 0x0b 0x20 0xee
31# CHECK: vnmul.f64       d0, d0, d1
32
330xc0 0x0a 0x20 0xee
34# CHECK: vnmul.f32       s0, s1, s0
35
360x60 0x0a 0x20 0xee
37# CHECK: vnmul.f32       s0, s0, s1
38
390xe0 0x1b 0xf4 0xee
40# CHECK: vcmpe.f64       d17, d16
41
420xc0 0x0a 0xf4 0xee
43# CHECK: vcmpe.f32       s1, s0
44
450xe0 0x0b 0xf0 0xee
46# CHECK: vabs.f64        d16, d16
47
480xc0 0x0a 0xb0 0xee
49# CHECK: vabs.f32        s0, s0
50
510xe0 0x0b 0xb7 0xee
52# CHECK: vcvt.f32.f64    s0, d16
53
540xc0 0x0a 0xf7 0xee
55# CHECK: vcvt.f64.f32    d16, s0
56
570x60 0x0b 0xf1 0xee
58# CHECK: vneg.f64        d16, d16
59
600x40 0x0a 0xb1 0xee
61# CHECK: vneg.f32        s0, s0
62
630xe0 0x0b 0xf1 0xee
64# CHECK: vsqrt.f64       d16, d16
65
660xc0 0x0a 0xb1 0xee
67# CHECK: vsqrt.f32       s0, s0
68
690xc0 0x0b 0xf8 0xee
70# CHECK: vcvt.f64.s32    d16, s0
71
720xc0 0x0a 0xb8 0xee
73# CHECK: vcvt.f32.s32    s0, s0
74
750x40 0x0b 0xf8 0xee
76# CHECK: vcvt.f64.u32    d16, s0
77
780x40 0x0a 0xb8 0xee
79# CHECK: vcvt.f32.u32    s0, s0
80
810xe0 0x0b 0xbd 0xee
82# CHECK: vcvt.s32.f64    s0, d16
83
840xc0 0x0a 0xbd 0xee
85# CHECK: vcvt.s32.f32    s0, s0
86
870xe0 0x0b 0xbc 0xee
88# CHECK: vcvt.u32.f64    s0, d16
89
900xc0 0x0a 0xbc 0xee
91# CHECK: vcvt.u32.f32    s0, s0
92
930xa1 0x0b 0x42 0xee
94# CHECK: vmla.f64        d16, d18, d17
95
960x00 0x0a 0x41 0xee
97# CHECK: vmla.f32        s1, s2, s0
98
990xe1 0x0b 0x42 0xee
100# CHECK: vmls.f64        d16, d18, d17
101
1020x40 0x0a 0x41 0xee
103# CHECK: vmls.f32        s1, s2, s0
104
1050xe1 0x0b 0x52 0xee
106# CHECK: vnmla.f64       d16, d18, d17
107
1080x40 0x0a 0x51 0xee
109# CHECK: vnmla.f32       s1, s2, s0
110
1110xa1 0x0b 0x52 0xee
112# CHECK: vnmls.f64       d16, d18, d17
113
1140x00 0x0a 0x51 0xee
115# CHECK: vnmls.f32       s1, s2, s0
116
1170x60 0x0b 0xf1 0x1e
118# CHECK: vnegne.f64      d16, d16
119
1200x10 0x0a 0x00 0x1e
1210x10 0x1a 0x00 0x0e
122# CHECK: vmovne  s0, r0
123# CHECK: vmoveq  s0, r1
124
1250x10 0x0a 0xf1 0xee
126# CHECK: vmrs  r0, fpscr
1270x10 0x0a 0xf8 0xee
128# CHECK: vmrs  r0, fpexc
1290x10 0x0a 0xf0 0xee
130# CHECK: vmrs  r0, fpsid
1310x10 0x1a 0xf9 0xee
132# CHECK: vmrs  r1, fpinst
1330x10 0x8a 0xfa 0xee
134# CHECK: vmrs  r8, fpinst2
135
1360x10 0x0a 0xe1 0xee
137# CHECK: vmsr  fpscr, r0
1380x10 0x0a 0xe8 0xee
139# CHECK: vmsr  fpexc, r0
1400x10 0x0a 0xe0 0xee
141# CHECK: vmsr  fpsid, r0
1420x10 0x3a 0xe9 0xee
143# CHECK: vmsr  fpinst, r3
1440x10 0x4a 0xea 0xee
145# CHECK: vmsr fpinst2, r4
146
1470x10 0x0a 0x00 0xee
1480x90 0x1a 0x00 0xee
1490x10 0x2a 0x01 0xee
1500x90 0x3a 0x01 0xee
151# CHECK: vmov    s0, r0
152# CHECK: vmov    s1, r1
153# CHECK: vmov    s2, r2
154# CHECK: vmov    s3, r3
155
1560x10 0x0a 0x10 0xee
1570x90 0x1a 0x10 0xee
1580x10 0x2a 0x11 0xee
1590x90 0x3a 0x11 0xee
160# CHECK: vmov    r0, s0
161# CHECK: vmov    r1, s1
162# CHECK: vmov    r2, s2
163# CHECK: vmov    r3, s3
164
1650x30 0x0b 0x51 0xec
166# CHECK: vmov    r0, r1, d16
167
1680x00 0x1b 0xd0 0xed
169# CHECK: vldr	d17, [r0]
170
1710x08 0x1b 0x92 0xed
1720x08 0x1b 0x12 0xed
173# CHECK: vldr	d1, [r2, #32]
174# CHECK: vldr	d1, [r2, #-32]
175
1760x00 0x2b 0x93 0xed
177# CHECK: vldr d2, [r3]
178
1790x00 0x3b 0x9f 0xed
180# CHECK: vldr d3, [pc]
181
1820x00 0x6a 0xd0 0xed
183# CHECK: vldr	s13, [r0]
184
1850x08 0x0a 0xd2 0xed
1860x08 0x0a 0x52 0xed
187# CHECK: vldr	s1, [r2, #32]
188# CHECK: vldr	s1, [r2, #-32]
189
1900x00 0x1a 0x93 0xed
191# CHECK: vldr s2, [r3]
192
1930x00 0x2a 0xdf 0xed
194# CHECK: vldr s5, [pc]
195
1960x00 0x4b 0x81 0xed
1970x06 0x4b 0x81 0xed
1980x06 0x4b 0x01 0xed
199# CHECK: vstr d4, [r1]
200# CHECK: vstr d4, [r1, #24]
201# CHECK: vstr d4, [r1, #-24]
202
2030x00 0x2a 0x81 0xed
2040x06 0x2a 0x81 0xed
2050x06 0x2a 0x01 0xed
206# CHECK: vstr s4, [r1]
207# CHECK: vstr s4, [r1, #24]
208# CHECK: vstr s4, [r1, #-24]
209
2100x0c 0x2b 0x91 0xec
2110x06 0x1a 0x91 0xec
212# CHECK: vldmia  r1, {d2, d3, d4, d5, d6, d7}
213# CHECK: vldmia  r1, {s2, s3, s4, s5, s6, s7}
214
2150x0c 0x2b 0x81 0xec
2160x06 0x1a 0x81 0xec
217# CHECK: vstmia  r1, {d2, d3, d4, d5, d6, d7}
218# CHECK: vstmia  r1, {s2, s3, s4, s5, s6, s7}
219
2200x05 0x9a 0xc0 0x0c
2210x0c 0x0b 0xc7 0x0c
2220x06 0x9a 0x93 0x0c
2230x0a 0x5b 0xd2 0x0c
224# CHECK: vstmiaeq r0, {s19, s20, s21, s22, s23}
225# CHECK: vstmiaeq r7, {d16, d17, d18, d19, d20, d21}
226# CHECK: vldmiaeq r3, {s18, s19, s20, s21, s22, s23}
227# CHECK: vldmiaeq r2, {d21, d22, d23, d24, d25}
228
2290x04 0xca 0x6c 0x0d
2300x06 0x1b 0x69 0x0d
2310x03 0xaa 0x75 0x0d
2320x08 0xeb 0x37 0x0d
233# CHECK: vstmdbeq r12!, {s25, s26, s27, s28}
234# CHECK: vstmdbeq r9!, {d17, d18, d19}
235# CHECK: vldmdbeq r5!, {s21, s22, s23}
236# CHECK: vldmdbeq r7!, {d14, d15, d16, d17}
237
2380x0d 0x4b 0x96 0x0c
2390x0f 0x3b 0xb7 0x0c
2400x09 0x1b 0x38 0xed
241# CHECK: fldmiaxeq r6, {d4, d5, d6, d7, d8, d9}
242# CHECK: fldmiaxeq r7!, {d3, d4, d5, d6, d7, d8, d9}
243# CHECK: fldmdbx   r8!, {d1, d2, d3, d4}
244
2450x07 0x2b 0x83 0xec
2460x05 0x5b 0xa3 0x0c
2470x0f 0x3b 0x20 0x1d
248# CHECK: fstmiax   r3, {d2, d3, d4}
249# CHECK: fstmiaxeq r3!, {d5, d6}
250# CHECK: fstmdbxne r0!, {d3, d4, d5, d6, d7, d8, d9}
251
2520x04 0x7a 0xa6 0x0c
2530x0c 0xfb 0xa4 0x0c
2540x03 0xaa 0xf8 0x0c
2550x0a 0x3b 0xfb 0x0c
256# CHECK: vstmiaeq r6!, {s14, s15, s16, s17}
257# CHECK: vstmiaeq r4!, {d15, d16, d17, d18, d19, d20}
258# CHECK: vldmiaeq r8!, {s21, s22, s23}
259# CHECK: vldmiaeq r11!, {d19, d20, d21, d22, d23}
260
2610x40 0x0b 0xbd 0xee
2620x60 0x0a 0xbd 0xee
2630x40 0x0b 0xbc 0xee
2640x60 0x0a 0xbc 0xee
265# CHECK: vcvtr.s32.f64  s0, d0
266# CHECK: vcvtr.s32.f32  s0, s1
267# CHECK: vcvtr.u32.f64  s0, d0
268# CHECK: vcvtr.u32.f32  s0, s1
269