Home | History | Annotate | Download | only in ARM
      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