1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s \ 2 @ RUN: | FileCheck %s 3 4 vand d16, d17, d16 5 vand q8, q8, q9 6 7 @ CHECK: vand d16, d17, d16 @ encoding: [0xb0,0x01,0x41,0xf2] 8 @ CHECK: vand q8, q8, q9 @ encoding: [0xf2,0x01,0x40,0xf2] 9 10 veor d16, d17, d16 11 veor q8, q8, q9 12 13 @ CHECK: veor d16, d17, d16 @ encoding: [0xb0,0x01,0x41,0xf3] 14 @ CHECK: veor q8, q8, q9 @ encoding: [0xf2,0x01,0x40,0xf3] 15 16 vorr d16, d17, d16 17 vorr q8, q8, q9 18 19 @ CHECK: vorr d16, d17, d16 @ encoding: [0xb0,0x01,0x61,0xf2] 20 @ CHECK: vorr q8, q8, q9 @ encoding: [0xf2,0x01,0x60,0xf2] 21 22 vorr.i32 d16, #0x1000000 23 vorr.i32 q8, #0x1000000 24 vorr.i32 q8, #0x0 25 26 @ CHECK: vorr.i32 d16, #0x1000000 @ encoding: [0x11,0x07,0xc0,0xf2] 27 @ CHECK: vorr.i32 q8, #0x1000000 @ encoding: [0x51,0x07,0xc0,0xf2] 28 @ CHECK: vorr.i32 q8, #0x0 @ encoding: [0x50,0x01,0xc0,0xf2] 29 30 vbic d16, d17, d16 31 vbic q8, q8, q9 32 vbic.i32 d16, #0xFF000000 33 vbic.i32 q8, #0xFF000000 34 vbic q10, q11 35 vbic d9, d1 36 37 @ CHECK: vbic d16, d17, d16 @ encoding: [0xb0,0x01,0x51,0xf2] 38 @ CHECK: vbic q8, q8, q9 @ encoding: [0xf2,0x01,0x50,0xf2] 39 @ CHECK: vbic.i32 d16, #0xff000000 @ encoding: [0x3f,0x07,0xc7,0xf3] 40 @ CHECK: vbic.i32 q8, #0xff000000 @ encoding: [0x7f,0x07,0xc7,0xf3] 41 @ CHECK: vbic q10, q10, q11 @ encoding: [0xf6,0x41,0x54,0xf2] 42 @ CHECK: vbic d9, d9, d1 @ encoding: [0x11,0x91,0x19,0xf2] 43 44 45 vorn d16, d17, d16 46 vorn q8, q8, q9 47 48 @ CHECK: vorn d16, d17, d16 @ encoding: [0xb0,0x01,0x71,0xf2] 49 @ CHECK: vorn q8, q8, q9 @ encoding: [0xf2,0x01,0x70,0xf2] 50 51 vmvn d16, d16 52 vmvn q8, q8 53 54 @ CHECK: vmvn d16, d16 @ encoding: [0xa0,0x05,0xf0,0xf3] 55 @ CHECK: vmvn q8, q8 @ encoding: [0xe0,0x05,0xf0,0xf3] 56 57 vbsl d18, d17, d16 58 vbsl q8, q10, q9 59 60 @ CHECK: vbsl d18, d17, d16 @ encoding: [0xb0,0x21,0x51,0xf3] 61 @ CHECK: vbsl q8, q10, q9 @ encoding: [0xf2,0x01,0x54,0xf3] 62 63 64 @ Size suffices are optional. 65 veor q4, q7, q3 66 veor.8 q4, q7, q3 67 veor.16 q4, q7, q3 68 veor.32 q4, q7, q3 69 veor.64 q4, q7, q3 70 71 veor.i8 q4, q7, q3 72 veor.i16 q4, q7, q3 73 veor.i32 q4, q7, q3 74 veor.i64 q4, q7, q3 75 76 veor.s8 q4, q7, q3 77 veor.s16 q4, q7, q3 78 veor.s32 q4, q7, q3 79 veor.s64 q4, q7, q3 80 81 veor.u8 q4, q7, q3 82 veor.u16 q4, q7, q3 83 veor.u32 q4, q7, q3 84 veor.u64 q4, q7, q3 85 86 veor.p8 q4, q7, q3 87 veor.p16 q4, q7, q3 88 veor.f32 q4, q7, q3 89 veor.f64 q4, q7, q3 90 91 veor.f q4, q7, q3 92 veor.d q4, q7, q3 93 94 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 95 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 96 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 97 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 98 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 99 100 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 101 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 102 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 103 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 104 105 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 106 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 107 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 108 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 109 110 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 111 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 112 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 113 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 114 115 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 116 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 117 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 118 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 119 120 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 121 @ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3] 122 123 124 vand d4, d7, d3 125 vand.8 d4, d7, d3 126 vand.16 d4, d7, d3 127 vand.32 d4, d7, d3 128 vand.64 d4, d7, d3 129 130 vand.i8 d4, d7, d3 131 vand.i16 d4, d7, d3 132 vand.i32 d4, d7, d3 133 vand.i64 d4, d7, d3 134 135 vand.s8 d4, d7, d3 136 vand.s16 d4, d7, d3 137 vand.s32 d4, d7, d3 138 vand.s64 d4, d7, d3 139 140 vand.u8 d4, d7, d3 141 vand.u16 d4, d7, d3 142 vand.u32 d4, d7, d3 143 vand.u64 d4, d7, d3 144 145 vand.p8 d4, d7, d3 146 vand.p16 d4, d7, d3 147 vand.f32 d4, d7, d3 148 vand.f64 d4, d7, d3 149 150 vand.f d4, d7, d3 151 vand.d d4, d7, d3 152 153 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 154 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 155 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 156 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 157 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 158 159 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 160 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 161 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 162 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 163 164 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 165 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 166 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 167 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 168 169 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 170 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 171 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 172 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 173 174 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 175 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 176 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 177 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 178 179 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 180 @ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2] 181 182 vorr d4, d7, d3 183 vorr.8 d4, d7, d3 184 vorr.16 d4, d7, d3 185 vorr.32 d4, d7, d3 186 vorr.64 d4, d7, d3 187 188 vorr.i8 d4, d7, d3 189 vorr.i16 d4, d7, d3 190 vorr.i32 d4, d7, d3 191 vorr.i64 d4, d7, d3 192 193 vorr.s8 d4, d7, d3 194 vorr.s16 d4, d7, d3 195 vorr.s32 q4, q7, q3 196 vorr.s64 q4, q7, q3 197 198 vorr.u8 q4, q7, q3 199 vorr.u16 q4, q7, q3 200 vorr.u32 q4, q7, q3 201 vorr.u64 q4, q7, q3 202 203 vorr.p8 q4, q7, q3 204 vorr.p16 q4, q7, q3 205 vorr.f32 q4, q7, q3 206 vorr.f64 q4, q7, q3 207 208 vorr.f q4, q7, q3 209 vorr.d q4, q7, q3 210 211 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 212 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 213 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 214 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 215 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 216 217 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 218 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 219 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 220 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 221 222 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 223 @ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2] 224 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 225 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 226 227 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 228 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 229 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 230 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 231 232 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 233 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 234 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 235 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 236 237 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 238 @ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2] 239 240 @ Two-operand aliases 241 vand q6, q5 242 vand.s8 q6, q5 243 vand.s16 q7, q1 244 vand.s32 q8, q2 245 vand.f64 q8, q2 246 247 veor q6, q5 248 veor.8 q6, q5 249 veor.p16 q7, q1 250 veor.u32 q8, q2 251 veor.d q8, q2 252 253 veor q6, q5 254 veor.i8 q6, q5 255 veor.16 q7, q1 256 veor.f q8, q2 257 veor.i64 q8, q2 258 259 vclt.s16 q5, #0 260 vclt.s16 d5, #0 261 262 vceq.s16 q5, q3 263 vceq.s16 d5, d3 264 265 vcgt.s16 q5, q3 266 vcgt.s16 d5, d3 267 268 vcge.s16 q5, q3 269 vcge.s16 d5, d3 270 271 vcgt.s16 q5, #0 272 vcgt.s16 d5, #0 273 274 vcge.s16 q5, #0 275 vcge.s16 d5, #0 276 277 vceq.s16 q5, #0 278 vceq.s16 d5, #0 279 280 vcle.s16 q5, #0 281 vcle.s16 d5, #0 282 283 vacge.f32 d5, d30 284 vacge.f32 q5, q3 285 286 vacgt.f32 d5, d30 287 vacgt.f32 q5, q3 288 289 @ FIXME: We don't have an alias that reverses the operands 290 @ vacle.f32 d5, d30 291 @ vacle.f32 q5, q3 292 @ vaclt.f32 d5, d30 293 @ vaclt.f32 q5, q3 294 295 @ CHECK: vand q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf2] 296 @ CHECK: vand q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf2] 297 @ CHECK: vand q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf2] 298 @ CHECK: vand q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf2] 299 @ CHECK: vand q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf2] 300 301 @ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3] 302 @ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3] 303 @ CHECK: veor q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf3] 304 @ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3] 305 @ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3] 306 307 @ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3] 308 @ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3] 309 @ CHECK: veor q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf3] 310 @ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3] 311 @ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3] 312 @ CHECK: vclt.s16 q5, q5, #0 @ encoding: [0x4a,0xa2,0xb5,0xf3] 313 @ CHECK: vclt.s16 d5, d5, #0 @ encoding: [0x05,0x52,0xb5,0xf3] 314 315 @ CHECK: vceq.i16 q5, q5, q3 @ encoding: [0x56,0xa8,0x1a,0xf3] 316 @ CHECK: vceq.i16 d5, d5, d3 @ encoding: [0x13,0x58,0x15,0xf3] 317 318 @ CHECK: vcgt.s16 q5, q5, q3 @ encoding: [0x46,0xa3,0x1a,0xf2] 319 @ CHECK: vcgt.s16 d5, d5, d3 @ encoding: [0x03,0x53,0x15,0xf2] 320 321 @ CHECK: vcge.s16 q5, q5, q3 @ encoding: [0x56,0xa3,0x1a,0xf2] 322 @ CHECK: vcge.s16 d5, d5, d3 @ encoding: [0x13,0x53,0x15,0xf2] 323 324 @ CHECK: vcgt.s16 q5, q5, #0 @ encoding: [0x4a,0xa0,0xb5,0xf3] 325 @ CHECK: vcgt.s16 d5, d5, #0 @ encoding: [0x05,0x50,0xb5,0xf3] 326 327 @ CHECK: vcge.s16 q5, q5, #0 @ encoding: [0xca,0xa0,0xb5,0xf3] 328 @ CHECK: vcge.s16 d5, d5, #0 @ encoding: [0x85,0x50,0xb5,0xf3] 329 330 @ CHECK: vceq.i16 q5, q5, #0 @ encoding: [0x4a,0xa1,0xb5,0xf3] 331 @ CHECK: vceq.i16 d5, d5, #0 @ encoding: [0x05,0x51,0xb5,0xf3] 332 333 @ CHECK: vcle.s16 q5, q5, #0 @ encoding: [0xca,0xa1,0xb5,0xf3] 334 @ CHECK: vcle.s16 d5, d5, #0 @ encoding: [0x85,0x51,0xb5,0xf3] 335 336 @ CHECK: vacge.f32 d5, d5, d30 @ encoding: [0x3e,0x5e,0x05,0xf3] 337 @ CHECK: vacge.f32 q5, q5, q3 @ encoding: [0x56,0xae,0x0a,0xf3] 338 339 @ CHECK: vacgt.f32 d5, d5, d30 @ encoding: [0x3e,0x5e,0x25,0xf3] 340 @ CHECK: vacgt.f32 q5, q5, q3 @ encoding: [0x56,0xae,0x2a,0xf3] 341