blob: a766b9539a75087c51c0bac81e259701847e5cc1 [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
Jim Grosbachffc658b2011-11-14 23:03:21 +0000199@ CHECK: vldr d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed]
200@ CHECK: vldr s0, [lr] @ encoding: [0x00,0x0a,0x9e,0xed]
201@ CHECK: vldr d0, [lr] @ encoding: [0x00,0x0b,0x9e,0xed]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000202
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000203 vldr.64 d17, [r0]
Jim Grosbachffc658b2011-11-14 23:03:21 +0000204 vldr.i32 s0, [lr]
205 vldr.d d0, [lr]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000206
Jim Grosbachffc658b2011-11-14 23:03:21 +0000207@ CHECK: vldr d1, [r2, #32] @ encoding: [0x08,0x1b,0x92,0xed]
208@ CHECK: vldr d1, [r2, #-32] @ encoding: [0x08,0x1b,0x12,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000209 vldr.64 d1, [r2, #32]
Jim Grosbachffc658b2011-11-14 23:03:21 +0000210 vldr.f64 d1, [r2, #-32]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000211
Jim Grosbachffc658b2011-11-14 23:03:21 +0000212@ CHECK: vldr d2, [r3] @ encoding: [0x00,0x2b,0x93,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000213 vldr.64 d2, [r3]
214
Jim Grosbachffc658b2011-11-14 23:03:21 +0000215@ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
216@ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
217@ CHECK: vldr d3, [pc, #-0] @ encoding: [0x00,0x3b,0x1f,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000218 vldr.64 d3, [pc]
219 vldr.64 d3, [pc,#0]
220 vldr.64 d3, [pc,#-0]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000221
Jim Grosbachffc658b2011-11-14 23:03:21 +0000222@ CHECK: vldr s13, [r0] @ encoding: [0x00,0x6a,0xd0,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000223 vldr.32 s13, [r0]
224
Jim Grosbachffc658b2011-11-14 23:03:21 +0000225@ CHECK: vldr s1, [r2, #32] @ encoding: [0x08,0x0a,0xd2,0xed]
226@ CHECK: vldr s1, [r2, #-32] @ encoding: [0x08,0x0a,0x52,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000227 vldr.32 s1, [r2, #32]
228 vldr.32 s1, [r2, #-32]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000229
Jim Grosbachffc658b2011-11-14 23:03:21 +0000230@ CHECK: vldr s2, [r3] @ encoding: [0x00,0x1a,0x93,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000231 vldr.32 s2, [r3]
232
Jim Grosbachffc658b2011-11-14 23:03:21 +0000233@ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
234@ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
235@ CHECK: vldr s5, [pc, #-0] @ encoding: [0x00,0x2a,0x5f,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000236 vldr.32 s5, [pc]
237 vldr.32 s5, [pc,#0]
238 vldr.32 s5, [pc,#-0]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000239
Jim Grosbachffc658b2011-11-14 23:03:21 +0000240@ CHECK: vstr d4, [r1] @ encoding: [0x00,0x4b,0x81,0xed]
241@ CHECK: vstr d4, [r1, #24] @ encoding: [0x06,0x4b,0x81,0xed]
242@ CHECK: vstr d4, [r1, #-24] @ encoding: [0x06,0x4b,0x01,0xed]
243@ CHECK: vstr s0, [lr] @ encoding: [0x00,0x0a,0x8e,0xed]
244@ CHECK: vstr d0, [lr] @ encoding: [0x00,0x0b,0x8e,0xed]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000245
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000246 vstr.64 d4, [r1]
247 vstr.64 d4, [r1, #24]
248 vstr.64 d4, [r1, #-24]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000249 vstr s0, [lr]
250 vstr d0, [lr]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000251
Jim Grosbachffc658b2011-11-14 23:03:21 +0000252@ CHECK: vstr s4, [r1] @ encoding: [0x00,0x2a,0x81,0xed]
253@ CHECK: vstr s4, [r1, #24] @ encoding: [0x06,0x2a,0x81,0xed]
254@ CHECK: vstr s4, [r1, #-24] @ encoding: [0x06,0x2a,0x01,0xed]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000255 vstr.32 s4, [r1]
256 vstr.32 s4, [r1, #24]
257 vstr.32 s4, [r1, #-24]
Bill Wendling0f630752010-11-17 04:32:08 +0000258
259@ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec]
260@ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec]
261 vldmia r1, {d2,d3-d6,d7}
262 vldmia r1, {s2,s3-s6,s7}
263
264@ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec]
265@ CHECK: vstmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec]
Jim Grosbachce485e72011-11-11 21:27:40 +0000266@ CHECK: vpush {d8, d9, d10, d11, d12, d13, d14, d15} @ encoding: [0x10,0x8b,0x2d,0xed]
Bill Wendling0f630752010-11-17 04:32:08 +0000267 vstmia r1, {d2,d3-d6,d7}
268 vstmia r1, {s2,s3-s6,s7}
Jim Grosbachce485e72011-11-11 21:27:40 +0000269 vstmdb sp!, {q4-q7}
Bruno Cardoso Lopes106df6d2011-01-26 13:53:38 +0000270
271@ CHECK: vcvtr.s32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee]
272@ CHECK: vcvtr.s32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee]
273@ CHECK: vcvtr.u32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee]
274@ CHECK: vcvtr.u32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee]
275 vcvtr.s32.f64 s0, d0
276 vcvtr.s32.f32 s0, s1
277 vcvtr.u32.f64 s0, d0
278 vcvtr.u32.f32 s0, s1
Owen Anderson694e0ff2011-08-29 23:15:25 +0000279
280@ CHECK: vmovne s25, s26, r2, r5
281 vmovne s25, s26, r2, r5 @ encoding: [0x39,0x2a,0x45,0x1c]
Jim Grosbachaf33a0c2011-12-21 23:24:15 +0000282
283@ VMOV w/ optional data type suffix.
284 vmov.32 s1, r8
285 vmov.s16 s2, r4
286 vmov.16 s3, r6
287 vmov.u32 s4, r1
288 vmov.p8 s5, r2
289 vmov.8 s6, r3
290
291 vmov.32 r1, s8
292 vmov.s16 r2, s4
293 vmov.16 r3, s6
294 vmov.u32 r4, s1
295 vmov.p8 r5, s2
296 vmov.8 r6, s3
297
298@ CHECK: vmov s1, r8 @ encoding: [0x90,0x8a,0x00,0xee]
299@ CHECK: vmov s2, r4 @ encoding: [0x10,0x4a,0x01,0xee]
300@ CHECK: vmov s3, r6 @ encoding: [0x90,0x6a,0x01,0xee]
301@ CHECK: vmov s4, r1 @ encoding: [0x10,0x1a,0x02,0xee]
302@ CHECK: vmov s5, r2 @ encoding: [0x90,0x2a,0x02,0xee]
303@ CHECK: vmov s6, r3 @ encoding: [0x10,0x3a,0x03,0xee]
304@ CHECK: vmov r1, s8 @ encoding: [0x10,0x1a,0x14,0xee]
305@ CHECK: vmov r2, s4 @ encoding: [0x10,0x2a,0x12,0xee]
306@ CHECK: vmov r3, s6 @ encoding: [0x10,0x3a,0x13,0xee]
307@ CHECK: vmov r4, s1 @ encoding: [0x90,0x4a,0x10,0xee]
308@ CHECK: vmov r5, s2 @ encoding: [0x10,0x5a,0x11,0xee]
309@ CHECK: vmov r6, s3 @ encoding: [0x90,0x6a,0x11,0xee]
Jim Grosbach4050bc42011-12-22 22:19:05 +0000310
311
312@ VCVT (between floating-point and fixed-point)
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000313 vcvt.f32.u32 s0, s0, #20
Jim Grosbach4050bc42011-12-22 22:19:05 +0000314 vcvt.f64.s32 d0, d0, #32
315 vcvt.f32.u16 s0, s0, #1
316 vcvt.f64.s16 d0, d0, #16
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000317 vcvt.f32.s32 s1, s1, #20
318 vcvt.f64.u32 d20, d20, #32
319 vcvt.f32.s16 s17, s17, #1
320 vcvt.f64.u16 d23, d23, #16
321 vcvt.u32.f32 s12, s12, #20
322 vcvt.s32.f64 d2, d2, #32
323 vcvt.u16.f32 s28, s28, #1
324 vcvt.s16.f64 d15, d15, #16
325 vcvt.s32.f32 s1, s1, #20
326 vcvt.u32.f64 d20, d20, #32
327 vcvt.s16.f32 s17, s17, #1
328 vcvt.u16.f64 d23, d23, #16
Jim Grosbach4050bc42011-12-22 22:19:05 +0000329
330@ CHECK: vcvt.f32.u32 s0, s0, #20 @ encoding: [0xc6,0x0a,0xbb,0xee]
331@ CHECK: vcvt.f64.s32 d0, d0, #32 @ encoding: [0xc0,0x0b,0xba,0xee]
332@ CHECK: vcvt.f32.u16 s0, s0, #1 @ encoding: [0x67,0x0a,0xbb,0xee]
333@ CHECK: vcvt.f64.s16 d0, d0, #16 @ encoding: [0x40,0x0b,0xba,0xee]
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000334@ CHECK: vcvt.f32.s32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfa,0xee]
335@ CHECK: vcvt.f64.u32 d20, d20, #32 @ encoding: [0xc0,0x4b,0xfb,0xee]
336@ CHECK: vcvt.f32.s16 s17, s17, #1 @ encoding: [0x67,0x8a,0xfa,0xee]
337@ CHECK: vcvt.f64.u16 d23, d23, #16 @ encoding: [0x40,0x7b,0xfb,0xee]
338
339@ CHECK: vcvt.u32.f32 s12, s12, #20 @ encoding: [0xc6,0x6a,0xbf,0xee]
340@ CHECK: vcvt.s32.f64 d2, d2, #32 @ encoding: [0xc0,0x2b,0xbe,0xee]
341@ CHECK: vcvt.u16.f32 s28, s28, #1 @ encoding: [0x67,0xea,0xbf,0xee]
342@ CHECK: vcvt.s16.f64 d15, d15, #16 @ encoding: [0x40,0xfb,0xbe,0xee]
343@ CHECK: vcvt.s32.f32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfe,0xee]
344@ CHECK: vcvt.u32.f64 d20, d20, #32 @ encoding: [0xc0,0x4b,0xff,0xee]
345@ CHECK: vcvt.s16.f32 s17, s17, #1 @ encoding: [0x67,0x8a,0xfe,0xee]
346@ CHECK: vcvt.u16.f64 d23, d23, #16 @ encoding: [0x40,0x7b,0xff,0xee]
Jim Grosbach51222d12012-01-20 18:09:51 +0000347
348
349@ Use NEON to load some f32 immediates that don't fit the f8 representation.
350 vmov.f32 d4, #0.0
351 vmov.f32 d4, #32.0
352
353@ CHECK: vmov.i32 d4, #0x0 @ encoding: [0x10,0x40,0x80,0xf2]
354@ CHECK: vmov.i32 d4, #0x42000000 @ encoding: [0x12,0x46,0x84,0xf2]