blob: d446ecc785be923788490c1a57f9b24abc2e46dd [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
Bill Wendling52925b62010-10-29 23:50:21 +000015
Bill Wendling933b3142010-11-01 21:16:39 +000016@ CHECK: vdiv.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0xc1,0xee]
Bill Wendling933b3142010-11-01 21:16:39 +000017@ CHECK: vdiv.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x80,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000018
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000019 vmul.f64 d16, d17, d16
Jim Grosbachbfb0a172011-11-15 20:14:51 +000020 vmul.f64 d20, d17
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000021 vmul.f32 s0, s1, s0
Jim Grosbachbfb0a172011-11-15 20:14:51 +000022 vmul.f32 s11, s21
23
Bill Wendling52925b62010-10-29 23:50:21 +000024
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000025@ CHECK: vmul.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x61,0xee]
26@ CHECK: vmul.f64 d20, d20, d17 @ encoding: [0xa1,0x4b,0x64,0xee]
27@ CHECK: vmul.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x20,0xee]
28@ CHECK: vmul.f32 s11, s11, s21 @ encoding: [0xaa,0x5a,0x65,0xee]
29
30 vnmul.f64 d16, d17, d16
Bill Wendling52925b62010-10-29 23:50:21 +000031 vnmul.f32 s0, s1, s0
32
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000033@ CHECK: vnmul.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x61,0xee]
34@ CHECK: vnmul.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x20,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000035
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000036 vcmpe.f64 d17, d16
Bill Wendling52925b62010-10-29 23:50:21 +000037 vcmpe.f32 s1, s0
38
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000039@ CHECK: vcmpe.f64 d17, d16 @ encoding: [0xe0,0x1b,0xf4,0xee]
40@ CHECK: vcmpe.f32 s1, s0 @ encoding: [0xc0,0x0a,0xf4,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000041
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000042 vcmpe.f64 d16, #0
Jim Grosbach68259142011-10-03 22:30:24 +000043 vcmpe.f32 s0, #0
Bill Wendling52925b62010-10-29 23:50:21 +000044
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000045@ CHECK: vcmpe.f64 d16, #0 @ encoding: [0xc0,0x0b,0xf5,0xee]
46@ CHECK: vcmpe.f32 s0, #0 @ encoding: [0xc0,0x0a,0xb5,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000047
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000048 vabs.f64 d16, d16
Bill Wendling52925b62010-10-29 23:50:21 +000049 vabs.f32 s0, s0
Owen Anderson0da10cf2011-08-29 19:36:44 +000050
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000051@ CHECK: vabs.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf0,0xee]
52@ CHECK: vabs.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb0,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000053
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000054 vcvt.f32.f64 s0, d16
Bill Wendling52925b62010-10-29 23:50:21 +000055 vcvt.f64.f32 d16, s0
56
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000057@ CHECK: vcvt.f32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xb7,0xee]
58@ CHECK: vcvt.f64.f32 d16, s0 @ encoding: [0xc0,0x0a,0xf7,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000059
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000060 vneg.f64 d16, d16
Bill Wendling52925b62010-10-29 23:50:21 +000061 vneg.f32 s0, s0
62
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000063@ CHECK: vneg.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0xee]
64@ CHECK: vneg.f32 s0, s0 @ encoding: [0x40,0x0a,0xb1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000065
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000066 vsqrt.f64 d16, d16
Bill Wendling52925b62010-10-29 23:50:21 +000067 vsqrt.f32 s0, s0
68
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000069@ CHECK: vsqrt.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf1,0xee]
70@ CHECK: vsqrt.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb1,0xee]
71
Bill Wendling52925b62010-10-29 23:50:21 +000072 vcvt.f64.s32 d16, s0
Bill Wendling52925b62010-10-29 23:50:21 +000073 vcvt.f32.s32 s0, s0
Bill Wendling52925b62010-10-29 23:50:21 +000074 vcvt.f64.u32 d16, s0
Bill Wendling52925b62010-10-29 23:50:21 +000075 vcvt.f32.u32 s0, s0
Bill Wendling52925b62010-10-29 23:50:21 +000076 vcvt.s32.f64 s0, d16
Bill Wendling52925b62010-10-29 23:50:21 +000077 vcvt.s32.f32 s0, s0
Bill Wendling52925b62010-10-29 23:50:21 +000078 vcvt.u32.f64 s0, d16
Bill Wendling52925b62010-10-29 23:50:21 +000079 vcvt.u32.f32 s0, s0
80
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000081@ CHECK: vcvt.f64.s32 d16, s0 @ encoding: [0xc0,0x0b,0xf8,0xee]
82@ CHECK: vcvt.f32.s32 s0, s0 @ encoding: [0xc0,0x0a,0xb8,0xee]
83@ CHECK: vcvt.f64.u32 d16, s0 @ encoding: [0x40,0x0b,0xf8,0xee]
84@ CHECK: vcvt.f32.u32 s0, s0 @ encoding: [0x40,0x0a,0xb8,0xee]
85@ CHECK: vcvt.s32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbd,0xee]
86@ CHECK: vcvt.s32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbd,0xee]
87@ CHECK: vcvt.u32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbc,0xee]
88@ CHECK: vcvt.u32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbc,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000089
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000090
91 vmla.f64 d16, d18, d17
Bill Wendling52925b62010-10-29 23:50:21 +000092 vmla.f32 s1, s2, s0
93
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000094@ CHECK: vmla.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x42,0xee]
95@ CHECK: vmla.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x41,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +000096
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +000097 vmls.f64 d16, d18, d17
Bill Wendling52925b62010-10-29 23:50:21 +000098 vmls.f32 s1, s2, s0
99
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000100@ CHECK: vmls.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x42,0xee]
101@ CHECK: vmls.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x41,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000102
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000103 vnmla.f64 d16, d18, d17
Bill Wendling52925b62010-10-29 23:50:21 +0000104 vnmla.f32 s1, s2, s0
105
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000106@ CHECK: vnmla.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x52,0xee]
107@ CHECK: vnmla.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x51,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000108
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000109 vnmls.f64 d16, d18, d17
Bill Wendling52925b62010-10-29 23:50:21 +0000110 vnmls.f32 s1, s2, s0
111
Jim Grosbachbfb3c5a2012-04-20 00:14:57 +0000112@ CHECK: vnmls.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x52,0xee]
113@ CHECK: vnmls.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x51,0xee]
114
Jim Grosbachb84ad4a2012-03-15 21:34:14 +0000115 vmrs APSR_nzcv, fpscr
Jim Grosbach5cd5ac62011-10-03 21:12:43 +0000116 vmrs apsr_nzcv, fpscr
117 fmstat
Jim Grosbach9426ac72012-03-16 00:27:18 +0000118 vmrs r2, fpsid
119 vmrs r3, FPSID
120 vmrs r4, mvfr0
121 vmrs r5, MVFR1
122
123@ 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@ CHECK: vmrs r2, fpsid @ encoding: [0x10,0x2a,0xf0,0xee]
127@ CHECK: vmrs r3, fpsid @ encoding: [0x10,0x3a,0xf0,0xee]
128@ CHECK: vmrs r4, mvfr0 @ encoding: [0x10,0x4a,0xf7,0xee]
129@ CHECK: vmrs r5, mvfr1 @ encoding: [0x10,0x5a,0xf6,0xee]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000130
Bill Wendling933b3142010-11-01 21:16:39 +0000131@ CHECK: vnegne.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0x1e]
Bill Wendling52925b62010-10-29 23:50:21 +0000132 vnegne.f64 d16, d16
133
Bill Wendling933b3142010-11-01 21:16:39 +0000134@ CHECK: vmovne s0, r0 @ encoding: [0x10,0x0a,0x00,0x1e]
135@ CHECK: vmoveq s0, r1 @ encoding: [0x10,0x1a,0x00,0x0e]
Bill Wendling52925b62010-10-29 23:50:21 +0000136 vmovne s0, r0
137 vmoveq s0, r1
138
Jim Grosbacha68e90c2011-11-15 20:29:42 +0000139 vmov.f32 r1, s2
140 vmov.f32 s4, r3
141 vmov.f64 r1, r5, d2
142 vmov.f64 d4, r3, r9
143
144@ CHECK: vmov r1, s2 @ encoding: [0x10,0x1a,0x11,0xee]
145@ CHECK: vmov s4, r3 @ encoding: [0x10,0x3a,0x02,0xee]
146@ CHECK: vmov r1, r5, d2 @ encoding: [0x12,0x1b,0x55,0xec]
147@ CHECK: vmov d4, r3, r9 @ encoding: [0x14,0x3b,0x49,0xec]
148
Bill Wendling933b3142010-11-01 21:16:39 +0000149@ CHECK: vmrs r0, fpscr @ encoding: [0x10,0x0a,0xf1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000150 vmrs r0, fpscr
Bruno Cardoso Lopes61505902011-01-18 21:58:20 +0000151@ CHECK: vmrs r0, fpexc @ encoding: [0x10,0x0a,0xf8,0xee]
152 vmrs r0, fpexc
153@ CHECK: vmrs r0, fpsid @ encoding: [0x10,0x0a,0xf0,0xee]
154 vmrs r0, fpsid
Bill Wendling52925b62010-10-29 23:50:21 +0000155
Bill Wendling933b3142010-11-01 21:16:39 +0000156@ CHECK: vmsr fpscr, r0 @ encoding: [0x10,0x0a,0xe1,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000157 vmsr fpscr, r0
Bruno Cardoso Lopes61505902011-01-18 21:58:20 +0000158@ CHECK: vmsr fpexc, r0 @ encoding: [0x10,0x0a,0xe8,0xee]
159 vmsr fpexc, r0
160@ CHECK: vmsr fpsid, r0 @ encoding: [0x10,0x0a,0xe0,0xee]
161 vmsr fpsid, r0
Bill Wendling52925b62010-10-29 23:50:21 +0000162
Jim Grosbach9d390362011-10-03 23:38:36 +0000163 vmov.f64 d16, #3.000000e+00
164 vmov.f32 s0, #3.000000e+00
165 vmov.f64 d16, #-3.000000e+00
166 vmov.f32 s0, #-3.000000e+00
Bill Wendling52925b62010-10-29 23:50:21 +0000167
Jim Grosbach9d390362011-10-03 23:38:36 +0000168@ CHECK: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee]
169@ CHECK: vmov.f32 s0, #3.000000e+00 @ encoding: [0x08,0x0a,0xb0,0xee]
170@ CHECK: vmov.f64 d16, #-3.000000e+00 @ encoding: [0x08,0x0b,0xf8,0xee]
171@ CHECK: vmov.f32 s0, #-3.000000e+00 @ encoding: [0x08,0x0a,0xb8,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000172
Bill Wendling933b3142010-11-01 21:16:39 +0000173@ CHECK: vmov s0, r0 @ encoding: [0x10,0x0a,0x00,0xee]
174@ CHECK: vmov s1, r1 @ encoding: [0x90,0x1a,0x00,0xee]
175@ CHECK: vmov s2, r2 @ encoding: [0x10,0x2a,0x01,0xee]
176@ CHECK: vmov s3, r3 @ encoding: [0x90,0x3a,0x01,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000177 vmov s0, r0
178 vmov s1, r1
179 vmov s2, r2
180 vmov s3, r3
181
Bill Wendling933b3142010-11-01 21:16:39 +0000182@ CHECK: vmov r0, s0 @ encoding: [0x10,0x0a,0x10,0xee]
183@ CHECK: vmov r1, s1 @ encoding: [0x90,0x1a,0x10,0xee]
184@ CHECK: vmov r2, s2 @ encoding: [0x10,0x2a,0x11,0xee]
185@ CHECK: vmov r3, s3 @ encoding: [0x90,0x3a,0x11,0xee]
Bill Wendling52925b62010-10-29 23:50:21 +0000186 vmov r0, s0
187 vmov r1, s1
188 vmov r2, s2
189 vmov r3, s3
190
Bill Wendling933b3142010-11-01 21:16:39 +0000191@ CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec]
Bill Wendling52925b62010-10-29 23:50:21 +0000192 vmov r0, r1, d16
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000193
Jim Grosbachffc658b2011-11-14 23:03:21 +0000194@ CHECK: vldr d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed]
195@ CHECK: vldr s0, [lr] @ encoding: [0x00,0x0a,0x9e,0xed]
196@ CHECK: vldr d0, [lr] @ encoding: [0x00,0x0b,0x9e,0xed]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000197
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000198 vldr.64 d17, [r0]
Jim Grosbachffc658b2011-11-14 23:03:21 +0000199 vldr.i32 s0, [lr]
200 vldr.d d0, [lr]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000201
Jim Grosbachffc658b2011-11-14 23:03:21 +0000202@ CHECK: vldr d1, [r2, #32] @ encoding: [0x08,0x1b,0x92,0xed]
203@ CHECK: vldr d1, [r2, #-32] @ encoding: [0x08,0x1b,0x12,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000204 vldr.64 d1, [r2, #32]
Jim Grosbachffc658b2011-11-14 23:03:21 +0000205 vldr.f64 d1, [r2, #-32]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000206
Jim Grosbachffc658b2011-11-14 23:03:21 +0000207@ CHECK: vldr d2, [r3] @ encoding: [0x00,0x2b,0x93,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000208 vldr.64 d2, [r3]
209
Jim Grosbachffc658b2011-11-14 23:03:21 +0000210@ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
211@ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
212@ CHECK: vldr d3, [pc, #-0] @ encoding: [0x00,0x3b,0x1f,0xed]
Bill Wendling5df0e0a2010-11-02 22:31:46 +0000213 vldr.64 d3, [pc]
214 vldr.64 d3, [pc,#0]
215 vldr.64 d3, [pc,#-0]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000216
Jim Grosbachffc658b2011-11-14 23:03:21 +0000217@ CHECK: vldr s13, [r0] @ encoding: [0x00,0x6a,0xd0,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000218 vldr.32 s13, [r0]
219
Jim Grosbachffc658b2011-11-14 23:03:21 +0000220@ CHECK: vldr s1, [r2, #32] @ encoding: [0x08,0x0a,0xd2,0xed]
221@ CHECK: vldr s1, [r2, #-32] @ encoding: [0x08,0x0a,0x52,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000222 vldr.32 s1, [r2, #32]
223 vldr.32 s1, [r2, #-32]
Owen Anderson0da10cf2011-08-29 19:36:44 +0000224
Jim Grosbachffc658b2011-11-14 23:03:21 +0000225@ CHECK: vldr s2, [r3] @ encoding: [0x00,0x1a,0x93,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000226 vldr.32 s2, [r3]
227
Jim Grosbachffc658b2011-11-14 23:03:21 +0000228@ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
229@ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
230@ CHECK: vldr s5, [pc, #-0] @ encoding: [0x00,0x2a,0x5f,0xed]
Bill Wendling92b5a2e2010-11-03 01:49:29 +0000231 vldr.32 s5, [pc]
232 vldr.32 s5, [pc,#0]
233 vldr.32 s5, [pc,#-0]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000234
Jim Grosbachffc658b2011-11-14 23:03:21 +0000235@ CHECK: vstr d4, [r1] @ encoding: [0x00,0x4b,0x81,0xed]
236@ CHECK: vstr d4, [r1, #24] @ encoding: [0x06,0x4b,0x81,0xed]
237@ CHECK: vstr d4, [r1, #-24] @ encoding: [0x06,0x4b,0x01,0xed]
238@ CHECK: vstr s0, [lr] @ encoding: [0x00,0x0a,0x8e,0xed]
239@ CHECK: vstr d0, [lr] @ encoding: [0x00,0x0b,0x8e,0xed]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000240
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000241 vstr.64 d4, [r1]
242 vstr.64 d4, [r1, #24]
243 vstr.64 d4, [r1, #-24]
Jim Grosbachc7352f82011-11-11 23:34:43 +0000244 vstr s0, [lr]
245 vstr d0, [lr]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000246
Jim Grosbachffc658b2011-11-14 23:03:21 +0000247@ CHECK: vstr s4, [r1] @ encoding: [0x00,0x2a,0x81,0xed]
248@ CHECK: vstr s4, [r1, #24] @ encoding: [0x06,0x2a,0x81,0xed]
249@ CHECK: vstr s4, [r1, #-24] @ encoding: [0x06,0x2a,0x01,0xed]
Bill Wendling2f46f1f2010-11-04 00:59:42 +0000250 vstr.32 s4, [r1]
251 vstr.32 s4, [r1, #24]
252 vstr.32 s4, [r1, #-24]
Bill Wendling0f630752010-11-17 04:32:08 +0000253
254@ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec]
255@ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec]
256 vldmia r1, {d2,d3-d6,d7}
257 vldmia r1, {s2,s3-s6,s7}
258
259@ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec]
260@ CHECK: vstmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec]
Jim Grosbachce485e72011-11-11 21:27:40 +0000261@ CHECK: vpush {d8, d9, d10, d11, d12, d13, d14, d15} @ encoding: [0x10,0x8b,0x2d,0xed]
Bill Wendling0f630752010-11-17 04:32:08 +0000262 vstmia r1, {d2,d3-d6,d7}
263 vstmia r1, {s2,s3-s6,s7}
Jim Grosbachce485e72011-11-11 21:27:40 +0000264 vstmdb sp!, {q4-q7}
Bruno Cardoso Lopes106df6d2011-01-26 13:53:38 +0000265
266@ CHECK: vcvtr.s32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee]
267@ CHECK: vcvtr.s32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee]
268@ CHECK: vcvtr.u32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee]
269@ CHECK: vcvtr.u32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee]
270 vcvtr.s32.f64 s0, d0
271 vcvtr.s32.f32 s0, s1
272 vcvtr.u32.f64 s0, d0
273 vcvtr.u32.f32 s0, s1
Owen Anderson694e0ff2011-08-29 23:15:25 +0000274
275@ CHECK: vmovne s25, s26, r2, r5
276 vmovne s25, s26, r2, r5 @ encoding: [0x39,0x2a,0x45,0x1c]
Jim Grosbachaf33a0c2011-12-21 23:24:15 +0000277
278@ VMOV w/ optional data type suffix.
279 vmov.32 s1, r8
280 vmov.s16 s2, r4
281 vmov.16 s3, r6
282 vmov.u32 s4, r1
283 vmov.p8 s5, r2
284 vmov.8 s6, r3
285
286 vmov.32 r1, s8
287 vmov.s16 r2, s4
288 vmov.16 r3, s6
289 vmov.u32 r4, s1
290 vmov.p8 r5, s2
291 vmov.8 r6, s3
292
293@ CHECK: vmov s1, r8 @ encoding: [0x90,0x8a,0x00,0xee]
294@ CHECK: vmov s2, r4 @ encoding: [0x10,0x4a,0x01,0xee]
295@ CHECK: vmov s3, r6 @ encoding: [0x90,0x6a,0x01,0xee]
296@ CHECK: vmov s4, r1 @ encoding: [0x10,0x1a,0x02,0xee]
297@ CHECK: vmov s5, r2 @ encoding: [0x90,0x2a,0x02,0xee]
298@ CHECK: vmov s6, r3 @ encoding: [0x10,0x3a,0x03,0xee]
299@ CHECK: vmov r1, s8 @ encoding: [0x10,0x1a,0x14,0xee]
300@ CHECK: vmov r2, s4 @ encoding: [0x10,0x2a,0x12,0xee]
301@ CHECK: vmov r3, s6 @ encoding: [0x10,0x3a,0x13,0xee]
302@ CHECK: vmov r4, s1 @ encoding: [0x90,0x4a,0x10,0xee]
303@ CHECK: vmov r5, s2 @ encoding: [0x10,0x5a,0x11,0xee]
304@ CHECK: vmov r6, s3 @ encoding: [0x90,0x6a,0x11,0xee]
Jim Grosbach4050bc42011-12-22 22:19:05 +0000305
306
307@ VCVT (between floating-point and fixed-point)
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000308 vcvt.f32.u32 s0, s0, #20
Jim Grosbach4050bc42011-12-22 22:19:05 +0000309 vcvt.f64.s32 d0, d0, #32
310 vcvt.f32.u16 s0, s0, #1
311 vcvt.f64.s16 d0, d0, #16
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000312 vcvt.f32.s32 s1, s1, #20
313 vcvt.f64.u32 d20, d20, #32
314 vcvt.f32.s16 s17, s17, #1
315 vcvt.f64.u16 d23, d23, #16
316 vcvt.u32.f32 s12, s12, #20
317 vcvt.s32.f64 d2, d2, #32
318 vcvt.u16.f32 s28, s28, #1
319 vcvt.s16.f64 d15, d15, #16
320 vcvt.s32.f32 s1, s1, #20
321 vcvt.u32.f64 d20, d20, #32
322 vcvt.s16.f32 s17, s17, #1
323 vcvt.u16.f64 d23, d23, #16
Jim Grosbach4050bc42011-12-22 22:19:05 +0000324
325@ CHECK: vcvt.f32.u32 s0, s0, #20 @ encoding: [0xc6,0x0a,0xbb,0xee]
326@ CHECK: vcvt.f64.s32 d0, d0, #32 @ encoding: [0xc0,0x0b,0xba,0xee]
327@ CHECK: vcvt.f32.u16 s0, s0, #1 @ encoding: [0x67,0x0a,0xbb,0xee]
328@ CHECK: vcvt.f64.s16 d0, d0, #16 @ encoding: [0x40,0x0b,0xba,0xee]
Kristof Beyls8a6bcc32012-03-15 17:50:29 +0000329@ CHECK: vcvt.f32.s32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfa,0xee]
330@ CHECK: vcvt.f64.u32 d20, d20, #32 @ encoding: [0xc0,0x4b,0xfb,0xee]
331@ CHECK: vcvt.f32.s16 s17, s17, #1 @ encoding: [0x67,0x8a,0xfa,0xee]
332@ CHECK: vcvt.f64.u16 d23, d23, #16 @ encoding: [0x40,0x7b,0xfb,0xee]
333
334@ CHECK: vcvt.u32.f32 s12, s12, #20 @ encoding: [0xc6,0x6a,0xbf,0xee]
335@ CHECK: vcvt.s32.f64 d2, d2, #32 @ encoding: [0xc0,0x2b,0xbe,0xee]
336@ CHECK: vcvt.u16.f32 s28, s28, #1 @ encoding: [0x67,0xea,0xbf,0xee]
337@ CHECK: vcvt.s16.f64 d15, d15, #16 @ encoding: [0x40,0xfb,0xbe,0xee]
338@ CHECK: vcvt.s32.f32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfe,0xee]
339@ CHECK: vcvt.u32.f64 d20, d20, #32 @ encoding: [0xc0,0x4b,0xff,0xee]
340@ CHECK: vcvt.s16.f32 s17, s17, #1 @ encoding: [0x67,0x8a,0xfe,0xee]
341@ CHECK: vcvt.u16.f64 d23, d23, #16 @ encoding: [0x40,0x7b,0xff,0xee]
Jim Grosbach51222d12012-01-20 18:09:51 +0000342
343
344@ Use NEON to load some f32 immediates that don't fit the f8 representation.
345 vmov.f32 d4, #0.0
346 vmov.f32 d4, #32.0
347
348@ CHECK: vmov.i32 d4, #0x0 @ encoding: [0x10,0x40,0x80,0xf2]
349@ CHECK: vmov.i32 d4, #0x42000000 @ encoding: [0x12,0x46,0x84,0xf2]