blob: d6a9ccca91506a18490409ee07dc8d3a4244cf58 [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
Bill Wendling52925b62010-10-29 23:50:21 +00002
Bill Wendling933b3142010-11-01 21:16:39 +00003@ CHECK: vadd.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x71,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +00004 vadd.f64 d16, d17, d16
Owen Anderson0da10cf2011-08-29 19:36:44 +00005
Bill Wendling933b3142010-11-01 21:16:39 +00006@ CHECK: vadd.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x30,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +00007 vadd.f32 s0, s1, s0
8
Bill Wendling933b3142010-11-01 21:16:39 +00009@ CHECK: vsub.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x71,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000010 vsub.f64 d16, d17, d16
11
Bill Wendling933b3142010-11-01 21:16:39 +000012@ CHECK: vsub.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x30,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000013 vsub.f32 s0, s1, s0
14
Bill Wendling933b3142010-11-01 21:16:39 +000015@ CHECK: vdiv.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0xc1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000016 vdiv.f64 d16, d17, d16
17
Bill Wendling933b3142010-11-01 21:16:39 +000018@ CHECK: vdiv.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x80,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000019 vdiv.f32 s0, s1, s0
20
Bill Wendling933b3142010-11-01 21:16:39 +000021@ CHECK: vmul.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x61,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000022 vmul.f64 d16, d17, d16
23
Jim Grosbachbfb0a172011-11-15 20:14:51 +000024@ CHECK: vmul.f64 d20, d20, d17 @ encoding: [0xa1,0x4b,0x64,0xee]
25 vmul.f64 d20, d17
26
Bill Wendling933b3142010-11-01 21:16:39 +000027@ CHECK: vmul.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x20,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000028 vmul.f32 s0, s1, s0
29
Jim Grosbachbfb0a172011-11-15 20:14:51 +000030@ CHECK: vmul.f32 s11, s11, s21 @ encoding: [0xaa,0x5a,0x65,0xee]
31 vmul.f32 s11, s21
32
Bill Wendling933b3142010-11-01 21:16:39 +000033@ CHECK: vnmul.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x61,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000034 vnmul.f64 d16, d17, d16
35
Bill Wendling933b3142010-11-01 21:16:39 +000036@ CHECK: vnmul.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x20,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000037 vnmul.f32 s0, s1, s0
38
Bill Wendling933b3142010-11-01 21:16:39 +000039@ CHECK: vcmpe.f64 d17, d16 @ encoding: [0xe0,0x1b,0xf4,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000040 vcmpe.f64 d17, d16
41
Bill Wendling933b3142010-11-01 21:16:39 +000042@ CHECK: vcmpe.f32 s1, s0 @ encoding: [0xc0,0x0a,0xf4,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000043 vcmpe.f32 s1, s0
44
Jim Grosbach68259142011-10-03 22:30:24 +000045@ CHECK: vcmpe.f64 d16, #0 @ encoding: [0xc0,0x0b,0xf5,0xee]
46 vcmpe.f64 d16, #0
Bill Wendling52925b62010-10-29 23:50:21 +000047
Jim Grosbach68259142011-10-03 22:30:24 +000048@ CHECK: vcmpe.f32 s0, #0 @ encoding: [0xc0,0x0a,0xb5,0xee]
49 vcmpe.f32 s0, #0
Bill Wendling52925b62010-10-29 23:50:21 +000050
Bill Wendling933b3142010-11-01 21:16:39 +000051@ CHECK: vabs.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf0,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000052 vabs.f64 d16, d16
53
Bill Wendling933b3142010-11-01 21:16:39 +000054@ CHECK: vabs.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb0,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000055 vabs.f32 s0, s0
Owen Anderson0da10cf2011-08-29 19:36:44 +000056
Bill Wendling933b3142010-11-01 21:16:39 +000057@ CHECK: vcvt.f32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xb7,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000058 vcvt.f32.f64 s0, d16
59
Bill Wendling933b3142010-11-01 21:16:39 +000060@ CHECK: vcvt.f64.f32 d16, s0 @ encoding: [0xc0,0x0a,0xf7,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000061 vcvt.f64.f32 d16, s0
62
Bill Wendling933b3142010-11-01 21:16:39 +000063@ CHECK: vneg.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000064 vneg.f64 d16, d16
65
Bill Wendling933b3142010-11-01 21:16:39 +000066@ CHECK: vneg.f32 s0, s0 @ encoding: [0x40,0x0a,0xb1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000067 vneg.f32 s0, s0
68
Bill Wendling933b3142010-11-01 21:16:39 +000069@ CHECK: vsqrt.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000070 vsqrt.f64 d16, d16
71
Bill Wendling933b3142010-11-01 21:16:39 +000072@ CHECK: vsqrt.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000073 vsqrt.f32 s0, s0
74
Bill Wendling933b3142010-11-01 21:16:39 +000075@ CHECK: vcvt.f64.s32 d16, s0 @ encoding: [0xc0,0x0b,0xf8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000076 vcvt.f64.s32 d16, s0
77
Bill Wendling933b3142010-11-01 21:16:39 +000078@ CHECK: vcvt.f32.s32 s0, s0 @ encoding: [0xc0,0x0a,0xb8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000079 vcvt.f32.s32 s0, s0
80
Bill Wendling933b3142010-11-01 21:16:39 +000081@ CHECK: vcvt.f64.u32 d16, s0 @ encoding: [0x40,0x0b,0xf8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000082 vcvt.f64.u32 d16, s0
83
Bill Wendling933b3142010-11-01 21:16:39 +000084@ CHECK: vcvt.f32.u32 s0, s0 @ encoding: [0x40,0x0a,0xb8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000085 vcvt.f32.u32 s0, s0
86
Bill Wendling933b3142010-11-01 21:16:39 +000087@ CHECK: vcvt.s32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbd,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000088 vcvt.s32.f64 s0, d16
89
Bill Wendling933b3142010-11-01 21:16:39 +000090@ CHECK: vcvt.s32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbd,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000091 vcvt.s32.f32 s0, s0
92
Bill Wendling933b3142010-11-01 21:16:39 +000093@ CHECK: vcvt.u32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbc,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000094 vcvt.u32.f64 s0, d16
95
Bill Wendling933b3142010-11-01 21:16:39 +000096@ CHECK: vcvt.u32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbc,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000097 vcvt.u32.f32 s0, s0
98
Bill Wendling933b3142010-11-01 21:16:39 +000099@ CHECK: vmla.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x42,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000100 vmla.f64 d16, d18, d17
101
Bill Wendling933b3142010-11-01 21:16:39 +0000102@ CHECK: vmla.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x41,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000103 vmla.f32 s1, s2, s0
104
Bill Wendling933b3142010-11-01 21:16:39 +0000105@ CHECK: vmls.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x42,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000106 vmls.f64 d16, d18, d17
107
Bill Wendling933b3142010-11-01 21:16:39 +0000108@ CHECK: vmls.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x41,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000109 vmls.f32 s1, s2, s0
110
Bill Wendling933b3142010-11-01 21:16:39 +0000111@ CHECK: vnmla.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x52,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000112 vnmla.f64 d16, d18, d17
113
Bill Wendling933b3142010-11-01 21:16:39 +0000114@ CHECK: vnmla.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x51,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000115 vnmla.f32 s1, s2, s0
116
Bill Wendling933b3142010-11-01 21:16:39 +0000117@ CHECK: vnmls.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x52,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000118 vnmls.f64 d16, d18, d17
119
Bill Wendling933b3142010-11-01 21:16:39 +0000120@ CHECK: vnmls.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x51,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000121 vnmls.f32 s1, s2, s0
122
Jim Grosbachb84ad4a2012-03-15 21:34:14 +0000123@ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
124@ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
125@ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
126 vmrs APSR_nzcv, fpscr
Jim Grosbach5cd5ac62011-10-03 21:12:43 +0000127 vmrs apsr_nzcv, fpscr
128 fmstat
Owen Anderson0da10cf2011-08-29 19:36:44 +0000129
Bill Wendling933b3142010-11-01 21:16:39 +0000130@ CHECK: vnegne.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0x1e]
Bill Wendling52925b62010-10-29 23:50:21 +0000131 vnegne.f64 d16, d16
132
Bill Wendling933b3142010-11-01 21:16:39 +0000133@ CHECK: vmovne s0, r0 @ encoding: [0x10,0x0a,0x00,0x1e]
134@ CHECK: vmoveq s0, r1 @ encoding: [0x10,0x1a,0x00,0x0e]
Bill Wendling52925b62010-10-29 23:50:21 +0000135 vmovne s0, r0
136 vmoveq s0, r1
137
Jim Grosbacha68e90c2011-11-15 20:29:42 +0000138 vmov.f32 r1, s2
139 vmov.f32 s4, r3
140 vmov.f64 r1, r5, d2
141 vmov.f64 d4, r3, r9
142
143@ CHECK: vmov r1, s2 @ encoding: [0x10,0x1a,0x11,0xee]
144@ CHECK: vmov s4, r3 @ encoding: [0x10,0x3a,0x02,0xee]
145@ CHECK: vmov r1, r5, d2 @ encoding: [0x12,0x1b,0x55,0xec]
146@ CHECK: vmov d4, r3, r9 @ encoding: [0x14,0x3b,0x49,0xec]
147
Bill Wendling933b3142010-11-01 21:16:39 +0000148@ CHECK: vmrs r0, fpscr @ encoding: [0x10,0x0a,0xf1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000149 vmrs r0, fpscr
Bruno Cardoso Lopes61505902011-01-18 21:58:20 +0000150@ CHECK: vmrs r0, fpexc @ encoding: [0x10,0x0a,0xf8,0xee]
151 vmrs r0, fpexc
152@ CHECK: vmrs r0, fpsid @ encoding: [0x10,0x0a,0xf0,0xee]
153 vmrs r0, fpsid
Bill Wendling52925b62010-10-29 23:50:21 +0000154
Bill Wendling933b3142010-11-01 21:16:39 +0000155@ CHECK: vmsr fpscr, r0 @ encoding: [0x10,0x0a,0xe1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000156 vmsr fpscr, r0
Bruno Cardoso Lopes61505902011-01-18 21:58:20 +0000157@ CHECK: vmsr fpexc, r0 @ encoding: [0x10,0x0a,0xe8,0xee]
158 vmsr fpexc, r0
159@ CHECK: vmsr fpsid, r0 @ encoding: [0x10,0x0a,0xe0,0xee]
160 vmsr fpsid, r0
Bill Wendling52925b62010-10-29 23:50:21 +0000161
Jim Grosbach9d390362011-10-03 23:38:36 +0000162 vmov.f64 d16, #3.000000e+00
163 vmov.f32 s0, #3.000000e+00
164 vmov.f64 d16, #-3.000000e+00
165 vmov.f32 s0, #-3.000000e+00
Bill Wendling52925b62010-10-29 23:50:21 +0000166
Jim Grosbach9d390362011-10-03 23:38:36 +0000167@ CHECK: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee]
168@ CHECK: vmov.f32 s0, #3.000000e+00 @ encoding: [0x08,0x0a,0xb0,0xee]
169@ CHECK: vmov.f64 d16, #-3.000000e+00 @ encoding: [0x08,0x0b,0xf8,0xee]
170@ CHECK: vmov.f32 s0, #-3.000000e+00 @ encoding: [0x08,0x0a,0xb8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000171
Bill Wendling933b3142010-11-01 21:16:39 +0000172@ CHECK: vmov s0, r0 @ encoding: [0x10,0x0a,0x00,0xee]
173@ CHECK: vmov s1, r1 @ encoding: [0x90,0x1a,0x00,0xee]
174@ CHECK: vmov s2, r2 @ encoding: [0x10,0x2a,0x01,0xee]
175@ CHECK: vmov s3, r3 @ encoding: [0x90,0x3a,0x01,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000176 vmov s0, r0
177 vmov s1, r1
178 vmov s2, r2
179 vmov s3, r3
180
Bill Wendling933b3142010-11-01 21:16:39 +0000181@ CHECK: vmov r0, s0 @ encoding: [0x10,0x0a,0x10,0xee]
182@ CHECK: vmov r1, s1 @ encoding: [0x90,0x1a,0x10,0xee]
183@ CHECK: vmov r2, s2 @ encoding: [0x10,0x2a,0x11,0xee]
184@ CHECK: vmov r3, s3 @ encoding: [0x90,0x3a,0x11,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000185 vmov r0, s0
186 vmov r1, s1
187 vmov r2, s2
188 vmov r3, s3
189
Bill Wendling933b3142010-11-01 21:16:39 +0000190@ CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec]
Bill Wendling52925b62010-10-29 23:50:21 +0000191 vmov r0, r1, d16
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000192
Jim Grosbachffc658b2011-11-14 23:03:21 +0000193@ CHECK: vldr d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed]
194@ CHECK: vldr s0, [lr] @ encoding: [0x00,0x0a,0x9e,0xed]
195@ CHECK: vldr d0, [lr] @ encoding: [0x00,0x0b,0x9e,0xed]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000196
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000197 vldr.64 d17, [r0]
Jim Grosbachffc658b2011-11-14 23:03:21 +0000198 vldr.i32 s0, [lr]
199 vldr.d d0, [lr]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000200
Jim Grosbachffc658b2011-11-14 23:03:21 +0000201@ CHECK: vldr d1, [r2, #32] @ encoding: [0x08,0x1b,0x92,0xed]
202@ CHECK: vldr d1, [r2, #-32] @ encoding: [0x08,0x1b,0x12,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000203 vldr.64 d1, [r2, #32]
Jim Grosbachffc658b2011-11-14 23:03:21 +0000204 vldr.f64 d1, [r2, #-32]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000205
Jim Grosbachffc658b2011-11-14 23:03:21 +0000206@ CHECK: vldr d2, [r3] @ encoding: [0x00,0x2b,0x93,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000207 vldr.64 d2, [r3]
208
Jim Grosbachffc658b2011-11-14 23:03:21 +0000209@ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
210@ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
211@ CHECK: vldr d3, [pc, #-0] @ encoding: [0x00,0x3b,0x1f,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000212 vldr.64 d3, [pc]
213 vldr.64 d3, [pc,#0]
214 vldr.64 d3, [pc,#-0]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000215
Jim Grosbachffc658b2011-11-14 23:03:21 +0000216@ CHECK: vldr s13, [r0] @ encoding: [0x00,0x6a,0xd0,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000217 vldr.32 s13, [r0]
218
Jim Grosbachffc658b2011-11-14 23:03:21 +0000219@ CHECK: vldr s1, [r2, #32] @ encoding: [0x08,0x0a,0xd2,0xed]
220@ CHECK: vldr s1, [r2, #-32] @ encoding: [0x08,0x0a,0x52,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000221 vldr.32 s1, [r2, #32]
222 vldr.32 s1, [r2, #-32]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000223
Jim Grosbachffc658b2011-11-14 23:03:21 +0000224@ CHECK: vldr s2, [r3] @ encoding: [0x00,0x1a,0x93,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000225 vldr.32 s2, [r3]
226
Jim Grosbachffc658b2011-11-14 23:03:21 +0000227@ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
228@ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
229@ CHECK: vldr s5, [pc, #-0] @ encoding: [0x00,0x2a,0x5f,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000230 vldr.32 s5, [pc]
231 vldr.32 s5, [pc,#0]
232 vldr.32 s5, [pc,#-0]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000233
Jim Grosbachffc658b2011-11-14 23:03:21 +0000234@ CHECK: vstr d4, [r1] @ encoding: [0x00,0x4b,0x81,0xed]
235@ CHECK: vstr d4, [r1, #24] @ encoding: [0x06,0x4b,0x81,0xed]
236@ CHECK: vstr d4, [r1, #-24] @ encoding: [0x06,0x4b,0x01,0xed]
237@ CHECK: vstr s0, [lr] @ encoding: [0x00,0x0a,0x8e,0xed]
238@ CHECK: vstr d0, [lr] @ encoding: [0x00,0x0b,0x8e,0xed]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000239
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000240 vstr.64 d4, [r1]
241 vstr.64 d4, [r1, #24]
242 vstr.64 d4, [r1, #-24]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000243 vstr s0, [lr]
244 vstr d0, [lr]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000245
Jim Grosbachffc658b2011-11-14 23:03:21 +0000246@ CHECK: vstr s4, [r1] @ encoding: [0x00,0x2a,0x81,0xed]
247@ CHECK: vstr s4, [r1, #24] @ encoding: [0x06,0x2a,0x81,0xed]
248@ CHECK: vstr s4, [r1, #-24] @ encoding: [0x06,0x2a,0x01,0xed]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000249 vstr.32 s4, [r1]
250 vstr.32 s4, [r1, #24]
251 vstr.32 s4, [r1, #-24]
Bill Wendling0f630752010-11-17 04:32:08 +0000252
253@ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec]
254@ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec]
255 vldmia r1, {d2,d3-d6,d7}
256 vldmia r1, {s2,s3-s6,s7}
257
258@ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec]
259@ CHECK: vstmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec]
Jim Grosbachce485e72011-11-11 21:27:40 +0000260@ CHECK: vpush {d8, d9, d10, d11, d12, d13, d14, d15} @ encoding: [0x10,0x8b,0x2d,0xed]
Bill Wendling0f630752010-11-17 04:32:08 +0000261 vstmia r1, {d2,d3-d6,d7}
262 vstmia r1, {s2,s3-s6,s7}
Jim Grosbachce485e72011-11-11 21:27:40 +0000263 vstmdb sp!, {q4-q7}
Bruno Cardoso Lopes106df6d2011-01-26 13:53:38 +0000264
265@ CHECK: vcvtr.s32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee]
266@ CHECK: vcvtr.s32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee]
267@ CHECK: vcvtr.u32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee]
268@ CHECK: vcvtr.u32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee]
269 vcvtr.s32.f64 s0, d0
270 vcvtr.s32.f32 s0, s1
271 vcvtr.u32.f64 s0, d0
272 vcvtr.u32.f32 s0, s1
Owen Anderson694e0ff2011-08-29 23:15:25 +0000273
274@ CHECK: vmovne s25, s26, r2, r5
275 vmovne s25, s26, r2, r5 @ encoding: [0x39,0x2a,0x45,0x1c]
Jim Grosbachaf33a0c2011-12-21 23:24:15 +0000276
277@ VMOV w/ optional data type suffix.
278 vmov.32 s1, r8
279 vmov.s16 s2, r4
280 vmov.16 s3, r6
281 vmov.u32 s4, r1
282 vmov.p8 s5, r2
283 vmov.8 s6, r3
284
285 vmov.32 r1, s8
286 vmov.s16 r2, s4
287 vmov.16 r3, s6
288 vmov.u32 r4, s1
289 vmov.p8 r5, s2
290 vmov.8 r6, s3
291
292@ CHECK: vmov s1, r8 @ encoding: [0x90,0x8a,0x00,0xee]
293@ CHECK: vmov s2, r4 @ encoding: [0x10,0x4a,0x01,0xee]
294@ CHECK: vmov s3, r6 @ encoding: [0x90,0x6a,0x01,0xee]
295@ CHECK: vmov s4, r1 @ encoding: [0x10,0x1a,0x02,0xee]
296@ CHECK: vmov s5, r2 @ encoding: [0x90,0x2a,0x02,0xee]
297@ CHECK: vmov s6, r3 @ encoding: [0x10,0x3a,0x03,0xee]
298@ CHECK: vmov r1, s8 @ encoding: [0x10,0x1a,0x14,0xee]
299@ CHECK: vmov r2, s4 @ encoding: [0x10,0x2a,0x12,0xee]
300@ CHECK: vmov r3, s6 @ encoding: [0x10,0x3a,0x13,0xee]
301@ CHECK: vmov r4, s1 @ encoding: [0x90,0x4a,0x10,0xee]
302@ CHECK: vmov r5, s2 @ encoding: [0x10,0x5a,0x11,0xee]
303@ CHECK: vmov r6, s3 @ encoding: [0x90,0x6a,0x11,0xee]
Jim Grosbach4050bc42011-12-22 22:19:05 +0000304
305
306@ VCVT (between floating-point and fixed-point)
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000307 vcvt.f32.u32 s0, s0, #20
Jim Grosbach4050bc42011-12-22 22:19:05 +0000308 vcvt.f64.s32 d0, d0, #32
309 vcvt.f32.u16 s0, s0, #1
310 vcvt.f64.s16 d0, d0, #16
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000311 vcvt.f32.s32 s1, s1, #20
312 vcvt.f64.u32 d20, d20, #32
313 vcvt.f32.s16 s17, s17, #1
314 vcvt.f64.u16 d23, d23, #16
315 vcvt.u32.f32 s12, s12, #20
316 vcvt.s32.f64 d2, d2, #32
317 vcvt.u16.f32 s28, s28, #1
318 vcvt.s16.f64 d15, d15, #16
319 vcvt.s32.f32 s1, s1, #20
320 vcvt.u32.f64 d20, d20, #32
321 vcvt.s16.f32 s17, s17, #1
322 vcvt.u16.f64 d23, d23, #16
Jim Grosbach4050bc42011-12-22 22:19:05 +0000323
324@ CHECK: vcvt.f32.u32 s0, s0, #20 @ encoding: [0xc6,0x0a,0xbb,0xee]
325@ CHECK: vcvt.f64.s32 d0, d0, #32 @ encoding: [0xc0,0x0b,0xba,0xee]
326@ CHECK: vcvt.f32.u16 s0, s0, #1 @ encoding: [0x67,0x0a,0xbb,0xee]
327@ CHECK: vcvt.f64.s16 d0, d0, #16 @ encoding: [0x40,0x0b,0xba,0xee]
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000328@ CHECK: vcvt.f32.s32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfa,0xee]
329@ CHECK: vcvt.f64.u32 d20, d20, #32 @ encoding: [0xc0,0x4b,0xfb,0xee]
330@ CHECK: vcvt.f32.s16 s17, s17, #1 @ encoding: [0x67,0x8a,0xfa,0xee]
331@ CHECK: vcvt.f64.u16 d23, d23, #16 @ encoding: [0x40,0x7b,0xfb,0xee]
332
333@ CHECK: vcvt.u32.f32 s12, s12, #20 @ encoding: [0xc6,0x6a,0xbf,0xee]
334@ CHECK: vcvt.s32.f64 d2, d2, #32 @ encoding: [0xc0,0x2b,0xbe,0xee]
335@ CHECK: vcvt.u16.f32 s28, s28, #1 @ encoding: [0x67,0xea,0xbf,0xee]
336@ CHECK: vcvt.s16.f64 d15, d15, #16 @ encoding: [0x40,0xfb,0xbe,0xee]
337@ CHECK: vcvt.s32.f32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfe,0xee]
338@ CHECK: vcvt.u32.f64 d20, d20, #32 @ encoding: [0xc0,0x4b,0xff,0xee]
339@ CHECK: vcvt.s16.f32 s17, s17, #1 @ encoding: [0x67,0x8a,0xfe,0xee]
340@ CHECK: vcvt.u16.f64 d23, d23, #16 @ encoding: [0x40,0x7b,0xff,0xee]
Jim Grosbach51222d12012-01-20 18:09:51 +0000341
342
343@ Use NEON to load some f32 immediates that don't fit the f8 representation.
344 vmov.f32 d4, #0.0
345 vmov.f32 d4, #32.0
346
347@ CHECK: vmov.i32 d4, #0x0 @ encoding: [0x10,0x40,0x80,0xf2]
348@ CHECK: vmov.i32 d4, #0x42000000 @ encoding: [0x12,0x46,0x84,0xf2]