393 lines · plain
1@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s \2@ RUN: | FileCheck %s3 4 vand d16, d17, d165 vand q8, q8, q96 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, d1611 veor q8, q8, q912 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, d1617 vorr q8, q8, q918 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, #0x100000023 vorr.i32 q8, #0x100000024 vorr.i32 q8, #0x025 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, d1631 vbic q8, q8, q932 vbic q10, q1133 vbic d9, d134 vbic.i16 d16, #0xFF0035 vbic.i16 q8, #0xFF0036 vbic.i16 d16, #0x00FF37 vbic.i16 q8, #0x00FF38 vbic.i32 d16, #0xFF00000039 vbic.i32 q8, #0xFF00000040 vbic.i32 d16, #0x00FF000041 vbic.i32 q8, #0x00FF000042 vbic.i32 d16, #0x0000FF0043 vbic.i32 q8, #0x0000FF0044 vbic.i32 d16, #0x000000FF45 vbic.i32 q8, #0x000000FF46 47@ CHECK: vbic d16, d17, d16 @ encoding: [0xb0,0x01,0x51,0xf2]48@ CHECK: vbic q8, q8, q9 @ encoding: [0xf2,0x01,0x50,0xf2]49@ CHECK: vbic q10, q10, q11 @ encoding: [0xf6,0x41,0x54,0xf2]50@ CHECK: vbic d9, d9, d1 @ encoding: [0x11,0x91,0x19,0xf2]51@ CHECK: vbic.i16 d16, #0xff00 @ encoding: [0x3f,0x0b,0xc7,0xf3]52@ CHECK: vbic.i16 q8, #0xff00 @ encoding: [0x7f,0x0b,0xc7,0xf3]53@ CHECK: vbic.i16 d16, #0xff @ encoding: [0x3f,0x09,0xc7,0xf3]54@ CHECK: vbic.i16 q8, #0xff @ encoding: [0x7f,0x09,0xc7,0xf3]55@ CHECK: vbic.i32 d16, #0xff000000 @ encoding: [0x3f,0x07,0xc7,0xf3]56@ CHECK: vbic.i32 q8, #0xff000000 @ encoding: [0x7f,0x07,0xc7,0xf3]57@ CHECK: vbic.i32 d16, #0xff0000 @ encoding: [0x3f,0x05,0xc7,0xf3]58@ CHECK: vbic.i32 q8, #0xff0000 @ encoding: [0x7f,0x05,0xc7,0xf3]59@ CHECK: vbic.i32 d16, #0xff00 @ encoding: [0x3f,0x03,0xc7,0xf3]60@ CHECK: vbic.i32 q8, #0xff00 @ encoding: [0x7f,0x03,0xc7,0xf3]61@ CHECK: vbic.i32 d16, #0xff @ encoding: [0x3f,0x01,0xc7,0xf3]62@ CHECK: vbic.i32 q8, #0xff @ encoding: [0x7f,0x01,0xc7,0xf3]63 64 vand.i16 d10, #0xff0365 vand.i16 q10, #0xff0366 vand.i16 d10, #0x03ff67 vand.i16 q10, #0x03ff68 vand.i32 d10, #0x03ffffff69 vand.i32 q10, #0x03ffffff70 vand.i32 d10, #0xff03ffff71 vand.i32 q10, #0xff03ffff72 vand.i32 d10, #0xffff03ff73 vand.i32 q10, #0xffff03ff74 vand.i32 d10, #0xffffff0375 vand.i32 q10, #0xffffff0376 77@ CHECK: vbic.i16 d10, #0xfc @ encoding: [0x3c,0xa9,0x87,0xf3]78@ CHECK: vbic.i16 q10, #0xfc @ encoding: [0x7c,0x49,0xc7,0xf3]79@ CHECK: vbic.i16 d10, #0xfc00 @ encoding: [0x3c,0xab,0x87,0xf3]80@ CHECK: vbic.i16 q10, #0xfc00 @ encoding: [0x7c,0x4b,0xc7,0xf3]81@ CHECK: vbic.i32 d10, #0xfc000000 @ encoding: [0x3c,0xa7,0x87,0xf3]82@ CHECK: vbic.i32 q10, #0xfc000000 @ encoding: [0x7c,0x47,0xc7,0xf3]83@ CHECK: vbic.i32 d10, #0xfc0000 @ encoding: [0x3c,0xa5,0x87,0xf3]84@ CHECK: vbic.i32 q10, #0xfc0000 @ encoding: [0x7c,0x45,0xc7,0xf3]85@ CHECK: vbic.i32 d10, #0xfc00 @ encoding: [0x3c,0xa3,0x87,0xf3]86@ CHECK: vbic.i32 q10, #0xfc00 @ encoding: [0x7c,0x43,0xc7,0xf3]87@ CHECK: vbic.i32 d10, #0xfc @ encoding: [0x3c,0xa1,0x87,0xf3]88@ CHECK: vbic.i32 q10, #0xfc @ encoding: [0x7c,0x41,0xc7,0xf3]89 90 vorn d16, d17, d1691 vorn q8, q8, q992 93@ CHECK: vorn d16, d17, d16 @ encoding: [0xb0,0x01,0x71,0xf2]94@ CHECK: vorn q8, q8, q9 @ encoding: [0xf2,0x01,0x70,0xf2]95 96 vmvn d16, d1697 vmvn q8, q898 99@ CHECK: vmvn d16, d16 @ encoding: [0xa0,0x05,0xf0,0xf3]100@ CHECK: vmvn q8, q8 @ encoding: [0xe0,0x05,0xf0,0xf3]101 102 vbsl d18, d17, d16103 vbsl q8, q10, q9104 vbit d18, d17, d16105 vbit q8, q10, q9106 vbif d18, d17, d16107 vbif q8, q10, q9108 109@ CHECK: vbsl d18, d17, d16 @ encoding: [0xb0,0x21,0x51,0xf3]110@ CHECK: vbsl q8, q10, q9 @ encoding: [0xf2,0x01,0x54,0xf3]111@ CHECK: vbit d18, d17, d16 @ encoding: [0xb0,0x21,0x61,0xf3]112@ CHECK: vbit q8, q10, q9 @ encoding: [0xf2,0x01,0x64,0xf3]113@ CHECK: vbif d18, d17, d16 @ encoding: [0xb0,0x21,0x71,0xf3]114@ CHECK: vbif q8, q10, q9 @ encoding: [0xf2,0x01,0x74,0xf3]115 116@ Size suffices are optional.117 veor q4, q7, q3118 veor.8 q4, q7, q3119 veor.16 q4, q7, q3120 veor.32 q4, q7, q3121 veor.64 q4, q7, q3122 123 veor.i8 q4, q7, q3124 veor.i16 q4, q7, q3125 veor.i32 q4, q7, q3126 veor.i64 q4, q7, q3127 128 veor.s8 q4, q7, q3129 veor.s16 q4, q7, q3130 veor.s32 q4, q7, q3131 veor.s64 q4, q7, q3132 133 veor.u8 q4, q7, q3134 veor.u16 q4, q7, q3135 veor.u32 q4, q7, q3136 veor.u64 q4, q7, q3137 138 veor.p8 q4, q7, q3139 veor.p16 q4, q7, q3140 veor.f32 q4, q7, q3141 veor.f64 q4, q7, q3142 143 veor.f q4, q7, q3144 veor.d q4, q7, q3145 146@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]147@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]148@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]149@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]150@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]151 152@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]153@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]154@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]155@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]156 157@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]158@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]159@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]160@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]161 162@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]163@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]164@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]165@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]166 167@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]168@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]169@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]170@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]171 172@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]173@ CHECK: veor q4, q7, q3 @ encoding: [0x56,0x81,0x0e,0xf3]174 175 176 vand d4, d7, d3177 vand.8 d4, d7, d3178 vand.16 d4, d7, d3179 vand.32 d4, d7, d3180 vand.64 d4, d7, d3181 182 vand.i8 d4, d7, d3183 vand.i16 d4, d7, d3184 vand.i32 d4, d7, d3185 vand.i64 d4, d7, d3186 187 vand.s8 d4, d7, d3188 vand.s16 d4, d7, d3189 vand.s32 d4, d7, d3190 vand.s64 d4, d7, d3191 192 vand.u8 d4, d7, d3193 vand.u16 d4, d7, d3194 vand.u32 d4, d7, d3195 vand.u64 d4, d7, d3196 197 vand.p8 d4, d7, d3198 vand.p16 d4, d7, d3199 vand.f32 d4, d7, d3200 vand.f64 d4, d7, d3201 202 vand.f d4, d7, d3203 vand.d d4, d7, d3204 205@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]206@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]207@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]208@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]209@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]210 211@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]212@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]213@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]214@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]215 216@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]217@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]218@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]219@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]220 221@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]222@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]223@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]224@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]225 226@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]227@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]228@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]229@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]230 231@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]232@ CHECK: vand d4, d7, d3 @ encoding: [0x13,0x41,0x07,0xf2]233 234 vorr d4, d7, d3235 vorr.8 d4, d7, d3236 vorr.16 d4, d7, d3237 vorr.32 d4, d7, d3238 vorr.64 d4, d7, d3239 240 vorr.i8 d4, d7, d3241 vorr.i16 d4, d7, d3242 vorr.i32 d4, d7, d3243 vorr.i64 d4, d7, d3244 245 vorr.s8 d4, d7, d3246 vorr.s16 d4, d7, d3247 vorr.s32 q4, q7, q3248 vorr.s64 q4, q7, q3249 250 vorr.u8 q4, q7, q3251 vorr.u16 q4, q7, q3252 vorr.u32 q4, q7, q3253 vorr.u64 q4, q7, q3254 255 vorr.p8 q4, q7, q3256 vorr.p16 q4, q7, q3257 vorr.f32 q4, q7, q3258 vorr.f64 q4, q7, q3259 260 vorr.f q4, q7, q3261 vorr.d q4, q7, q3262 263@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]264@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]265@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]266@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]267@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]268 269@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]270@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]271@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]272@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]273 274@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]275@ CHECK: vorr d4, d7, d3 @ encoding: [0x13,0x41,0x27,0xf2]276@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]277@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]278 279@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]280@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]281@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]282@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]283 284@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]285@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]286@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]287@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]288 289@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]290@ CHECK: vorr q4, q7, q3 @ encoding: [0x56,0x81,0x2e,0xf2]291 292@ Two-operand aliases293 vand q6, q5294 vand.s8 q6, q5295 vand.s16 q7, q1296 vand.s32 q8, q2297 vand.f64 q8, q2298 299 veor q6, q5300 veor.8 q6, q5301 veor.p16 q7, q1302 veor.u32 q8, q2303 veor.d q8, q2304 305 veor q6, q5306 veor.i8 q6, q5307 veor.16 q7, q1308 veor.f q8, q2309 veor.i64 q8, q2310 311 vclt.s16 q5, #0312 vclt.s16 d5, #0313 314 vceq.s16 q5, q3315 vceq.s16 d5, d3316 317 vcgt.s16 q5, q3318 vcgt.s16 d5, d3319 320 vcge.s16 q5, q3321 vcge.s16 d5, d3322 323 vcgt.s16 q5, #0324 vcgt.s16 d5, #0325 326 vcge.s16 q5, #0327 vcge.s16 d5, #0328 329 vceq.s16 q5, #0330 vceq.s16 d5, #0331 332 vcle.s16 q5, #0333 vcle.s16 d5, #0334 335 vacge.f32 d5, d30336 vacge.f32 q5, q3337 338 vacgt.f32 d5, d30339 vacgt.f32 q5, q3340 341@ FIXME: We don't have an alias that reverses the operands342@ vacle.f32 d5, d30 343@ vacle.f32 q5, q3 344@ vaclt.f32 d5, d30345@ vaclt.f32 q5, q3346 347@ CHECK: vand q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf2]348@ CHECK: vand q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf2]349@ CHECK: vand q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf2]350@ CHECK: vand q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf2]351@ CHECK: vand q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf2]352 353@ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3]354@ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3]355@ CHECK: veor q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf3]356@ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3]357@ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3]358 359@ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3]360@ CHECK: veor q6, q6, q5 @ encoding: [0x5a,0xc1,0x0c,0xf3]361@ CHECK: veor q7, q7, q1 @ encoding: [0x52,0xe1,0x0e,0xf3]362@ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3]363@ CHECK: veor q8, q8, q2 @ encoding: [0xd4,0x01,0x40,0xf3]364@ CHECK: vclt.s16 q5, q5, #0 @ encoding: [0x4a,0xa2,0xb5,0xf3]365@ CHECK: vclt.s16 d5, d5, #0 @ encoding: [0x05,0x52,0xb5,0xf3]366 367@ CHECK: vceq.i16 q5, q5, q3 @ encoding: [0x56,0xa8,0x1a,0xf3]368@ CHECK: vceq.i16 d5, d5, d3 @ encoding: [0x13,0x58,0x15,0xf3]369 370@ CHECK: vcgt.s16 q5, q5, q3 @ encoding: [0x46,0xa3,0x1a,0xf2]371@ CHECK: vcgt.s16 d5, d5, d3 @ encoding: [0x03,0x53,0x15,0xf2]372 373@ CHECK: vcge.s16 q5, q5, q3 @ encoding: [0x56,0xa3,0x1a,0xf2]374@ CHECK: vcge.s16 d5, d5, d3 @ encoding: [0x13,0x53,0x15,0xf2]375 376@ CHECK: vcgt.s16 q5, q5, #0 @ encoding: [0x4a,0xa0,0xb5,0xf3]377@ CHECK: vcgt.s16 d5, d5, #0 @ encoding: [0x05,0x50,0xb5,0xf3]378 379@ CHECK: vcge.s16 q5, q5, #0 @ encoding: [0xca,0xa0,0xb5,0xf3]380@ CHECK: vcge.s16 d5, d5, #0 @ encoding: [0x85,0x50,0xb5,0xf3]381 382@ CHECK: vceq.i16 q5, q5, #0 @ encoding: [0x4a,0xa1,0xb5,0xf3]383@ CHECK: vceq.i16 d5, d5, #0 @ encoding: [0x05,0x51,0xb5,0xf3]384 385@ CHECK: vcle.s16 q5, q5, #0 @ encoding: [0xca,0xa1,0xb5,0xf3]386@ CHECK: vcle.s16 d5, d5, #0 @ encoding: [0x85,0x51,0xb5,0xf3]387 388@ CHECK: vacge.f32 d5, d5, d30 @ encoding: [0x3e,0x5e,0x05,0xf3]389@ CHECK: vacge.f32 q5, q5, q3 @ encoding: [0x56,0xae,0x0a,0xf3]390 391@ CHECK: vacgt.f32 d5, d5, d30 @ encoding: [0x3e,0x5e,0x25,0xf3]392@ CHECK: vacgt.f32 q5, q5, q3 @ encoding: [0x56,0xae,0x2a,0xf3]393