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