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