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
300xc0 0x0a 0x20 0xee
31# CHECK: vnmul.f32       s0, s1, s0
32
330xe0 0x1b 0xf4 0xee
34# CHECK: vcmpe.f64       d17, d16
35
360xc0 0x0a 0xf4 0xee
37# CHECK: vcmpe.f32       s1, s0
38
390xe0 0x0b 0xf0 0xee
40# CHECK: vabs.f64        d16, d16
41
420xc0 0x0a 0xb0 0xee
43# CHECK: vabs.f32        s0, s0
44
450xe0 0x0b 0xb7 0xee
46# CHECK: vcvt.f32.f64    s0, d16
47
480xc0 0x0a 0xf7 0xee
49# CHECK: vcvt.f64.f32    d16, s0
50
510x60 0x0b 0xf1 0xee
52# CHECK: vneg.f64        d16, d16
53
540x40 0x0a 0xb1 0xee
55# CHECK: vneg.f32        s0, s0
56
570xe0 0x0b 0xf1 0xee
58# CHECK: vsqrt.f64       d16, d16
59
600xc0 0x0a 0xb1 0xee
61# CHECK: vsqrt.f32       s0, s0
62
630xc0 0x0b 0xf8 0xee
64# CHECK: vcvt.f64.s32    d16, s0
65
660xc0 0x0a 0xb8 0xee
67# CHECK: vcvt.f32.s32    s0, s0
68
690x40 0x0b 0xf8 0xee
70# CHECK: vcvt.f64.u32    d16, s0
71
720x40 0x0a 0xb8 0xee
73# CHECK: vcvt.f32.u32    s0, s0
74
750xe0 0x0b 0xbd 0xee
76# CHECK: vcvt.s32.f64    s0, d16
77
780xc0 0x0a 0xbd 0xee
79# CHECK: vcvt.s32.f32    s0, s0
80
810xe0 0x0b 0xbc 0xee
82# CHECK: vcvt.u32.f64    s0, d16
83
840xc0 0x0a 0xbc 0xee
85# CHECK: vcvt.u32.f32    s0, s0
86
870xa1 0x0b 0x42 0xee
88# CHECK: vmla.f64        d16, d18, d17
89
900x00 0x0a 0x41 0xee
91# CHECK: vmla.f32        s1, s2, s0
92
930xe1 0x0b 0x42 0xee
94# CHECK: vmls.f64        d16, d18, d17
95
960x40 0x0a 0x41 0xee
97# CHECK: vmls.f32        s1, s2, s0
98
990xe1 0x0b 0x52 0xee
100# CHECK: vnmla.f64       d16, d18, d17
101
1020x40 0x0a 0x51 0xee
103# CHECK: vnmla.f32       s1, s2, s0
104
1050xa1 0x0b 0x52 0xee
106# CHECK: vnmls.f64       d16, d18, d17
107
1080x00 0x0a 0x51 0xee
109# CHECK: vnmls.f32       s1, s2, s0
110
1110x60 0x0b 0xf1 0x1e
112# CHECK: vnegne.f64      d16, d16
113
1140x10 0x0a 0x00 0x1e
1150x10 0x1a 0x00 0x0e
116# CHECK: vmovne  s0, r0
117# CHECK: vmoveq  s0, r1
118
1190x10 0x0a 0xf1 0xee
120# CHECK: vmrs  r0, fpscr
1210x10 0x0a 0xf8 0xee
122# CHECK: vmrs  r0, fpexc
1230x10 0x0a 0xf0 0xee
124# CHECK: vmrs  r0, fpsid
1250x10 0x1a 0xf9 0xee
126# CHECK: vmrs  r1, fpinst
1270x10 0x8a 0xfa 0xee
128# CHECK: vmrs  r8, fpinst2
129
1300x10 0x0a 0xe1 0xee
131# CHECK: vmsr  fpscr, r0
1320x10 0x0a 0xe8 0xee
133# CHECK: vmsr  fpexc, r0
1340x10 0x0a 0xe0 0xee
135# CHECK: vmsr  fpsid, r0
1360x10 0x3a 0xe9 0xee
137# CHECK: vmsr  fpinst, r3
1380x10 0x4a 0xea 0xee
139# CHECK: vmsr fpinst2, r4
140
1410x10 0x0a 0x00 0xee
1420x90 0x1a 0x00 0xee
1430x10 0x2a 0x01 0xee
1440x90 0x3a 0x01 0xee
145# CHECK: vmov    s0, r0
146# CHECK: vmov    s1, r1
147# CHECK: vmov    s2, r2
148# CHECK: vmov    s3, r3
149
1500x10 0x0a 0x10 0xee
1510x90 0x1a 0x10 0xee
1520x10 0x2a 0x11 0xee
1530x90 0x3a 0x11 0xee
154# CHECK: vmov    r0, s0
155# CHECK: vmov    r1, s1
156# CHECK: vmov    r2, s2
157# CHECK: vmov    r3, s3
158
1590x30 0x0b 0x51 0xec
160# CHECK: vmov    r0, r1, d16
161
1620x00 0x1b 0xd0 0xed
163# CHECK: vldr	d17, [r0]
164
1650x08 0x1b 0x92 0xed
1660x08 0x1b 0x12 0xed
167# CHECK: vldr	d1, [r2, #32]
168# CHECK: vldr	d1, [r2, #-32]
169
1700x00 0x2b 0x93 0xed
171# CHECK: vldr d2, [r3]
172
1730x00 0x3b 0x9f 0xed
174# CHECK: vldr d3, [pc]
175
1760x00 0x6a 0xd0 0xed
177# CHECK: vldr	s13, [r0]
178
1790x08 0x0a 0xd2 0xed
1800x08 0x0a 0x52 0xed
181# CHECK: vldr	s1, [r2, #32]
182# CHECK: vldr	s1, [r2, #-32]
183
1840x00 0x1a 0x93 0xed
185# CHECK: vldr s2, [r3]
186
1870x00 0x2a 0xdf 0xed
188# CHECK: vldr s5, [pc]
189
1900x00 0x4b 0x81 0xed
1910x06 0x4b 0x81 0xed
1920x06 0x4b 0x01 0xed
193# CHECK: vstr d4, [r1]
194# CHECK: vstr d4, [r1, #24]
195# CHECK: vstr d4, [r1, #-24]
196
1970x00 0x2a 0x81 0xed
1980x06 0x2a 0x81 0xed
1990x06 0x2a 0x01 0xed
200# CHECK: vstr s4, [r1]
201# CHECK: vstr s4, [r1, #24]
202# CHECK: vstr s4, [r1, #-24]
203
2040x0c 0x2b 0x91 0xec
2050x06 0x1a 0x91 0xec
206# CHECK: vldmia  r1, {d2, d3, d4, d5, d6, d7}
207# CHECK: vldmia  r1, {s2, s3, s4, s5, s6, s7}
208
2090x0c 0x2b 0x81 0xec
2100x06 0x1a 0x81 0xec
211# CHECK: vstmia  r1, {d2, d3, d4, d5, d6, d7}
212# CHECK: vstmia  r1, {s2, s3, s4, s5, s6, s7}
213
2140x05 0x9a 0xc0 0x0c
2150x0c 0x0b 0xc7 0x0c
2160x06 0x9a 0x93 0x0c
2170x0a 0x5b 0xd2 0x0c
218# CHECK: vstmiaeq r0, {s19, s20, s21, s22, s23}
219# CHECK: vstmiaeq r7, {d16, d17, d18, d19, d20, d21}
220# CHECK: vldmiaeq r3, {s18, s19, s20, s21, s22, s23}
221# CHECK: vldmiaeq r2, {d21, d22, d23, d24, d25}
222
2230x04 0xca 0x6c 0x0d
2240x06 0x1b 0x69 0x0d
2250x03 0xaa 0x75 0x0d
2260x08 0xeb 0x37 0x0d
227# CHECK: vstmdbeq r12!, {s25, s26, s27, s28}
228# CHECK: vstmdbeq r9!, {d17, d18, d19}
229# CHECK: vldmdbeq r5!, {s21, s22, s23}
230# CHECK: vldmdbeq r7!, {d14, d15, d16, d17}
231
2320x0d 0x4b 0x96 0x0c
2330x0f 0x3b 0xb7 0x0c
2340x09 0x1b 0x38 0xed
235# CHECK: fldmiaxeq r6, {d4, d5, d6, d7, d8, d9}
236# CHECK: fldmiaxeq r7!, {d3, d4, d5, d6, d7, d8, d9}
237# CHECK: fldmdbx   r8!, {d1, d2, d3, d4}
238
2390x07 0x2b 0x83 0xec
2400x05 0x5b 0xa3 0x0c
2410x0f 0x3b 0x20 0x1d
242# CHECK: fstmiax   r3, {d2, d3, d4}
243# CHECK: fstmiaxeq r3!, {d5, d6}
244# CHECK: fstmdbxne r0!, {d3, d4, d5, d6, d7, d8, d9}
245
2460x04 0x7a 0xa6 0x0c
2470x0c 0xfb 0xa4 0x0c
2480x03 0xaa 0xf8 0x0c
2490x0a 0x3b 0xfb 0x0c
250# CHECK: vstmiaeq r6!, {s14, s15, s16, s17}
251# CHECK: vstmiaeq r4!, {d15, d16, d17, d18, d19, d20}
252# CHECK: vldmiaeq r8!, {s21, s22, s23}
253# CHECK: vldmiaeq r11!, {d19, d20, d21, d22, d23}
254
2550x40 0x0b 0xbd 0xee
2560x60 0x0a 0xbd 0xee
2570x40 0x0b 0xbc 0xee
2580x60 0x0a 0xbc 0xee
259# CHECK: vcvtr.s32.f64  s0, d0
260# CHECK: vcvtr.s32.f32  s0, s1
261# CHECK: vcvtr.u32.f64  s0, d0
262# CHECK: vcvtr.u32.f32  s0, s1
263