1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s 2 3 vadd.f64 d16, d17, d16 4 vadd.f32 s0, s1, s0 5 @ CHECK: vadd.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x71,0xee] 6 @ CHECK: vadd.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x30,0xee] 7 8 vsub.f64 d16, d17, d16 9 vsub.f32 s0, s1, s0 10 @ CHECK: vsub.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x71,0xee] 11 @ CHECK: vsub.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x30,0xee] 12 13 vdiv.f64 d16, d17, d16 14 vdiv.f32 s0, s1, s0 15 vdiv.f32 s5, s7 16 vdiv.f64 d5, d7 17 18 @ 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 23 24 vmul.f64 d16, d17, d16 25 vmul.f64 d20, d17 26 vmul.f32 s0, s1, s0 27 vmul.f32 s11, s21 28 29 30 @ 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 36 vnmul.f32 s0, s1, s0 37 38 @ CHECK: vnmul.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x61,0xee] 39 @ CHECK: vnmul.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x20,0xee] 40 41 vcmpe.f64 d17, d16 42 vcmpe.f32 s1, s0 43 44 @ CHECK: vcmpe.f64 d17, d16 @ encoding: [0xe0,0x1b,0xf4,0xee] 45 @ CHECK: vcmpe.f32 s1, s0 @ encoding: [0xc0,0x0a,0xf4,0xee] 46 47 vcmpe.f64 d16, #0 48 vcmpe.f32 s0, #0 49 50 @ CHECK: vcmpe.f64 d16, #0 @ encoding: [0xc0,0x0b,0xf5,0xee] 51 @ CHECK: vcmpe.f32 s0, #0 @ encoding: [0xc0,0x0a,0xb5,0xee] 52 53 vabs.f64 d16, d16 54 vabs.f32 s0, s0 55 56 @ CHECK: vabs.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf0,0xee] 57 @ CHECK: vabs.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb0,0xee] 58 59 vcvt.f32.f64 s0, d16 60 vcvt.f64.f32 d16, s0 61 62 @ CHECK: vcvt.f32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xb7,0xee] 63 @ CHECK: vcvt.f64.f32 d16, s0 @ encoding: [0xc0,0x0a,0xf7,0xee] 64 65 vneg.f64 d16, d16 66 vneg.f32 s0, s0 67 68 @ CHECK: vneg.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0xee] 69 @ CHECK: vneg.f32 s0, s0 @ encoding: [0x40,0x0a,0xb1,0xee] 70 71 vsqrt.f64 d16, d16 72 vsqrt.f32 s0, s0 73 74 @ CHECK: vsqrt.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf1,0xee] 75 @ CHECK: vsqrt.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb1,0xee] 76 77 vcvt.f64.s32 d16, s0 78 vcvt.f32.s32 s0, s0 79 vcvt.f64.u32 d16, s0 80 vcvt.f32.u32 s0, s0 81 vcvt.s32.f64 s0, d16 82 vcvt.s32.f32 s0, s0 83 vcvt.u32.f64 s0, d16 84 vcvt.u32.f32 s0, s0 85 86 @ 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] 94 95 96 vmla.f64 d16, d18, d17 97 vmla.f32 s1, s2, s0 98 99 @ CHECK: vmla.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x42,0xee] 100 @ CHECK: vmla.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x41,0xee] 101 102 vmls.f64 d16, d18, d17 103 vmls.f32 s1, s2, s0 104 105 @ CHECK: vmls.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x42,0xee] 106 @ CHECK: vmls.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x41,0xee] 107 108 vnmla.f64 d16, d18, d17 109 vnmla.f32 s1, s2, s0 110 111 @ CHECK: vnmla.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x52,0xee] 112 @ CHECK: vnmla.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x51,0xee] 113 114 vnmls.f64 d16, d18, d17 115 vnmls.f32 s1, s2, s0 116 117 @ CHECK: vnmls.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x52,0xee] 118 @ CHECK: vnmls.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x51,0xee] 119 120 vmrs APSR_nzcv, fpscr 121 vmrs apsr_nzcv, fpscr 122 fmstat 123 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] 135 136 @ CHECK: vnegne.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0x1e] 137 vnegne.f64 d16, d16 138 139 @ CHECK: vmovne s0, r0 @ encoding: [0x10,0x0a,0x00,0x1e] 140 @ CHECK: vmoveq s0, r1 @ encoding: [0x10,0x1a,0x00,0x0e] 141 vmovne s0, r0 142 vmoveq s0, r1 143 144 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 154 @ CHECK: vmrs r0, fpscr @ encoding: [0x10,0x0a,0xf1,0xee] 155 vmrs r0, fpscr 156 @ 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 160 @ CHECK: vmrs r1, fpinst @ encoding: [0x10,0x1a,0xf9,0xee] 161 vmrs r1, fpinst 162 @ CHECK: vmrs r8, fpinst2 @ encoding: [0x10,0x8a,0xfa,0xee] 163 vmrs r8, fpinst2 164 165 @ CHECK: vmsr fpscr, r0 @ encoding: [0x10,0x0a,0xe1,0xee] 166 vmsr fpscr, r0 167 @ CHECK: vmsr fpexc, r0 @ encoding: [0x10,0x0a,0xe8,0xee] 168 vmsr fpexc, r0 169 @ CHECK: vmsr fpsid, r0 @ encoding: [0x10,0x0a,0xe0,0xee] 170 vmsr fpsid, r0 171 @ CHECK: vmsr fpinst, r3 @ encoding: [0x10,0x3a,0xe9,0xee] 172 vmsr fpinst, r3 173 @ CHECK: vmsr fpinst2, r4 @ encoding: [0x10,0x4a,0xea,0xee] 174 vmsr fpinst2, r4 175 176 vmov.f64 d16, #3.000000e+00 177 vmov.f32 s0, #3.000000e+00 178 vmov.f64 d16, #-3.000000e+00 179 vmov.f32 s0, #-3.000000e+00 180 181 @ CHECK: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee] 182 @ CHECK: vmov.f32 s0, #3.000000e+00 @ encoding: [0x08,0x0a,0xb0,0xee] 183 @ CHECK: vmov.f64 d16, #-3.000000e+00 @ encoding: [0x08,0x0b,0xf8,0xee] 184 @ CHECK: vmov.f32 s0, #-3.000000e+00 @ encoding: [0x08,0x0a,0xb8,0xee] 185 186 @ CHECK: vmov s0, r0 @ encoding: [0x10,0x0a,0x00,0xee] 187 @ CHECK: vmov s1, r1 @ encoding: [0x90,0x1a,0x00,0xee] 188 @ CHECK: vmov s2, r2 @ encoding: [0x10,0x2a,0x01,0xee] 189 @ CHECK: vmov s3, r3 @ encoding: [0x90,0x3a,0x01,0xee] 190 vmov s0, r0 191 vmov s1, r1 192 vmov s2, r2 193 vmov s3, r3 194 195 @ CHECK: vmov r0, s0 @ encoding: [0x10,0x0a,0x10,0xee] 196 @ CHECK: vmov r1, s1 @ encoding: [0x90,0x1a,0x10,0xee] 197 @ CHECK: vmov r2, s2 @ encoding: [0x10,0x2a,0x11,0xee] 198 @ CHECK: vmov r3, s3 @ encoding: [0x90,0x3a,0x11,0xee] 199 vmov r0, s0 200 vmov r1, s1 201 vmov r2, s2 202 vmov r3, s3 203 204 @ CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec] 205 vmov r0, r1, d16 206 207 @ Between two single precision registers and two core registers 208 vmov s3, s4, r1, r2 209 vmov s2, s3, r1, r2 210 vmov r1, r2, s3, s4 211 vmov r1, r2, s2, s3 212 @ CHECK: vmov s3, s4, r1, r2 @ encoding: [0x31,0x1a,0x42,0xec] 213 @ CHECK: vmov s2, s3, r1, r2 @ encoding: [0x11,0x1a,0x42,0xec] 214 @ CHECK: vmov r1, r2, s3, s4 @ encoding: [0x31,0x1a,0x52,0xec] 215 @ CHECK: vmov r1, r2, s2, s3 @ encoding: [0x11,0x1a,0x52,0xec] 216 217 @ Between one double precision register and two core registers 218 vmov d15, r1, r2 219 vmov d16, r1, r2 220 vmov r1, r2, d15 221 vmov r1, r2, d16 222 @ CHECK: vmov d15, r1, r2 @ encoding: [0x1f,0x1b,0x42,0xec] 223 @ CHECK: vmov d16, r1, r2 @ encoding: [0x30,0x1b,0x42,0xec] 224 @ CHECK: vmov r1, r2, d15 @ encoding: [0x1f,0x1b,0x52,0xec] 225 @ CHECK: vmov r1, r2, d16 @ encoding: [0x30,0x1b,0x52,0xec] 226 227 228 @ CHECK: vldr d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed] 229 @ CHECK: vldr s0, [lr] @ encoding: [0x00,0x0a,0x9e,0xed] 230 @ CHECK: vldr d0, [lr] @ encoding: [0x00,0x0b,0x9e,0xed] 231 232 vldr.64 d17, [r0] 233 vldr.i32 s0, [lr] 234 vldr.d d0, [lr] 235 236 @ CHECK: vldr d1, [r2, #32] @ encoding: [0x08,0x1b,0x92,0xed] 237 @ CHECK: vldr d1, [r2, #-32] @ encoding: [0x08,0x1b,0x12,0xed] 238 vldr.64 d1, [r2, #32] 239 vldr.f64 d1, [r2, #-32] 240 241 @ CHECK: vldr d2, [r3] @ encoding: [0x00,0x2b,0x93,0xed] 242 vldr.64 d2, [r3] 243 244 @ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed] 245 @ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed] 246 @ CHECK: vldr d3, [pc, #-0] @ encoding: [0x00,0x3b,0x1f,0xed] 247 vldr.64 d3, [pc] 248 vldr.64 d3, [pc,#0] 249 vldr.64 d3, [pc,#-0] 250 251 @ CHECK: vldr s13, [r0] @ encoding: [0x00,0x6a,0xd0,0xed] 252 vldr.32 s13, [r0] 253 254 @ CHECK: vldr s1, [r2, #32] @ encoding: [0x08,0x0a,0xd2,0xed] 255 @ CHECK: vldr s1, [r2, #-32] @ encoding: [0x08,0x0a,0x52,0xed] 256 vldr.32 s1, [r2, #32] 257 vldr.32 s1, [r2, #-32] 258 259 @ CHECK: vldr s2, [r3] @ encoding: [0x00,0x1a,0x93,0xed] 260 vldr.32 s2, [r3] 261 262 @ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed] 263 @ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed] 264 @ CHECK: vldr s5, [pc, #-0] @ encoding: [0x00,0x2a,0x5f,0xed] 265 vldr.32 s5, [pc] 266 vldr.32 s5, [pc,#0] 267 vldr.32 s5, [pc,#-0] 268 269 @ CHECK: vstr d4, [r1] @ encoding: [0x00,0x4b,0x81,0xed] 270 @ CHECK: vstr d4, [r1, #24] @ encoding: [0x06,0x4b,0x81,0xed] 271 @ CHECK: vstr d4, [r1, #-24] @ encoding: [0x06,0x4b,0x01,0xed] 272 @ CHECK: vstr s0, [lr] @ encoding: [0x00,0x0a,0x8e,0xed] 273 @ CHECK: vstr d0, [lr] @ encoding: [0x00,0x0b,0x8e,0xed] 274 275 vstr.64 d4, [r1] 276 vstr.64 d4, [r1, #24] 277 vstr.64 d4, [r1, #-24] 278 vstr s0, [lr] 279 vstr d0, [lr] 280 281 @ CHECK: vstr s4, [r1] @ encoding: [0x00,0x2a,0x81,0xed] 282 @ CHECK: vstr s4, [r1, #24] @ encoding: [0x06,0x2a,0x81,0xed] 283 @ CHECK: vstr s4, [r1, #-24] @ encoding: [0x06,0x2a,0x01,0xed] 284 vstr.32 s4, [r1] 285 vstr.32 s4, [r1, #24] 286 vstr.32 s4, [r1, #-24] 287 288 @ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec] 289 @ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec] 290 vldmia r1, {d2,d3-d6,d7} 291 vldmia r1, {s2,s3-s6,s7} 292 293 @ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec] 294 @ CHECK: vstmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec] 295 @ CHECK: vpush {d8, d9, d10, d11, d12, d13, d14, d15} @ encoding: [0x10,0x8b,0x2d,0xed] 296 vstmia r1, {d2,d3-d6,d7} 297 vstmia r1, {s2,s3-s6,s7} 298 vstmdb sp!, {q4-q7} 299 300 fldmiax r5!, {d0-d2} 301 fldmiaxeq r0, {d4,d5} 302 fldmdbxne r5!, {d4,d5,d6} 303 @ CHECK: fldmiax r5!, {d0, d1, d2} @ encoding: [0x07,0x0b,0xb5,0xec] 304 @ CHECK: fldmiaxeq r0, {d4, d5} @ encoding: [0x05,0x4b,0x90,0x0c] 305 @ CHECK: fldmdbxne r5!, {d4, d5, d6} @ encoding: [0x07,0x4b,0x35,0x1d] 306 307 fstmiax r5!, {d0-d7} 308 fstmiaxeq r4, {d8,d9} 309 fstmdbxne r7!, {d2-d4} 310 @ CHECK: fstmiax r5!, {d0, d1, d2, d3, d4, d5, d6, d7} @ encoding: [0x11,0x0b,0xa5,0xec] 311 @ CHECK: fstmiaxeq r4, {d8, d9} @ encoding: [0x05,0x8b,0x84,0x0c] 312 @ CHECK: fstmdbxne r7!, {d2, d3, d4} @ encoding: [0x07,0x2b,0x27,0x1d] 313 314 @ CHECK: vcvtr.s32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee] 315 @ CHECK: vcvtr.s32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee] 316 @ CHECK: vcvtr.u32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee] 317 @ CHECK: vcvtr.u32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee] 318 vcvtr.s32.f64 s0, d0 319 vcvtr.s32.f32 s0, s1 320 vcvtr.u32.f64 s0, d0 321 vcvtr.u32.f32 s0, s1 322 323 @ CHECK: vmovne s25, s26, r2, r5 324 vmovne s25, s26, r2, r5 @ encoding: [0x39,0x2a,0x45,0x1c] 325 326 @ VMOV w/ optional data type suffix. 327 vmov.32 s1, r8 328 vmov.s16 s2, r4 329 vmov.16 s3, r6 330 vmov.u32 s4, r1 331 vmov.p8 s5, r2 332 vmov.8 s6, r3 333 334 vmov.32 r1, s8 335 vmov.s16 r2, s4 336 vmov.16 r3, s6 337 vmov.u32 r4, s1 338 vmov.p8 r5, s2 339 vmov.8 r6, s3 340 341 @ CHECK: vmov s1, r8 @ encoding: [0x90,0x8a,0x00,0xee] 342 @ CHECK: vmov s2, r4 @ encoding: [0x10,0x4a,0x01,0xee] 343 @ CHECK: vmov s3, r6 @ encoding: [0x90,0x6a,0x01,0xee] 344 @ CHECK: vmov s4, r1 @ encoding: [0x10,0x1a,0x02,0xee] 345 @ CHECK: vmov s5, r2 @ encoding: [0x90,0x2a,0x02,0xee] 346 @ CHECK: vmov s6, r3 @ encoding: [0x10,0x3a,0x03,0xee] 347 @ CHECK: vmov r1, s8 @ encoding: [0x10,0x1a,0x14,0xee] 348 @ CHECK: vmov r2, s4 @ encoding: [0x10,0x2a,0x12,0xee] 349 @ CHECK: vmov r3, s6 @ encoding: [0x10,0x3a,0x13,0xee] 350 @ CHECK: vmov r4, s1 @ encoding: [0x90,0x4a,0x10,0xee] 351 @ CHECK: vmov r5, s2 @ encoding: [0x10,0x5a,0x11,0xee] 352 @ CHECK: vmov r6, s3 @ encoding: [0x90,0x6a,0x11,0xee] 353 354 355 @ VCVT (between floating-point and fixed-point) 356 vcvt.f32.u32 s0, s0, #20 357 vcvt.f64.s32 d0, d0, #32 358 vcvt.f32.u16 s0, s0, #1 359 vcvt.f64.s16 d0, d0, #16 360 vcvt.f32.s32 s1, s1, #20 361 vcvt.f64.u32 d20, d20, #32 362 vcvt.f32.s16 s17, s17, #1 363 vcvt.f64.u16 d23, d23, #16 364 vcvt.u32.f32 s12, s12, #20 365 vcvt.s32.f64 d2, d2, #32 366 vcvt.u16.f32 s28, s28, #1 367 vcvt.s16.f64 d15, d15, #16 368 vcvt.s32.f32 s1, s1, #20 369 vcvt.u32.f64 d20, d20, #32 370 vcvt.s16.f32 s17, s17, #1 371 vcvt.u16.f64 d23, d23, #16 372 373 @ CHECK: vcvt.f32.u32 s0, s0, #20 @ encoding: [0xc6,0x0a,0xbb,0xee] 374 @ CHECK: vcvt.f64.s32 d0, d0, #32 @ encoding: [0xc0,0x0b,0xba,0xee] 375 @ CHECK: vcvt.f32.u16 s0, s0, #1 @ encoding: [0x67,0x0a,0xbb,0xee] 376 @ CHECK: vcvt.f64.s16 d0, d0, #16 @ encoding: [0x40,0x0b,0xba,0xee] 377 @ CHECK: vcvt.f32.s32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfa,0xee] 378 @ CHECK: vcvt.f64.u32 d20, d20, #32 @ encoding: [0xc0,0x4b,0xfb,0xee] 379 @ CHECK: vcvt.f32.s16 s17, s17, #1 @ encoding: [0x67,0x8a,0xfa,0xee] 380 @ CHECK: vcvt.f64.u16 d23, d23, #16 @ encoding: [0x40,0x7b,0xfb,0xee] 381 382 @ CHECK: vcvt.u32.f32 s12, s12, #20 @ encoding: [0xc6,0x6a,0xbf,0xee] 383 @ CHECK: vcvt.s32.f64 d2, d2, #32 @ encoding: [0xc0,0x2b,0xbe,0xee] 384 @ CHECK: vcvt.u16.f32 s28, s28, #1 @ encoding: [0x67,0xea,0xbf,0xee] 385 @ CHECK: vcvt.s16.f64 d15, d15, #16 @ encoding: [0x40,0xfb,0xbe,0xee] 386 @ CHECK: vcvt.s32.f32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfe,0xee] 387 @ CHECK: vcvt.u32.f64 d20, d20, #32 @ encoding: [0xc0,0x4b,0xff,0xee] 388 @ CHECK: vcvt.s16.f32 s17, s17, #1 @ encoding: [0x67,0x8a,0xfe,0xee] 389 @ CHECK: vcvt.u16.f64 d23, d23, #16 @ encoding: [0x40,0x7b,0xff,0xee] 390 391 392 @ Use NEON to load some f32 immediates that don't fit the f8 representation. 393 vmov.f32 d4, #0.0 394 vmov.f32 d4, #32.0 395 396 @ CHECK: vmov.i32 d4, #0x0 @ encoding: [0x10,0x40,0x80,0xf2] 397 @ CHECK: vmov.i32 d4, #0x42000000 @ encoding: [0x12,0x46,0x84,0xf2] 398 399 @ Test encoding of floating point constants for vmov functions 400 @ vfp3 401 vmov.f32 s5, #1.0 402 vmov.f32 s5, #0.125 403 vmov.f32 s5, #-1.875 404 vmov.f32 s5, #-0.59375 405 406 vmov.f64 d6, #1.0 407 vmov.f64 d6, #0.125 408 vmov.f64 d6, #-1.875 409 vmov.f64 d6, #-0.59375 410 411 @ neon 412 vmov.f32 d7, #1.0 413 vmov.f32 d7, #0.125 414 vmov.f32 d7, #-1.875 415 vmov.f32 d7, #-0.59375 416 417 vmov.f32 q8, #1.0 418 vmov.f32 q8, #0.125 419 vmov.f32 q8, #-1.875 420 vmov.f32 q8, #-0.59375 421 422 @ CHECK: vmov.f32 s5, #1.000000e+00 @ encoding: [0x00,0x2a,0xf7,0xee] 423 @ CHECK: vmov.f32 s5, #1.250000e-01 @ encoding: [0x00,0x2a,0xf4,0xee] 424 @ CHECK: vmov.f32 s5, #-1.875000e+00 @ encoding: [0x0e,0x2a,0xff,0xee] 425 @ CHECK: vmov.f32 s5, #-5.937500e-01 @ encoding: [0x03,0x2a,0xfe,0xee] 426 427 @ CHECK: vmov.f64 d6, #1.000000e+00 @ encoding: [0x00,0x6b,0xb7,0xee] 428 @ CHECK: vmov.f64 d6, #1.250000e-01 @ encoding: [0x00,0x6b,0xb4,0xee] 429 @ CHECK: vmov.f64 d6, #-1.875000e+00 @ encoding: [0x0e,0x6b,0xbf,0xee] 430 @ CHECK: vmov.f64 d6, #-5.937500e-01 @ encoding: [0x03,0x6b,0xbe,0xee] 431 432 @ CHECK: vmov.f32 d7, #1.000000e+00 @ encoding: [0x10,0x7f,0x87,0xf2] 433 @ CHECK: vmov.f32 d7, #1.250000e-01 @ encoding: [0x10,0x7f,0x84,0xf2] 434 @ CHECK: vmov.f32 d7, #-1.875000e+00 @ encoding: [0x1e,0x7f,0x87,0xf3] 435 @ CHECK: vmov.f32 d7, #-5.937500e-01 @ encoding: [0x13,0x7f,0x86,0xf3] 436 437 @ CHECK: vmov.f32 q8, #1.000000e+00 @ encoding: [0x50,0x0f,0xc7,0xf2] 438 @ CHECK: vmov.f32 q8, #1.250000e-01 @ encoding: [0x50,0x0f,0xc4,0xf2] 439 @ CHECK: vmov.f32 q8, #-1.875000e+00 @ encoding: [0x5e,0x0f,0xc7,0xf3] 440 @ CHECK: vmov.f32 q8, #-5.937500e-01 @ encoding: [0x53,0x0f,0xc6,0xf3] 441