Home | History | Annotate | Download | only in ARM
      1 # RUN: llvm-mc -triple armv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s
      2 
      3 0xa0 0x0b 0x71 0xee
      4 # CHECK: vadd.f64        d16, d17, d16
      5 
      6 0x80 0x0a 0x30 0xee
      7 # CHECK: vadd.f32        s0, s1, s0
      8 
      9 0xe0 0x0b 0x71 0xee
     10 # CHECK: vsub.f64        d16, d17, d16
     11 
     12 0xc0 0x0a 0x30 0xee
     13 # CHECK: vsub.f32        s0, s1, s0
     14 
     15 0xa0 0x0b 0xc1 0xee
     16 # CHECK: vdiv.f64        d16, d17, d16
     17 
     18 0x80 0x0a 0x80 0xee
     19 # CHECK: vdiv.f32        s0, s1, s0
     20 
     21 0xa0 0x0b 0x61 0xee
     22 # CHECK: vmul.f64        d16, d17, d16
     23 
     24 0x80 0x0a 0x20 0xee
     25 # CHECK: vmul.f32        s0, s1, s0
     26 
     27 0xe0 0x0b 0x61 0xee
     28 # CHECK: vnmul.f64       d16, d17, d16
     29 
     30 0xc0 0x0a 0x20 0xee
     31 # CHECK: vnmul.f32       s0, s1, s0
     32 
     33 0xe0 0x1b 0xf4 0xee
     34 # CHECK: vcmpe.f64       d17, d16
     35 
     36 0xc0 0x0a 0xf4 0xee
     37 # CHECK: vcmpe.f32       s1, s0
     38 
     39 0xe0 0x0b 0xf0 0xee
     40 # CHECK: vabs.f64        d16, d16
     41 
     42 0xc0 0x0a 0xb0 0xee
     43 # CHECK: vabs.f32        s0, s0
     44 
     45 0xe0 0x0b 0xb7 0xee
     46 # CHECK: vcvt.f32.f64    s0, d16
     47 
     48 0xc0 0x0a 0xf7 0xee
     49 # CHECK: vcvt.f64.f32    d16, s0
     50 
     51 0x60 0x0b 0xf1 0xee
     52 # CHECK: vneg.f64        d16, d16
     53 
     54 0x40 0x0a 0xb1 0xee
     55 # CHECK: vneg.f32        s0, s0
     56 
     57 0xe0 0x0b 0xf1 0xee
     58 # CHECK: vsqrt.f64       d16, d16
     59 
     60 0xc0 0x0a 0xb1 0xee
     61 # CHECK: vsqrt.f32       s0, s0
     62 
     63 0xc0 0x0b 0xf8 0xee
     64 # CHECK: vcvt.f64.s32    d16, s0
     65 
     66 0xc0 0x0a 0xb8 0xee
     67 # CHECK: vcvt.f32.s32    s0, s0
     68 
     69 0x40 0x0b 0xf8 0xee
     70 # CHECK: vcvt.f64.u32    d16, s0
     71 
     72 0x40 0x0a 0xb8 0xee
     73 # CHECK: vcvt.f32.u32    s0, s0
     74 
     75 0xe0 0x0b 0xbd 0xee
     76 # CHECK: vcvt.s32.f64    s0, d16
     77 
     78 0xc0 0x0a 0xbd 0xee
     79 # CHECK: vcvt.s32.f32    s0, s0
     80 
     81 0xe0 0x0b 0xbc 0xee
     82 # CHECK: vcvt.u32.f64    s0, d16
     83 
     84 0xc0 0x0a 0xbc 0xee
     85 # CHECK: vcvt.u32.f32    s0, s0
     86 
     87 0xa1 0x0b 0x42 0xee
     88 # CHECK: vmla.f64        d16, d18, d17
     89 
     90 0x00 0x0a 0x41 0xee
     91 # CHECK: vmla.f32        s1, s2, s0
     92 
     93 0xe1 0x0b 0x42 0xee
     94 # CHECK: vmls.f64        d16, d18, d17
     95 
     96 0x40 0x0a 0x41 0xee
     97 # CHECK: vmls.f32        s1, s2, s0
     98 
     99 0xe1 0x0b 0x52 0xee
    100 # CHECK: vnmla.f64       d16, d18, d17
    101 
    102 0x40 0x0a 0x51 0xee
    103 # CHECK: vnmla.f32       s1, s2, s0
    104 
    105 0xa1 0x0b 0x52 0xee
    106 # CHECK: vnmls.f64       d16, d18, d17
    107 
    108 0x00 0x0a 0x51 0xee
    109 # CHECK: vnmls.f32       s1, s2, s0
    110 
    111 0x60 0x0b 0xf1 0x1e
    112 # CHECK: vnegne.f64      d16, d16
    113 
    114 0x10 0x0a 0x00 0x1e
    115 0x10 0x1a 0x00 0x0e
    116 # CHECK: vmovne  s0, r0
    117 # CHECK: vmoveq  s0, r1
    118 
    119 0x10 0x0a 0xf1 0xee
    120 # CHECK: vmrs  r0, fpscr
    121 0x10 0x0a 0xf8 0xee
    122 # CHECK: vmrs  r0, fpexc
    123 0x10 0x0a 0xf0 0xee
    124 # CHECK: vmrs  r0, fpsid
    125 0x10 0x1a 0xf9 0xee
    126 # CHECK: vmrs  r1, fpinst
    127 0x10 0x8a 0xfa 0xee
    128 # CHECK: vmrs  r8, fpinst2
    129 
    130 0x10 0x0a 0xe1 0xee
    131 # CHECK: vmsr  fpscr, r0
    132 0x10 0x0a 0xe8 0xee
    133 # CHECK: vmsr  fpexc, r0
    134 0x10 0x0a 0xe0 0xee
    135 # CHECK: vmsr  fpsid, r0
    136 0x10 0x3a 0xe9 0xee
    137 # CHECK: vmsr  fpinst, r3
    138 0x10 0x4a 0xea 0xee
    139 # CHECK: vmsr fpinst2, r4
    140 
    141 0x10 0x0a 0x00 0xee
    142 0x90 0x1a 0x00 0xee
    143 0x10 0x2a 0x01 0xee
    144 0x90 0x3a 0x01 0xee
    145 # CHECK: vmov    s0, r0
    146 # CHECK: vmov    s1, r1
    147 # CHECK: vmov    s2, r2
    148 # CHECK: vmov    s3, r3
    149 
    150 0x10 0x0a 0x10 0xee
    151 0x90 0x1a 0x10 0xee
    152 0x10 0x2a 0x11 0xee
    153 0x90 0x3a 0x11 0xee
    154 # CHECK: vmov    r0, s0
    155 # CHECK: vmov    r1, s1
    156 # CHECK: vmov    r2, s2
    157 # CHECK: vmov    r3, s3
    158 
    159 0x30 0x0b 0x51 0xec
    160 # CHECK: vmov    r0, r1, d16
    161 
    162 0x00 0x1b 0xd0 0xed
    163 # CHECK: vldr	d17, [r0]
    164 
    165 0x08 0x1b 0x92 0xed
    166 0x08 0x1b 0x12 0xed
    167 # CHECK: vldr	d1, [r2, #32]
    168 # CHECK: vldr	d1, [r2, #-32]
    169 
    170 0x00 0x2b 0x93 0xed
    171 # CHECK: vldr d2, [r3]
    172 
    173 0x00 0x3b 0x9f 0xed
    174 # CHECK: vldr d3, [pc]
    175 
    176 0x00 0x6a 0xd0 0xed
    177 # CHECK: vldr	s13, [r0]
    178 
    179 0x08 0x0a 0xd2 0xed
    180 0x08 0x0a 0x52 0xed
    181 # CHECK: vldr	s1, [r2, #32]
    182 # CHECK: vldr	s1, [r2, #-32]
    183 
    184 0x00 0x1a 0x93 0xed
    185 # CHECK: vldr s2, [r3]
    186 
    187 0x00 0x2a 0xdf 0xed
    188 # CHECK: vldr s5, [pc]
    189 
    190 0x00 0x4b 0x81 0xed
    191 0x06 0x4b 0x81 0xed
    192 0x06 0x4b 0x01 0xed
    193 # CHECK: vstr d4, [r1]
    194 # CHECK: vstr d4, [r1, #24]
    195 # CHECK: vstr d4, [r1, #-24]
    196 
    197 0x00 0x2a 0x81 0xed
    198 0x06 0x2a 0x81 0xed
    199 0x06 0x2a 0x01 0xed
    200 # CHECK: vstr s4, [r1]
    201 # CHECK: vstr s4, [r1, #24]
    202 # CHECK: vstr s4, [r1, #-24]
    203 
    204 0x0c 0x2b 0x91 0xec
    205 0x06 0x1a 0x91 0xec
    206 # CHECK: vldmia  r1, {d2, d3, d4, d5, d6, d7}
    207 # CHECK: vldmia  r1, {s2, s3, s4, s5, s6, s7}
    208 
    209 0x0c 0x2b 0x81 0xec
    210 0x06 0x1a 0x81 0xec
    211 # CHECK: vstmia  r1, {d2, d3, d4, d5, d6, d7}
    212 # CHECK: vstmia  r1, {s2, s3, s4, s5, s6, s7}
    213 
    214 0x05 0x9a 0xc0 0x0c
    215 0x0c 0x0b 0xc7 0x0c
    216 0x06 0x9a 0x93 0x0c
    217 0x0a 0x5b 0xd2 0x0c
    218 # CHECK: vstmiaeq r0, {s19, s20, s21, s22, s23}
    219 # CHECK: vstmiaeq r7, {d16, d17, d18, d19, d20, d21}
    220 # CHECK: vldmiaeq r3, {s18, s19, s20, s21, s22, s23}
    221 # CHECK: vldmiaeq r2, {d21, d22, d23, d24, d25}
    222 
    223 0x04 0xca 0x6c 0x0d
    224 0x06 0x1b 0x69 0x0d
    225 0x03 0xaa 0x75 0x0d
    226 0x08 0xeb 0x37 0x0d
    227 # CHECK: vstmdbeq r12!, {s25, s26, s27, s28}
    228 # CHECK: vstmdbeq r9!, {d17, d18, d19}
    229 # CHECK: vldmdbeq r5!, {s21, s22, s23}
    230 # CHECK: vldmdbeq r7!, {d14, d15, d16, d17}
    231 
    232 0x0d 0x4b 0x96 0x0c
    233 0x0f 0x3b 0xb7 0x0c
    234 0x09 0x1b 0x38 0xed
    235 # CHECK: fldmiaxeq r6, {d4, d5, d6, d7, d8, d9}
    236 # CHECK: fldmiaxeq r7!, {d3, d4, d5, d6, d7, d8, d9}
    237 # CHECK: fldmdbx   r8!, {d1, d2, d3, d4}
    238 
    239 0x07 0x2b 0x83 0xec
    240 0x05 0x5b 0xa3 0x0c
    241 0x0f 0x3b 0x20 0x1d
    242 # CHECK: fstmiax   r3, {d2, d3, d4}
    243 # CHECK: fstmiaxeq r3!, {d5, d6}
    244 # CHECK: fstmdbxne r0!, {d3, d4, d5, d6, d7, d8, d9}
    245 
    246 0x04 0x7a 0xa6 0x0c
    247 0x0c 0xfb 0xa4 0x0c
    248 0x03 0xaa 0xf8 0x0c
    249 0x0a 0x3b 0xfb 0x0c
    250 # CHECK: vstmiaeq r6!, {s14, s15, s16, s17}
    251 # CHECK: vstmiaeq r4!, {d15, d16, d17, d18, d19, d20}
    252 # CHECK: vldmiaeq r8!, {s21, s22, s23}
    253 # CHECK: vldmiaeq r11!, {d19, d20, d21, d22, d23}
    254 
    255 0x40 0x0b 0xbd 0xee
    256 0x60 0x0a 0xbd 0xee
    257 0x40 0x0b 0xbc 0xee
    258 0x60 0x0a 0xbc 0xee
    259 # CHECK: vcvtr.s32.f64  s0, d0
    260 # CHECK: vcvtr.s32.f32  s0, s1
    261 # CHECK: vcvtr.u32.f64  s0, d0
    262 # CHECK: vcvtr.u32.f32  s0, s1
    263