blob: 2a226205a086d27387ee1c27fe21baeaf941239f [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
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +00003 vadd.f64 d16, d17, d16
4 vadd.f32 s0, s1, s0
Bill Wendling933b3142010-11-01 21:16:39 +00005@ CHECK: vadd.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x71,0xee]
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
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +00008 vsub.f64 d16, d17, d16
9 vsub.f32 s0, s1, s0
Bill Wendling933b3142010-11-01 21:16:39 +000010@ CHECK: vsub.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x71,0xee]
Bill Wendling933b3142010-11-01 21:16:39 +000011@ CHECK: vsub.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x30,0xee]
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000012
13 vdiv.f64 d16, d17, d16
14 vdiv.f32 s0, s1, s0
Jim Grosbach181b1472012-04-20 00:15:00 +000015 vdiv.f32 s5, s7
16 vdiv.f64 d5, d7
Bill Wendling52925b62010-10-29 23:50:21 +000017
Jim Grosbach181b1472012-04-20 00:15:00 +000018@ CHECK: vdiv.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0xc1,0xee]
19@ CHECK: vdiv.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x80,0xee]
20@ CHECK: vdiv.f32 s5, s5, s7 @ encoding: [0xa3,0x2a,0xc2,0xee]
21@ CHECK: vdiv.f64 d5, d5, d7 @ encoding: [0x07,0x5b,0x85,0xee]
22
Bill Wendling52925b62010-10-29 23:50:21 +000023
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000024 vmul.f64 d16, d17, d16
Jim Grosbachbfb0a172011-11-15 20:14:51 +000025 vmul.f64 d20, d17
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000026 vmul.f32 s0, s1, s0
Jim Grosbachbfb0a172011-11-15 20:14:51 +000027 vmul.f32 s11, s21
28
Bill Wendling52925b62010-10-29 23:50:21 +000029
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000030@ CHECK: vmul.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x61,0xee]
31@ CHECK: vmul.f64 d20, d20, d17 @ encoding: [0xa1,0x4b,0x64,0xee]
32@ CHECK: vmul.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x20,0xee]
33@ CHECK: vmul.f32 s11, s11, s21 @ encoding: [0xaa,0x5a,0x65,0xee]
34
35 vnmul.f64 d16, d17, d16
Bill Wendling52925b62010-10-29 23:50:21 +000036 vnmul.f32 s0, s1, s0
37
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000038@ CHECK: vnmul.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x61,0xee]
39@ CHECK: vnmul.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x20,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000040
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000041 vcmpe.f64 d17, d16
Bill Wendling52925b62010-10-29 23:50:21 +000042 vcmpe.f32 s1, s0
43
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000044@ CHECK: vcmpe.f64 d17, d16 @ encoding: [0xe0,0x1b,0xf4,0xee]
45@ CHECK: vcmpe.f32 s1, s0 @ encoding: [0xc0,0x0a,0xf4,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000046
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000047 vcmpe.f64 d16, #0
Jim Grosbach68259142011-10-03 22:30:24 +000048 vcmpe.f32 s0, #0
Bill Wendling52925b62010-10-29 23:50:21 +000049
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000050@ CHECK: vcmpe.f64 d16, #0 @ encoding: [0xc0,0x0b,0xf5,0xee]
51@ CHECK: vcmpe.f32 s0, #0 @ encoding: [0xc0,0x0a,0xb5,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000052
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000053 vabs.f64 d16, d16
Bill Wendling52925b62010-10-29 23:50:21 +000054 vabs.f32 s0, s0
Owen Anderson0da10cf2011-08-29 19:36:44 +000055
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000056@ CHECK: vabs.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf0,0xee]
57@ CHECK: vabs.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb0,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000058
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000059 vcvt.f32.f64 s0, d16
Bill Wendling52925b62010-10-29 23:50:21 +000060 vcvt.f64.f32 d16, s0
61
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000062@ CHECK: vcvt.f32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xb7,0xee]
63@ CHECK: vcvt.f64.f32 d16, s0 @ encoding: [0xc0,0x0a,0xf7,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000064
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000065 vneg.f64 d16, d16
Bill Wendling52925b62010-10-29 23:50:21 +000066 vneg.f32 s0, s0
67
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000068@ CHECK: vneg.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0xee]
69@ CHECK: vneg.f32 s0, s0 @ encoding: [0x40,0x0a,0xb1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000070
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000071 vsqrt.f64 d16, d16
Bill Wendling52925b62010-10-29 23:50:21 +000072 vsqrt.f32 s0, s0
73
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000074@ CHECK: vsqrt.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf1,0xee]
75@ CHECK: vsqrt.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb1,0xee]
76
Bill Wendling52925b62010-10-29 23:50:21 +000077 vcvt.f64.s32 d16, s0
Bill Wendling52925b62010-10-29 23:50:21 +000078 vcvt.f32.s32 s0, s0
Bill Wendling52925b62010-10-29 23:50:21 +000079 vcvt.f64.u32 d16, s0
Bill Wendling52925b62010-10-29 23:50:21 +000080 vcvt.f32.u32 s0, s0
Bill Wendling52925b62010-10-29 23:50:21 +000081 vcvt.s32.f64 s0, d16
Bill Wendling52925b62010-10-29 23:50:21 +000082 vcvt.s32.f32 s0, s0
Bill Wendling52925b62010-10-29 23:50:21 +000083 vcvt.u32.f64 s0, d16
Bill Wendling52925b62010-10-29 23:50:21 +000084 vcvt.u32.f32 s0, s0
85
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000086@ CHECK: vcvt.f64.s32 d16, s0 @ encoding: [0xc0,0x0b,0xf8,0xee]
87@ CHECK: vcvt.f32.s32 s0, s0 @ encoding: [0xc0,0x0a,0xb8,0xee]
88@ CHECK: vcvt.f64.u32 d16, s0 @ encoding: [0x40,0x0b,0xf8,0xee]
89@ CHECK: vcvt.f32.u32 s0, s0 @ encoding: [0x40,0x0a,0xb8,0xee]
90@ CHECK: vcvt.s32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbd,0xee]
91@ CHECK: vcvt.s32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbd,0xee]
92@ CHECK: vcvt.u32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbc,0xee]
93@ CHECK: vcvt.u32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbc,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000094
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000095
96 vmla.f64 d16, d18, d17
Bill Wendling52925b62010-10-29 23:50:21 +000097 vmla.f32 s1, s2, s0
98
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000099@ CHECK: vmla.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x42,0xee]
100@ CHECK: vmla.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x41,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000101
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000102 vmls.f64 d16, d18, d17
Bill Wendling52925b62010-10-29 23:50:21 +0000103 vmls.f32 s1, s2, s0
104
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000105@ CHECK: vmls.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x42,0xee]
106@ CHECK: vmls.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x41,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000107
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000108 vnmla.f64 d16, d18, d17
Bill Wendling52925b62010-10-29 23:50:21 +0000109 vnmla.f32 s1, s2, s0
110
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000111@ CHECK: vnmla.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x52,0xee]
112@ CHECK: vnmla.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x51,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000113
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000114 vnmls.f64 d16, d18, d17
Bill Wendling52925b62010-10-29 23:50:21 +0000115 vnmls.f32 s1, s2, s0
116
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000117@ CHECK: vnmls.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x52,0xee]
118@ CHECK: vnmls.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x51,0xee]
119
Jim Grosbachb84ad4a2012-03-15 21:34:14 +0000120 vmrs APSR_nzcv, fpscr
Jim Grosbach5cd5ac62011-10-03 21:12:43 +0000121 vmrs apsr_nzcv, fpscr
122 fmstat
Jim Grosbach9426ac72012-03-16 00:27:18 +0000123 vmrs r2, fpsid
124 vmrs r3, FPSID
125 vmrs r4, mvfr0
126 vmrs r5, MVFR1
127
128@ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
129@ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
130@ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
131@ CHECK: vmrs r2, fpsid @ encoding: [0x10,0x2a,0xf0,0xee]
132@ CHECK: vmrs r3, fpsid @ encoding: [0x10,0x3a,0xf0,0xee]
133@ CHECK: vmrs r4, mvfr0 @ encoding: [0x10,0x4a,0xf7,0xee]
134@ CHECK: vmrs r5, mvfr1 @ encoding: [0x10,0x5a,0xf6,0xee]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000135
Bill Wendling933b3142010-11-01 21:16:39 +0000136@ CHECK: vnegne.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0x1e]
Bill Wendling52925b62010-10-29 23:50:21 +0000137 vnegne.f64 d16, d16
138
Bill Wendling933b3142010-11-01 21:16:39 +0000139@ CHECK: vmovne s0, r0 @ encoding: [0x10,0x0a,0x00,0x1e]
140@ CHECK: vmoveq s0, r1 @ encoding: [0x10,0x1a,0x00,0x0e]
Bill Wendling52925b62010-10-29 23:50:21 +0000141 vmovne s0, r0
142 vmoveq s0, r1
143
Jim Grosbacha68e90c2011-11-15 20:29:42 +0000144 vmov.f32 r1, s2
145 vmov.f32 s4, r3
146 vmov.f64 r1, r5, d2
147 vmov.f64 d4, r3, r9
148
149@ CHECK: vmov r1, s2 @ encoding: [0x10,0x1a,0x11,0xee]
150@ CHECK: vmov s4, r3 @ encoding: [0x10,0x3a,0x02,0xee]
151@ CHECK: vmov r1, r5, d2 @ encoding: [0x12,0x1b,0x55,0xec]
152@ CHECK: vmov d4, r3, r9 @ encoding: [0x14,0x3b,0x49,0xec]
153
Bill Wendling933b3142010-11-01 21:16:39 +0000154@ CHECK: vmrs r0, fpscr @ encoding: [0x10,0x0a,0xf1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000155 vmrs r0, fpscr
Bruno Cardoso Lopes61505902011-01-18 21:58:20 +0000156@ CHECK: vmrs r0, fpexc @ encoding: [0x10,0x0a,0xf8,0xee]
157 vmrs r0, fpexc
158@ CHECK: vmrs r0, fpsid @ encoding: [0x10,0x0a,0xf0,0xee]
159 vmrs r0, fpsid
Bill Wendling52925b62010-10-29 23:50:21 +0000160
Bill Wendling933b3142010-11-01 21:16:39 +0000161@ CHECK: vmsr fpscr, r0 @ encoding: [0x10,0x0a,0xe1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000162 vmsr fpscr, r0
Bruno Cardoso Lopes61505902011-01-18 21:58:20 +0000163@ CHECK: vmsr fpexc, r0 @ encoding: [0x10,0x0a,0xe8,0xee]
164 vmsr fpexc, r0
165@ CHECK: vmsr fpsid, r0 @ encoding: [0x10,0x0a,0xe0,0xee]
166 vmsr fpsid, r0
Bill Wendling52925b62010-10-29 23:50:21 +0000167
Jim Grosbach9d390362011-10-03 23:38:36 +0000168 vmov.f64 d16, #3.000000e+00
169 vmov.f32 s0, #3.000000e+00
170 vmov.f64 d16, #-3.000000e+00
171 vmov.f32 s0, #-3.000000e+00
Bill Wendling52925b62010-10-29 23:50:21 +0000172
Jim Grosbach9d390362011-10-03 23:38:36 +0000173@ CHECK: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee]
174@ CHECK: vmov.f32 s0, #3.000000e+00 @ encoding: [0x08,0x0a,0xb0,0xee]
175@ CHECK: vmov.f64 d16, #-3.000000e+00 @ encoding: [0x08,0x0b,0xf8,0xee]
176@ CHECK: vmov.f32 s0, #-3.000000e+00 @ encoding: [0x08,0x0a,0xb8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000177
Bill Wendling933b3142010-11-01 21:16:39 +0000178@ CHECK: vmov s0, r0 @ encoding: [0x10,0x0a,0x00,0xee]
179@ CHECK: vmov s1, r1 @ encoding: [0x90,0x1a,0x00,0xee]
180@ CHECK: vmov s2, r2 @ encoding: [0x10,0x2a,0x01,0xee]
181@ CHECK: vmov s3, r3 @ encoding: [0x90,0x3a,0x01,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000182 vmov s0, r0
183 vmov s1, r1
184 vmov s2, r2
185 vmov s3, r3
186
Bill Wendling933b3142010-11-01 21:16:39 +0000187@ CHECK: vmov r0, s0 @ encoding: [0x10,0x0a,0x10,0xee]
188@ CHECK: vmov r1, s1 @ encoding: [0x90,0x1a,0x10,0xee]
189@ CHECK: vmov r2, s2 @ encoding: [0x10,0x2a,0x11,0xee]
190@ CHECK: vmov r3, s3 @ encoding: [0x90,0x3a,0x11,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000191 vmov r0, s0
192 vmov r1, s1
193 vmov r2, s2
194 vmov r3, s3
195
Bill Wendling933b3142010-11-01 21:16:39 +0000196@ CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec]
Bill Wendling52925b62010-10-29 23:50:21 +0000197 vmov r0, r1, d16
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000198
Richard Bartonfae96f12012-07-10 12:51:09 +0000199@ Between two single precision registers and two core registers
200 vmov s3, s4, r1, r2
201 vmov s2, s3, r1, r2
202 vmov r1, r2, s3, s4
203 vmov r1, r2, s2, s3
204@ CHECK: vmov s3, s4, r1, r2 @ encoding: [0x31,0x1a,0x42,0xec]
205@ CHECK: vmov s2, s3, r1, r2 @ encoding: [0x11,0x1a,0x42,0xec]
206@ CHECK: vmov r1, r2, s3, s4 @ encoding: [0x31,0x1a,0x52,0xec]
207@ CHECK: vmov r1, r2, s2, s3 @ encoding: [0x11,0x1a,0x52,0xec]
208
209@ Between one double precision register and two core registers
210 vmov d15, r1, r2
211 vmov d16, r1, r2
212 vmov r1, r2, d15
213 vmov r1, r2, d16
214@ CHECK: vmov d15, r1, r2 @ encoding: [0x1f,0x1b,0x42,0xec]
215@ CHECK: vmov d16, r1, r2 @ encoding: [0x30,0x1b,0x42,0xec]
216@ CHECK: vmov r1, r2, d15 @ encoding: [0x1f,0x1b,0x52,0xec]
217@ CHECK: vmov r1, r2, d16 @ encoding: [0x30,0x1b,0x52,0xec]
218
219
Jim Grosbachffc658b2011-11-14 23:03:21 +0000220@ CHECK: vldr d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed]
221@ CHECK: vldr s0, [lr] @ encoding: [0x00,0x0a,0x9e,0xed]
222@ CHECK: vldr d0, [lr] @ encoding: [0x00,0x0b,0x9e,0xed]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000223
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000224 vldr.64 d17, [r0]
Jim Grosbachffc658b2011-11-14 23:03:21 +0000225 vldr.i32 s0, [lr]
226 vldr.d d0, [lr]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000227
Jim Grosbachffc658b2011-11-14 23:03:21 +0000228@ CHECK: vldr d1, [r2, #32] @ encoding: [0x08,0x1b,0x92,0xed]
229@ CHECK: vldr d1, [r2, #-32] @ encoding: [0x08,0x1b,0x12,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000230 vldr.64 d1, [r2, #32]
Jim Grosbachffc658b2011-11-14 23:03:21 +0000231 vldr.f64 d1, [r2, #-32]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000232
Jim Grosbachffc658b2011-11-14 23:03:21 +0000233@ CHECK: vldr d2, [r3] @ encoding: [0x00,0x2b,0x93,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000234 vldr.64 d2, [r3]
235
Jim Grosbachffc658b2011-11-14 23:03:21 +0000236@ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
237@ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
238@ CHECK: vldr d3, [pc, #-0] @ encoding: [0x00,0x3b,0x1f,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000239 vldr.64 d3, [pc]
240 vldr.64 d3, [pc,#0]
241 vldr.64 d3, [pc,#-0]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000242
Jim Grosbachffc658b2011-11-14 23:03:21 +0000243@ CHECK: vldr s13, [r0] @ encoding: [0x00,0x6a,0xd0,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000244 vldr.32 s13, [r0]
245
Jim Grosbachffc658b2011-11-14 23:03:21 +0000246@ CHECK: vldr s1, [r2, #32] @ encoding: [0x08,0x0a,0xd2,0xed]
247@ CHECK: vldr s1, [r2, #-32] @ encoding: [0x08,0x0a,0x52,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000248 vldr.32 s1, [r2, #32]
249 vldr.32 s1, [r2, #-32]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000250
Jim Grosbachffc658b2011-11-14 23:03:21 +0000251@ CHECK: vldr s2, [r3] @ encoding: [0x00,0x1a,0x93,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000252 vldr.32 s2, [r3]
253
Jim Grosbachffc658b2011-11-14 23:03:21 +0000254@ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
255@ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
256@ CHECK: vldr s5, [pc, #-0] @ encoding: [0x00,0x2a,0x5f,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000257 vldr.32 s5, [pc]
258 vldr.32 s5, [pc,#0]
259 vldr.32 s5, [pc,#-0]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000260
Jim Grosbachffc658b2011-11-14 23:03:21 +0000261@ CHECK: vstr d4, [r1] @ encoding: [0x00,0x4b,0x81,0xed]
262@ CHECK: vstr d4, [r1, #24] @ encoding: [0x06,0x4b,0x81,0xed]
263@ CHECK: vstr d4, [r1, #-24] @ encoding: [0x06,0x4b,0x01,0xed]
264@ CHECK: vstr s0, [lr] @ encoding: [0x00,0x0a,0x8e,0xed]
265@ CHECK: vstr d0, [lr] @ encoding: [0x00,0x0b,0x8e,0xed]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000266
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000267 vstr.64 d4, [r1]
268 vstr.64 d4, [r1, #24]
269 vstr.64 d4, [r1, #-24]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000270 vstr s0, [lr]
271 vstr d0, [lr]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000272
Jim Grosbachffc658b2011-11-14 23:03:21 +0000273@ CHECK: vstr s4, [r1] @ encoding: [0x00,0x2a,0x81,0xed]
274@ CHECK: vstr s4, [r1, #24] @ encoding: [0x06,0x2a,0x81,0xed]
275@ CHECK: vstr s4, [r1, #-24] @ encoding: [0x06,0x2a,0x01,0xed]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000276 vstr.32 s4, [r1]
277 vstr.32 s4, [r1, #24]
278 vstr.32 s4, [r1, #-24]
Bill Wendling0f630752010-11-17 04:32:08 +0000279
280@ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec]
281@ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec]
282 vldmia r1, {d2,d3-d6,d7}
283 vldmia r1, {s2,s3-s6,s7}
284
285@ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec]
286@ CHECK: vstmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec]
Jim Grosbachce485e72011-11-11 21:27:40 +0000287@ CHECK: vpush {d8, d9, d10, d11, d12, d13, d14, d15} @ encoding: [0x10,0x8b,0x2d,0xed]
Bill Wendling0f630752010-11-17 04:32:08 +0000288 vstmia r1, {d2,d3-d6,d7}
289 vstmia r1, {s2,s3-s6,s7}
Jim Grosbachce485e72011-11-11 21:27:40 +0000290 vstmdb sp!, {q4-q7}
Bruno Cardoso Lopes106df6d2011-01-26 13:53:38 +0000291
292@ CHECK: vcvtr.s32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee]
293@ CHECK: vcvtr.s32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee]
294@ CHECK: vcvtr.u32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee]
295@ CHECK: vcvtr.u32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee]
296 vcvtr.s32.f64 s0, d0
297 vcvtr.s32.f32 s0, s1
298 vcvtr.u32.f64 s0, d0
299 vcvtr.u32.f32 s0, s1
Owen Anderson694e0ff2011-08-29 23:15:25 +0000300
301@ CHECK: vmovne s25, s26, r2, r5
302 vmovne s25, s26, r2, r5 @ encoding: [0x39,0x2a,0x45,0x1c]
Jim Grosbachaf33a0c2011-12-21 23:24:15 +0000303
304@ VMOV w/ optional data type suffix.
305 vmov.32 s1, r8
306 vmov.s16 s2, r4
307 vmov.16 s3, r6
308 vmov.u32 s4, r1
309 vmov.p8 s5, r2
310 vmov.8 s6, r3
311
312 vmov.32 r1, s8
313 vmov.s16 r2, s4
314 vmov.16 r3, s6
315 vmov.u32 r4, s1
316 vmov.p8 r5, s2
317 vmov.8 r6, s3
318
319@ CHECK: vmov s1, r8 @ encoding: [0x90,0x8a,0x00,0xee]
320@ CHECK: vmov s2, r4 @ encoding: [0x10,0x4a,0x01,0xee]
321@ CHECK: vmov s3, r6 @ encoding: [0x90,0x6a,0x01,0xee]
322@ CHECK: vmov s4, r1 @ encoding: [0x10,0x1a,0x02,0xee]
323@ CHECK: vmov s5, r2 @ encoding: [0x90,0x2a,0x02,0xee]
324@ CHECK: vmov s6, r3 @ encoding: [0x10,0x3a,0x03,0xee]
325@ CHECK: vmov r1, s8 @ encoding: [0x10,0x1a,0x14,0xee]
326@ CHECK: vmov r2, s4 @ encoding: [0x10,0x2a,0x12,0xee]
327@ CHECK: vmov r3, s6 @ encoding: [0x10,0x3a,0x13,0xee]
328@ CHECK: vmov r4, s1 @ encoding: [0x90,0x4a,0x10,0xee]
329@ CHECK: vmov r5, s2 @ encoding: [0x10,0x5a,0x11,0xee]
330@ CHECK: vmov r6, s3 @ encoding: [0x90,0x6a,0x11,0xee]
Jim Grosbach4050bc42011-12-22 22:19:05 +0000331
332
333@ VCVT (between floating-point and fixed-point)
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000334 vcvt.f32.u32 s0, s0, #20
Jim Grosbach4050bc42011-12-22 22:19:05 +0000335 vcvt.f64.s32 d0, d0, #32
336 vcvt.f32.u16 s0, s0, #1
337 vcvt.f64.s16 d0, d0, #16
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000338 vcvt.f32.s32 s1, s1, #20
339 vcvt.f64.u32 d20, d20, #32
340 vcvt.f32.s16 s17, s17, #1
341 vcvt.f64.u16 d23, d23, #16
342 vcvt.u32.f32 s12, s12, #20
343 vcvt.s32.f64 d2, d2, #32
344 vcvt.u16.f32 s28, s28, #1
345 vcvt.s16.f64 d15, d15, #16
346 vcvt.s32.f32 s1, s1, #20
347 vcvt.u32.f64 d20, d20, #32
348 vcvt.s16.f32 s17, s17, #1
349 vcvt.u16.f64 d23, d23, #16
Jim Grosbach4050bc42011-12-22 22:19:05 +0000350
351@ CHECK: vcvt.f32.u32 s0, s0, #20 @ encoding: [0xc6,0x0a,0xbb,0xee]
352@ CHECK: vcvt.f64.s32 d0, d0, #32 @ encoding: [0xc0,0x0b,0xba,0xee]
353@ CHECK: vcvt.f32.u16 s0, s0, #1 @ encoding: [0x67,0x0a,0xbb,0xee]
354@ CHECK: vcvt.f64.s16 d0, d0, #16 @ encoding: [0x40,0x0b,0xba,0xee]
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000355@ CHECK: vcvt.f32.s32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfa,0xee]
356@ CHECK: vcvt.f64.u32 d20, d20, #32 @ encoding: [0xc0,0x4b,0xfb,0xee]
357@ CHECK: vcvt.f32.s16 s17, s17, #1 @ encoding: [0x67,0x8a,0xfa,0xee]
358@ CHECK: vcvt.f64.u16 d23, d23, #16 @ encoding: [0x40,0x7b,0xfb,0xee]
359
360@ CHECK: vcvt.u32.f32 s12, s12, #20 @ encoding: [0xc6,0x6a,0xbf,0xee]
361@ CHECK: vcvt.s32.f64 d2, d2, #32 @ encoding: [0xc0,0x2b,0xbe,0xee]
362@ CHECK: vcvt.u16.f32 s28, s28, #1 @ encoding: [0x67,0xea,0xbf,0xee]
363@ CHECK: vcvt.s16.f64 d15, d15, #16 @ encoding: [0x40,0xfb,0xbe,0xee]
364@ CHECK: vcvt.s32.f32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfe,0xee]
365@ CHECK: vcvt.u32.f64 d20, d20, #32 @ encoding: [0xc0,0x4b,0xff,0xee]
366@ CHECK: vcvt.s16.f32 s17, s17, #1 @ encoding: [0x67,0x8a,0xfe,0xee]
367@ CHECK: vcvt.u16.f64 d23, d23, #16 @ encoding: [0x40,0x7b,0xff,0xee]
Jim Grosbach51222d12012-01-20 18:09:51 +0000368
369
370@ Use NEON to load some f32 immediates that don't fit the f8 representation.
371 vmov.f32 d4, #0.0
372 vmov.f32 d4, #32.0
373
374@ CHECK: vmov.i32 d4, #0x0 @ encoding: [0x10,0x40,0x80,0xf2]
375@ CHECK: vmov.i32 d4, #0x42000000 @ encoding: [0x12,0x46,0x84,0xf2]