blob: bb4e53f1db301fd557a06a3942193837ceceaf2a [file] [log] [blame]
Bill Wendling933b3142010-11-01 21:16:39 +00001@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
Owen Anderson6cd0b172011-01-18 23:01:21 +00002@ XFAIL: *
Bill Wendling52925b62010-10-29 23:50:21 +00003
Bill Wendling933b3142010-11-01 21:16:39 +00004@ CHECK: vadd.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x71,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +00005 vadd.f64 d16, d17, d16
6
Bill Wendling933b3142010-11-01 21:16:39 +00007@ CHECK: vadd.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x30,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +00008 vadd.f32 s0, s1, s0
9
Bill Wendling933b3142010-11-01 21:16:39 +000010@ CHECK: vsub.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x71,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000011 vsub.f64 d16, d17, d16
12
Bill Wendling933b3142010-11-01 21:16:39 +000013@ CHECK: vsub.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x30,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000014 vsub.f32 s0, s1, s0
15
Bill Wendling933b3142010-11-01 21:16:39 +000016@ CHECK: vdiv.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0xc1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000017 vdiv.f64 d16, d17, d16
18
Bill Wendling933b3142010-11-01 21:16:39 +000019@ CHECK: vdiv.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x80,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000020 vdiv.f32 s0, s1, s0
21
Bill Wendling933b3142010-11-01 21:16:39 +000022@ CHECK: vmul.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x61,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000023 vmul.f64 d16, d17, d16
24
Bill Wendling933b3142010-11-01 21:16:39 +000025@ CHECK: vmul.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x20,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000026 vmul.f32 s0, s1, s0
27
Bill Wendling933b3142010-11-01 21:16:39 +000028@ CHECK: vnmul.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x61,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000029 vnmul.f64 d16, d17, d16
30
Bill Wendling933b3142010-11-01 21:16:39 +000031@ CHECK: vnmul.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x20,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000032 vnmul.f32 s0, s1, s0
33
Bill Wendling933b3142010-11-01 21:16:39 +000034@ CHECK: vcmpe.f64 d17, d16 @ encoding: [0xe0,0x1b,0xf4,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000035 vcmpe.f64 d17, d16
36
Bill Wendling933b3142010-11-01 21:16:39 +000037@ CHECK: vcmpe.f32 s1, s0 @ encoding: [0xc0,0x0a,0xf4,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000038 vcmpe.f32 s1, s0
39
Bill Wendling933b3142010-11-01 21:16:39 +000040@ FIXME: vcmpe.f64 d16, #0 @ encoding: [0xc0,0x0b,0xf5,0xee]
41@ vcmpe.f64 d16, #0
Bill Wendling52925b62010-10-29 23:50:21 +000042
Bill Wendling933b3142010-11-01 21:16:39 +000043@ FIXME: vcmpe.f32 s0, #0 @ encoding: [0xc0,0x0a,0xb5,0xee]
44@ vcmpe.f32 s0, #0
Bill Wendling52925b62010-10-29 23:50:21 +000045
Bill Wendling933b3142010-11-01 21:16:39 +000046@ CHECK: vabs.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf0,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000047 vabs.f64 d16, d16
48
Bill Wendling933b3142010-11-01 21:16:39 +000049@ CHECK: vabs.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb0,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000050 vabs.f32 s0, s0
51
Bill Wendling933b3142010-11-01 21:16:39 +000052@ CHECK: vcvt.f32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xb7,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000053 vcvt.f32.f64 s0, d16
54
Bill Wendling933b3142010-11-01 21:16:39 +000055@ CHECK: vcvt.f64.f32 d16, s0 @ encoding: [0xc0,0x0a,0xf7,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000056 vcvt.f64.f32 d16, s0
57
Bill Wendling933b3142010-11-01 21:16:39 +000058@ CHECK: vneg.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000059 vneg.f64 d16, d16
60
Bill Wendling933b3142010-11-01 21:16:39 +000061@ CHECK: vneg.f32 s0, s0 @ encoding: [0x40,0x0a,0xb1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000062 vneg.f32 s0, s0
63
Bill Wendling933b3142010-11-01 21:16:39 +000064@ CHECK: vsqrt.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000065 vsqrt.f64 d16, d16
66
Bill Wendling933b3142010-11-01 21:16:39 +000067@ CHECK: vsqrt.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000068 vsqrt.f32 s0, s0
69
Bill Wendling933b3142010-11-01 21:16:39 +000070@ CHECK: vcvt.f64.s32 d16, s0 @ encoding: [0xc0,0x0b,0xf8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000071 vcvt.f64.s32 d16, s0
72
Bill Wendling933b3142010-11-01 21:16:39 +000073@ CHECK: vcvt.f32.s32 s0, s0 @ encoding: [0xc0,0x0a,0xb8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000074 vcvt.f32.s32 s0, s0
75
Bill Wendling933b3142010-11-01 21:16:39 +000076@ CHECK: vcvt.f64.u32 d16, s0 @ encoding: [0x40,0x0b,0xf8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000077 vcvt.f64.u32 d16, s0
78
Bill Wendling933b3142010-11-01 21:16:39 +000079@ CHECK: vcvt.f32.u32 s0, s0 @ encoding: [0x40,0x0a,0xb8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000080 vcvt.f32.u32 s0, s0
81
Bill Wendling933b3142010-11-01 21:16:39 +000082@ CHECK: vcvt.s32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbd,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000083 vcvt.s32.f64 s0, d16
84
Bill Wendling933b3142010-11-01 21:16:39 +000085@ CHECK: vcvt.s32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbd,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000086 vcvt.s32.f32 s0, s0
87
Bill Wendling933b3142010-11-01 21:16:39 +000088@ CHECK: vcvt.u32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbc,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000089 vcvt.u32.f64 s0, d16
90
Bill Wendling933b3142010-11-01 21:16:39 +000091@ CHECK: vcvt.u32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbc,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000092 vcvt.u32.f32 s0, s0
93
Bill Wendling933b3142010-11-01 21:16:39 +000094@ CHECK: vmla.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x42,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000095 vmla.f64 d16, d18, d17
96
Bill Wendling933b3142010-11-01 21:16:39 +000097@ CHECK: vmla.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x41,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000098 vmla.f32 s1, s2, s0
99
Bill Wendling933b3142010-11-01 21:16:39 +0000100@ CHECK: vmls.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x42,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000101 vmls.f64 d16, d18, d17
102
Bill Wendling933b3142010-11-01 21:16:39 +0000103@ CHECK: vmls.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x41,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000104 vmls.f32 s1, s2, s0
105
Bill Wendling933b3142010-11-01 21:16:39 +0000106@ CHECK: vnmla.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x52,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000107 vnmla.f64 d16, d18, d17
108
Bill Wendling933b3142010-11-01 21:16:39 +0000109@ CHECK: vnmla.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x51,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000110 vnmla.f32 s1, s2, s0
111
Bill Wendling933b3142010-11-01 21:16:39 +0000112@ CHECK: vnmls.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x52,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000113 vnmls.f64 d16, d18, d17
114
Bill Wendling933b3142010-11-01 21:16:39 +0000115@ CHECK: vnmls.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x51,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000116 vnmls.f32 s1, s2, s0
117
Bill Wendling933b3142010-11-01 21:16:39 +0000118@ FIXME: vmrs apsr_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
119@ vmrs apsr_nzcv, fpscr
Bill Wendling52925b62010-10-29 23:50:21 +0000120
Bill Wendling933b3142010-11-01 21:16:39 +0000121@ CHECK: vnegne.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0x1e]
Bill Wendling52925b62010-10-29 23:50:21 +0000122 vnegne.f64 d16, d16
123
Bill Wendling933b3142010-11-01 21:16:39 +0000124@ CHECK: vmovne s0, r0 @ encoding: [0x10,0x0a,0x00,0x1e]
125@ CHECK: vmoveq s0, r1 @ encoding: [0x10,0x1a,0x00,0x0e]
Bill Wendling52925b62010-10-29 23:50:21 +0000126 vmovne s0, r0
127 vmoveq s0, r1
128
Bill Wendling933b3142010-11-01 21:16:39 +0000129@ CHECK: vmrs r0, fpscr @ encoding: [0x10,0x0a,0xf1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000130 vmrs r0, fpscr
Bruno Cardoso Lopes61505902011-01-18 21:58:20 +0000131@ CHECK: vmrs r0, fpexc @ encoding: [0x10,0x0a,0xf8,0xee]
132 vmrs r0, fpexc
133@ CHECK: vmrs r0, fpsid @ encoding: [0x10,0x0a,0xf0,0xee]
134 vmrs r0, fpsid
Bill Wendling52925b62010-10-29 23:50:21 +0000135
Bill Wendling933b3142010-11-01 21:16:39 +0000136@ CHECK: vmsr fpscr, r0 @ encoding: [0x10,0x0a,0xe1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000137 vmsr fpscr, r0
Bruno Cardoso Lopes61505902011-01-18 21:58:20 +0000138@ CHECK: vmsr fpexc, r0 @ encoding: [0x10,0x0a,0xe8,0xee]
139 vmsr fpexc, r0
140@ CHECK: vmsr fpsid, r0 @ encoding: [0x10,0x0a,0xe0,0xee]
141 vmsr fpsid, r0
Bill Wendling52925b62010-10-29 23:50:21 +0000142
Bill Wendling933b3142010-11-01 21:16:39 +0000143@ FIXME: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee]
144@ vmov.f64 d16, #3.000000e+00
Bill Wendling52925b62010-10-29 23:50:21 +0000145
Bill Wendling933b3142010-11-01 21:16:39 +0000146@ FIXME: vmov.f32 s0, #3.000000e+00 @ encoding: [0x08,0x0a,0xb0,0xee]
147@ vmov.f32 s0, #3.000000e+00
Bill Wendling52925b62010-10-29 23:50:21 +0000148
Bill Wendling933b3142010-11-01 21:16:39 +0000149@ CHECK: vmov s0, r0 @ encoding: [0x10,0x0a,0x00,0xee]
150@ CHECK: vmov s1, r1 @ encoding: [0x90,0x1a,0x00,0xee]
151@ CHECK: vmov s2, r2 @ encoding: [0x10,0x2a,0x01,0xee]
152@ CHECK: vmov s3, r3 @ encoding: [0x90,0x3a,0x01,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000153 vmov s0, r0
154 vmov s1, r1
155 vmov s2, r2
156 vmov s3, r3
157
Bill Wendling933b3142010-11-01 21:16:39 +0000158@ CHECK: vmov r0, s0 @ encoding: [0x10,0x0a,0x10,0xee]
159@ CHECK: vmov r1, s1 @ encoding: [0x90,0x1a,0x10,0xee]
160@ CHECK: vmov r2, s2 @ encoding: [0x10,0x2a,0x11,0xee]
161@ CHECK: vmov r3, s3 @ encoding: [0x90,0x3a,0x11,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000162 vmov r0, s0
163 vmov r1, s1
164 vmov r2, s2
165 vmov r3, s3
166
Bill Wendling933b3142010-11-01 21:16:39 +0000167@ CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec]
Bill Wendling52925b62010-10-29 23:50:21 +0000168 vmov r0, r1, d16
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000169
170@ CHECK: vldr.64 d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed]
171 vldr.64 d17, [r0]
172
173@ CHECK: vldr.64 d1, [r2, #32] @ encoding: [0x08,0x1b,0x92,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000174@ CHECK: vldr.64 d1, [r2, #-32] @ encoding: [0x08,0x1b,0x12,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000175 vldr.64 d1, [r2, #32]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000176 vldr.64 d1, [r2, #-32]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000177
178@ CHECK: vldr.64 d2, [r3] @ encoding: [0x00,0x2b,0x93,0xed]
179 vldr.64 d2, [r3]
180
181@ CHECK: vldr.64 d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
182@ CHECK: vldr.64 d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
183@ CHECK: vldr.64 d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
184 vldr.64 d3, [pc]
185 vldr.64 d3, [pc,#0]
186 vldr.64 d3, [pc,#-0]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000187
188@ CHECK: vldr.32 s13, [r0] @ encoding: [0x00,0x6a,0xd0,0xed]
189 vldr.32 s13, [r0]
190
191@ CHECK: vldr.32 s1, [r2, #32] @ encoding: [0x08,0x0a,0xd2,0xed]
192@ CHECK: vldr.32 s1, [r2, #-32] @ encoding: [0x08,0x0a,0x52,0xed]
193 vldr.32 s1, [r2, #32]
194 vldr.32 s1, [r2, #-32]
195
196@ CHECK: vldr.32 s2, [r3] @ encoding: [0x00,0x1a,0x93,0xed]
197 vldr.32 s2, [r3]
198
199@ CHECK: vldr.32 s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
200@ CHECK: vldr.32 s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
201@ CHECK: vldr.32 s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
202 vldr.32 s5, [pc]
203 vldr.32 s5, [pc,#0]
204 vldr.32 s5, [pc,#-0]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000205
206@ CHECK: vstr.64 d4, [r1] @ encoding: [0x00,0x4b,0x81,0xed]
207@ CHECK: vstr.64 d4, [r1, #24] @ encoding: [0x06,0x4b,0x81,0xed]
208@ CHECK: vstr.64 d4, [r1, #-24] @ encoding: [0x06,0x4b,0x01,0xed]
209 vstr.64 d4, [r1]
210 vstr.64 d4, [r1, #24]
211 vstr.64 d4, [r1, #-24]
212
213@ CHECK: vstr.32 s4, [r1] @ encoding: [0x00,0x2a,0x81,0xed]
214@ CHECK: vstr.32 s4, [r1, #24] @ encoding: [0x06,0x2a,0x81,0xed]
215@ CHECK: vstr.32 s4, [r1, #-24] @ encoding: [0x06,0x2a,0x01,0xed]
216 vstr.32 s4, [r1]
217 vstr.32 s4, [r1, #24]
218 vstr.32 s4, [r1, #-24]
Bill Wendling0f630752010-11-17 04:32:08 +0000219
220@ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec]
221@ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec]
222 vldmia r1, {d2,d3-d6,d7}
223 vldmia r1, {s2,s3-s6,s7}
224
225@ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec]
226@ CHECK: vstmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec]
227 vstmia r1, {d2,d3-d6,d7}
228 vstmia r1, {s2,s3-s6,s7}
Bruno Cardoso Lopes106df6d2011-01-26 13:53:38 +0000229
230@ CHECK: vcvtr.s32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee]
231@ CHECK: vcvtr.s32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee]
232@ CHECK: vcvtr.u32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee]
233@ CHECK: vcvtr.u32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee]
234 vcvtr.s32.f64 s0, d0
235 vcvtr.s32.f32 s0, s1
236 vcvtr.u32.f64 s0, d0
237 vcvtr.u32.f32 s0, s1