neon-diagnostics.s revision 36c7806f4eacd676932ba630246f88e0e37b1cd4
1// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon < %s 2> %t 2// RUN: FileCheck --check-prefix=CHECK-ERROR < %t %s 3 4//------------------------------------------------------------------------------ 5// Vector Integer Add/sub 6//------------------------------------------------------------------------------ 7 8 // Mismatched vector types 9 add v0.16b, v1.8b, v2.8b 10 sub v0.2d, v1.2d, v2.2s 11 12// CHECK-ERROR: error: invalid operand for instruction 13// CHECK-ERROR: add v0.16b, v1.8b, v2.8b 14// CHECK-ERROR: ^ 15// CHECK-ERROR: error: invalid operand for instruction 16// CHECK-ERROR: sub v0.2d, v1.2d, v2.2s 17// CHECK-ERROR: ^ 18 19//------------------------------------------------------------------------------ 20// Vector Floating-Point Add/sub 21//------------------------------------------------------------------------------ 22 23 // Mismatched and invalid vector types 24 fadd v0.2d, v1.2s, v2.2s 25 fsub v0.4s, v1.2s, v2.4s 26 fsub v0.8b, v1.8b, v2.8b 27 28// CHECK-ERROR: error: invalid operand for instruction 29// CHECK-ERROR: fadd v0.2d, v1.2s, v2.2s 30// CHECK-ERROR: ^ 31// CHECK-ERROR: error: invalid operand for instruction 32// CHECK-ERROR: fsub v0.4s, v1.2s, v2.4s 33// CHECK-ERROR: ^ 34// CHECK-ERROR: error: invalid operand for instruction 35// CHECK-ERROR: fsub v0.8b, v1.8b, v2.8b 36// CHECK-ERROR: ^ 37 38//---------------------------------------------------------------------- 39// Vector Integer Mul 40//---------------------------------------------------------------------- 41 42 // Mismatched and invalid vector types 43 mul v0.16b, v1.8b, v2.8b 44 mul v0.2d, v1.2d, v2.2d 45 46// CHECK-ERROR: error: invalid operand for instruction 47// CHECK-ERROR: mul v0.16b, v1.8b, v2.8b 48// CHECK-ERROR: ^ 49// CHECK-ERROR: error: invalid operand for instruction 50// CHECK-ERROR: mul v0.2d, v1.2d, v2.2d 51// CHECK-ERROR: ^ 52 53//---------------------------------------------------------------------- 54// Vector Floating-Point Mul/Div 55//---------------------------------------------------------------------- 56 // Mismatched vector types 57 fmul v0.16b, v1.8b, v2.8b 58 fdiv v0.2s, v1.2d, v2.2d 59 60// CHECK-ERROR: error: invalid operand for instruction 61// CHECK-ERROR: fmul v0.16b, v1.8b, v2.8b 62// CHECK-ERROR: ^ 63// CHECK-ERROR: error: invalid operand for instruction 64// CHECK-ERROR: fdiv v0.2s, v1.2d, v2.2d 65// CHECK-ERROR: ^ 66 67//---------------------------------------------------------------------- 68// Vector And Orr Eor Bsl Bit Bif, Orn, Bic, 69//---------------------------------------------------------------------- 70 // Mismatched and invalid vector types 71 and v0.8b, v1.16b, v2.8b 72 orr v0.4h, v1.4h, v2.4h 73 eor v0.2s, v1.2s, v2.2s 74 bsl v0.8b, v1.16b, v2.8b 75 bsl v0.2s, v1.2s, v2.2s 76 bit v0.2d, v1.2d, v2.2d 77 bif v0.4h, v1.4h, v2.4h 78 orn v0.8b, v1.16b, v2.16b 79 bic v0.2d, v1.2d, v2.2d 80 81// CHECK-ERROR: error: invalid operand for instruction 82// CHECK-ERROR: and v0.8b, v1.16b, v2.8b 83// CHECK-ERROR: ^ 84// CHECK-ERROR: error: invalid operand for instruction 85// CHECK-ERROR: orr v0.4h, v1.4h, v2.4h 86// CHECK-ERROR: ^ 87// CHECK-ERROR: error: invalid operand for instruction 88// CHECK-ERROR: eor v0.2s, v1.2s, v2.2s 89// CHECK-ERROR: ^ 90// CHECK-ERROR: error: invalid operand for instruction 91// CHECK-ERROR: bsl v0.8b, v1.16b, v2.8b 92// CHECK-ERROR: ^ 93// CHECK-ERROR: error: invalid operand for instruction 94// CHECK-ERROR: bsl v0.2s, v1.2s, v2.2s 95// CHECK-ERROR: ^ 96// CHECK-ERROR: error: invalid operand for instruction 97// CHECK-ERROR: bit v0.2d, v1.2d, v2.2d 98// CHECK-ERROR: ^ 99// CHECK-ERROR: error: invalid operand for instruction 100// CHECK-ERROR: bif v0.4h, v1.4h, v2.4h 101// CHECK-ERROR: ^ 102// CHECK-ERROR: error: invalid operand for instruction 103// CHECK-ERROR: orn v0.8b, v1.16b, v2.16b 104// CHECK-ERROR: ^ 105// CHECK-ERROR: error: invalid operand for instruction 106// CHECK-ERROR: bic v0.2d, v1.2d, v2.2d 107// CHECK-ERROR: ^ 108 109//---------------------------------------------------------------------- 110// Vector Integer Multiply-accumulate and Multiply-subtract 111//---------------------------------------------------------------------- 112 113 // Mismatched and invalid vector types 114 mla v0.16b, v1.8b, v2.8b 115 mls v0.2d, v1.2d, v2.2d 116 117// CHECK-ERROR: error: invalid operand for instruction 118// CHECK-ERROR: mla v0.16b, v1.8b, v2.8b 119// CHECK-ERROR: ^ 120// CHECK-ERROR: error: invalid operand for instruction 121// CHECK-ERROR: mls v0.2d, v1.2d, v2.2d 122// CHECK-ERROR: ^ 123 124//---------------------------------------------------------------------- 125// Vector Floating-Point Multiply-accumulate and Multiply-subtract 126//---------------------------------------------------------------------- 127 // Mismatched vector types 128 fmla v0.2s, v1.2d, v2.2d 129 fmls v0.16b, v1.8b, v2.8b 130 131// CHECK-ERROR: error: invalid operand for instruction 132// CHECK-ERROR: fmla v0.2s, v1.2d, v2.2d 133// CHECK-ERROR: ^ 134// CHECK-ERROR: error: invalid operand for instruction 135// CHECK-ERROR: fmls v0.16b, v1.8b, v2.8b 136// CHECK-ERROR: ^ 137 138 139//---------------------------------------------------------------------- 140// Vector Move Immediate Shifted 141// Vector Move Inverted Immediate Shifted 142// Vector Bitwise Bit Clear (AND NOT) - immediate 143// Vector Bitwise OR - immedidate 144//---------------------------------------------------------------------- 145 // out of range immediate (0 to 0xff) 146 movi v0.2s, #-1 147 mvni v1.4s, #256 148 // out of range shift (0, 8, 16, 24 and 0, 8) 149 bic v15.4h, #1, lsl #7 150 orr v31.2s, #1, lsl #25 151 movi v5.4h, #10, lsl #16 152 // invalid vector type (2s, 4s, 4h, 8h) 153 movi v5.8b, #1, lsl #8 154 155// CHECK-ERROR: error: invalid operand for instruction 156// CHECK-ERROR: movi v0.2s, #-1 157// CHECK-ERROR: ^ 158// CHECK-ERROR: error: invalid operand for instruction 159// CHECK-ERROR: mvni v1.4s, #256 160// CHECK-ERROR: ^ 161// CHECK-ERROR: error: invalid operand for instruction 162// CHECK-ERROR: bic v15.4h, #1, lsl #7 163// CHECK-ERROR: ^ 164// CHECK-ERROR: error: invalid operand for instruction 165// CHECK-ERROR: orr v31.2s, #1, lsl #25 166// CHECK-ERROR: ^ 167// CHECK-ERROR: error: invalid operand for instruction 168// CHECK-ERROR: movi v5.4h, #10, lsl #16 169// CHECK-ERROR: ^ 170// CHECK-ERROR: error: invalid operand for instruction 171// CHECK-ERROR: movi v5.8b, #1, lsl #8 172// CHECK-ERROR: ^ 173//---------------------------------------------------------------------- 174// Vector Move Immediate Masked 175// Vector Move Inverted Immediate Masked 176//---------------------------------------------------------------------- 177 // out of range immediate (0 to 0xff) 178 movi v0.2s, #-1, msl #8 179 mvni v7.4s, #256, msl #16 180 // out of range shift (8, 16) 181 movi v3.2s, #1, msl #0 182 mvni v17.4s, #255, msl #32 183 // invalid vector type (2s, 4s) 184 movi v5.4h, #31, msl #8 185 186// CHECK-ERROR: error: invalid operand for instruction 187// CHECK-ERROR: movi v0.2s, #-1, msl #8 188// CHECK-ERROR: ^ 189// CHECK-ERROR: error: invalid operand for instruction 190// CHECK-ERROR: mvni v7.4s, #256, msl #16 191// CHECK-ERROR: ^ 192// CHECK-ERROR: error: invalid operand for instruction 193// CHECK-ERROR: movi v3.2s, #1, msl #0 194// CHECK-ERROR: ^ 195// CHECK-ERROR: error: invalid operand for instruction 196// CHECK-ERROR: mvni v17.4s, #255, msl #32 197// CHECK-ERROR: ^ 198// CHECK-ERROR: error: invalid operand for instruction 199// CHECK-ERROR: movi v5.4h, #31, msl #8 200// CHECK-ERROR: ^ 201 202//---------------------------------------------------------------------- 203// Vector Immediate - per byte 204//---------------------------------------------------------------------- 205 // out of range immediate (0 to 0xff) 206 movi v0.8b, #-1 207 movi v1.16b, #256 208 209// CHECK-ERROR: error: invalid operand for instruction 210// CHECK-ERROR: movi v0.8b, #-1 211// CHECK-ERROR: ^ 212// CHECK-ERROR: error: invalid operand for instruction 213// CHECK-ERROR: movi v1.16b, #256 214// CHECK-ERROR: ^ 215 216//---------------------------------------------------------------------- 217// Scalar Floating-point Reciprocal Estimate 218//---------------------------------------------------------------------- 219 220 frecpe s19, h14 221 frecpe d13, s13 222 223// CHECK-ERROR: error: invalid operand for instruction 224// CHECK-ERROR: frecpe s19, h14 225// CHECK-ERROR: ^ 226// CHECK-ERROR: error: invalid operand for instruction 227// CHECK-ERROR: frecpe d13, s13 228// CHECK-ERROR: ^ 229 230//---------------------------------------------------------------------- 231// Scalar Floating-point Reciprocal Exponent 232//---------------------------------------------------------------------- 233 234 frecpx s18, h10 235 frecpx d16, s19 236 237// CHECK-ERROR: error: invalid operand for instruction 238// CHECK-ERROR: frecpx s18, h10 239// CHECK-ERROR: ^ 240// CHECK-ERROR: error: invalid operand for instruction 241// CHECK-ERROR: frecpx d16, s19 242// CHECK-ERROR: ^ 243 244//---------------------------------------------------------------------- 245// Scalar Floating-point Reciprocal Square Root Estimate 246//---------------------------------------------------------------------- 247 248 frsqrte s22, h13 249 frsqrte d21, s12 250 251// CHECK-ERROR: error: invalid operand for instruction 252// CHECK-ERROR: frsqrte s22, h13 253// CHECK-ERROR: ^ 254// CHECK-ERROR: error: invalid operand for instruction 255// CHECK-ERROR: frsqrte d21, s12 256// CHECK-ERROR: ^ 257 258//---------------------------------------------------------------------- 259// Vector Move Immediate - bytemask, per doubleword 260//--------------------------------------------------------------------- 261 // invalid bytemask (0x00 or 0xff) 262 movi v0.2d, #0x10ff00ff00ff00ff 263 264// CHECK:ERROR: error: invalid operand for instruction 265// CHECK:ERROR: movi v0.2d, #0x10ff00ff00ff00ff 266// CHECK:ERROR: ^ 267 268//---------------------------------------------------------------------- 269// Vector Move Immediate - bytemask, one doubleword 270//---------------------------------------------------------------------- 271 // invalid bytemask (0x00 or 0xff) 272 movi v0.2d, #0xffff00ff001f00ff 273 274// CHECK:ERROR: error: invalid operand for instruction 275// CHECK:ERROR: movi v0.2d, #0xffff00ff001f00ff 276// CHECK:ERROR: ^ 277//---------------------------------------------------------------------- 278// Vector Floating Point Move Immediate 279//---------------------------------------------------------------------- 280 // invalid vector type (2s, 4s, 2d) 281 fmov v0.4h, #1.0 282 283// CHECK:ERROR: error: invalid operand for instruction 284// CHECK:ERROR: fmov v0.4h, #1.0 285// CHECK:ERROR: ^ 286 287//---------------------------------------------------------------------- 288// Vector Move - register 289//---------------------------------------------------------------------- 290 // invalid vector type (8b, 16b) 291 mov v0.2s, v31.8b 292// CHECK:ERROR: error: invalid operand for instruction 293// CHECK:ERROR: mov v0.2s, v31.8b 294// CHECK:ERROR: ^ 295 296//---------------------------------------------------------------------- 297// Vector Absolute Difference and Accumulate (Signed, Unsigned) 298//---------------------------------------------------------------------- 299 300 // Mismatched and invalid vector types (2d) 301 saba v0.16b, v1.8b, v2.8b 302 uaba v0.2d, v1.2d, v2.2d 303 304// CHECK-ERROR: error: invalid operand for instruction 305// CHECK-ERROR: saba v0.16b, v1.8b, v2.8b 306// CHECK-ERROR: ^ 307// CHECK-ERROR: error: invalid operand for instruction 308// CHECK-ERROR: uaba v0.2d, v1.2d, v2.2d 309// CHECK-ERROR: ^ 310 311//---------------------------------------------------------------------- 312// Vector Absolute Difference and Accumulate (Signed, Unsigned) 313// Vector Absolute Difference (Signed, Unsigned) 314 315 // Mismatched and invalid vector types (2d) 316 uaba v0.16b, v1.8b, v2.8b 317 saba v0.2d, v1.2d, v2.2d 318 uabd v0.4s, v1.2s, v2.2s 319 sabd v0.4h, v1.8h, v8.8h 320 321// CHECK-ERROR: error: invalid operand for instruction 322// CHECK-ERROR: uaba v0.16b, v1.8b, v2.8b 323// CHECK-ERROR: ^ 324// CHECK-ERROR: error: invalid operand for instruction 325// CHECK-ERROR: saba v0.2d, v1.2d, v2.2d 326// CHECK-ERROR: ^ 327// CHECK-ERROR: error: invalid operand for instruction 328// CHECK-ERROR: uabd v0.4s, v1.2s, v2.2s 329// CHECK-ERROR: ^ 330// CHECK-ERROR: error: invalid operand for instruction 331// CHECK-ERROR: sabd v0.4h, v1.8h, v8.8h 332// CHECK-ERROR: ^ 333 334//---------------------------------------------------------------------- 335// Vector Absolute Difference (Floating Point) 336//---------------------------------------------------------------------- 337 // Mismatched and invalid vector types 338 fabd v0.2s, v1.4s, v2.2d 339 fabd v0.4h, v1.4h, v2.4h 340 341// CHECK-ERROR: error: invalid operand for instruction 342// CHECK-ERROR: fabd v0.2s, v1.4s, v2.2d 343// CHECK-ERROR: ^ 344// CHECK-ERROR: error: invalid operand for instruction 345// CHECK-ERROR: fabd v0.4h, v1.4h, v2.4h 346// CHECK-ERROR: ^ 347//---------------------------------------------------------------------- 348// Vector Multiply (Polynomial) 349//---------------------------------------------------------------------- 350 351 // Mismatched and invalid vector types 352 pmul v0.8b, v1.8b, v2.16b 353 pmul v0.2s, v1.2s, v2.2s 354 355// CHECK-ERROR: error: invalid operand for instruction 356// CHECK-ERROR: pmul v0.8b, v1.8b, v2.16b 357// CHECK-ERROR: ^ 358// CHECK-ERROR: error: invalid operand for instruction 359// CHECK-ERROR: pmul v0.2s, v1.2s, v2.2s 360// CHECK-ERROR: ^ 361 362//---------------------------------------------------------------------- 363// Scalar Integer Add and Sub 364//---------------------------------------------------------------------- 365 366 // Mismatched registers 367 add d0, s1, d2 368 sub s1, d1, d2 369 370// CHECK-ERROR: error: invalid operand for instruction 371// CHECK-ERROR: add d0, s1, d2 372// CHECK-ERROR: ^ 373// CHECK-ERROR: error: invalid operand for instruction 374// CHECK-ERROR: sub s1, d1, d2 375// CHECK-ERROR: ^ 376 377//---------------------------------------------------------------------- 378// Vector Reciprocal Step (Floating Point) 379//---------------------------------------------------------------------- 380 381 // Mismatched and invalid vector types 382 frecps v0.4s, v1.2d, v2.4s 383 frecps v0.8h, v1.8h, v2.8h 384 385// CHECK-ERROR: error: invalid operand for instruction 386// CHECK-ERROR: frecps v0.4s, v1.2d, v2.4s 387// CHECK-ERROR: ^ 388// CHECK-ERROR: error: invalid operand for instruction 389// CHECK-ERROR: frecps v0.8h, v1.8h, v2.8h 390// CHECK-ERROR: ^ 391 392//---------------------------------------------------------------------- 393// Vector Reciprocal Square Root Step (Floating Point) 394//---------------------------------------------------------------------- 395 396 // Mismatched and invalid vector types 397 frsqrts v0.2d, v1.2d, v2.2s 398 frsqrts v0.4h, v1.4h, v2.4h 399 400// CHECK-ERROR: error: invalid operand for instruction 401// CHECK-ERROR: frsqrts v0.2d, v1.2d, v2.2s 402// CHECK-ERROR: ^ 403// CHECK-ERROR: error: invalid operand for instruction 404// CHECK-ERROR: frsqrts v0.4h, v1.4h, v2.4h 405// CHECK-ERROR: ^ 406 407 408//---------------------------------------------------------------------- 409// Vector Absolute Compare Mask Less Than Or Equal (Floating Point) 410//---------------------------------------------------------------------- 411 412 // Mismatched and invalid vector types 413 facge v0.2d, v1.2s, v2.2d 414 facge v0.4h, v1.4h, v2.4h 415 facle v0.8h, v1.4h, v2.4h 416 417// CHECK-ERROR: error: invalid operand for instruction 418// CHECK-ERROR: facge v0.2d, v1.2s, v2.2d 419// CHECK-ERROR: ^ 420// CHECK-ERROR: error: invalid operand for instruction 421// CHECK-ERROR: facge v0.4h, v1.4h, v2.4h 422// CHECK-ERROR: ^ 423// CHECK-ERROR: error: invalid operand for instruction 424// CHECK-ERROR: facle v0.8h, v1.4h, v2.4h 425// CHECK-ERROR: ^ 426//---------------------------------------------------------------------- 427// Vector Absolute Compare Mask Less Than (Floating Point) 428//---------------------------------------------------------------------- 429 430 // Mismatched and invalid vector types 431 facgt v0.2d, v1.2d, v2.4s 432 facgt v0.8h, v1.8h, v2.8h 433 faclt v0.8b, v1.8b, v2.8b 434 435// CHECK-ERROR: error: invalid operand for instruction 436// CHECK-ERROR: facgt v0.2d, v1.2d, v2.4s 437// CHECK-ERROR: ^ 438// CHECK-ERROR: error: invalid operand for instruction 439// CHECK-ERROR: facgt v0.8h, v1.8h, v2.8h 440// CHECK-ERROR: ^ 441// CHECK-ERROR: error: invalid operand for instruction 442// CHECK-ERROR: faclt v0.8b, v1.8b, v2.8b 443// CHECK-ERROR: ^ 444 445 446//---------------------------------------------------------------------- 447// Vector Compare Mask Equal (Integer) 448//---------------------------------------------------------------------- 449 450 // Mismatched vector types 451 cmeq c0.2d, v1.2d, v2.2s 452 453// CHECK-ERROR: error: invalid operand for instruction 454// CHECK-ERROR: cmeq c0.2d, v1.2d, v2.2s 455// CHECK-ERROR: ^ 456 457//---------------------------------------------------------------------- 458// Vector Compare Mask Higher or Same (Unsigned Integer) 459// Vector Compare Mask Less or Same (Unsigned Integer) 460// CMLS is alias for CMHS with operands reversed. 461//---------------------------------------------------------------------- 462 463 // Mismatched vector types 464 cmhs c0.4h, v1.8b, v2.8b 465 cmls c0.16b, v1.16b, v2.2d 466 467// CHECK-ERROR: error: invalid operand for instruction 468// CHECK-ERROR: cmhs c0.4h, v1.8b, v2.8b 469// CHECK-ERROR: ^ 470// CHECK-ERROR: error: invalid operand for instruction 471// CHECK-ERROR: cmls c0.16b, v1.16b, v2.2d 472// CHECK-ERROR: ^ 473 474//---------------------------------------------------------------------- 475// Vector Compare Mask Greater Than or Equal (Integer) 476// Vector Compare Mask Less Than or Equal (Integer) 477// CMLE is alias for CMGE with operands reversed. 478//---------------------------------------------------------------------- 479 480 // Mismatched vector types 481 cmge c0.8h, v1.8b, v2.8b 482 cmle c0.4h, v1.2s, v2.2s 483 484// CHECK-ERROR: error: invalid operand for instruction 485// CHECK-ERROR: cmge c0.8h, v1.8b, v2.8b 486// CHECK-ERROR: ^ 487// CHECK-ERROR: error: invalid operand for instruction 488// CHECK-ERROR: cmle c0.4h, v1.2s, v2.2s 489// CHECK-ERROR: ^ 490 491//---------------------------------------------------------------------- 492// Vector Compare Mask Higher (Unsigned Integer) 493// Vector Compare Mask Lower (Unsigned Integer) 494// CMLO is alias for CMHI with operands reversed. 495//---------------------------------------------------------------------- 496 497 // Mismatched vector types 498 cmhi c0.4s, v1.4s, v2.16b 499 cmlo c0.8b, v1.8b, v2.2s 500 501// CHECK-ERROR: error: invalid operand for instruction 502// CHECK-ERROR: cmhi c0.4s, v1.4s, v2.16b 503// CHECK-ERROR: ^ 504// CHECK-ERROR: error: invalid operand for instruction 505// CHECK-ERROR: cmlo c0.8b, v1.8b, v2.2s 506// CHECK-ERROR: ^ 507 508//---------------------------------------------------------------------- 509// Vector Compare Mask Greater Than (Integer) 510// Vector Compare Mask Less Than (Integer) 511// CMLT is alias for CMGT with operands reversed. 512//---------------------------------------------------------------------- 513 514 // Mismatched vector types 515 cmgt c0.8b, v1.4s, v2.16b 516 cmlt c0.8h, v1.16b, v2.4s 517 518// CHECK-ERROR: error: invalid operand for instruction 519// CHECK-ERROR: cmgt c0.8b, v1.4s, v2.16b 520// CHECK-ERROR: ^ 521// CHECK-ERROR: error: invalid operand for instruction 522// CHECK-ERROR: cmlt c0.8h, v1.16b, v2.4s 523// CHECK-ERROR: ^ 524 525//---------------------------------------------------------------------- 526// Vector Compare Mask Bitwise Test (Integer) 527//---------------------------------------------------------------------- 528 529 // Mismatched vector types 530 cmtst c0.16b, v1.16b, v2.4s 531 532// CHECK-ERROR: error: invalid operand for instruction 533// CHECK-ERROR: cmtst c0.16b, v1.16b, v2.4s 534// CHECK-ERROR: ^ 535 536//---------------------------------------------------------------------- 537// Vector Compare Mask Equal (Floating Point) 538//---------------------------------------------------------------------- 539 540 // Mismatched and invalid vector types 541 fcmeq v0.2d, v1.2s, v2.2d 542 fcmeq v0.16b, v1.16b, v2.16b 543 fcmeq v0.8b, v1.4h, v2.4h 544 545// CHECK-ERROR: error: invalid operand for instruction 546// CHECK-ERROR: fcmeq v0.2d, v1.2s, v2.2d 547// CHECK-ERROR: ^ 548// CHECK-ERROR: error: invalid operand for instruction 549// CHECK-ERROR: fcmeq v0.16b, v1.16b, v2.16b 550// CHECK-ERROR: ^ 551// CHECK-ERROR: error: invalid operand for instruction 552// CHECK-ERROR: fcmeq v0.8b, v1.4h, v2.4h 553// CHECK-ERROR: ^ 554 555//---------------------------------------------------------------------- 556// Vector Compare Mask Greater Than Or Equal (Floating Point) 557// Vector Compare Mask Less Than Or Equal (Floating Point) 558// FCMLE is alias for FCMGE with operands reversed. 559//---------------------------------------------------------------------- 560 561 // Mismatched and invalid vector types 562 fcmge v31.4s, v29.2s, v28.4s 563 fcmge v3.8b, v8.2s, v12.2s 564 fcmle v17.8h, v15.2d, v13.2d 565 566// CHECK-ERROR: error: invalid operand for instruction 567// CHECK-ERROR: fcmge v31.4s, v29.2s, v28.4s 568// CHECK-ERROR: ^ 569// CHECK-ERROR: error: invalid operand for instruction 570// CHECK-ERROR: fcmge v3.8b, v8.2s, v12.2s 571// CHECK-ERROR: ^ 572// CHECK-ERROR: error: invalid operand for instruction 573// CHECK-ERROR: fcmle v17.8h, v15.2d, v13.2d 574// CHECK-ERROR: ^ 575 576//---------------------------------------------------------------------- 577// Vector Compare Mask Greater Than (Floating Point) 578// Vector Compare Mask Less Than (Floating Point) 579// FCMLT is alias for FCMGT with operands reversed. 580//---------------------------------------------------------------------- 581 582 // Mismatched and invalid vector types 583 fcmgt v0.2d, v31.2s, v16.2s 584 fcmgt v4.4s, v7.4s, v15.4h 585 fcmlt v29.2d, v5.2d, v2.16b 586 587// CHECK-ERROR: error: invalid operand for instruction 588// CHECK-ERROR: fcmgt v0.2d, v31.2s, v16.2s 589// CHECK-ERROR: ^ 590// CHECK-ERROR: error: expected floating-point constant #0.0 or invalid register type 591// CHECK-ERROR: fcmgt v4.4s, v7.4s, v15.4h 592// CHECK-ERROR: ^ 593// CHECK-ERROR: error: expected floating-point constant #0.0 or invalid register type 594// CHECK-ERROR: fcmlt v29.2d, v5.2d, v2.16b 595// CHECK-ERROR: ^ 596 597//---------------------------------------------------------------------- 598// Vector Compare Mask Equal to Zero (Integer) 599//---------------------------------------------------------------------- 600 // Mismatched vector types and invalid imm 601 // Mismatched vector types 602 cmeq c0.2d, v1.2s, #0 603 cmeq c0.2d, v1.2d, #1 604 605// CHECK-ERROR: error: invalid operand for instruction 606// CHECK-ERROR: cmeq c0.2d, v1.2s, #0 607// CHECK-ERROR: ^ 608// CHECK-ERROR: error: invalid operand for instruction 609// CHECK-ERROR: cmeq c0.2d, v1.2d, #1 610// CHECK-ERROR: ^ 611 612//---------------------------------------------------------------------- 613// Vector Compare Mask Greater Than or Equal to Zero (Signed Integer) 614//---------------------------------------------------------------------- 615 // Mismatched vector types and invalid imm 616 cmge c0.8h, v1.8b, #0 617 cmge c0.4s, v1.4s, #-1 618 619// CHECK-ERROR: error: invalid operand for instruction 620// CHECK-ERROR: cmge c0.8h, v1.8b, #0 621// CHECK-ERROR: ^ 622// CHECK-ERROR: error: invalid operand for instruction 623// CHECK-ERROR: cmge c0.4s, v1.4s, #-1 624// CHECK-ERROR: ^ 625 626//---------------------------------------------------------------------- 627// Vector Compare Mask Greater Than Zero (Signed Integer) 628//---------------------------------------------------------------------- 629 // Mismatched vector types and invalid imm 630 cmgt c0.8b, v1.4s, #0 631 cmgt c0.8b, v1.8b, #-255 632 633// CHECK-ERROR: error: invalid operand for instruction 634// CHECK-ERROR: cmgt c0.8b, v1.4s, #0 635// CHECK-ERROR: ^ 636// CHECK-ERROR: error: invalid operand for instruction 637// CHECK-ERROR: cmgt c0.8b, v1.8b, #-255 638// CHECK-ERROR: ^ 639 640//---------------------------------------------------------------------- 641// Vector Compare Mask Less Than or Equal To Zero (Signed Integer) 642//---------------------------------------------------------------------- 643 // Mismatched vector types and invalid imm 644 cmle c0.4h, v1.2s, #0 645 cmle c0.16b, v1.16b, #16 646 647// CHECK-ERROR: error: invalid operand for instruction 648// CHECK-ERROR: cmle c0.4h, v1.2s, #0 649// CHECK-ERROR: ^ 650// CHECK-ERROR: error: invalid operand for instruction 651// CHECK-ERROR: cmle c0.16b, v1.16b, #16 652// CHECK-ERROR: ^ 653//---------------------------------------------------------------------- 654// Vector Compare Mask Less Than Zero (Signed Integer) 655//---------------------------------------------------------------------- 656 // Mismatched vector types and invalid imm 657 cmlt c0.8h, v1.16b, #0 658 cmlt c0.8h, v1.8h, #-15 659 660// CHECK-ERROR: error: invalid operand for instruction 661// CHECK-ERROR: cmlt c0.8h, v1.16b, #0 662// CHECK-ERROR: ^ 663// CHECK-ERROR: error: invalid operand for instruction 664// CHECK-ERROR: cmlt c0.8h, v1.8h, #-15 665// CHECK-ERROR: ^ 666 667//---------------------------------------------------------------------- 668// Vector Compare Mask Equal to Zero (Floating Point) 669//---------------------------------------------------------------------- 670 671 // Mismatched and invalid vector types, invalid imm 672 fcmeq v0.2d, v1.2s, #0.0 673 fcmeq v0.16b, v1.16b, #0.0 674 fcmeq v0.8b, v1.4h, #1.0 675 fcmeq v0.8b, v1.4h, #1 676 677// CHECK-ERROR: error: invalid operand for instruction 678// CHECK-ERROR: fcmeq v0.2d, v1.2s, #0.0 679// CHECK-ERROR: ^ 680// CHECK-ERROR: error: invalid operand for instruction 681// CHECK-ERROR: fcmeq v0.16b, v1.16b, #0.0 682// CHECK-ERROR: ^ 683// CHECK-ERROR: error: invalid operand for instruction 684// CHECK-ERROR: fcmeq v0.8b, v1.4h, #1.0 685// CHECK-ERROR: ^ 686// CHECK-ERROR: error: Expected floating-point immediate 687// CHECK-ERROR: fcmeq v0.8b, v1.4h, #1 688// CHECK-ERROR: ^ 689//---------------------------------------------------------------------- 690// Vector Compare Mask Greater Than or Equal to Zero (Floating Point) 691//---------------------------------------------------------------------- 692 693 // Mismatched and invalid vector types, invalid imm 694 fcmge v31.4s, v29.2s, #0.0 695 fcmge v3.8b, v8.2s, #0.0 696 fcmle v17.8h, v15.2d, #-1.0 697 fcmle v17.8h, v15.2d, #0 698 699// CHECK-ERROR: error: invalid operand for instruction 700// CHECK-ERROR: fcmge v31.4s, v29.2s, #0.0 701// CHECK-ERROR: ^ 702// CHECK-ERROR: error: invalid operand for instruction 703// CHECK-ERROR: fcmge v3.8b, v8.2s, #0.0 704// CHECK-ERROR: ^ 705// CHECK-ERROR: error: invalid operand for instruction 706// CHECK-ERROR: fcmle v17.8h, v15.2d, #-1.0 707// CHECK-ERROR: ^ 708// CHECK-ERROR: error: Expected floating-point immediate 709// CHECK-ERROR: fcmle v17.8h, v15.2d, #0 710// CHECK-ERROR: ^ 711//---------------------------------------------------------------------- 712// Vector Compare Mask Greater Than Zero (Floating Point) 713//---------------------------------------------------------------------- 714 // Mismatched and invalid vector types, invalid imm 715 fcmgt v0.2d, v31.2s, #0.0 716 fcmgt v4.4s, v7.4h, #0.0 717 fcmlt v29.2d, v5.2d, #255.0 718 fcmlt v29.2d, v5.2d, #255 719 720// CHECK-ERROR: error: invalid operand for instruction 721// CHECK-ERROR: fcmgt v0.2d, v31.2s, #0.0 722// CHECK-ERROR: ^ 723// CHECK-ERROR: error: invalid operand for instruction 724// CHECK-ERROR: fcmgt v4.4s, v7.4h, #0.0 725// CHECK-ERROR: ^ 726// CHECK-ERROR: error: expected floating-point constant #0.0 or invalid register type 727// CHECK-ERROR: fcmlt v29.2d, v5.2d, #255.0 728// CHECK-ERROR: ^ 729// CHECK-ERROR: error: Expected floating-point immediate 730// CHECK-ERROR: fcmlt v29.2d, v5.2d, #255 731// CHECK-ERROR: ^ 732 733//---------------------------------------------------------------------- 734// Vector Compare Mask Less Than or Equal To Zero (Floating Point) 735//---------------------------------------------------------------------- 736 // Mismatched and invalid vector types, invalid imm 737 fcmge v31.4s, v29.2s, #0.0 738 fcmge v3.8b, v8.2s, #0.0 739 fcmle v17.2d, v15.2d, #15.0 740 fcmle v17.2d, v15.2d, #15 741 742// CHECK-ERROR: error: invalid operand for instruction 743// CHECK-ERROR: fcmge v31.4s, v29.2s, #0.0 744// CHECK-ERROR: ^ 745// CHECK-ERROR: error: invalid operand for instruction 746// CHECK-ERROR: fcmge v3.8b, v8.2s, #0.0 747// CHECK-ERROR: ^ 748// CHECK-ERROR: error: expected floating-point constant #0.0 or invalid register type 749// CHECK-ERROR: fcmle v17.2d, v15.2d, #15.0 750// CHECK-ERROR: ^ 751// CHECK-ERROR: error: Expected floating-point immediate 752// CHECK-ERROR: fcmle v17.2d, v15.2d, #15 753// CHECK-ERROR: ^ 754 755//---------------------------------------------------------------------- 756// Vector Compare Mask Less Than Zero (Floating Point) 757//---------------------------------------------------------------------- 758 // Mismatched and invalid vector types, invalid imm 759 fcmgt v0.2d, v31.2s, #0.0 760 fcmgt v4.4s, v7.4h, #0.0 761 fcmlt v29.2d, v5.2d, #16.0 762 fcmlt v29.2d, v5.2d, #2 763 764// CHECK-ERROR: error: invalid operand for instruction 765// CHECK-ERROR: fcmgt v0.2d, v31.2s, #0.0 766// CHECK-ERROR: ^ 767// CHECK-ERROR: error: invalid operand for instruction 768// CHECK-ERROR: fcmgt v4.4s, v7.4h, #0.0 769// CHECK-ERROR: ^ 770// CHECK-ERROR: error: expected floating-point constant #0.0 or invalid register type 771// CHECK-ERROR: fcmlt v29.2d, v5.2d, #16.0 772// CHECK-ERROR: ^ 773// CHECK-ERROR: error: Expected floating-point immediate 774// CHECK-ERROR: fcmlt v29.2d, v5.2d, #2 775// CHECK-ERROR: ^ 776 777/----------------------------------------------------------------------- 778// Vector Integer Halving Add (Signed) 779// Vector Integer Halving Add (Unsigned) 780// Vector Integer Halving Sub (Signed) 781// Vector Integer Halving Sub (Unsigned) 782//---------------------------------------------------------------------- 783 // Mismatched and invalid vector types (2d) 784 shadd v0.2d, v1.2d, v2.2d 785 uhadd v4.2s, v5.2s, v5.4h 786 shsub v11.4h, v12.8h, v13.4h 787 uhsub v31.16b, v29.8b, v28.8b 788 789// CHECK-ERROR: error: invalid operand for instruction 790// CHECK-ERROR: shadd v0.2d, v1.2d, v2.2d 791// CHECK-ERROR: ^ 792// CHECK-ERROR: error: invalid operand for instruction 793// CHECK-ERROR: uhadd v4.2s, v5.2s, v5.4h 794// CHECK-ERROR: ^ 795// CHECK-ERROR: error: invalid operand for instruction 796// CHECK-ERROR: shsub v11.4h, v12.8h, v13.4h 797// CHECK-ERROR: ^ 798// CHECK-ERROR: error: invalid operand for instruction 799// CHECK-ERROR: uhsub v31.16b, v29.8b, v28.8b 800// CHECK-ERROR: ^ 801 802//---------------------------------------------------------------------- 803// Vector Integer Rouding Halving Add (Signed) 804// Vector Integer Rouding Halving Add (Unsigned) 805//---------------------------------------------------------------------- 806 807 // Mismatched and invalid vector types (2d) 808 srhadd v0.2s, v1.2s, v2.2d 809 urhadd v0.16b, v1.16b, v2.8h 810 811// CHECK-ERROR: error: invalid operand for instruction 812// CHECK-ERROR: srhadd v0.2s, v1.2s, v2.2d 813// CHECK-ERROR: ^ 814// CHECK-ERROR: error: invalid operand for instruction 815// CHECK-ERROR: urhadd v0.16b, v1.16b, v2.8h 816// CHECK-ERROR: ^ 817 818//---------------------------------------------------------------------- 819// Vector Integer Saturating Add (Signed) 820// Vector Integer Saturating Add (Unsigned) 821// Vector Integer Saturating Sub (Signed) 822// Vector Integer Saturating Sub (Unsigned) 823//---------------------------------------------------------------------- 824 825 // Mismatched vector types 826 sqadd v0.2s, v1.2s, v2.2d 827 uqadd v31.8h, v1.4h, v2.4h 828 sqsub v10.8h, v1.16b, v2.16b 829 uqsub v31.8b, v1.8b, v2.4s 830 831// CHECK-ERROR: error: invalid operand for instruction 832// CHECK-ERROR: sqadd v0.2s, v1.2s, v2.2d 833// CHECK-ERROR: ^ 834// CHECK-ERROR: error: invalid operand for instruction 835// CHECK-ERROR: uqadd v31.8h, v1.4h, v2.4h 836// CHECK-ERROR: ^ 837// CHECK-ERROR: error: invalid operand for instruction 838// CHECK-ERROR: sqsub v10.8h, v1.16b, v2.16b 839// CHECK-ERROR: ^ 840// CHECK-ERROR: error: invalid operand for instruction 841// CHECK-ERROR: uqsub v31.8b, v1.8b, v2.4s 842// CHECK-ERROR: ^ 843 844//---------------------------------------------------------------------- 845// Scalar Integer Saturating Add (Signed) 846// Scalar Integer Saturating Add (Unsigned) 847// Scalar Integer Saturating Sub (Signed) 848// Scalar Integer Saturating Sub (Unsigned) 849//---------------------------------------------------------------------- 850 851 // Mismatched registers 852 sqadd d0, s31, d2 853 uqadd s0, s1, d2 854 sqsub b0, b2, s18 855 uqsub h1, h2, d2 856 857// CHECK-ERROR: error: invalid operand for instruction 858// CHECK-ERROR: sqadd d0, s31, d2 859// CHECK-ERROR: ^ 860// CHECK-ERROR: error: invalid operand for instruction 861// CHECK-ERROR: uqadd s0, s1, d2 862// CHECK-ERROR: ^ 863// CHECK-ERROR: error: invalid operand for instruction 864// CHECK-ERROR: sqsub b0, b2, s18 865// CHECK-ERROR: ^ 866// CHECK-ERROR: error: invalid operand for instruction 867// CHECK-ERROR: uqsub h1, h2, d2 868// CHECK-ERROR: ^ 869 870//---------------------------------------------------------------------- 871// Scalar Integer Saturating Doubling Multiply Half High (Signed) 872//---------------------------------------------------------------------- 873 874 sqdmulh h10, s11, h12 875 sqdmulh s20, h21, s2 876 877// CHECK-ERROR: error: invalid operand for instruction 878// CHECK-ERROR: sqdmulh h10, s11, h12 879// CHECK-ERROR: ^ 880// CHECK-ERROR: error: invalid operand for instruction 881// CHECK-ERROR: sqdmulh s20, h21, s2 882// CHECK-ERROR: ^ 883 884//------------------------------------------------------------------------ 885// Scalar Integer Saturating Rounding Doubling Multiply Half High (Signed) 886//------------------------------------------------------------------------ 887 888 sqrdmulh h10, s11, h12 889 sqrdmulh s20, h21, s2 890 891// CHECK-ERROR: error: invalid operand for instruction 892// CHECK-ERROR: sqrdmulh h10, s11, h12 893// CHECK-ERROR: ^ 894// CHECK-ERROR: error: invalid operand for instruction 895// CHECK-ERROR: sqrdmulh s20, h21, s2 896// CHECK-ERROR: ^ 897 898//---------------------------------------------------------------------- 899// Vector Shift Left (Signed and Unsigned Integer) 900//---------------------------------------------------------------------- 901 // Mismatched vector types 902 sshl v0.4s, v15.2s, v16.2s 903 ushl v1.16b, v25.16b, v6.8h 904 905// CHECK-ERROR: error: invalid operand for instruction 906// CHECK-ERROR: sshl v0.4s, v15.2s, v16.2s 907// CHECK-ERROR: ^ 908// CHECK-ERROR: error: invalid operand for instruction 909// CHECK-ERROR: ushl v1.16b, v25.16b, v6.8h 910// CHECK-ERROR: ^ 911 912//---------------------------------------------------------------------- 913// Vector Saturating Shift Left (Signed and Unsigned Integer) 914//---------------------------------------------------------------------- 915 // Mismatched vector types 916 sqshl v0.2s, v15.4s, v16.2d 917 uqshl v1.8b, v25.4h, v6.8h 918 919// CHECK-ERROR: error: invalid operand for instruction 920// CHECK-ERROR: sqshl v0.2s, v15.4s, v16.2d 921// CHECK-ERROR: ^ 922// CHECK-ERROR: error: invalid operand for instruction 923// CHECK-ERROR: uqshl v1.8b, v25.4h, v6.8h 924// CHECK-ERROR: ^ 925 926//---------------------------------------------------------------------- 927// Vector Rouding Shift Left (Signed and Unsigned Integer) 928//---------------------------------------------------------------------- 929 // Mismatched vector types 930 srshl v0.8h, v15.8h, v16.16b 931 urshl v1.2d, v25.2d, v6.4s 932 933// CHECK-ERROR: error: invalid operand for instruction 934// CHECK-ERROR: srshl v0.8h, v15.8h, v16.16b 935// CHECK-ERROR: ^ 936// CHECK-ERROR: error: invalid operand for instruction 937// CHECK-ERROR: urshl v1.2d, v25.2d, v6.4s 938// CHECK-ERROR: ^ 939 940//---------------------------------------------------------------------- 941// Vector Saturating Rouding Shift Left (Signed and Unsigned Integer) 942//---------------------------------------------------------------------- 943 // Mismatched vector types 944 sqrshl v0.2s, v15.8h, v16.16b 945 uqrshl v1.4h, v25.4h, v6.2d 946 947// CHECK-ERROR: error: invalid operand for instruction 948// CHECK-ERROR: sqrshl v0.2s, v15.8h, v16.16b 949// CHECK-ERROR: ^ 950// CHECK-ERROR: error: invalid operand for instruction 951// CHECK-ERROR: uqrshl v1.4h, v25.4h, v6.2d 952// CHECK-ERROR: ^ 953 954//---------------------------------------------------------------------- 955// Scalar Integer Shift Left (Signed, Unsigned) 956//---------------------------------------------------------------------- 957 // Mismatched and invalid vector types 958 sshl d0, d1, s2 959 ushl b2, b0, b1 960 961// CHECK-ERROR: error: invalid operand for instruction 962// CHECK-ERROR: sshl d0, d1, s2 963// CHECK-ERROR: ^ 964// CHECK-ERROR: error: invalid operand for instruction 965// CHECK-ERROR: ushl b2, b0, b1 966// CHECK-ERROR: ^ 967 968//---------------------------------------------------------------------- 969// Scalar Integer Saturating Shift Left (Signed, Unsigned) 970//---------------------------------------------------------------------- 971 972 // Mismatched vector types 973 sqshl b0, s1, b0 974 uqshl h0, b1, h0 975 sqshl s0, h1, s0 976 uqshl d0, b1, d0 977 978// CHECK-ERROR: error: invalid operand for instruction 979// CHECK-ERROR: sqshl b0, s1, b0 980// CHECK-ERROR: ^ 981// CHECK-ERROR: error: invalid operand for instruction 982// CHECK-ERROR: uqshl h0, b1, h0 983// CHECK-ERROR: ^ 984// CHECK-ERROR: error: invalid operand for instruction 985// CHECK-ERROR: sqshl s0, h1, s0 986// CHECK-ERROR: ^ 987// CHECK-ERROR: error: invalid operand for instruction 988// CHECK-ERROR: uqshl d0, b1, d0 989// CHECK-ERROR: ^ 990 991//---------------------------------------------------------------------- 992// Scalar Integer Rouding Shift Left (Signed, Unsigned) 993//---------------------------------------------------------------------- 994 // Mismatched and invalid vector types 995 srshl h0, h1, h2 996 urshl s0, s1, s2 997 998// CHECK-ERROR: error: invalid operand for instruction 999// CHECK-ERROR: srshl h0, h1, h2 1000// CHECK-ERROR: ^ 1001// CHECK-ERROR: error: invalid operand for instruction 1002// CHECK-ERROR: urshl s0, s1, s2 1003// CHECK-ERROR: ^ 1004 1005 1006//---------------------------------------------------------------------- 1007// Scalar Integer Saturating Rounding Shift Left (Signed, Unsigned) 1008//---------------------------------------------------------------------- 1009 1010 // Mismatched vector types 1011 sqrshl b0, b1, s0 1012 uqrshl h0, h1, b0 1013 sqrshl s0, s1, h0 1014 uqrshl d0, d1, b0 1015 1016// CHECK-ERROR: error: invalid operand for instruction 1017// CHECK-ERROR: sqrshl b0, b1, s0 1018// CHECK-ERROR: ^ 1019// CHECK-ERROR: error: invalid operand for instruction 1020// CHECK-ERROR: uqrshl h0, h1, b0 1021// CHECK-ERROR: ^ 1022// CHECK-ERROR: error: invalid operand for instruction 1023// CHECK-ERROR: sqrshl s0, s1, h0 1024// CHECK-ERROR: ^ 1025// CHECK-ERROR: error: invalid operand for instruction 1026// CHECK-ERROR: uqrshl d0, d1, b0 1027// CHECK-ERROR: ^ 1028 1029 1030//---------------------------------------------------------------------- 1031// Vector Maximum (Signed, Unsigned) 1032//---------------------------------------------------------------------- 1033 // Mismatched and invalid vector types 1034 smax v0.2d, v1.2d, v2.2d 1035 umax v0.4h, v1.4h, v2.2s 1036 1037// CHECK-ERROR: error: invalid operand for instruction 1038// CHECK-ERROR: smax v0.2d, v1.2d, v2.2d 1039// CHECK-ERROR: ^ 1040// CHECK-ERROR: error: invalid operand for instruction 1041// CHECK-ERROR: umax v0.4h, v1.4h, v2.2s 1042// CHECK-ERROR: ^ 1043 1044//---------------------------------------------------------------------- 1045// Vector Minimum (Signed, Unsigned) 1046//---------------------------------------------------------------------- 1047 // Mismatched and invalid vector types 1048 smin v0.2d, v1.2d, v2.2d 1049 umin v0.2s, v1.2s, v2.8b 1050 1051// CHECK-ERROR: error: invalid operand for instruction 1052// CHECK-ERROR: smin v0.2d, v1.2d, v2.2d 1053// CHECK-ERROR: ^ 1054// CHECK-ERROR: error: invalid operand for instruction 1055// CHECK-ERROR: umin v0.2s, v1.2s, v2.8b 1056// CHECK-ERROR: ^ 1057 1058 1059//---------------------------------------------------------------------- 1060// Vector Maximum (Floating Point) 1061//---------------------------------------------------------------------- 1062 // Mismatched and invalid vector types 1063 fmax v0.2s, v1.2s, v2.4s 1064 fmax v0.8b, v1.8b, v2.8b 1065 1066// CHECK-ERROR: error: invalid operand for instruction 1067// CHECK-ERROR: fmax v0.2s, v1.2s, v2.4s 1068// CHECK-ERROR: ^ 1069// CHECK-ERROR: error: invalid operand for instruction 1070// CHECK-ERROR: fmax v0.8b, v1.8b, v2.8b 1071// CHECK-ERROR: ^ 1072//---------------------------------------------------------------------- 1073// Vector Minimum (Floating Point) 1074//---------------------------------------------------------------------- 1075 // Mismatched and invalid vector types 1076 fmin v0.4s, v1.4s, v2.2d 1077 fmin v0.8h, v1.8h, v2.8h 1078 1079// CHECK-ERROR: error: invalid operand for instruction 1080// CHECK-ERROR: fmin v0.4s, v1.4s, v2.2d 1081// CHECK-ERROR: ^ 1082// CHECK-ERROR: error: invalid operand for instruction 1083// CHECK-ERROR: fmin v0.8h, v1.8h, v2.8h 1084// CHECK-ERROR: ^ 1085 1086//---------------------------------------------------------------------- 1087// Vector maxNum (Floating Point) 1088//---------------------------------------------------------------------- 1089 // Mismatched and invalid vector types 1090 fmaxnm v0.2s, v1.2s, v2.2d 1091 fmaxnm v0.4h, v1.8h, v2.4h 1092 1093// CHECK-ERROR: error: invalid operand for instruction 1094// CHECK-ERROR: fmaxnm v0.2s, v1.2s, v2.2d 1095// CHECK-ERROR: ^ 1096// CHECK-ERROR: error: invalid operand for instruction 1097// CHECK-ERROR: fmaxnm v0.4h, v1.8h, v2.4h 1098// CHECK-ERROR: ^ 1099 1100//---------------------------------------------------------------------- 1101// Vector minNum (Floating Point) 1102//---------------------------------------------------------------------- 1103 // Mismatched and invalid vector types 1104 fminnm v0.4s, v1.2s, v2.4s 1105 fminnm v0.16b, v0.16b, v0.16b 1106 1107// CHECK-ERROR: error: invalid operand for instruction 1108// CHECK-ERROR: fminnm v0.4s, v1.2s, v2.4s 1109// CHECK-ERROR: ^ 1110// CHECK-ERROR: error: invalid operand for instruction 1111// CHECK-ERROR: fminnm v0.16b, v0.16b, v0.16b 1112// CHECK-ERROR: ^ 1113 1114 1115//---------------------------------------------------------------------- 1116// Vector Maximum Pairwise (Signed, Unsigned) 1117//---------------------------------------------------------------------- 1118 // Mismatched and invalid vector types 1119 smaxp v0.2d, v1.2d, v2.2d 1120 umaxp v0.4h, v1.4h, v2.2s 1121 1122// CHECK-ERROR: error: invalid operand for instruction 1123// CHECK-ERROR: smaxp v0.2d, v1.2d, v2.2d 1124// CHECK-ERROR: ^ 1125// CHECK-ERROR: error: invalid operand for instruction 1126// CHECK-ERROR: umaxp v0.4h, v1.4h, v2.2s 1127// CHECK-ERROR: ^ 1128 1129//---------------------------------------------------------------------- 1130// Vector Minimum Pairwise (Signed, Unsigned) 1131//---------------------------------------------------------------------- 1132 // Mismatched and invalid vector types 1133 sminp v0.2d, v1.2d, v2.2d 1134 uminp v0.2s, v1.2s, v2.8b 1135 1136// CHECK-ERROR: error: invalid operand for instruction 1137// CHECK-ERROR: sminp v0.2d, v1.2d, v2.2d 1138// CHECK-ERROR: ^ 1139// CHECK-ERROR: error: invalid operand for instruction 1140// CHECK-ERROR: uminp v0.2s, v1.2s, v2.8b 1141// CHECK-ERROR: ^ 1142 1143 1144//---------------------------------------------------------------------- 1145// Vector Maximum Pairwise (Floating Point) 1146//---------------------------------------------------------------------- 1147 // Mismatched and invalid vector types 1148 fmaxp v0.2s, v1.2s, v2.4s 1149 fmaxp v0.8b, v1.8b, v2.8b 1150 1151// CHECK-ERROR: error: invalid operand for instruction 1152// CHECK-ERROR: fmaxp v0.2s, v1.2s, v2.4s 1153// CHECK-ERROR: ^ 1154// CHECK-ERROR: error: invalid operand for instruction 1155// CHECK-ERROR: fmaxp v0.8b, v1.8b, v2.8b 1156// CHECK-ERROR: ^ 1157//---------------------------------------------------------------------- 1158// Vector Minimum Pairwise (Floating Point) 1159//---------------------------------------------------------------------- 1160 // Mismatched and invalid vector types 1161 fminp v0.4s, v1.4s, v2.2d 1162 fminp v0.8h, v1.8h, v2.8h 1163 1164// CHECK-ERROR: error: invalid operand for instruction 1165// CHECK-ERROR: fminp v0.4s, v1.4s, v2.2d 1166// CHECK-ERROR: ^ 1167// CHECK-ERROR: error: invalid operand for instruction 1168// CHECK-ERROR: fminp v0.8h, v1.8h, v2.8h 1169// CHECK-ERROR: ^ 1170 1171//---------------------------------------------------------------------- 1172// Vector maxNum Pairwise (Floating Point) 1173//---------------------------------------------------------------------- 1174 // Mismatched and invalid vector types 1175 fmaxnmp v0.2s, v1.2s, v2.2d 1176 fmaxnmp v0.4h, v1.8h, v2.4h 1177 1178// CHECK-ERROR: error: invalid operand for instruction 1179// CHECK-ERROR: fmaxnmp v0.2s, v1.2s, v2.2d 1180// CHECK-ERROR: ^ 1181// CHECK-ERROR: error: invalid operand for instruction 1182// CHECK-ERROR: fmaxnmp v0.4h, v1.8h, v2.4h 1183// CHECK-ERROR: ^ 1184 1185//---------------------------------------------------------------------- 1186// Vector minNum Pairwise (Floating Point) 1187//---------------------------------------------------------------------- 1188 // Mismatched and invalid vector types 1189 fminnmp v0.4s, v1.2s, v2.4s 1190 fminnmp v0.16b, v0.16b, v0.16b 1191 1192// CHECK-ERROR: error: invalid operand for instruction 1193// CHECK-ERROR: fminnmp v0.4s, v1.2s, v2.4s 1194// CHECK-ERROR: ^ 1195// CHECK-ERROR: error: invalid operand for instruction 1196// CHECK-ERROR: fminnmp v0.16b, v0.16b, v0.16b 1197// CHECK-ERROR: ^ 1198 1199 1200//---------------------------------------------------------------------- 1201// Vector Add Pairwise (Integer) 1202//---------------------------------------------------------------------- 1203 1204 // Mismatched vector types 1205 addp v0.16b, v1.8b, v2.8b 1206 1207// CHECK-ERROR: error: invalid operand for instruction 1208// CHECK-ERROR: addp v0.16b, v1.8b, v2.8b 1209// CHECK-ERROR: ^ 1210 1211//---------------------------------------------------------------------- 1212// Vector Add Pairwise (Floating Point) 1213//---------------------------------------------------------------------- 1214 // Mismatched and invalid vector types 1215 faddp v0.16b, v1.8b, v2.8b 1216 faddp v0.2d, v1.2d, v2.8h 1217 1218// CHECK-ERROR: error: invalid operand for instruction 1219// CHECK-ERROR: faddp v0.16b, v1.8b, v2.8b 1220// CHECK-ERROR: ^ 1221// CHECK-ERROR: error: invalid operand for instruction 1222// CHECK-ERROR: faddp v0.2d, v1.2d, v2.8h 1223// CHECK-ERROR: ^ 1224 1225 1226//---------------------------------------------------------------------- 1227// Vector Saturating Doubling Multiply High 1228//---------------------------------------------------------------------- 1229 // Mismatched and invalid vector types 1230 sqdmulh v2.4h, v25.8h, v3.4h 1231 sqdmulh v12.2d, v5.2d, v13.2d 1232 sqdmulh v3.8b, v1.8b, v30.8b 1233 1234// CHECK-ERROR: error: invalid operand for instruction 1235// CHECK-ERROR: sqdmulh v2.4h, v25.8h, v3.4h 1236// CHECK-ERROR: ^ 1237// CHECK-ERROR: error: invalid operand for instruction 1238// CHECK-ERROR: sqdmulh v12.2d, v5.2d, v13.2d 1239// CHECK-ERROR: ^ 1240// CHECK-ERROR: error: invalid operand for instruction 1241// CHECK-ERROR: sqdmulh v3.8b, v1.8b, v30.8b 1242// CHECK-ERROR: ^ 1243 1244//---------------------------------------------------------------------- 1245// Vector Saturating Rouding Doubling Multiply High 1246//---------------------------------------------------------------------- 1247 // Mismatched and invalid vector types 1248 sqrdmulh v2.2s, v25.4s, v3.4s 1249 sqrdmulh v12.16b, v5.16b, v13.16b 1250 sqrdmulh v3.4h, v1.4h, v30.2d 1251 1252 1253// CHECK-ERROR: error: invalid operand for instruction 1254// CHECK-ERROR: sqrdmulh v2.2s, v25.4s, v3.4s 1255// CHECK-ERROR: ^ 1256// CHECK-ERROR: error: invalid operand for instruction 1257// CHECK-ERROR: sqrdmulh v12.16b, v5.16b, v13.16b 1258// CHECK-ERROR: ^ 1259// CHECK-ERROR: error: invalid operand for instruction 1260// CHECK-ERROR: sqrdmulh v3.4h, v1.4h, v30.2d 1261// CHECK-ERROR: ^ 1262 1263//---------------------------------------------------------------------- 1264// Vector Multiply Extended 1265//---------------------------------------------------------------------- 1266 // Mismatched and invalid vector types 1267 fmulx v21.2s, v5.2s, v13.2d 1268 fmulx v1.4h, v25.4h, v3.4h 1269 1270// CHECK-ERROR: error: invalid operand for instruction 1271// CHECK-ERROR: fmulx v21.2s, v5.2s, v13.2d 1272// CHECK-ERROR: ^ 1273// CHECK-ERROR: error: invalid operand for instruction 1274// CHECK-ERROR: fmulx v1.4h, v25.4h, v3.4h 1275// CHECK-ERROR: ^ 1276 1277//------------------------------------------------------------------------------ 1278// Vector Shift Left by Immediate 1279//------------------------------------------------------------------------------ 1280 // Mismatched vector types and out of range 1281 shl v0.4s, v15,2s, #3 1282 shl v0.2d, v17.4s, #3 1283 shl v0.8b, v31.8b, #-1 1284 shl v0.8b, v31.8b, #8 1285 shl v0.4s, v21.4s, #32 1286 shl v0.2d, v1.2d, #64 1287 1288// CHECK-ERROR: error: expected comma before next operand 1289// CHECK-ERROR: shl v0.4s, v15,2s, #3 1290// CHECK-ERROR: ^ 1291// CHECK-ERROR: error: invalid operand for instruction 1292// CHECK-ERROR: shl v0.2d, v17.4s, #3 1293// CHECK-ERROR: ^ 1294// CHECK-ERROR: error: expected integer in range [0, 7] 1295// CHECK-ERROR: shl v0.8b, v31.8b, #-1 1296// CHECK-ERROR: ^ 1297// CHECK-ERROR: error: expected integer in range [0, 7] 1298// CHECK-ERROR: shl v0.8b, v31.8b, #8 1299// CHECK-ERROR: ^ 1300// CHECK-ERROR: error: expected integer in range [0, 31] 1301// CHECK-ERROR: shl v0.4s, v21.4s, #32 1302// CHECK-ERROR: ^ 1303// CHECK-ERROR: error: expected integer in range [0, 63] 1304// CHECK-ERROR: shl v0.2d, v1.2d, #64 1305// CHECK-ERROR: ^ 1306 1307//---------------------------------------------------------------------- 1308// Vector Shift Left Long by Immediate 1309//---------------------------------------------------------------------- 1310 // Mismatched vector types 1311 sshll v0.4s, v15.2s, #3 1312 ushll v1.16b, v25.16b, #6 1313 sshll2 v0.2d, v3.8s, #15 1314 ushll2 v1.4s, v25.4s, #7 1315 1316 // Out of range 1317 sshll v0.8h, v1.8b, #-1 1318 sshll v0.8h, v1.8b, #9 1319 ushll v0.4s, v1.4h, #17 1320 ushll v0.2d, v1.2s, #33 1321 sshll2 v0.8h, v1.16b, #9 1322 sshll2 v0.4s, v1.8h, #17 1323 ushll2 v0.2d, v1.4s, #33 1324 1325// CHECK-ERROR: error: invalid operand for instruction 1326// CHECK-ERROR: sshll v0.4s, v15.2s, #3 1327// CHECK-ERROR: ^ 1328// CHECK-ERROR: error: invalid operand for instruction 1329// CHECK-ERROR: ushll v1.16b, v25.16b, #6 1330// CHECK-ERROR: ^ 1331// CHECK-ERROR: error: invalid operand for instruction 1332// CHECK-ERROR: sshll2 v0.2d, v3.8s, #15 1333// CHECK-ERROR: ^ 1334// CHECK-ERROR: error: invalid operand for instruction 1335// CHECK-ERROR: ushll2 v1.4s, v25.4s, #7 1336// CHECK-ERROR: ^ 1337// CHECK-ERROR: error: expected integer in range [0, 7] 1338// CHECK-ERROR: sshll v0.8h, v1.8b, #-1 1339// CHECK-ERROR: ^ 1340// CHECK-ERROR: error: expected integer in range [0, 7] 1341// CHECK-ERROR: sshll v0.8h, v1.8b, #9 1342// CHECK-ERROR: ^ 1343// CHECK-ERROR: error: expected integer in range [0, 15] 1344// CHECK-ERROR: ushll v0.4s, v1.4h, #17 1345// CHECK-ERROR: ^ 1346// CHECK-ERROR: error: expected integer in range [0, 31] 1347// CHECK-ERROR: ushll v0.2d, v1.2s, #33 1348// CHECK-ERROR: ^ 1349// CHECK-ERROR: error: expected integer in range [0, 7] 1350// CHECK-ERROR: sshll2 v0.8h, v1.16b, #9 1351// CHECK-ERROR: ^ 1352// CHECK-ERROR: error: expected integer in range [0, 15] 1353// CHECK-ERROR: sshll2 v0.4s, v1.8h, #17 1354// CHECK-ERROR: ^ 1355// CHECK-ERROR: error: expected integer in range [0, 31] 1356// CHECK-ERROR: ushll2 v0.2d, v1.4s, #33 1357// CHECK-ERROR: ^ 1358 1359 1360//------------------------------------------------------------------------------ 1361// Vector shift right by immediate 1362//------------------------------------------------------------------------------ 1363 sshr v0.8b, v1.8h, #3 1364 sshr v0.4h, v1.4s, #3 1365 sshr v0.2s, v1.2d, #3 1366 sshr v0.16b, v1.16b, #9 1367 sshr v0.8h, v1.8h, #17 1368 sshr v0.4s, v1.4s, #33 1369 sshr v0.2d, v1.2d, #65 1370 1371// CHECK-ERROR: error: invalid operand for instruction 1372// CHECK-ERROR: sshr v0.8b, v1.8h, #3 1373// CHECK-ERROR: ^ 1374// CHECK-ERROR: error: invalid operand for instruction 1375// CHECK-ERROR: sshr v0.4h, v1.4s, #3 1376// CHECK-ERROR: ^ 1377// CHECK-ERROR: error: invalid operand for instruction 1378// CHECK-ERROR: sshr v0.2s, v1.2d, #3 1379// CHECK-ERROR: ^ 1380// CHECK-ERROR: error: expected integer in range [1, 8] 1381// CHECK-ERROR: sshr v0.16b, v1.16b, #9 1382// CHECK-ERROR: ^ 1383// CHECK-ERROR: error: expected integer in range [1, 16] 1384// CHECK-ERROR: sshr v0.8h, v1.8h, #17 1385// CHECK-ERROR: ^ 1386// CHECK-ERROR: error: expected integer in range [1, 32] 1387// CHECK-ERROR: sshr v0.4s, v1.4s, #33 1388// CHECK-ERROR: ^ 1389// CHECK-ERROR: error: expected integer in range [1, 64] 1390// CHECK-ERROR: sshr v0.2d, v1.2d, #65 1391// CHECK-ERROR: ^ 1392 1393//------------------------------------------------------------------------------ 1394// Vector shift right by immediate 1395//------------------------------------------------------------------------------ 1396 ushr v0.8b, v1.8h, #3 1397 ushr v0.4h, v1.4s, #3 1398 ushr v0.2s, v1.2d, #3 1399 ushr v0.16b, v1.16b, #9 1400 ushr v0.8h, v1.8h, #17 1401 ushr v0.4s, v1.4s, #33 1402 ushr v0.2d, v1.2d, #65 1403 1404// CHECK-ERROR: error: invalid operand for instruction 1405// CHECK-ERROR: ushr v0.8b, v1.8h, #3 1406// CHECK-ERROR: ^ 1407// CHECK-ERROR: error: invalid operand for instruction 1408// CHECK-ERROR: ushr v0.4h, v1.4s, #3 1409// CHECK-ERROR: ^ 1410// CHECK-ERROR: error: invalid operand for instruction 1411// CHECK-ERROR: ushr v0.2s, v1.2d, #3 1412// CHECK-ERROR: ^ 1413// CHECK-ERROR: error: expected integer in range [1, 8] 1414// CHECK-ERROR: ushr v0.16b, v1.16b, #9 1415// CHECK-ERROR: ^ 1416// CHECK-ERROR: error: expected integer in range [1, 16] 1417// CHECK-ERROR: ushr v0.8h, v1.8h, #17 1418// CHECK-ERROR: ^ 1419// CHECK-ERROR: error: expected integer in range [1, 32] 1420// CHECK-ERROR: ushr v0.4s, v1.4s, #33 1421// CHECK-ERROR: ^ 1422// CHECK-ERROR: error: expected integer in range [1, 64] 1423// CHECK-ERROR: ushr v0.2d, v1.2d, #65 1424// CHECK-ERROR: ^ 1425 1426//------------------------------------------------------------------------------ 1427// Vector shift right and accumulate by immediate 1428//------------------------------------------------------------------------------ 1429 ssra v0.8b, v1.8h, #3 1430 ssra v0.4h, v1.4s, #3 1431 ssra v0.2s, v1.2d, #3 1432 ssra v0.16b, v1.16b, #9 1433 ssra v0.8h, v1.8h, #17 1434 ssra v0.4s, v1.4s, #33 1435 ssra v0.2d, v1.2d, #65 1436 1437// CHECK-ERROR: error: invalid operand for instruction 1438// CHECK-ERROR: ssra v0.8b, v1.8h, #3 1439// CHECK-ERROR: ^ 1440// CHECK-ERROR: error: invalid operand for instruction 1441// CHECK-ERROR: ssra v0.4h, v1.4s, #3 1442// CHECK-ERROR: ^ 1443// CHECK-ERROR: error: invalid operand for instruction 1444// CHECK-ERROR: ssra v0.2s, v1.2d, #3 1445// CHECK-ERROR: ^ 1446// CHECK-ERROR: error: expected integer in range [1, 8] 1447// CHECK-ERROR: ssra v0.16b, v1.16b, #9 1448// CHECK-ERROR: ^ 1449// CHECK-ERROR: error: expected integer in range [1, 16] 1450// CHECK-ERROR: ssra v0.8h, v1.8h, #17 1451// CHECK-ERROR: ^ 1452// CHECK-ERROR: error: expected integer in range [1, 32] 1453// CHECK-ERROR: ssra v0.4s, v1.4s, #33 1454// CHECK-ERROR: ^ 1455// CHECK-ERROR: error: expected integer in range [1, 64] 1456// CHECK-ERROR: ssra v0.2d, v1.2d, #65 1457// CHECK-ERROR: ^ 1458 1459//------------------------------------------------------------------------------ 1460// Vector shift right and accumulate by immediate 1461//------------------------------------------------------------------------------ 1462 usra v0.8b, v1.8h, #3 1463 usra v0.4h, v1.4s, #3 1464 usra v0.2s, v1.2d, #3 1465 usra v0.16b, v1.16b, #9 1466 usra v0.8h, v1.8h, #17 1467 usra v0.4s, v1.4s, #33 1468 usra v0.2d, v1.2d, #65 1469 1470// CHECK-ERROR: error: invalid operand for instruction 1471// CHECK-ERROR: usra v0.8b, v1.8h, #3 1472// CHECK-ERROR: ^ 1473// CHECK-ERROR: error: invalid operand for instruction 1474// CHECK-ERROR: usra v0.4h, v1.4s, #3 1475// CHECK-ERROR: ^ 1476// CHECK-ERROR: error: invalid operand for instruction 1477// CHECK-ERROR: usra v0.2s, v1.2d, #3 1478// CHECK-ERROR: ^ 1479// CHECK-ERROR: error: expected integer in range [1, 8] 1480// CHECK-ERROR: usra v0.16b, v1.16b, #9 1481// CHECK-ERROR: ^ 1482// CHECK-ERROR: error: expected integer in range [1, 16] 1483// CHECK-ERROR: usra v0.8h, v1.8h, #17 1484// CHECK-ERROR: ^ 1485// CHECK-ERROR: error: expected integer in range [1, 32] 1486// CHECK-ERROR: usra v0.4s, v1.4s, #33 1487// CHECK-ERROR: ^ 1488// CHECK-ERROR: error: expected integer in range [1, 64] 1489// CHECK-ERROR: usra v0.2d, v1.2d, #65 1490// CHECK-ERROR: ^ 1491 1492//------------------------------------------------------------------------------ 1493// Vector rounding shift right by immediate 1494//------------------------------------------------------------------------------ 1495 srshr v0.8b, v1.8h, #3 1496 srshr v0.4h, v1.4s, #3 1497 srshr v0.2s, v1.2d, #3 1498 srshr v0.16b, v1.16b, #9 1499 srshr v0.8h, v1.8h, #17 1500 srshr v0.4s, v1.4s, #33 1501 srshr v0.2d, v1.2d, #65 1502 1503// CHECK-ERROR: error: invalid operand for instruction 1504// CHECK-ERROR: srshr v0.8b, v1.8h, #3 1505// CHECK-ERROR: ^ 1506// CHECK-ERROR: error: invalid operand for instruction 1507// CHECK-ERROR: srshr v0.4h, v1.4s, #3 1508// CHECK-ERROR: ^ 1509// CHECK-ERROR: error: invalid operand for instruction 1510// CHECK-ERROR: srshr v0.2s, v1.2d, #3 1511// CHECK-ERROR: ^ 1512// CHECK-ERROR: error: expected integer in range [1, 8] 1513// CHECK-ERROR: srshr v0.16b, v1.16b, #9 1514// CHECK-ERROR: ^ 1515// CHECK-ERROR: error: expected integer in range [1, 16] 1516// CHECK-ERROR: srshr v0.8h, v1.8h, #17 1517// CHECK-ERROR: ^ 1518// CHECK-ERROR: error: expected integer in range [1, 32] 1519// CHECK-ERROR: srshr v0.4s, v1.4s, #33 1520// CHECK-ERROR: ^ 1521// CHECK-ERROR: error: expected integer in range [1, 64] 1522// CHECK-ERROR: srshr v0.2d, v1.2d, #65 1523// CHECK-ERROR: ^ 1524 1525//------------------------------------------------------------------------------ 1526// Vecotr rounding shift right by immediate 1527//------------------------------------------------------------------------------ 1528 urshr v0.8b, v1.8h, #3 1529 urshr v0.4h, v1.4s, #3 1530 urshr v0.2s, v1.2d, #3 1531 urshr v0.16b, v1.16b, #9 1532 urshr v0.8h, v1.8h, #17 1533 urshr v0.4s, v1.4s, #33 1534 urshr v0.2d, v1.2d, #65 1535 1536// CHECK-ERROR: error: invalid operand for instruction 1537// CHECK-ERROR: urshr v0.8b, v1.8h, #3 1538// CHECK-ERROR: ^ 1539// CHECK-ERROR: error: invalid operand for instruction 1540// CHECK-ERROR: urshr v0.4h, v1.4s, #3 1541// CHECK-ERROR: ^ 1542// CHECK-ERROR: error: invalid operand for instruction 1543// CHECK-ERROR: urshr v0.2s, v1.2d, #3 1544// CHECK-ERROR: ^ 1545// CHECK-ERROR: error: expected integer in range [1, 8] 1546// CHECK-ERROR: urshr v0.16b, v1.16b, #9 1547// CHECK-ERROR: ^ 1548// CHECK-ERROR: error: expected integer in range [1, 16] 1549// CHECK-ERROR: urshr v0.8h, v1.8h, #17 1550// CHECK-ERROR: ^ 1551// CHECK-ERROR: error: expected integer in range [1, 32] 1552// CHECK-ERROR: urshr v0.4s, v1.4s, #33 1553// CHECK-ERROR: ^ 1554// CHECK-ERROR: error: expected integer in range [1, 64] 1555// CHECK-ERROR: urshr v0.2d, v1.2d, #65 1556// CHECK-ERROR: ^ 1557 1558//------------------------------------------------------------------------------ 1559// Vector rounding shift right and accumulate by immediate 1560//------------------------------------------------------------------------------ 1561 srsra v0.8b, v1.8h, #3 1562 srsra v0.4h, v1.4s, #3 1563 srsra v0.2s, v1.2d, #3 1564 srsra v0.16b, v1.16b, #9 1565 srsra v0.8h, v1.8h, #17 1566 srsra v0.4s, v1.4s, #33 1567 srsra v0.2d, v1.2d, #65 1568 1569// CHECK-ERROR: error: invalid operand for instruction 1570// CHECK-ERROR: srsra v0.8b, v1.8h, #3 1571// CHECK-ERROR: ^ 1572// CHECK-ERROR: error: invalid operand for instruction 1573// CHECK-ERROR: srsra v0.4h, v1.4s, #3 1574// CHECK-ERROR: ^ 1575// CHECK-ERROR: error: invalid operand for instruction 1576// CHECK-ERROR: srsra v0.2s, v1.2d, #3 1577// CHECK-ERROR: ^ 1578// CHECK-ERROR: error: expected integer in range [1, 8] 1579// CHECK-ERROR: srsra v0.16b, v1.16b, #9 1580// CHECK-ERROR: ^ 1581// CHECK-ERROR: error: expected integer in range [1, 16] 1582// CHECK-ERROR: srsra v0.8h, v1.8h, #17 1583// CHECK-ERROR: ^ 1584// CHECK-ERROR: error: expected integer in range [1, 32] 1585// CHECK-ERROR: srsra v0.4s, v1.4s, #33 1586// CHECK-ERROR: ^ 1587// CHECK-ERROR: error: expected integer in range [1, 64] 1588// CHECK-ERROR: srsra v0.2d, v1.2d, #65 1589// CHECK-ERROR: ^ 1590 1591//------------------------------------------------------------------------------ 1592// Vector rounding shift right and accumulate by immediate 1593//------------------------------------------------------------------------------ 1594 ursra v0.8b, v1.8h, #3 1595 ursra v0.4h, v1.4s, #3 1596 ursra v0.2s, v1.2d, #3 1597 ursra v0.16b, v1.16b, #9 1598 ursra v0.8h, v1.8h, #17 1599 ursra v0.4s, v1.4s, #33 1600 ursra v0.2d, v1.2d, #65 1601 1602// CHECK-ERROR: error: invalid operand for instruction 1603// CHECK-ERROR: ursra v0.8b, v1.8h, #3 1604// CHECK-ERROR: ^ 1605// CHECK-ERROR: error: invalid operand for instruction 1606// CHECK-ERROR: ursra v0.4h, v1.4s, #3 1607// CHECK-ERROR: ^ 1608// CHECK-ERROR: error: invalid operand for instruction 1609// CHECK-ERROR: ursra v0.2s, v1.2d, #3 1610// CHECK-ERROR: ^ 1611// CHECK-ERROR: error: expected integer in range [1, 8] 1612// CHECK-ERROR: ursra v0.16b, v1.16b, #9 1613// CHECK-ERROR: ^ 1614// CHECK-ERROR: error: expected integer in range [1, 16] 1615// CHECK-ERROR: ursra v0.8h, v1.8h, #17 1616// CHECK-ERROR: ^ 1617// CHECK-ERROR: error: expected integer in range [1, 32] 1618// CHECK-ERROR: ursra v0.4s, v1.4s, #33 1619// CHECK-ERROR: ^ 1620// CHECK-ERROR: error: expected integer in range [1, 64] 1621// CHECK-ERROR: ursra v0.2d, v1.2d, #65 1622// CHECK-ERROR: ^ 1623 1624//------------------------------------------------------------------------------ 1625// Vector shift right and insert by immediate 1626//------------------------------------------------------------------------------ 1627 sri v0.8b, v1.8h, #3 1628 sri v0.4h, v1.4s, #3 1629 sri v0.2s, v1.2d, #3 1630 sri v0.16b, v1.16b, #9 1631 sri v0.8h, v1.8h, #17 1632 sri v0.4s, v1.4s, #33 1633 sri v0.2d, v1.2d, #65 1634 1635// CHECK-ERROR: error: invalid operand for instruction 1636// CHECK-ERROR: sri v0.8b, v1.8h, #3 1637// CHECK-ERROR: ^ 1638// CHECK-ERROR: error: invalid operand for instruction 1639// CHECK-ERROR: sri v0.4h, v1.4s, #3 1640// CHECK-ERROR: ^ 1641// CHECK-ERROR: error: invalid operand for instruction 1642// CHECK-ERROR: sri v0.2s, v1.2d, #3 1643// CHECK-ERROR: ^ 1644// CHECK-ERROR: error: expected integer in range [1, 8] 1645// CHECK-ERROR: sri v0.16b, v1.16b, #9 1646// CHECK-ERROR: ^ 1647// CHECK-ERROR: error: expected integer in range [1, 16] 1648// CHECK-ERROR: sri v0.8h, v1.8h, #17 1649// CHECK-ERROR: ^ 1650// CHECK-ERROR: error: expected integer in range [1, 32] 1651// CHECK-ERROR: sri v0.4s, v1.4s, #33 1652// CHECK-ERROR: ^ 1653// CHECK-ERROR: error: expected integer in range [1, 64] 1654// CHECK-ERROR: sri v0.2d, v1.2d, #65 1655// CHECK-ERROR: ^ 1656 1657//------------------------------------------------------------------------------ 1658// Vector shift left and insert by immediate 1659//------------------------------------------------------------------------------ 1660 sli v0.8b, v1.8h, #3 1661 sli v0.4h, v1.4s, #3 1662 sli v0.2s, v1.2d, #3 1663 sli v0.16b, v1.16b, #8 1664 sli v0.8h, v1.8h, #16 1665 sli v0.4s, v1.4s, #32 1666 sli v0.2d, v1.2d, #64 1667 1668// CHECK-ERROR: error: invalid operand for instruction 1669// CHECK-ERROR: sli v0.8b, v1.8h, #3 1670// CHECK-ERROR: ^ 1671// CHECK-ERROR: error: invalid operand for instruction 1672// CHECK-ERROR: sli v0.4h, v1.4s, #3 1673// CHECK-ERROR: ^ 1674// CHECK-ERROR: error: invalid operand for instruction 1675// CHECK-ERROR: sli v0.2s, v1.2d, #3 1676// CHECK-ERROR: ^ 1677// CHECK-ERROR: error: expected integer in range [0, 7] 1678// CHECK-ERROR: sli v0.16b, v1.16b, #8 1679// CHECK-ERROR: ^ 1680// CHECK-ERROR: error: expected integer in range [0, 15] 1681// CHECK-ERROR: sli v0.8h, v1.8h, #16 1682// CHECK-ERROR: ^ 1683// CHECK-ERROR: error: expected integer in range [0, 31] 1684// CHECK-ERROR: sli v0.4s, v1.4s, #32 1685// CHECK-ERROR: ^ 1686// CHECK-ERROR: error: expected integer in range [0, 63] 1687// CHECK-ERROR: sli v0.2d, v1.2d, #64 1688// CHECK-ERROR: ^ 1689 1690//------------------------------------------------------------------------------ 1691// Vector saturating shift left unsigned by immediate 1692//------------------------------------------------------------------------------ 1693 sqshlu v0.8b, v1.8h, #3 1694 sqshlu v0.4h, v1.4s, #3 1695 sqshlu v0.2s, v1.2d, #3 1696 sqshlu v0.16b, v1.16b, #8 1697 sqshlu v0.8h, v1.8h, #16 1698 sqshlu v0.4s, v1.4s, #32 1699 sqshlu v0.2d, v1.2d, #64 1700 1701// CHECK-ERROR: error: invalid operand for instruction 1702// CHECK-ERROR: sqshlu v0.8b, v1.8h, #3 1703// CHECK-ERROR: ^ 1704// CHECK-ERROR: error: invalid operand for instruction 1705// CHECK-ERROR: sqshlu v0.4h, v1.4s, #3 1706// CHECK-ERROR: ^ 1707// CHECK-ERROR: error: invalid operand for instruction 1708// CHECK-ERROR: sqshlu v0.2s, v1.2d, #3 1709// CHECK-ERROR: ^ 1710// CHECK-ERROR: error: expected integer in range [0, 7] 1711// CHECK-ERROR: sqshlu v0.16b, v1.16b, #8 1712// CHECK-ERROR: ^ 1713// CHECK-ERROR: error: expected integer in range [0, 15] 1714// CHECK-ERROR: sqshlu v0.8h, v1.8h, #16 1715// CHECK-ERROR: ^ 1716// CHECK-ERROR: error: expected integer in range [0, 31] 1717// CHECK-ERROR: sqshlu v0.4s, v1.4s, #32 1718// CHECK-ERROR: ^ 1719// CHECK-ERROR: error: expected integer in range [0, 63] 1720// CHECK-ERROR: sqshlu v0.2d, v1.2d, #64 1721// CHECK-ERROR: ^ 1722 1723//------------------------------------------------------------------------------ 1724// Vector saturating shift left by immediate 1725//------------------------------------------------------------------------------ 1726 sqshl v0.8b, v1.8h, #3 1727 sqshl v0.4h, v1.4s, #3 1728 sqshl v0.2s, v1.2d, #3 1729 sqshl v0.16b, v1.16b, #8 1730 sqshl v0.8h, v1.8h, #16 1731 sqshl v0.4s, v1.4s, #32 1732 sqshl v0.2d, v1.2d, #64 1733 1734// CHECK-ERROR: error: invalid operand for instruction 1735// CHECK-ERROR: sqshl v0.8b, v1.8h, #3 1736// CHECK-ERROR: ^ 1737// CHECK-ERROR: error: invalid operand for instruction 1738// CHECK-ERROR: sqshl v0.4h, v1.4s, #3 1739// CHECK-ERROR: ^ 1740// CHECK-ERROR: error: invalid operand for instruction 1741// CHECK-ERROR: sqshl v0.2s, v1.2d, #3 1742// CHECK-ERROR: ^ 1743// CHECK-ERROR: error: expected integer in range [0, 7] 1744// CHECK-ERROR: sqshl v0.16b, v1.16b, #8 1745// CHECK-ERROR: ^ 1746// CHECK-ERROR: error: expected integer in range [0, 15] 1747// CHECK-ERROR: sqshl v0.8h, v1.8h, #16 1748// CHECK-ERROR: ^ 1749// CHECK-ERROR: error: expected integer in range [0, 31] 1750// CHECK-ERROR: sqshl v0.4s, v1.4s, #32 1751// CHECK-ERROR: ^ 1752// CHECK-ERROR: error: expected integer in range [0, 63] 1753// CHECK-ERROR: sqshl v0.2d, v1.2d, #64 1754// CHECK-ERROR: ^ 1755 1756//------------------------------------------------------------------------------ 1757// Vector saturating shift left by immediate 1758//------------------------------------------------------------------------------ 1759 uqshl v0.8b, v1.8h, #3 1760 uqshl v0.4h, v1.4s, #3 1761 uqshl v0.2s, v1.2d, #3 1762 uqshl v0.16b, v1.16b, #8 1763 uqshl v0.8h, v1.8h, #16 1764 uqshl v0.4s, v1.4s, #32 1765 uqshl v0.2d, v1.2d, #64 1766 1767// CHECK-ERROR: error: invalid operand for instruction 1768// CHECK-ERROR: uqshl v0.8b, v1.8h, #3 1769// CHECK-ERROR: ^ 1770// CHECK-ERROR: error: invalid operand for instruction 1771// CHECK-ERROR: uqshl v0.4h, v1.4s, #3 1772// CHECK-ERROR: ^ 1773// CHECK-ERROR: error: invalid operand for instruction 1774// CHECK-ERROR: uqshl v0.2s, v1.2d, #3 1775// CHECK-ERROR: ^ 1776// CHECK-ERROR: error: expected integer in range [0, 7] 1777// CHECK-ERROR: uqshl v0.16b, v1.16b, #8 1778// CHECK-ERROR: ^ 1779// CHECK-ERROR: error: expected integer in range [0, 15] 1780// CHECK-ERROR: uqshl v0.8h, v1.8h, #16 1781// CHECK-ERROR: ^ 1782// CHECK-ERROR: error: expected integer in range [0, 31] 1783// CHECK-ERROR: uqshl v0.4s, v1.4s, #32 1784// CHECK-ERROR: ^ 1785// CHECK-ERROR: error: expected integer in range [0, 63] 1786// CHECK-ERROR: uqshl v0.2d, v1.2d, #64 1787// CHECK-ERROR: ^ 1788 1789//------------------------------------------------------------------------------ 1790// Vector shift right narrow by immediate 1791//------------------------------------------------------------------------------ 1792 shrn v0.8b, v1.8b, #3 1793 shrn v0.4h, v1.4h, #3 1794 shrn v0.2s, v1.2s, #3 1795 shrn2 v0.16b, v1.8h, #17 1796 shrn2 v0.8h, v1.4s, #33 1797 shrn2 v0.4s, v1.2d, #65 1798 1799// CHECK-ERROR: error: invalid operand for instruction 1800// CHECK-ERROR: shrn v0.8b, v1.8b, #3 1801// CHECK-ERROR: ^ 1802// CHECK-ERROR: error: invalid operand for instruction 1803// CHECK-ERROR: shrn v0.4h, v1.4h, #3 1804// CHECK-ERROR: ^ 1805// CHECK-ERROR: error: invalid operand for instruction 1806// CHECK-ERROR: shrn v0.2s, v1.2s, #3 1807// CHECK-ERROR: ^ 1808// CHECK-ERROR: error: expected integer in range [1, 8] 1809// CHECK-ERROR: shrn2 v0.16b, v1.8h, #17 1810// CHECK-ERROR: ^ 1811// CHECK-ERROR: error: expected integer in range [1, 16] 1812// CHECK-ERROR: shrn2 v0.8h, v1.4s, #33 1813// CHECK-ERROR: ^ 1814// CHECK-ERROR: error: expected integer in range [1, 32] 1815// CHECK-ERROR: shrn2 v0.4s, v1.2d, #65 1816// CHECK-ERROR: ^ 1817 1818//------------------------------------------------------------------------------ 1819// Vector saturating shift right unsigned narrow by immediate 1820//------------------------------------------------------------------------------ 1821 sqshrun v0.8b, v1.8b, #3 1822 sqshrun v0.4h, v1.4h, #3 1823 sqshrun v0.2s, v1.2s, #3 1824 sqshrun2 v0.16b, v1.8h, #17 1825 sqshrun2 v0.8h, v1.4s, #33 1826 sqshrun2 v0.4s, v1.2d, #65 1827 1828// CHECK-ERROR: error: invalid operand for instruction 1829// CHECK-ERROR: sqshrun v0.8b, v1.8b, #3 1830// CHECK-ERROR: ^ 1831// CHECK-ERROR: error: invalid operand for instruction 1832// CHECK-ERROR: sqshrun v0.4h, v1.4h, #3 1833// CHECK-ERROR: ^ 1834// CHECK-ERROR: error: invalid operand for instruction 1835// CHECK-ERROR: sqshrun v0.2s, v1.2s, #3 1836// CHECK-ERROR: ^ 1837// CHECK-ERROR: error: expected integer in range [1, 8] 1838// CHECK-ERROR: sqshrun2 v0.16b, v1.8h, #17 1839// CHECK-ERROR: ^ 1840// CHECK-ERROR: error: expected integer in range [1, 16] 1841// CHECK-ERROR: sqshrun2 v0.8h, v1.4s, #33 1842// CHECK-ERROR: ^ 1843// CHECK-ERROR: error: expected integer in range [1, 32] 1844// CHECK-ERROR: sqshrun2 v0.4s, v1.2d, #65 1845// CHECK-ERROR: ^ 1846 1847//------------------------------------------------------------------------------ 1848// Vector rounding shift right narrow by immediate 1849//------------------------------------------------------------------------------ 1850 rshrn v0.8b, v1.8b, #3 1851 rshrn v0.4h, v1.4h, #3 1852 rshrn v0.2s, v1.2s, #3 1853 rshrn2 v0.16b, v1.8h, #17 1854 rshrn2 v0.8h, v1.4s, #33 1855 rshrn2 v0.4s, v1.2d, #65 1856 1857// CHECK-ERROR: error: invalid operand for instruction 1858// CHECK-ERROR: rshrn v0.8b, v1.8b, #3 1859// CHECK-ERROR: ^ 1860// CHECK-ERROR: error: invalid operand for instruction 1861// CHECK-ERROR: rshrn v0.4h, v1.4h, #3 1862// CHECK-ERROR: ^ 1863// CHECK-ERROR: error: invalid operand for instruction 1864// CHECK-ERROR: rshrn v0.2s, v1.2s, #3 1865// CHECK-ERROR: ^ 1866// CHECK-ERROR: error: expected integer in range [1, 8] 1867// CHECK-ERROR: rshrn2 v0.16b, v1.8h, #17 1868// CHECK-ERROR: ^ 1869// CHECK-ERROR: error: expected integer in range [1, 16] 1870// CHECK-ERROR: rshrn2 v0.8h, v1.4s, #33 1871// CHECK-ERROR: ^ 1872// CHECK-ERROR: error: expected integer in range [1, 32] 1873// CHECK-ERROR: rshrn2 v0.4s, v1.2d, #65 1874// CHECK-ERROR: ^ 1875 1876//------------------------------------------------------------------------------ 1877// Vector saturating shift right rounded unsigned narrow by immediate 1878//------------------------------------------------------------------------------ 1879 sqrshrun v0.8b, v1.8b, #3 1880 sqrshrun v0.4h, v1.4h, #3 1881 sqrshrun v0.2s, v1.2s, #3 1882 sqrshrun2 v0.16b, v1.8h, #17 1883 sqrshrun2 v0.8h, v1.4s, #33 1884 sqrshrun2 v0.4s, v1.2d, #65 1885 1886// CHECK-ERROR: error: invalid operand for instruction 1887// CHECK-ERROR: sqrshrun v0.8b, v1.8b, #3 1888// CHECK-ERROR: ^ 1889// CHECK-ERROR: error: invalid operand for instruction 1890// CHECK-ERROR: sqrshrun v0.4h, v1.4h, #3 1891// CHECK-ERROR: ^ 1892// CHECK-ERROR: error: invalid operand for instruction 1893// CHECK-ERROR: sqrshrun v0.2s, v1.2s, #3 1894// CHECK-ERROR: ^ 1895// CHECK-ERROR: error: expected integer in range [1, 8] 1896// CHECK-ERROR: sqrshrun2 v0.16b, v1.8h, #17 1897// CHECK-ERROR: ^ 1898// CHECK-ERROR: error: expected integer in range [1, 16] 1899// CHECK-ERROR: sqrshrun2 v0.8h, v1.4s, #33 1900// CHECK-ERROR: ^ 1901// CHECK-ERROR: error: expected integer in range [1, 32] 1902// CHECK-ERROR: sqrshrun2 v0.4s, v1.2d, #65 1903// CHECK-ERROR: ^ 1904 1905//------------------------------------------------------------------------------ 1906// Vector saturating shift right narrow by immediate 1907//------------------------------------------------------------------------------ 1908 sqshrn v0.8b, v1.8b, #3 1909 sqshrn v0.4h, v1.4h, #3 1910 sqshrn v0.2s, v1.2s, #3 1911 sqshrn2 v0.16b, v1.8h, #17 1912 sqshrn2 v0.8h, v1.4s, #33 1913 sqshrn2 v0.4s, v1.2d, #65 1914 1915// CHECK-ERROR: error: invalid operand for instruction 1916// CHECK-ERROR: sqshrn v0.8b, v1.8b, #3 1917// CHECK-ERROR: ^ 1918// CHECK-ERROR: error: invalid operand for instruction 1919// CHECK-ERROR: sqshrn v0.4h, v1.4h, #3 1920// CHECK-ERROR: ^ 1921// CHECK-ERROR: error: invalid operand for instruction 1922// CHECK-ERROR: sqshrn v0.2s, v1.2s, #3 1923// CHECK-ERROR: ^ 1924// CHECK-ERROR: error: expected integer in range [1, 8] 1925// CHECK-ERROR: sqshrn2 v0.16b, v1.8h, #17 1926// CHECK-ERROR: ^ 1927// CHECK-ERROR: error: expected integer in range [1, 16] 1928// CHECK-ERROR: sqshrn2 v0.8h, v1.4s, #33 1929// CHECK-ERROR: ^ 1930// CHECK-ERROR: error: expected integer in range [1, 32] 1931// CHECK-ERROR: sqshrn2 v0.4s, v1.2d, #65 1932// CHECK-ERROR: ^ 1933 1934//------------------------------------------------------------------------------ 1935// Vector saturating shift right narrow by immediate 1936//------------------------------------------------------------------------------ 1937 uqshrn v0.8b, v1.8b, #3 1938 uqshrn v0.4h, v1.4h, #3 1939 uqshrn v0.2s, v1.2s, #3 1940 uqshrn2 v0.16b, v1.8h, #17 1941 uqshrn2 v0.8h, v1.4s, #33 1942 uqshrn2 v0.4s, v1.2d, #65 1943 1944// CHECK-ERROR: error: invalid operand for instruction 1945// CHECK-ERROR: uqshrn v0.8b, v1.8b, #3 1946// CHECK-ERROR: ^ 1947// CHECK-ERROR: error: invalid operand for instruction 1948// CHECK-ERROR: uqshrn v0.4h, v1.4h, #3 1949// CHECK-ERROR: ^ 1950// CHECK-ERROR: error: invalid operand for instruction 1951// CHECK-ERROR: uqshrn v0.2s, v1.2s, #3 1952// CHECK-ERROR: ^ 1953// CHECK-ERROR: error: expected integer in range [1, 8] 1954// CHECK-ERROR: uqshrn2 v0.16b, v1.8h, #17 1955// CHECK-ERROR: ^ 1956// CHECK-ERROR: error: expected integer in range [1, 16] 1957// CHECK-ERROR: uqshrn2 v0.8h, v1.4s, #33 1958// CHECK-ERROR: ^ 1959// CHECK-ERROR: error: expected integer in range [1, 32] 1960// CHECK-ERROR: uqshrn2 v0.4s, v1.2d, #65 1961// CHECK-ERROR: ^ 1962 1963//------------------------------------------------------------------------------ 1964// Vector saturating shift right rounded narrow by immediate 1965//------------------------------------------------------------------------------ 1966 sqrshrn v0.8b, v1.8b, #3 1967 sqrshrn v0.4h, v1.4h, #3 1968 sqrshrn v0.2s, v1.2s, #3 1969 sqrshrn2 v0.16b, v1.8h, #17 1970 sqrshrn2 v0.8h, v1.4s, #33 1971 sqrshrn2 v0.4s, v1.2d, #65 1972 1973// CHECK-ERROR: error: invalid operand for instruction 1974// CHECK-ERROR: sqrshrn v0.8b, v1.8b, #3 1975// CHECK-ERROR: ^ 1976// CHECK-ERROR: error: invalid operand for instruction 1977// CHECK-ERROR: sqrshrn v0.4h, v1.4h, #3 1978// CHECK-ERROR: ^ 1979// CHECK-ERROR: error: invalid operand for instruction 1980// CHECK-ERROR: sqrshrn v0.2s, v1.2s, #3 1981// CHECK-ERROR: ^ 1982// CHECK-ERROR: error: expected integer in range [1, 8] 1983// CHECK-ERROR: sqrshrn2 v0.16b, v1.8h, #17 1984// CHECK-ERROR: ^ 1985// CHECK-ERROR: error: expected integer in range [1, 16] 1986// CHECK-ERROR: sqrshrn2 v0.8h, v1.4s, #33 1987// CHECK-ERROR: ^ 1988// CHECK-ERROR: error: expected integer in range [1, 32] 1989// CHECK-ERROR: sqrshrn2 v0.4s, v1.2d, #65 1990// CHECK-ERROR: ^ 1991 1992//------------------------------------------------------------------------------ 1993// Vector saturating shift right rounded narrow by immediate 1994//------------------------------------------------------------------------------ 1995 uqrshrn v0.8b, v1.8b, #3 1996 uqrshrn v0.4h, v1.4h, #3 1997 uqrshrn v0.2s, v1.2s, #3 1998 uqrshrn2 v0.16b, v1.8h, #17 1999 uqrshrn2 v0.8h, v1.4s, #33 2000 uqrshrn2 v0.4s, v1.2d, #65 2001 2002// CHECK-ERROR: error: invalid operand for instruction 2003// CHECK-ERROR: uqrshrn v0.8b, v1.8b, #3 2004// CHECK-ERROR: ^ 2005// CHECK-ERROR: error: invalid operand for instruction 2006// CHECK-ERROR: uqrshrn v0.4h, v1.4h, #3 2007// CHECK-ERROR: ^ 2008// CHECK-ERROR: error: invalid operand for instruction 2009// CHECK-ERROR: uqrshrn v0.2s, v1.2s, #3 2010// CHECK-ERROR: ^ 2011// CHECK-ERROR: error: expected integer in range [1, 8] 2012// CHECK-ERROR: uqrshrn2 v0.16b, v1.8h, #17 2013// CHECK-ERROR: ^ 2014// CHECK-ERROR: error: expected integer in range [1, 16] 2015// CHECK-ERROR: uqrshrn2 v0.8h, v1.4s, #33 2016// CHECK-ERROR: ^ 2017// CHECK-ERROR: error: expected integer in range [1, 32] 2018// CHECK-ERROR: uqrshrn2 v0.4s, v1.2d, #65 2019// CHECK-ERROR: ^ 2020 2021//------------------------------------------------------------------------------ 2022// Fixed-point convert to floating-point 2023//------------------------------------------------------------------------------ 2024 scvtf v0.2s, v1.2d, #3 2025 scvtf v0.4s, v1.4h, #3 2026 scvtf v0.2d, v1.2s, #3 2027 ucvtf v0.2s, v1.2s, #33 2028 ucvtf v0.4s, v1.4s, #33 2029 ucvtf v0.2d, v1.2d, #65 2030 2031// CHECK-ERROR: error: invalid operand for instruction 2032// CHECK-ERROR: scvtf v0.2s, v1.2d, #3 2033// CHECK-ERROR: ^ 2034// CHECK-ERROR: error: invalid operand for instruction 2035// CHECK-ERROR: scvtf v0.4s, v1.4h, #3 2036// CHECK-ERROR: ^ 2037// CHECK-ERROR: error: invalid operand for instruction 2038// CHECK-ERROR: scvtf v0.2d, v1.2s, #3 2039// CHECK-ERROR: ^ 2040// CHECK-ERROR: error: expected integer in range [1, 32] 2041// CHECK-ERROR: ucvtf v0.2s, v1.2s, #33 2042// CHECK-ERROR: ^ 2043// CHECK-ERROR: error: expected integer in range [1, 32] 2044// CHECK-ERROR: ucvtf v0.4s, v1.4s, #33 2045// CHECK-ERROR: ^ 2046// CHECK-ERROR: error: expected integer in range [1, 64] 2047// CHECK-ERROR: ucvtf v0.2d, v1.2d, #65 2048// CHECK-ERROR: ^ 2049 2050//------------------------------------------------------------------------------ 2051// Floating-point convert to fixed-point 2052//------------------------------------------------------------------------------ 2053 fcvtzs v0.2s, v1.2d, #3 2054 fcvtzs v0.4s, v1.4h, #3 2055 fcvtzs v0.2d, v1.2s, #3 2056 fcvtzu v0.2s, v1.2s, #33 2057 fcvtzu v0.4s, v1.4s, #33 2058 fcvtzu v0.2d, v1.2d, #65 2059 2060// CHECK-ERROR: error: invalid operand for instruction 2061// CHECK-ERROR: fcvtzs v0.2s, v1.2d, #3 2062// CHECK-ERROR: ^ 2063// CHECK-ERROR: error: invalid operand for instruction 2064// CHECK-ERROR: fcvtzs v0.4s, v1.4h, #3 2065// CHECK-ERROR: ^ 2066// CHECK-ERROR: error: invalid operand for instruction 2067// CHECK-ERROR: fcvtzs v0.2d, v1.2s, #3 2068// CHECK-ERROR: ^ 2069// CHECK-ERROR: error: expected integer in range [1, 32] 2070// CHECK-ERROR: fcvtzu v0.2s, v1.2s, #33 2071// CHECK-ERROR: ^ 2072// CHECK-ERROR: error: expected integer in range [1, 32] 2073// CHECK-ERROR: fcvtzu v0.4s, v1.4s, #33 2074// CHECK-ERROR: ^ 2075// CHECK-ERROR: error: expected integer in range [1, 64] 2076// CHECK-ERROR: fcvtzu v0.2d, v1.2d, #65 2077// CHECK-ERROR: ^ 2078 2079//---------------------------------------------------------------------- 2080// Vector operation on 3 operands with different types 2081//---------------------------------------------------------------------- 2082 2083 // Mismatched and invalid vector types 2084 saddl v0.8h, v1.8h, v2.8b 2085 saddl v0.4s, v1.4s, v2.4h 2086 saddl v0.2d, v1.2d, v2.2s 2087 2088// CHECK-ERROR: error: invalid operand for instruction 2089// CHECK-ERROR: saddl v0.8h, v1.8h, v2.8b 2090// CHECK-ERROR: ^ 2091// CHECK-ERROR: error: invalid operand for instruction 2092// CHECK-ERROR: saddl v0.4s, v1.4s, v2.4h 2093// CHECK-ERROR: ^ 2094// CHECK-ERROR: error: invalid operand for instruction 2095// CHECK-ERROR: saddl v0.2d, v1.2d, v2.2s 2096// CHECK-ERROR: ^ 2097 2098 saddl2 v0.4s, v1.8s, v2.8h 2099 saddl2 v0.8h, v1.16h, v2.16b 2100 saddl2 v0.2d, v1.4d, v2.4s 2101 2102// CHECK-ERROR: error: invalid operand for instruction 2103// CHECK-ERROR: saddl2 v0.4s, v1.8s, v2.8h 2104// CHECK-ERROR: ^ 2105// CHECK-ERROR: error: invalid operand for instruction 2106// CHECK-ERROR: saddl2 v0.8h, v1.16h, v2.16b 2107// CHECK-ERROR: ^ 2108// CHECK-ERROR: error: invalid operand for instruction 2109// CHECK-ERROR: saddl2 v0.2d, v1.4d, v2.4s 2110// CHECK-ERROR: ^ 2111 2112 uaddl v0.8h, v1.8h, v2.8b 2113 uaddl v0.4s, v1.4s, v2.4h 2114 uaddl v0.2d, v1.2d, v2.2s 2115 2116// CHECK-ERROR: error: invalid operand for instruction 2117// CHECK-ERROR: uaddl v0.8h, v1.8h, v2.8b 2118// CHECK-ERROR: ^ 2119// CHECK-ERROR: error: invalid operand for instruction 2120// CHECK-ERROR: uaddl v0.4s, v1.4s, v2.4h 2121// CHECK-ERROR: ^ 2122// CHECK-ERROR: error: invalid operand for instruction 2123// CHECK-ERROR: uaddl v0.2d, v1.2d, v2.2s 2124// CHECK-ERROR: ^ 2125 2126 uaddl2 v0.8h, v1.16h, v2.16b 2127 uaddl2 v0.4s, v1.8s, v2.8h 2128 uaddl2 v0.2d, v1.4d, v2.4s 2129 2130// CHECK-ERROR: error: invalid operand for instruction 2131// CHECK-ERROR: uaddl2 v0.8h, v1.16h, v2.16b 2132// CHECK-ERROR: ^ 2133// CHECK-ERROR: error: invalid operand for instruction 2134// CHECK-ERROR: uaddl2 v0.4s, v1.8s, v2.8h 2135// CHECK-ERROR: ^ 2136// CHECK-ERROR: error: invalid operand for instruction 2137// CHECK-ERROR: uaddl2 v0.2d, v1.4d, v2.4s 2138// CHECK-ERROR: ^ 2139 2140 ssubl v0.8h, v1.8h, v2.8b 2141 ssubl v0.4s, v1.4s, v2.4h 2142 ssubl v0.2d, v1.2d, v2.2s 2143 2144// CHECK-ERROR: error: invalid operand for instruction 2145// CHECK-ERROR: ssubl v0.8h, v1.8h, v2.8b 2146// CHECK-ERROR: ^ 2147// CHECK-ERROR: error: invalid operand for instruction 2148// CHECK-ERROR: ssubl v0.4s, v1.4s, v2.4h 2149// CHECK-ERROR: ^ 2150// CHECK-ERROR: error: invalid operand for instruction 2151// CHECK-ERROR: ssubl v0.2d, v1.2d, v2.2s 2152// CHECK-ERROR: ^ 2153 2154 ssubl2 v0.8h, v1.16h, v2.16b 2155 ssubl2 v0.4s, v1.8s, v2.8h 2156 ssubl2 v0.2d, v1.4d, v2.4s 2157 2158// CHECK-ERROR: error: invalid operand for instruction 2159// CHECK-ERROR: ssubl2 v0.8h, v1.16h, v2.16b 2160// CHECK-ERROR: ^ 2161// CHECK-ERROR: error: invalid operand for instruction 2162// CHECK-ERROR: ssubl2 v0.4s, v1.8s, v2.8h 2163// CHECK-ERROR: ^ 2164// CHECK-ERROR: error: invalid operand for instruction 2165// CHECK-ERROR: ssubl2 v0.2d, v1.4d, v2.4s 2166// CHECK-ERROR: ^ 2167 2168 usubl v0.8h, v1.8h, v2.8b 2169 usubl v0.4s, v1.4s, v2.4h 2170 usubl v0.2d, v1.2d, v2.2s 2171 2172// CHECK-ERROR: error: invalid operand for instruction 2173// CHECK-ERROR: usubl v0.8h, v1.8h, v2.8b 2174// CHECK-ERROR: ^ 2175// CHECK-ERROR: error: invalid operand for instruction 2176// CHECK-ERROR: usubl v0.4s, v1.4s, v2.4h 2177// CHECK-ERROR: ^ 2178// CHECK-ERROR: error: invalid operand for instruction 2179// CHECK-ERROR: usubl v0.2d, v1.2d, v2.2s 2180// CHECK-ERROR: ^ 2181 2182 usubl2 v0.8h, v1.16h, v2.16b 2183 usubl2 v0.4s, v1.8s, v2.8h 2184 usubl2 v0.2d, v1.4d, v2.4s 2185 2186// CHECK-ERROR: error: invalid operand for instruction 2187// CHECK-ERROR: usubl2 v0.8h, v1.16h, v2.16b 2188// CHECK-ERROR: ^ 2189// CHECK-ERROR: error: invalid operand for instruction 2190// CHECK-ERROR: usubl2 v0.4s, v1.8s, v2.8h 2191// CHECK-ERROR: ^ 2192// CHECK-ERROR: error: invalid operand for instruction 2193// CHECK-ERROR: usubl2 v0.2d, v1.4d, v2.4s 2194// CHECK-ERROR: ^ 2195 2196 sabal v0.8h, v1.8h, v2.8b 2197 sabal v0.4s, v1.4s, v2.4h 2198 sabal v0.2d, v1.2d, v2.2s 2199 2200// CHECK-ERROR: error: invalid operand for instruction 2201// CHECK-ERROR: sabal v0.8h, v1.8h, v2.8b 2202// CHECK-ERROR: ^ 2203// CHECK-ERROR: error: invalid operand for instruction 2204// CHECK-ERROR: sabal v0.4s, v1.4s, v2.4h 2205// CHECK-ERROR: ^ 2206// CHECK-ERROR: error: invalid operand for instruction 2207// CHECK-ERROR: sabal v0.2d, v1.2d, v2.2s 2208// CHECK-ERROR: ^ 2209 2210 sabal2 v0.8h, v1.16h, v2.16b 2211 sabal2 v0.4s, v1.8s, v2.8h 2212 sabal2 v0.2d, v1.4d, v2.4s 2213 2214// CHECK-ERROR: error: invalid operand for instruction 2215// CHECK-ERROR: sabal2 v0.8h, v1.16h, v2.16b 2216// CHECK-ERROR: ^ 2217// CHECK-ERROR: error: invalid operand for instruction 2218// CHECK-ERROR: sabal2 v0.4s, v1.8s, v2.8h 2219// CHECK-ERROR: ^ 2220// CHECK-ERROR: error: invalid operand for instruction 2221// CHECK-ERROR: sabal2 v0.2d, v1.4d, v2.4s 2222// CHECK-ERROR: ^ 2223 2224 uabal v0.8h, v1.8h, v2.8b 2225 uabal v0.4s, v1.4s, v2.4h 2226 uabal v0.2d, v1.2d, v2.2s 2227 2228// CHECK-ERROR: error: invalid operand for instruction 2229// CHECK-ERROR: uabal v0.8h, v1.8h, v2.8b 2230// CHECK-ERROR: ^ 2231// CHECK-ERROR: error: invalid operand for instruction 2232// CHECK-ERROR: uabal v0.4s, v1.4s, v2.4h 2233// CHECK-ERROR: ^ 2234// CHECK-ERROR: error: invalid operand for instruction 2235// CHECK-ERROR: uabal v0.2d, v1.2d, v2.2s 2236// CHECK-ERROR: ^ 2237 2238 uabal2 v0.8h, v1.16h, v2.16b 2239 uabal2 v0.4s, v1.8s, v2.8h 2240 uabal2 v0.2d, v1.4d, v2.4s 2241 2242// CHECK-ERROR: error: invalid operand for instruction 2243// CHECK-ERROR: uabal2 v0.8h, v1.16h, v2.16b 2244// CHECK-ERROR: ^ 2245// CHECK-ERROR: error: invalid operand for instruction 2246// CHECK-ERROR: uabal2 v0.4s, v1.8s, v2.8h 2247// CHECK-ERROR: ^ 2248// CHECK-ERROR: error: invalid operand for instruction 2249// CHECK-ERROR: uabal2 v0.2d, v1.4d, v2.4s 2250// CHECK-ERROR: ^ 2251 2252 sabdl v0.8h, v1.8h, v2.8b 2253 sabdl v0.4s, v1.4s, v2.4h 2254 sabdl v0.2d, v1.2d, v2.2s 2255 2256// CHECK-ERROR: error: invalid operand for instruction 2257// CHECK-ERROR: sabdl v0.8h, v1.8h, v2.8b 2258// CHECK-ERROR: ^ 2259// CHECK-ERROR: error: invalid operand for instruction 2260// CHECK-ERROR: sabdl v0.4s, v1.4s, v2.4h 2261// CHECK-ERROR: ^ 2262// CHECK-ERROR: error: invalid operand for instruction 2263// CHECK-ERROR: sabdl v0.2d, v1.2d, v2.2s 2264// CHECK-ERROR: ^ 2265 2266 sabdl2 v0.8h, v1.16h, v2.16b 2267 sabdl2 v0.4s, v1.8s, v2.8h 2268 sabdl2 v0.2d, v1.4d, v2.4s 2269 2270// CHECK-ERROR: error: invalid operand for instruction 2271// CHECK-ERROR: sabdl2 v0.8h, v1.16h, v2.16b 2272// CHECK-ERROR: ^ 2273// CHECK-ERROR: error: invalid operand for instruction 2274// CHECK-ERROR: sabdl2 v0.4s, v1.8s, v2.8h 2275// CHECK-ERROR: ^ 2276// CHECK-ERROR: error: invalid operand for instruction 2277// CHECK-ERROR: sabdl2 v0.2d, v1.4d, v2.4s 2278// CHECK-ERROR: ^ 2279 2280 uabdl v0.8h, v1.8h, v2.8b 2281 uabdl v0.4s, v1.4s, v2.4h 2282 uabdl v0.2d, v1.2d, v2.2s 2283 2284// CHECK-ERROR: error: invalid operand for instruction 2285// CHECK-ERROR: uabdl v0.8h, v1.8h, v2.8b 2286// CHECK-ERROR: ^ 2287// CHECK-ERROR: error: invalid operand for instruction 2288// CHECK-ERROR: uabdl v0.4s, v1.4s, v2.4h 2289// CHECK-ERROR: ^ 2290// CHECK-ERROR: error: invalid operand for instruction 2291// CHECK-ERROR: uabdl v0.2d, v1.2d, v2.2s 2292// CHECK-ERROR: ^ 2293 2294 uabdl2 v0.8h, v1.16h, v2.16b 2295 uabdl2 v0.4s, v1.8s, v2.8h 2296 uabdl2 v0.2d, v1.4d, v2.4s 2297 2298// CHECK-ERROR: error: invalid operand for instruction 2299// CHECK-ERROR: uabdl2 v0.8h, v1.16h, v2.16b 2300// CHECK-ERROR: ^ 2301// CHECK-ERROR: error: invalid operand for instruction 2302// CHECK-ERROR: uabdl2 v0.4s, v1.8s, v2.8h 2303// CHECK-ERROR: ^ 2304// CHECK-ERROR: error: invalid operand for instruction 2305// CHECK-ERROR: uabdl2 v0.2d, v1.4d, v2.4s 2306// CHECK-ERROR: ^ 2307 2308 smlal v0.8h, v1.8h, v2.8b 2309 smlal v0.4s, v1.4s, v2.4h 2310 smlal v0.2d, v1.2d, v2.2s 2311 2312// CHECK-ERROR: error: invalid operand for instruction 2313// CHECK-ERROR: smlal v0.8h, v1.8h, v2.8b 2314// CHECK-ERROR: ^ 2315// CHECK-ERROR: error: invalid operand for instruction 2316// CHECK-ERROR: smlal v0.4s, v1.4s, v2.4h 2317// CHECK-ERROR: ^ 2318// CHECK-ERROR: error: invalid operand for instruction 2319// CHECK-ERROR: smlal v0.2d, v1.2d, v2.2s 2320// CHECK-ERROR: ^ 2321 2322 smlal2 v0.8h, v1.16h, v2.16b 2323 smlal2 v0.4s, v1.8s, v2.8h 2324 smlal2 v0.2d, v1.4d, v2.4s 2325 2326// CHECK-ERROR: error: invalid operand for instruction 2327// CHECK-ERROR: smlal2 v0.8h, v1.16h, v2.16b 2328// CHECK-ERROR: ^ 2329// CHECK-ERROR: error: invalid operand for instruction 2330// CHECK-ERROR: smlal2 v0.4s, v1.8s, v2.8h 2331// CHECK-ERROR: ^ 2332// CHECK-ERROR: error: invalid operand for instruction 2333// CHECK-ERROR: smlal2 v0.2d, v1.4d, v2.4s 2334// CHECK-ERROR: ^ 2335 2336 umlal v0.8h, v1.8h, v2.8b 2337 umlal v0.4s, v1.4s, v2.4h 2338 umlal v0.2d, v1.2d, v2.2s 2339 2340// CHECK-ERROR: error: invalid operand for instruction 2341// CHECK-ERROR: umlal v0.8h, v1.8h, v2.8b 2342// CHECK-ERROR: ^ 2343// CHECK-ERROR: error: invalid operand for instruction 2344// CHECK-ERROR: umlal v0.4s, v1.4s, v2.4h 2345// CHECK-ERROR: ^ 2346// CHECK-ERROR: error: invalid operand for instruction 2347// CHECK-ERROR: umlal v0.2d, v1.2d, v2.2s 2348// CHECK-ERROR: ^ 2349 2350 umlal2 v0.8h, v1.16h, v2.16b 2351 umlal2 v0.4s, v1.8s, v2.8h 2352 umlal2 v0.2d, v1.4d, v2.4s 2353 2354// CHECK-ERROR: error: invalid operand for instruction 2355// CHECK-ERROR: umlal2 v0.8h, v1.16h, v2.16b 2356// CHECK-ERROR: ^ 2357// CHECK-ERROR: error: invalid operand for instruction 2358// CHECK-ERROR: umlal2 v0.4s, v1.8s, v2.8h 2359// CHECK-ERROR: ^ 2360// CHECK-ERROR: error: invalid operand for instruction 2361// CHECK-ERROR: umlal2 v0.2d, v1.4d, v2.4s 2362// CHECK-ERROR: ^ 2363 2364 smlsl v0.8h, v1.8h, v2.8b 2365 smlsl v0.4s, v1.4s, v2.4h 2366 smlsl v0.2d, v1.2d, v2.2s 2367 2368// CHECK-ERROR: error: invalid operand for instruction 2369// CHECK-ERROR: smlsl v0.8h, v1.8h, v2.8b 2370// CHECK-ERROR: ^ 2371// CHECK-ERROR: error: invalid operand for instruction 2372// CHECK-ERROR: smlsl v0.4s, v1.4s, v2.4h 2373// CHECK-ERROR: ^ 2374// CHECK-ERROR: error: invalid operand for instruction 2375// CHECK-ERROR: smlsl v0.2d, v1.2d, v2.2s 2376// CHECK-ERROR: ^ 2377 2378 smlsl2 v0.8h, v1.16h, v2.16b 2379 smlsl2 v0.4s, v1.8s, v2.8h 2380 smlsl2 v0.2d, v1.4d, v2.4s 2381 2382// CHECK-ERROR: error: invalid operand for instruction 2383// CHECK-ERROR: smlsl2 v0.8h, v1.16h, v2.16b 2384// CHECK-ERROR: ^ 2385// CHECK-ERROR: error: invalid operand for instruction 2386// CHECK-ERROR: smlsl2 v0.4s, v1.8s, v2.8h 2387// CHECK-ERROR: ^ 2388// CHECK-ERROR: error: invalid operand for instruction 2389// CHECK-ERROR: smlsl2 v0.2d, v1.4d, v2.4s 2390// CHECK-ERROR: ^ 2391 2392 umlsl v0.8h, v1.8h, v2.8b 2393 umlsl v0.4s, v1.4s, v2.4h 2394 umlsl v0.2d, v1.2d, v2.2s 2395 2396// CHECK-ERROR: error: invalid operand for instruction 2397// CHECK-ERROR: umlsl v0.8h, v1.8h, v2.8b 2398// CHECK-ERROR: ^ 2399// CHECK-ERROR: error: invalid operand for instruction 2400// CHECK-ERROR: umlsl v0.4s, v1.4s, v2.4h 2401// CHECK-ERROR: ^ 2402// CHECK-ERROR: error: invalid operand for instruction 2403// CHECK-ERROR: umlsl v0.2d, v1.2d, v2.2s 2404// CHECK-ERROR: ^ 2405 2406 umlsl2 v0.8h, v1.16h, v2.16b 2407 umlsl2 v0.4s, v1.8s, v2.8h 2408 umlsl2 v0.2d, v1.4d, v2.4s 2409 2410// CHECK-ERROR: error: invalid operand for instruction 2411// CHECK-ERROR: umlsl2 v0.8h, v1.16h, v2.16b 2412// CHECK-ERROR: ^ 2413// CHECK-ERROR: error: invalid operand for instruction 2414// CHECK-ERROR: umlsl2 v0.4s, v1.8s, v2.8h 2415// CHECK-ERROR: ^ 2416// CHECK-ERROR: error: invalid operand for instruction 2417// CHECK-ERROR: umlsl2 v0.2d, v1.4d, v2.4s 2418// CHECK-ERROR: ^ 2419 2420 smull v0.8h, v1.8h, v2.8b 2421 smull v0.4s, v1.4s, v2.4h 2422 smull v0.2d, v1.2d, v2.2s 2423 2424// CHECK-ERROR: error: invalid operand for instruction 2425// CHECK-ERROR: smull v0.8h, v1.8h, v2.8b 2426// CHECK-ERROR: ^ 2427// CHECK-ERROR: error: invalid operand for instruction 2428// CHECK-ERROR: smull v0.4s, v1.4s, v2.4h 2429// CHECK-ERROR: ^ 2430// CHECK-ERROR: error: invalid operand for instruction 2431// CHECK-ERROR: smull v0.2d, v1.2d, v2.2s 2432// CHECK-ERROR: ^ 2433 2434 smull2 v0.8h, v1.16h, v2.16b 2435 smull2 v0.4s, v1.8s, v2.8h 2436 smull2 v0.2d, v1.4d, v2.4s 2437 2438// CHECK-ERROR: error: invalid operand for instruction 2439// CHECK-ERROR: smull2 v0.8h, v1.16h, v2.16b 2440// CHECK-ERROR: ^ 2441// CHECK-ERROR: error: invalid operand for instruction 2442// CHECK-ERROR: smull2 v0.4s, v1.8s, v2.8h 2443// CHECK-ERROR: ^ 2444// CHECK-ERROR: error: invalid operand for instruction 2445// CHECK-ERROR: smull2 v0.2d, v1.4d, v2.4s 2446// CHECK-ERROR: ^ 2447 2448 umull v0.8h, v1.8h, v2.8b 2449 umull v0.4s, v1.4s, v2.4h 2450 umull v0.2d, v1.2d, v2.2s 2451 2452// CHECK-ERROR: error: invalid operand for instruction 2453// CHECK-ERROR: umull v0.8h, v1.8h, v2.8b 2454// CHECK-ERROR: ^ 2455// CHECK-ERROR: error: invalid operand for instruction 2456// CHECK-ERROR: umull v0.4s, v1.4s, v2.4h 2457// CHECK-ERROR: ^ 2458// CHECK-ERROR: error: invalid operand for instruction 2459// CHECK-ERROR: umull v0.2d, v1.2d, v2.2s 2460// CHECK-ERROR: ^ 2461 2462 umull2 v0.8h, v1.16h, v2.16b 2463 umull2 v0.4s, v1.8s, v2.8h 2464 umull2 v0.2d, v1.4d, v2.4s 2465 2466// CHECK-ERROR: error: invalid operand for instruction 2467// CHECK-ERROR: umull2 v0.8h, v1.16h, v2.16b 2468// CHECK-ERROR: ^ 2469// CHECK-ERROR: error: invalid operand for instruction 2470// CHECK-ERROR: umull2 v0.4s, v1.8s, v2.8h 2471// CHECK-ERROR: ^ 2472// CHECK-ERROR: error: invalid operand for instruction 2473// CHECK-ERROR: umull2 v0.2d, v1.4d, v2.4s 2474// CHECK-ERROR: ^ 2475 2476//------------------------------------------------------------------------------ 2477// Long - Variant 2 2478//------------------------------------------------------------------------------ 2479 2480 sqdmlal v0.4s, v1.4s, v2.4h 2481 sqdmlal v0.2d, v1.2d, v2.2s 2482 2483// CHECK-ERROR: error: invalid operand for instruction 2484// CHECK-ERROR: sqdmlal v0.4s, v1.4s, v2.4h 2485// CHECK-ERROR: ^ 2486// CHECK-ERROR: error: invalid operand for instruction 2487// CHECK-ERROR: sqdmlal v0.2d, v1.2d, v2.2s 2488// CHECK-ERROR: ^ 2489 2490 sqdmlal2 v0.4s, v1.8s, v2.8h 2491 sqdmlal2 v0.2d, v1.4d, v2.4s 2492 2493// CHECK-ERROR: error: invalid operand for instruction 2494// CHECK-ERROR: sqdmlal2 v0.4s, v1.8s, v2.8h 2495// CHECK-ERROR: ^ 2496// CHECK-ERROR: error: invalid operand for instruction 2497// CHECK-ERROR: sqdmlal2 v0.2d, v1.4d, v2.4s 2498// CHECK-ERROR: ^ 2499 2500 // Mismatched vector types 2501 sqdmlal v0.8h, v1.8b, v2.8b 2502 sqdmlal2 v0.8h, v1.16b, v2.16b 2503 2504// CHECK-ERROR: error: invalid operand for instruction 2505// CHECK-ERROR: sqdmlal v0.8h, v1.8b, v2.8b 2506// CHECK-ERROR: ^ 2507// CHECK-ERROR: error: invalid operand for instruction 2508// CHECK-ERROR: sqdmlal2 v0.8h, v1.16b, v2.16b 2509// CHECK-ERROR: ^ 2510 2511 sqdmlsl v0.4s, v1.4s, v2.4h 2512 sqdmlsl v0.2d, v1.2d, v2.2s 2513 2514// CHECK-ERROR: error: invalid operand for instruction 2515// CHECK-ERROR: sqdmlsl v0.4s, v1.4s, v2.4h 2516// CHECK-ERROR: ^ 2517// CHECK-ERROR: error: invalid operand for instruction 2518// CHECK-ERROR: sqdmlsl v0.2d, v1.2d, v2.2s 2519// CHECK-ERROR: ^ 2520 2521 sqdmlsl2 v0.4s, v1.8s, v2.8h 2522 sqdmlsl2 v0.2d, v1.4d, v2.4s 2523 2524// CHECK-ERROR: error: invalid operand for instruction 2525// CHECK-ERROR: sqdmlsl2 v0.4s, v1.8s, v2.8h 2526// CHECK-ERROR: ^ 2527// CHECK-ERROR: error: invalid operand for instruction 2528// CHECK-ERROR: sqdmlsl2 v0.2d, v1.4d, v2.4s 2529// CHECK-ERROR: ^ 2530 2531 // Mismatched vector types 2532 sqdmlsl v0.8h, v1.8b, v2.8b 2533 sqdmlsl2 v0.8h, v1.16b, v2.16b 2534 2535// CHECK-ERROR: error: invalid operand for instruction 2536// CHECK-ERROR: sqdmlsl v0.8h, v1.8b, v2.8b 2537// CHECK-ERROR: ^ 2538// CHECK-ERROR: error: invalid operand for instruction 2539// CHECK-ERROR: sqdmlsl2 v0.8h, v1.16b, v2.16b 2540// CHECK-ERROR: ^ 2541 2542 2543 sqdmull v0.4s, v1.4s, v2.4h 2544 sqdmull v0.2d, v1.2d, v2.2s 2545 2546// CHECK-ERROR: error: invalid operand for instruction 2547// CHECK-ERROR: sqdmull v0.4s, v1.4s, v2.4h 2548// CHECK-ERROR: ^ 2549// CHECK-ERROR: error: invalid operand for instruction 2550// CHECK-ERROR: sqdmull v0.2d, v1.2d, v2.2s 2551// CHECK-ERROR: ^ 2552 2553 sqdmull2 v0.4s, v1.8s, v2.8h 2554 sqdmull2 v0.2d, v1.4d, v2.4s 2555 2556// CHECK-ERROR: error: invalid operand for instruction 2557// CHECK-ERROR: sqdmull2 v0.4s, v1.8s, v2.8h 2558// CHECK-ERROR: ^ 2559// CHECK-ERROR: error: invalid operand for instruction 2560// CHECK-ERROR: sqdmull2 v0.2d, v1.4d, v2.4s 2561// CHECK-ERROR: ^ 2562 2563 // Mismatched vector types 2564 sqdmull v0.8h, v1.8b, v2.8b 2565 sqdmull2 v0.8h, v1.16b, v2.16b 2566 2567// CHECK-ERROR: error: invalid operand for instruction 2568// CHECK-ERROR: sqdmull v0.8h, v1.8b, v2.8b 2569// CHECK-ERROR: ^ 2570// CHECK-ERROR: error: invalid operand for instruction 2571// CHECK-ERROR: sqdmull2 v0.8h, v1.16b, v2.16b 2572// CHECK-ERROR: ^ 2573 2574 2575//------------------------------------------------------------------------------ 2576// Long - Variant 3 2577//------------------------------------------------------------------------------ 2578 2579 pmull v0.8h, v1.8h, v2.8b 2580 2581// CHECK-ERROR: error: invalid operand for instruction 2582// CHECK-ERROR: pmull v0.8h, v1.8h, v2.8b 2583// CHECK-ERROR: ^ 2584 2585 pmull v0.1q, v1.2d, v2.2d 2586 2587// CHECK-ERROR: error: invalid operand for instruction 2588// CHECK-ERROR: pmull v0.1q, v1.2d, v2.2d 2589// CHECK-ERROR: ^ 2590 2591 // Mismatched vector types 2592 pmull v0.4s, v1.4h, v2.4h 2593 pmull v0.2d, v1.2s, v2.2s 2594 2595// CHECK-ERROR: error: invalid operand for instruction 2596// CHECK-ERROR: pmull v0.4s, v1.4h, v2.4h 2597// CHECK-ERROR: ^ 2598// CHECK-ERROR: error: invalid operand for instruction 2599// CHECK-ERROR: pmull v0.2d, v1.2s, v2.2s 2600// CHECK-ERROR: ^ 2601 2602 2603 pmull2 v0.8h, v1.16h, v2.16b 2604 2605// CHECK-ERROR: error: invalid operand for instruction 2606// CHECK-ERROR: pmull2 v0.8h, v1.16h, v2.16b 2607// CHECK-ERROR: ^ 2608 2609 pmull2 v0.q, v1.2d, v2.2d 2610 2611// CHECK-ERROR: error: invalid operand for instruction 2612// CHECK-ERROR: pmull2 v0.q, v1.2d, v2.2d 2613// CHECK-ERROR: ^ 2614 2615 // Mismatched vector types 2616 pmull2 v0.4s, v1.8h v2.8h 2617 pmull2 v0.2d, v1.4s, v2.4s 2618 2619// CHECK-ERROR: error: expected comma before next operand 2620// CHECK-ERROR: pmull2 v0.4s, v1.8h v2.8h 2621// CHECK-ERROR: ^ 2622// CHECK-ERROR: error: invalid operand for instruction 2623// CHECK-ERROR: pmull2 v0.2d, v1.4s, v2.4s 2624// CHECK-ERROR: ^ 2625 2626//------------------------------------------------------------------------------ 2627// Widen 2628//------------------------------------------------------------------------------ 2629 2630 saddw v0.8h, v1.8h, v2.8h 2631 saddw v0.4s, v1.4s, v2.4s 2632 saddw v0.2d, v1.2d, v2.2d 2633 2634// CHECK-ERROR: error: invalid operand for instruction 2635// CHECK-ERROR: saddw v0.8h, v1.8h, v2.8h 2636// CHECK-ERROR: ^ 2637// CHECK-ERROR: error: invalid operand for instruction 2638// CHECK-ERROR: saddw v0.4s, v1.4s, v2.4s 2639// CHECK-ERROR: ^ 2640// CHECK-ERROR: error: invalid operand for instruction 2641// CHECK-ERROR: saddw v0.2d, v1.2d, v2.2d 2642// CHECK-ERROR: ^ 2643 2644 saddw2 v0.8h, v1.8h, v2.16h 2645 saddw2 v0.4s, v1.4s, v2.8s 2646 saddw2 v0.2d, v1.2d, v2.4d 2647 2648// CHECK-ERROR: error: invalid operand for instruction 2649// CHECK-ERROR: saddw2 v0.8h, v1.8h, v2.16h 2650// CHECK-ERROR: ^ 2651// CHECK-ERROR: error: invalid operand for instruction 2652// CHECK-ERROR: saddw2 v0.4s, v1.4s, v2.8s 2653// CHECK-ERROR: ^ 2654// CHECK-ERROR: error: invalid operand for instruction 2655// CHECK-ERROR: saddw2 v0.2d, v1.2d, v2.4d 2656// CHECK-ERROR: ^ 2657 2658 uaddw v0.8h, v1.8h, v2.8h 2659 uaddw v0.4s, v1.4s, v2.4s 2660 uaddw v0.2d, v1.2d, v2.2d 2661 2662// CHECK-ERROR: error: invalid operand for instruction 2663// CHECK-ERROR: uaddw v0.8h, v1.8h, v2.8h 2664// CHECK-ERROR: ^ 2665// CHECK-ERROR: error: invalid operand for instruction 2666// CHECK-ERROR: uaddw v0.4s, v1.4s, v2.4s 2667// CHECK-ERROR: ^ 2668// CHECK-ERROR: error: invalid operand for instruction 2669// CHECK-ERROR: uaddw v0.2d, v1.2d, v2.2d 2670// CHECK-ERROR: ^ 2671 2672 uaddw2 v0.8h, v1.8h, v2.16h 2673 uaddw2 v0.4s, v1.4s, v2.8s 2674 uaddw2 v0.2d, v1.2d, v2.4d 2675 2676// CHECK-ERROR: error: invalid operand for instruction 2677// CHECK-ERROR: uaddw2 v0.8h, v1.8h, v2.16h 2678// CHECK-ERROR: ^ 2679// CHECK-ERROR: error: invalid operand for instruction 2680// CHECK-ERROR: uaddw2 v0.4s, v1.4s, v2.8s 2681// CHECK-ERROR: ^ 2682// CHECK-ERROR: error: invalid operand for instruction 2683// CHECK-ERROR: uaddw2 v0.2d, v1.2d, v2.4d 2684// CHECK-ERROR: ^ 2685 2686 ssubw v0.8h, v1.8h, v2.8h 2687 ssubw v0.4s, v1.4s, v2.4s 2688 ssubw v0.2d, v1.2d, v2.2d 2689 2690// CHECK-ERROR: error: invalid operand for instruction 2691// CHECK-ERROR: ssubw v0.8h, v1.8h, v2.8h 2692// CHECK-ERROR: ^ 2693// CHECK-ERROR: error: invalid operand for instruction 2694// CHECK-ERROR: ssubw v0.4s, v1.4s, v2.4s 2695// CHECK-ERROR: ^ 2696// CHECK-ERROR: error: invalid operand for instruction 2697// CHECK-ERROR: ssubw v0.2d, v1.2d, v2.2d 2698// CHECK-ERROR: ^ 2699 2700 ssubw2 v0.8h, v1.8h, v2.16h 2701 ssubw2 v0.4s, v1.4s, v2.8s 2702 ssubw2 v0.2d, v1.2d, v2.4d 2703 2704// CHECK-ERROR: error: invalid operand for instruction 2705// CHECK-ERROR: ssubw2 v0.8h, v1.8h, v2.16h 2706// CHECK-ERROR: ^ 2707// CHECK-ERROR: error: invalid operand for instruction 2708// CHECK-ERROR: ssubw2 v0.4s, v1.4s, v2.8s 2709// CHECK-ERROR: ^ 2710// CHECK-ERROR: error: invalid operand for instruction 2711// CHECK-ERROR: ssubw2 v0.2d, v1.2d, v2.4d 2712// CHECK-ERROR: ^ 2713 2714 usubw v0.8h, v1.8h, v2.8h 2715 usubw v0.4s, v1.4s, v2.4s 2716 usubw v0.2d, v1.2d, v2.2d 2717 2718// CHECK-ERROR: error: invalid operand for instruction 2719// CHECK-ERROR: usubw v0.8h, v1.8h, v2.8h 2720// CHECK-ERROR: ^ 2721// CHECK-ERROR: error: invalid operand for instruction 2722// CHECK-ERROR: usubw v0.4s, v1.4s, v2.4s 2723// CHECK-ERROR: ^ 2724// CHECK-ERROR: error: invalid operand for instruction 2725// CHECK-ERROR: usubw v0.2d, v1.2d, v2.2d 2726// CHECK-ERROR: ^ 2727 2728 usubw2 v0.8h, v1.8h, v2.16h 2729 usubw2 v0.4s, v1.4s, v2.8s 2730 usubw2 v0.2d, v1.2d, v2.4d 2731 2732// CHECK-ERROR: error: invalid operand for instruction 2733// CHECK-ERROR: usubw2 v0.8h, v1.8h, v2.16h 2734// CHECK-ERROR: ^ 2735// CHECK-ERROR: error: invalid operand for instruction 2736// CHECK-ERROR: usubw2 v0.4s, v1.4s, v2.8s 2737// CHECK-ERROR: ^ 2738// CHECK-ERROR: error: invalid operand for instruction 2739// CHECK-ERROR: usubw2 v0.2d, v1.2d, v2.4d 2740// CHECK-ERROR: ^ 2741 2742//------------------------------------------------------------------------------ 2743// Narrow 2744//------------------------------------------------------------------------------ 2745 2746 addhn v0.8b, v1.8h, v2.8d 2747 addhn v0.4h, v1.4s, v2.4h 2748 addhn v0.2s, v1.2d, v2.2s 2749 2750// CHECK-ERROR: error: invalid operand for instruction 2751// CHECK-ERROR: addhn v0.8b, v1.8h, v2.8d 2752// CHECK-ERROR: ^ 2753// CHECK-ERROR: error: invalid operand for instruction 2754// CHECK-ERROR: addhn v0.4h, v1.4s, v2.4h 2755// CHECK-ERROR: ^ 2756// CHECK-ERROR: error: invalid operand for instruction 2757// CHECK-ERROR: addhn v0.2s, v1.2d, v2.2s 2758// CHECK-ERROR: ^ 2759 2760 addhn2 v0.16b, v1.8h, v2.8b 2761 addhn2 v0.8h, v1.4s, v2.4h 2762 addhn2 v0.4s, v1.2d, v2.2s 2763 2764// CHECK-ERROR: error: invalid operand for instruction 2765// CHECK-ERROR: addhn2 v0.16b, v1.8h, v2.8b 2766// CHECK-ERROR: ^ 2767// CHECK-ERROR: error: invalid operand for instruction 2768// CHECK-ERROR: addhn2 v0.8h, v1.4s, v2.4h 2769// CHECK-ERROR: ^ 2770// CHECK-ERROR: error: invalid operand for instruction 2771// CHECK-ERROR: addhn2 v0.4s, v1.2d, v2.2s 2772// CHECK-ERROR: ^ 2773 2774 raddhn v0.8b, v1.8h, v2.8b 2775 raddhn v0.4h, v1.4s, v2.4h 2776 raddhn v0.2s, v1.2d, v2.2s 2777 2778// CHECK-ERROR: error: invalid operand for instruction 2779// CHECK-ERROR: raddhn v0.8b, v1.8h, v2.8b 2780// CHECK-ERROR: ^ 2781// CHECK-ERROR: error: invalid operand for instruction 2782// CHECK-ERROR: raddhn v0.4h, v1.4s, v2.4h 2783// CHECK-ERROR: ^ 2784// CHECK-ERROR: error: invalid operand for instruction 2785// CHECK-ERROR: raddhn v0.2s, v1.2d, v2.2s 2786// CHECK-ERROR: ^ 2787 2788 raddhn2 v0.16b, v1.8h, v2.8b 2789 raddhn2 v0.8h, v1.4s, v2.4h 2790 raddhn2 v0.4s, v1.2d, v2.2s 2791 2792// CHECK-ERROR: error: invalid operand for instruction 2793// CHECK-ERROR: raddhn2 v0.16b, v1.8h, v2.8b 2794// CHECK-ERROR: ^ 2795// CHECK-ERROR: error: invalid operand for instruction 2796// CHECK-ERROR: raddhn2 v0.8h, v1.4s, v2.4h 2797// CHECK-ERROR: ^ 2798// CHECK-ERROR: error: invalid operand for instruction 2799// CHECK-ERROR: raddhn2 v0.4s, v1.2d, v2.2s 2800// CHECK-ERROR: ^ 2801 2802 rsubhn v0.8b, v1.8h, v2.8b 2803 rsubhn v0.4h, v1.4s, v2.4h 2804 rsubhn v0.2s, v1.2d, v2.2s 2805 2806// CHECK-ERROR: error: invalid operand for instruction 2807// CHECK-ERROR: rsubhn v0.8b, v1.8h, v2.8b 2808// CHECK-ERROR: ^ 2809// CHECK-ERROR: error: invalid operand for instruction 2810// CHECK-ERROR: rsubhn v0.4h, v1.4s, v2.4h 2811// CHECK-ERROR: ^ 2812// CHECK-ERROR: error: invalid operand for instruction 2813// CHECK-ERROR: rsubhn v0.2s, v1.2d, v2.2s 2814// CHECK-ERROR: ^ 2815 2816 rsubhn2 v0.16b, v1.8h, v2.8b 2817 rsubhn2 v0.8h, v1.4s, v2.4h 2818 rsubhn2 v0.4s, v1.2d, v2.2s 2819 2820// CHECK-ERROR: error: invalid operand for instruction 2821// CHECK-ERROR: rsubhn2 v0.16b, v1.8h, v2.8b 2822// CHECK-ERROR: ^ 2823// CHECK-ERROR: error: invalid operand for instruction 2824// CHECK-ERROR: rsubhn2 v0.8h, v1.4s, v2.4h 2825// CHECK-ERROR: ^ 2826// CHECK-ERROR: error: invalid operand for instruction 2827// CHECK-ERROR: rsubhn2 v0.4s, v1.2d, v2.2s 2828// CHECK-ERROR: ^ 2829 2830//---------------------------------------------------------------------- 2831// Scalar Reduce Add Pairwise (Integer) 2832//---------------------------------------------------------------------- 2833 // invalid vector types 2834 addp s0, d1.2d 2835 addp d0, d1.2s 2836 2837// CHECK-ERROR: error: invalid operand for instruction 2838// CHECK-ERROR: addp s0, d1.2d 2839// CHECK-ERROR: ^ 2840// CHECK-ERROR: error: invalid operand for instruction 2841// CHECK-ERROR: addp d0, d1.2s 2842// CHECK-ERROR: ^ 2843 2844//---------------------------------------------------------------------- 2845// Scalar Reduce Add Pairwise (Floating Point) 2846//---------------------------------------------------------------------- 2847 // invalid vector types 2848 faddp s0, d1.2d 2849 faddp d0, d1.2s 2850 2851// CHECK-ERROR: error: invalid operand for instruction 2852// CHECK-ERROR: faddp s0, d1.2d 2853// CHECK-ERROR: ^ 2854// CHECK-ERROR: error: invalid operand for instruction 2855// CHECK-ERROR: faddp d0, d1.2s 2856// CHECK-ERROR: ^ 2857 2858//---------------------------------------------------------------------- 2859// Scalar Reduce Maximum Pairwise (Floating Point) 2860//---------------------------------------------------------------------- 2861 // mismatched and invalid vector types 2862 fmaxp s0, v1.2d 2863 fmaxp d31, v2.2s 2864 fmaxp h3, v2.2s 2865 2866// CHECK-ERROR: error: invalid operand for instruction 2867// CHECK-ERROR: fmaxp s0, v1.2d 2868// CHECK-ERROR: ^ 2869// CHECK-ERROR: error: invalid operand for instruction 2870// CHECK-ERROR: fmaxp d31, v2.2s 2871// CHECK-ERROR: ^ 2872// CHECK-ERROR: error: invalid operand for instruction 2873// CHECK-ERROR: fmaxp h3, v2.2s 2874// CHECK-ERROR: ^ 2875 2876 2877//---------------------------------------------------------------------- 2878// Scalar Reduce Minimum Pairwise (Floating Point) 2879//---------------------------------------------------------------------- 2880 // mismatched and invalid vector types 2881 fminp s0, v1.4h 2882 fminp d31, v2.8h 2883 fminp b3, v2.2s 2884 2885// CHECK-ERROR: error: invalid operand for instruction 2886// CHECK-ERROR: fminp s0, v1.4h 2887// CHECK-ERROR: ^ 2888// CHECK-ERROR: error: invalid operand for instruction 2889// CHECK-ERROR: fminp d31, v2.8h 2890// CHECK-ERROR: ^ 2891// CHECK-ERROR: error: invalid operand for instruction 2892// CHECK-ERROR: fminp b3, v2.2s 2893// CHECK-ERROR: ^ 2894 2895 2896//---------------------------------------------------------------------- 2897// Scalar Reduce maxNum Pairwise (Floating Point) 2898//---------------------------------------------------------------------- 2899 // mismatched and invalid vector types 2900 fmaxnmp s0, v1.8b 2901 fmaxnmp d31, v2.16b 2902 fmaxnmp v1.2s, v2.2s 2903 2904// CHECK-ERROR: error: invalid operand for instruction 2905// CHECK-ERROR: fmaxnmp s0, v1.8b 2906// CHECK-ERROR: ^ 2907// CHECK-ERROR: error: invalid operand for instruction 2908// CHECK-ERROR: fmaxnmp d31, v2.16b 2909// CHECK-ERROR: ^ 2910// CHECK-ERROR: error: too few operands for instruction 2911// CHECK-ERROR: fmaxnmp v1.2s, v2.2s 2912// CHECK-ERROR: ^ 2913 2914//---------------------------------------------------------------------- 2915// Scalar Reduce minNum Pairwise (Floating Point) 2916//---------------------------------------------------------------------- 2917 // mismatched and invalid vector types 2918 fminnmp s0, v1.2d 2919 fminnmp d31, v2.4s 2920 fminnmp v1.4s, v2.2d 2921 2922// CHECK-ERROR: error: invalid operand for instruction 2923// CHECK-ERROR: fminnmp s0, v1.2d 2924// CHECK-ERROR: ^ 2925// CHECK-ERROR: error: invalid operand for instruction 2926// CHECK-ERROR: fminnmp d31, v2.4s 2927// CHECK-ERROR: ^ 2928// CHECK-ERROR: error: invalid operand for instruction 2929// CHECK-ERROR: fminnmp v1.4s, v2.2d 2930// CHECK-ERROR: ^ 2931 2932 mla v0.2d, v1.2d, v16.d[1] 2933 mla v0.2s, v1.2s, v2.s[4] 2934 mla v0.4s, v1.4s, v2.s[4] 2935 mla v0.2h, v1.2h, v2.h[1] 2936 mla v0.4h, v1.4h, v2.h[8] 2937 mla v0.8h, v1.8h, v2.h[8] 2938 mla v0.4h, v1.4h, v16.h[2] 2939 mla v0.8h, v1.8h, v16.h[2] 2940 2941// CHECK-ERROR: error: invalid operand for instruction 2942// CHECK-ERROR: mla v0.2d, v1.2d, v16.d[1] 2943// CHECK-ERROR: ^ 2944// CHECK-ERROR: error: lane number incompatible with layout 2945// CHECK-ERROR: mla v0.2s, v1.2s, v2.s[4] 2946// CHECK-ERROR: ^ 2947// CHECK-ERROR: error: lane number incompatible with layout 2948// CHECK-ERROR: mla v0.4s, v1.4s, v2.s[4] 2949// CHECK-ERROR: ^ 2950// CHECK-ERROR: error: invalid operand for instruction 2951// CHECK-ERROR: mla v0.2h, v1.2h, v2.h[1] 2952// CHECK-ERROR: ^ 2953// CHECK-ERROR: error: lane number incompatible with layout 2954// CHECK-ERROR: mla v0.4h, v1.4h, v2.h[8] 2955// CHECK-ERROR: ^ 2956// CHECK-ERROR: error: lane number incompatible with layout 2957// CHECK-ERROR: mla v0.8h, v1.8h, v2.h[8] 2958// CHECK-ERROR: ^ 2959// CHECK-ERROR: error: invalid operand for instruction 2960// CHECK-ERROR: mla v0.4h, v1.4h, v16.h[2] 2961// CHECK-ERROR: ^ 2962// CHECK-ERROR: error: invalid operand for instruction 2963// CHECK-ERROR: mla v0.8h, v1.8h, v16.h[2] 2964// CHECK-ERROR: ^ 2965 2966 mls v0.2d, v1.2d, v16.d[1] 2967 mls v0.2s, v1.2s, v2.s[4] 2968 mls v0.4s, v1.4s, v2.s[4] 2969 mls v0.2h, v1.2h, v2.h[1] 2970 mls v0.4h, v1.4h, v2.h[8] 2971 mls v0.8h, v1.8h, v2.h[8] 2972 mls v0.4h, v1.4h, v16.h[2] 2973 mls v0.8h, v1.8h, v16.h[2] 2974 2975// CHECK-ERROR: error: invalid operand for instruction 2976// CHECK-ERROR: mls v0.2d, v1.2d, v16.d[1] 2977// CHECK-ERROR: ^ 2978// CHECK-ERROR: error: lane number incompatible with layout 2979// CHECK-ERROR: mls v0.2s, v1.2s, v2.s[4] 2980// CHECK-ERROR: ^ 2981// CHECK-ERROR: error: lane number incompatible with layout 2982// CHECK-ERROR: mls v0.4s, v1.4s, v2.s[4] 2983// CHECK-ERROR: ^ 2984// CHECK-ERROR: error: invalid operand for instruction 2985// CHECK-ERROR: mls v0.2h, v1.2h, v2.h[1] 2986// CHECK-ERROR: ^ 2987// CHECK-ERROR: error: lane number incompatible with layout 2988// CHECK-ERROR: mls v0.4h, v1.4h, v2.h[8] 2989// CHECK-ERROR: ^ 2990// CHECK-ERROR: error: lane number incompatible with layout 2991// CHECK-ERROR: mls v0.8h, v1.8h, v2.h[8] 2992// CHECK-ERROR: ^ 2993// CHECK-ERROR: error: invalid operand for instruction 2994// CHECK-ERROR: mls v0.4h, v1.4h, v16.h[2] 2995// CHECK-ERROR: ^ 2996// CHECK-ERROR: error: invalid operand for instruction 2997// CHECK-ERROR: mls v0.8h, v1.8h, v16.h[2] 2998// CHECK-ERROR: ^ 2999 3000 fmla v0.4h, v1.4h, v2.h[2] 3001 fmla v0.8h, v1.8h, v2.h[2] 3002 fmla v0.2s, v1.2s, v2.s[4] 3003 fmla v0.2s, v1.2s, v22.s[4] 3004 fmla v3.4s, v8.4s, v2.s[4] 3005 fmla v3.4s, v8.4s, v22.s[4] 3006 fmla v0.2d, v1.2d, v2.d[2] 3007 fmla v0.2d, v1.2d, v22.d[2] 3008 3009// CHECK-ERROR: error: invalid operand for instruction 3010// CHECK-ERROR: fmla v0.4h, v1.4h, v2.h[2] 3011// CHECK-ERROR: ^ 3012// CHECK-ERROR: error: invalid operand for instruction 3013// CHECK-ERROR: fmla v0.8h, v1.8h, v2.h[2] 3014// CHECK-ERROR: ^ 3015// CHECK-ERROR: error: lane number incompatible with layout 3016// CHECK-ERROR: fmla v0.2s, v1.2s, v2.s[4] 3017// CHECK-ERROR: ^ 3018// CHECK-ERROR: error: lane number incompatible with layout 3019// CHECK-ERROR: fmla v0.2s, v1.2s, v22.s[4] 3020// CHECK-ERROR: ^ 3021// CHECK-ERROR: error: lane number incompatible with layout 3022// CHECK-ERROR: fmla v3.4s, v8.4s, v2.s[4] 3023// CHECK-ERROR: ^ 3024// CHECK-ERROR: error: lane number incompatible with layout 3025// CHECK-ERROR: fmla v3.4s, v8.4s, v22.s[4] 3026// CHECK-ERROR: ^ 3027// CHECK-ERROR: error: lane number incompatible with layout 3028// CHECK-ERROR: fmla v0.2d, v1.2d, v2.d[2] 3029// CHECK-ERROR: ^ 3030// CHECK-ERROR: error: lane number incompatible with layout 3031// CHECK-ERROR: fmla v0.2d, v1.2d, v22.d[2] 3032// CHECK-ERROR: ^ 3033 3034 fmls v0.4h, v1.4h, v2.h[2] 3035 fmls v0.8h, v1.8h, v2.h[2] 3036 fmls v0.2s, v1.2s, v2.s[4] 3037 fmls v0.2s, v1.2s, v22.s[4] 3038 fmls v3.4s, v8.4s, v2.s[4] 3039 fmls v3.4s, v8.4s, v22.s[4] 3040 fmls v0.2d, v1.2d, v2.d[2] 3041 fmls v0.2d, v1.2d, v22.d[2] 3042 3043// CHECK-ERROR: error: invalid operand for instruction 3044// CHECK-ERROR: fmls v0.4h, v1.4h, v2.h[2] 3045// CHECK-ERROR: ^ 3046// CHECK-ERROR: error: invalid operand for instruction 3047// CHECK-ERROR: fmls v0.8h, v1.8h, v2.h[2] 3048// CHECK-ERROR: ^ 3049// CHECK-ERROR: error: lane number incompatible with layout 3050// CHECK-ERROR: fmls v0.2s, v1.2s, v2.s[4] 3051// CHECK-ERROR: ^ 3052// CHECK-ERROR: error: lane number incompatible with layout 3053// CHECK-ERROR: fmls v0.2s, v1.2s, v22.s[4] 3054// CHECK-ERROR: ^ 3055// CHECK-ERROR: error: lane number incompatible with layout 3056// CHECK-ERROR: fmls v3.4s, v8.4s, v2.s[4] 3057// CHECK-ERROR: ^ 3058// CHECK-ERROR: error: lane number incompatible with layout 3059// CHECK-ERROR: fmls v3.4s, v8.4s, v22.s[4] 3060// CHECK-ERROR: ^ 3061// CHECK-ERROR: error: lane number incompatible with layout 3062// CHECK-ERROR: fmls v0.2d, v1.2d, v2.d[2] 3063// CHECK-ERROR: ^ 3064// CHECK-ERROR: error: lane number incompatible with layout 3065// CHECK-ERROR: fmls v0.2d, v1.2d, v22.d[2] 3066// CHECK-ERROR: ^ 3067 3068 smlal v0.4h, v1.4h, v2.h[2] 3069 smlal v0.4s, v1.4h, v2.h[8] 3070 smlal v0.4s, v1.4h, v16.h[2] 3071 smlal v0.2s, v1.2s, v2.s[4] 3072 smlal v0.2d, v1.2s, v2.s[4] 3073 smlal v0.2d, v1.2s, v22.s[4] 3074 smlal2 v0.4h, v1.8h, v1.h[2] 3075 smlal2 v0.4s, v1.8h, v1.h[8] 3076 smlal2 v0.4s, v1.8h, v16.h[2] 3077 smlal2 v0.2s, v1.4s, v1.s[2] 3078 smlal2 v0.2d, v1.4s, v1.s[4] 3079 smlal2 v0.2d, v1.4s, v22.s[4] 3080 3081// CHECK-ERROR: error: invalid operand for instruction 3082// CHECK-ERROR: smlal v0.4h, v1.4h, v2.h[2] 3083// CHECK-ERROR: ^ 3084// CHECK-ERROR: error: lane number incompatible with layout 3085// CHECK-ERROR: smlal v0.4s, v1.4h, v2.h[8] 3086// CHECK-ERROR: ^ 3087// CHECK-ERROR: error: invalid operand for instruction 3088// CHECK-ERROR: smlal v0.4s, v1.4h, v16.h[2] 3089// CHECK-ERROR: ^ 3090// CHECK-ERROR: error: lane number incompatible with layout 3091// CHECK-ERROR: smlal v0.2s, v1.2s, v2.s[4] 3092// CHECK-ERROR: ^ 3093// CHECK-ERROR: error: lane number incompatible with layout 3094// CHECK-ERROR: smlal v0.2d, v1.2s, v2.s[4] 3095// CHECK-ERROR: ^ 3096// CHECK-ERROR: error: lane number incompatible with layout 3097// CHECK-ERROR: smlal v0.2d, v1.2s, v22.s[4] 3098// CHECK-ERROR: ^ 3099// CHECK-ERROR: error: invalid operand for instruction 3100// CHECK-ERROR: smlal2 v0.4h, v1.8h, v1.h[2] 3101// CHECK-ERROR: ^ 3102// CHECK-ERROR: error: lane number incompatible with layout 3103// CHECK-ERROR: smlal2 v0.4s, v1.8h, v1.h[8] 3104// CHECK-ERROR: ^ 3105// CHECK-ERROR: error: invalid operand for instruction 3106// CHECK-ERROR: smlal2 v0.4s, v1.8h, v16.h[2] 3107// CHECK-ERROR: ^ 3108// CHECK-ERROR: error: invalid operand for instruction 3109// CHECK-ERROR: smlal2 v0.2s, v1.4s, v1.s[2] 3110// CHECK-ERROR: ^ 3111// CHECK-ERROR: error: lane number incompatible with layout 3112// CHECK-ERROR: smlal2 v0.2d, v1.4s, v1.s[4] 3113// CHECK-ERROR: ^ 3114// CHECK-ERROR: error: lane number incompatible with layout 3115// CHECK-ERROR: smlal2 v0.2d, v1.4s, v22.s[4] 3116// CHECK-ERROR: ^ 3117 3118 smlsl v0.4h, v1.4h, v2.h[2] 3119 smlsl v0.4s, v1.4h, v2.h[8] 3120 smlsl v0.4s, v1.4h, v16.h[2] 3121 smlsl v0.2s, v1.2s, v2.s[4] 3122 smlsl v0.2d, v1.2s, v2.s[4] 3123 smlsl v0.2d, v1.2s, v22.s[4] 3124 smlsl2 v0.4h, v1.8h, v1.h[2] 3125 smlsl2 v0.4s, v1.8h, v1.h[8] 3126 smlsl2 v0.4s, v1.8h, v16.h[2] 3127 smlsl2 v0.2s, v1.4s, v1.s[2] 3128 smlsl2 v0.2d, v1.4s, v1.s[4] 3129 smlsl2 v0.2d, v1.4s, v22.s[4] 3130 3131// CHECK-ERROR: error: invalid operand for instruction 3132// CHECK-ERROR: smlsl v0.4h, v1.4h, v2.h[2] 3133// CHECK-ERROR: ^ 3134// CHECK-ERROR: error: lane number incompatible with layout 3135// CHECK-ERROR: smlsl v0.4s, v1.4h, v2.h[8] 3136// CHECK-ERROR: ^ 3137// CHECK-ERROR: error: invalid operand for instruction 3138// CHECK-ERROR: smlsl v0.4s, v1.4h, v16.h[2] 3139// CHECK-ERROR: ^ 3140// CHECK-ERROR: error: lane number incompatible with layout 3141// CHECK-ERROR: smlsl v0.2s, v1.2s, v2.s[4] 3142// CHECK-ERROR: ^ 3143// CHECK-ERROR: error: lane number incompatible with layout 3144// CHECK-ERROR: smlsl v0.2d, v1.2s, v2.s[4] 3145// CHECK-ERROR: ^ 3146// CHECK-ERROR: error: lane number incompatible with layout 3147// CHECK-ERROR: smlsl v0.2d, v1.2s, v22.s[4] 3148// CHECK-ERROR: ^ 3149// CHECK-ERROR: error: invalid operand for instruction 3150// CHECK-ERROR: smlsl2 v0.4h, v1.8h, v1.h[2] 3151// CHECK-ERROR: ^ 3152// CHECK-ERROR: error: lane number incompatible with layout 3153// CHECK-ERROR: smlsl2 v0.4s, v1.8h, v1.h[8] 3154// CHECK-ERROR: ^ 3155// CHECK-ERROR: error: invalid operand for instruction 3156// CHECK-ERROR: smlsl2 v0.4s, v1.8h, v16.h[2] 3157// CHECK-ERROR: ^ 3158// CHECK-ERROR: error: invalid operand for instruction 3159// CHECK-ERROR: smlsl2 v0.2s, v1.4s, v1.s[2] 3160// CHECK-ERROR: ^ 3161// CHECK-ERROR: error: lane number incompatible with layout 3162// CHECK-ERROR: smlsl2 v0.2d, v1.4s, v1.s[4] 3163// CHECK-ERROR: ^ 3164// CHECK-ERROR: error: lane number incompatible with layout 3165// CHECK-ERROR: smlsl2 v0.2d, v1.4s, v22.s[4] 3166// CHECK-ERROR: ^ 3167 3168 umlal v0.4h, v1.4h, v2.h[2] 3169 umlal v0.4s, v1.4h, v2.h[8] 3170 umlal v0.4s, v1.4h, v16.h[2] 3171 umlal v0.2s, v1.2s, v2.s[4] 3172 umlal v0.2d, v1.2s, v2.s[4] 3173 umlal v0.2d, v1.2s, v22.s[4] 3174 umlal2 v0.4h, v1.8h, v1.h[2] 3175 umlal2 v0.4s, v1.8h, v1.h[8] 3176 umlal2 v0.4s, v1.8h, v16.h[2] 3177 umlal2 v0.2s, v1.4s, v1.s[2] 3178 umlal2 v0.2d, v1.4s, v1.s[4] 3179 umlal2 v0.2d, v1.4s, v22.s[4] 3180 3181// CHECK-ERROR: error: invalid operand for instruction 3182// CHECK-ERROR: umlal v0.4h, v1.4h, v2.h[2] 3183// CHECK-ERROR: ^ 3184// CHECK-ERROR: error: lane number incompatible with layout 3185// CHECK-ERROR: umlal v0.4s, v1.4h, v2.h[8] 3186// CHECK-ERROR: ^ 3187// CHECK-ERROR: error: invalid operand for instruction 3188// CHECK-ERROR: umlal v0.4s, v1.4h, v16.h[2] 3189// CHECK-ERROR: ^ 3190// CHECK-ERROR: error: lane number incompatible with layout 3191// CHECK-ERROR: umlal v0.2s, v1.2s, v2.s[4] 3192// CHECK-ERROR: ^ 3193// CHECK-ERROR: error: lane number incompatible with layout 3194// CHECK-ERROR: umlal v0.2d, v1.2s, v2.s[4] 3195// CHECK-ERROR: ^ 3196// CHECK-ERROR: error: lane number incompatible with layout 3197// CHECK-ERROR: umlal v0.2d, v1.2s, v22.s[4] 3198// CHECK-ERROR: ^ 3199// CHECK-ERROR: error: invalid operand for instruction 3200// CHECK-ERROR: umlal2 v0.4h, v1.8h, v1.h[2] 3201// CHECK-ERROR: ^ 3202// CHECK-ERROR: error: lane number incompatible with layout 3203// CHECK-ERROR: umlal2 v0.4s, v1.8h, v1.h[8] 3204// CHECK-ERROR: ^ 3205// CHECK-ERROR: error: invalid operand for instruction 3206// CHECK-ERROR: umlal2 v0.4s, v1.8h, v16.h[2] 3207// CHECK-ERROR: ^ 3208// CHECK-ERROR: error: invalid operand for instruction 3209// CHECK-ERROR: umlal2 v0.2s, v1.4s, v1.s[2] 3210// CHECK-ERROR: ^ 3211// CHECK-ERROR: error: lane number incompatible with layout 3212// CHECK-ERROR: umlal2 v0.2d, v1.4s, v1.s[4] 3213// CHECK-ERROR: ^ 3214// CHECK-ERROR: error: lane number incompatible with layout 3215// CHECK-ERROR: umlal2 v0.2d, v1.4s, v22.s[4] 3216// CHECK-ERROR: ^ 3217 3218 umlsl v0.4h, v1.4h, v2.h[2] 3219 umlsl v0.4s, v1.4h, v2.h[8] 3220 umlsl v0.4s, v1.4h, v16.h[2] 3221 umlsl v0.2s, v1.2s, v2.s[4] 3222 umlsl v0.2d, v1.2s, v2.s[4] 3223 umlsl v0.2d, v1.2s, v22.s[4] 3224 umlsl2 v0.4h, v1.8h, v1.h[2] 3225 umlsl2 v0.4s, v1.8h, v1.h[8] 3226 umlsl2 v0.4s, v1.8h, v16.h[2] 3227 umlsl2 v0.2s, v1.4s, v1.s[2] 3228 umlsl2 v0.2d, v1.4s, v1.s[4] 3229 umlsl2 v0.2d, v1.4s, v22.s[4] 3230 3231// CHECK-ERROR: error: invalid operand for instruction 3232// CHECK-ERROR: umlsl v0.4h, v1.4h, v2.h[2] 3233// CHECK-ERROR: ^ 3234// CHECK-ERROR: error: lane number incompatible with layout 3235// CHECK-ERROR: umlsl v0.4s, v1.4h, v2.h[8] 3236// CHECK-ERROR: ^ 3237// CHECK-ERROR: error: invalid operand for instruction 3238// CHECK-ERROR: umlsl v0.4s, v1.4h, v16.h[2] 3239// CHECK-ERROR: ^ 3240// CHECK-ERROR: error: lane number incompatible with layout 3241// CHECK-ERROR: umlsl v0.2s, v1.2s, v2.s[4] 3242// CHECK-ERROR: ^ 3243// CHECK-ERROR: error: lane number incompatible with layout 3244// CHECK-ERROR: umlsl v0.2d, v1.2s, v2.s[4] 3245// CHECK-ERROR: ^ 3246// CHECK-ERROR: error: lane number incompatible with layout 3247// CHECK-ERROR: umlsl v0.2d, v1.2s, v22.s[4] 3248// CHECK-ERROR: ^ 3249// CHECK-ERROR: error: invalid operand for instruction 3250// CHECK-ERROR: umlsl2 v0.4h, v1.8h, v1.h[2] 3251// CHECK-ERROR: ^ 3252// CHECK-ERROR: error: lane number incompatible with layout 3253// CHECK-ERROR: umlsl2 v0.4s, v1.8h, v1.h[8] 3254// CHECK-ERROR: ^ 3255// CHECK-ERROR: error: invalid operand for instruction 3256// CHECK-ERROR: umlsl2 v0.4s, v1.8h, v16.h[2] 3257// CHECK-ERROR: ^ 3258// CHECK-ERROR: error: invalid operand for instruction 3259// CHECK-ERROR: umlsl2 v0.2s, v1.4s, v1.s[2] 3260// CHECK-ERROR: ^ 3261// CHECK-ERROR: error: lane number incompatible with layout 3262// CHECK-ERROR: umlsl2 v0.2d, v1.4s, v1.s[4] 3263// CHECK-ERROR: ^ 3264// CHECK-ERROR: error: lane number incompatible with layout 3265// CHECK-ERROR: umlsl2 v0.2d, v1.4s, v22.s[4] 3266// CHECK-ERROR: ^ 3267 3268 sqdmlal v0.4h, v1.4h, v2.h[2] 3269 sqdmlal v0.4s, v1.4h, v2.h[8] 3270 sqdmlal v0.4s, v1.4h, v16.h[2] 3271 sqdmlal v0.2s, v1.2s, v2.s[4] 3272 sqdmlal v0.2d, v1.2s, v2.s[4] 3273 sqdmlal v0.2d, v1.2s, v22.s[4] 3274 sqdmlal2 v0.4h, v1.8h, v1.h[2] 3275 sqdmlal2 v0.4s, v1.8h, v1.h[8] 3276 sqdmlal2 v0.4s, v1.8h, v16.h[2] 3277 sqdmlal2 v0.2s, v1.4s, v1.s[2] 3278 sqdmlal2 v0.2d, v1.4s, v1.s[4] 3279 sqdmlal2 v0.2d, v1.4s, v22.s[4] 3280 3281// CHECK-ERROR: error: invalid operand for instruction 3282// CHECK-ERROR: sqdmlal v0.4h, v1.4h, v2.h[2] 3283// CHECK-ERROR: ^ 3284// CHECK-ERROR: error: lane number incompatible with layout 3285// CHECK-ERROR: sqdmlal v0.4s, v1.4h, v2.h[8] 3286// CHECK-ERROR: ^ 3287// CHECK-ERROR: error: invalid operand for instruction 3288// CHECK-ERROR: sqdmlal v0.4s, v1.4h, v16.h[2] 3289// CHECK-ERROR: ^ 3290// CHECK-ERROR: error: lane number incompatible with layout 3291// CHECK-ERROR: sqdmlal v0.2s, v1.2s, v2.s[4] 3292// CHECK-ERROR: ^ 3293// CHECK-ERROR: error: lane number incompatible with layout 3294// CHECK-ERROR: sqdmlal v0.2d, v1.2s, v2.s[4] 3295// CHECK-ERROR: ^ 3296// CHECK-ERROR: error: lane number incompatible with layout 3297// CHECK-ERROR: sqdmlal v0.2d, v1.2s, v22.s[4] 3298// CHECK-ERROR: ^ 3299// CHECK-ERROR: error: invalid operand for instruction 3300// CHECK-ERROR: sqdmlal2 v0.4h, v1.8h, v1.h[2] 3301// CHECK-ERROR: ^ 3302// CHECK-ERROR: error: lane number incompatible with layout 3303// CHECK-ERROR: sqdmlal2 v0.4s, v1.8h, v1.h[8] 3304// CHECK-ERROR: ^ 3305// CHECK-ERROR: error: invalid operand for instruction 3306// CHECK-ERROR: sqdmlal2 v0.4s, v1.8h, v16.h[2] 3307// CHECK-ERROR: ^ 3308// CHECK-ERROR: error: invalid operand for instruction 3309// CHECK-ERROR: sqdmlal2 v0.2s, v1.4s, v1.s[2] 3310// CHECK-ERROR: ^ 3311// CHECK-ERROR: error: lane number incompatible with layout 3312// CHECK-ERROR: sqdmlal2 v0.2d, v1.4s, v1.s[4] 3313// CHECK-ERROR: ^ 3314// CHECK-ERROR: error: lane number incompatible with layout 3315// CHECK-ERROR: sqdmlal2 v0.2d, v1.4s, v22.s[4] 3316// CHECK-ERROR: ^ 3317 3318 sqdmlsl v0.4h, v1.4h, v2.h[2] 3319 sqdmlsl v0.4s, v1.4h, v2.h[8] 3320 sqdmlsl v0.4s, v1.4h, v16.h[2] 3321 sqdmlsl v0.2s, v1.2s, v2.s[4] 3322 sqdmlsl v0.2d, v1.2s, v2.s[4] 3323 sqdmlsl v0.2d, v1.2s, v22.s[4] 3324 sqdmlsl2 v0.4h, v1.8h, v1.h[2] 3325 sqdmlsl2 v0.4s, v1.8h, v1.h[8] 3326 sqdmlsl2 v0.4s, v1.8h, v16.h[2] 3327 sqdmlsl2 v0.2s, v1.4s, v1.s[2] 3328 sqdmlsl2 v0.2d, v1.4s, v1.s[4] 3329 sqdmlsl2 v0.2d, v1.4s, v22.s[4] 3330 3331// CHECK-ERROR: error: invalid operand for instruction 3332// CHECK-ERROR: sqdmlsl v0.4h, v1.4h, v2.h[2] 3333// CHECK-ERROR: ^ 3334// CHECK-ERROR: error: lane number incompatible with layout 3335// CHECK-ERROR: sqdmlsl v0.4s, v1.4h, v2.h[8] 3336// CHECK-ERROR: ^ 3337// CHECK-ERROR: error: invalid operand for instruction 3338// CHECK-ERROR: sqdmlsl v0.4s, v1.4h, v16.h[2] 3339// CHECK-ERROR: ^ 3340// CHECK-ERROR: error: lane number incompatible with layout 3341// CHECK-ERROR: sqdmlsl v0.2s, v1.2s, v2.s[4] 3342// CHECK-ERROR: ^ 3343// CHECK-ERROR: error: lane number incompatible with layout 3344// CHECK-ERROR: sqdmlsl v0.2d, v1.2s, v2.s[4] 3345// CHECK-ERROR: ^ 3346// CHECK-ERROR: error: lane number incompatible with layout 3347// CHECK-ERROR: sqdmlsl v0.2d, v1.2s, v22.s[4] 3348// CHECK-ERROR: ^ 3349// CHECK-ERROR: error: invalid operand for instruction 3350// CHECK-ERROR: sqdmlsl2 v0.4h, v1.8h, v1.h[2] 3351// CHECK-ERROR: ^ 3352// CHECK-ERROR: error: lane number incompatible with layout 3353// CHECK-ERROR: sqdmlsl2 v0.4s, v1.8h, v1.h[8] 3354// CHECK-ERROR: ^ 3355// CHECK-ERROR: error: invalid operand for instruction 3356// CHECK-ERROR: sqdmlsl2 v0.4s, v1.8h, v16.h[2] 3357// CHECK-ERROR: ^ 3358// CHECK-ERROR: error: invalid operand for instruction 3359// CHECK-ERROR: sqdmlsl2 v0.2s, v1.4s, v1.s[2] 3360// CHECK-ERROR: ^ 3361// CHECK-ERROR: error: lane number incompatible with layout 3362// CHECK-ERROR: sqdmlsl2 v0.2d, v1.4s, v1.s[4] 3363// CHECK-ERROR: ^ 3364// CHECK-ERROR: error: lane number incompatible with layout 3365// CHECK-ERROR: sqdmlsl2 v0.2d, v1.4s, v22.s[4] 3366// CHECK-ERROR: ^ 3367 3368 mul v0.4h, v1.4h, v2.h[8] 3369 mul v0.4h, v1.4h, v16.h[8] 3370 mul v0.8h, v1.8h, v2.h[8] 3371 mul v0.8h, v1.8h, v16.h[8] 3372 mul v0.2s, v1.2s, v2.s[4] 3373 mul v0.2s, v1.2s, v22.s[4] 3374 mul v0.4s, v1.4s, v2.s[4] 3375 mul v0.4s, v1.4s, v22.s[4] 3376 mul v0.2d, v1.2d, v2.d[1] 3377 3378// CHECK-ERROR: error: lane number incompatible with layout 3379// CHECK-ERROR: mul v0.4h, v1.4h, v2.h[8] 3380// CHECK-ERROR: ^ 3381// CHECK-ERROR: error: lane number incompatible with layout 3382// CHECK-ERROR: mul v0.4h, v1.4h, v16.h[8] 3383// CHECK-ERROR: ^ 3384// CHECK-ERROR: error: lane number incompatible with layout 3385// CHECK-ERROR: mul v0.8h, v1.8h, v2.h[8] 3386// CHECK-ERROR: ^ 3387// CHECK-ERROR: error: lane number incompatible with layout 3388// CHECK-ERROR: mul v0.8h, v1.8h, v16.h[8] 3389// CHECK-ERROR: ^ 3390// CHECK-ERROR: error: lane number incompatible with layout 3391// CHECK-ERROR: mul v0.2s, v1.2s, v2.s[4] 3392// CHECK-ERROR: ^ 3393// CHECK-ERROR: error: lane number incompatible with layout 3394// CHECK-ERROR: mul v0.2s, v1.2s, v22.s[4] 3395// CHECK-ERROR: ^ 3396// CHECK-ERROR: error: lane number incompatible with layout 3397// CHECK-ERROR: mul v0.4s, v1.4s, v2.s[4] 3398// CHECK-ERROR: ^ 3399// CHECK-ERROR: error: lane number incompatible with layout 3400// CHECK-ERROR: mul v0.4s, v1.4s, v22.s[4] 3401// CHECK-ERROR: ^ 3402 3403 fmul v0.4h, v1.4h, v2.h[4] 3404 fmul v0.2s, v1.2s, v2.s[4] 3405 fmul v0.2s, v1.2s, v22.s[4] 3406 fmul v0.4s, v1.4s, v2.s[4] 3407 fmul v0.4s, v1.4s, v22.s[4] 3408 fmul v0.2d, v1.2d, v2.d[2] 3409 fmul v0.2d, v1.2d, v22.d[2] 3410 3411// CHECK-ERROR: error: invalid operand for instruction 3412// CHECK-ERROR: mul v0.2d, v1.2d, v2.d[1] 3413// CHECK-ERROR: ^ 3414// CHECK-ERROR: error: invalid operand for instruction 3415// CHECK-ERROR: fmul v0.4h, v1.4h, v2.h[4] 3416// CHECK-ERROR: ^ 3417// CHECK-ERROR: error: lane number incompatible with layout 3418// CHECK-ERROR: fmul v0.2s, v1.2s, v2.s[4] 3419// CHECK-ERROR: ^ 3420// CHECK-ERROR: error: lane number incompatible with layout 3421// CHECK-ERROR: fmul v0.2s, v1.2s, v22.s[4] 3422// CHECK-ERROR: ^ 3423// CHECK-ERROR: error: lane number incompatible with layout 3424// CHECK-ERROR: fmul v0.4s, v1.4s, v2.s[4] 3425// CHECK-ERROR: ^ 3426// CHECK-ERROR: error: lane number incompatible with layout 3427// CHECK-ERROR: fmul v0.4s, v1.4s, v22.s[4] 3428// CHECK-ERROR: ^ 3429// CHECK-ERROR: error: lane number incompatible with layout 3430// CHECK-ERROR: fmul v0.2d, v1.2d, v2.d[2] 3431// CHECK-ERROR: ^ 3432// CHECK-ERROR: error: lane number incompatible with layout 3433// CHECK-ERROR: fmul v0.2d, v1.2d, v22.d[2] 3434// CHECK-ERROR: ^ 3435 3436 fmulx v0.4h, v1.4h, v2.h[4] 3437 fmulx v0.2s, v1.2s, v2.s[4] 3438 fmulx v0.2s, v1.2s, v22.s[4] 3439 fmulx v0.4s, v1.4s, v2.s[4] 3440 fmulx v0.4s, v1.4s, v22.s[4] 3441 fmulx v0.2d, v1.2d, v2.d[2] 3442 fmulx v0.2d, v1.2d, v22.d[2] 3443 3444// CHECK-ERROR: error: invalid operand for instruction 3445// CHECK-ERROR: fmulx v0.4h, v1.4h, v2.h[4] 3446// CHECK-ERROR: ^ 3447// CHECK-ERROR: error: lane number incompatible with layout 3448// CHECK-ERROR: fmulx v0.2s, v1.2s, v2.s[4] 3449// CHECK-ERROR: ^ 3450// CHECK-ERROR: error: lane number incompatible with layout 3451// CHECK-ERROR: fmulx v0.2s, v1.2s, v22.s[4] 3452// CHECK-ERROR: ^ 3453// CHECK-ERROR: error: lane number incompatible with layout 3454// CHECK-ERROR: fmulx v0.4s, v1.4s, v2.s[4] 3455// CHECK-ERROR: ^ 3456// CHECK-ERROR: error: lane number incompatible with layout 3457// CHECK-ERROR: fmulx v0.4s, v1.4s, v22.s[4] 3458// CHECK-ERROR: ^ 3459// CHECK-ERROR: error: lane number incompatible with layout 3460// CHECK-ERROR: fmulx v0.2d, v1.2d, v2.d[2] 3461// CHECK-ERROR: ^ 3462// CHECK-ERROR: error: lane number incompatible with layout 3463// CHECK-ERROR: fmulx v0.2d, v1.2d, v22.d[2] 3464// CHECK-ERROR: ^ 3465 3466 smull v0.4h, v1.4h, v2.h[2] 3467 smull v0.4s, v1.4h, v2.h[8] 3468 smull v0.4s, v1.4h, v16.h[4] 3469 smull v0.2s, v1.2s, v2.s[2] 3470 smull v0.2d, v1.2s, v2.s[4] 3471 smull v0.2d, v1.2s, v22.s[4] 3472 smull2 v0.4h, v1.8h, v2.h[2] 3473 smull2 v0.4s, v1.8h, v2.h[8] 3474 smull2 v0.4s, v1.8h, v16.h[4] 3475 smull2 v0.2s, v1.4s, v2.s[2] 3476 smull2 v0.2d, v1.4s, v2.s[4] 3477 smull2 v0.2d, v1.4s, v22.s[4] 3478 3479// CHECK-ERROR: error: invalid operand for instruction 3480// CHECK-ERROR: smull v0.4h, v1.4h, v2.h[2] 3481// CHECK-ERROR: ^ 3482// CHECK-ERROR: error: lane number incompatible with layout 3483// CHECK-ERROR: smull v0.4s, v1.4h, v2.h[8] 3484// CHECK-ERROR: ^ 3485// CHECK-ERROR: error: invalid operand for instruction 3486// CHECK-ERROR: smull v0.4s, v1.4h, v16.h[4] 3487// CHECK-ERROR: ^ 3488// CHECK-ERROR: error: invalid operand for instruction 3489// CHECK-ERROR: smull v0.2s, v1.2s, v2.s[2] 3490// CHECK-ERROR: ^ 3491// CHECK-ERROR: error: lane number incompatible with layout 3492// CHECK-ERROR: smull v0.2d, v1.2s, v2.s[4] 3493// CHECK-ERROR: ^ 3494// CHECK-ERROR: error: lane number incompatible with layout 3495// CHECK-ERROR: smull v0.2d, v1.2s, v22.s[4] 3496// CHECK-ERROR: ^ 3497// CHECK-ERROR: error: invalid operand for instruction 3498// CHECK-ERROR: smull2 v0.4h, v1.8h, v2.h[2] 3499// CHECK-ERROR: ^ 3500// CHECK-ERROR: error: lane number incompatible with layout 3501// CHECK-ERROR: smull2 v0.4s, v1.8h, v2.h[8] 3502// CHECK-ERROR: ^ 3503// CHECK-ERROR: error: invalid operand for instruction 3504// CHECK-ERROR: smull2 v0.4s, v1.8h, v16.h[4] 3505// CHECK-ERROR: ^ 3506// CHECK-ERROR: error: invalid operand for instruction 3507// CHECK-ERROR: smull2 v0.2s, v1.4s, v2.s[2] 3508// CHECK-ERROR: ^ 3509// CHECK-ERROR: error: lane number incompatible with layout 3510// CHECK-ERROR: smull2 v0.2d, v1.4s, v2.s[4] 3511// CHECK-ERROR: ^ 3512// CHECK-ERROR: error: lane number incompatible with layout 3513// CHECK-ERROR: smull2 v0.2d, v1.4s, v22.s[4] 3514// CHECK-ERROR: ^ 3515 3516 umull v0.4h, v1.4h, v2.h[2] 3517 umull v0.4s, v1.4h, v2.h[8] 3518 umull v0.4s, v1.4h, v16.h[4] 3519 umull v0.2s, v1.2s, v2.s[2] 3520 umull v0.2d, v1.2s, v2.s[4] 3521 umull v0.2d, v1.2s, v22.s[4] 3522 umull2 v0.4h, v1.8h, v2.h[2] 3523 umull2 v0.4s, v1.8h, v2.h[8] 3524 umull2 v0.4s, v1.8h, v16.h[4] 3525 umull2 v0.2s, v1.4s, v2.s[2] 3526 umull2 v0.2d, v1.4s, v2.s[4] 3527 umull2 v0.2d, v1.4s, v22.s[4] 3528 3529// CHECK-ERROR: error: invalid operand for instruction 3530// CHECK-ERROR: umull v0.4h, v1.4h, v2.h[2] 3531// CHECK-ERROR: ^ 3532// CHECK-ERROR: error: lane number incompatible with layout 3533// CHECK-ERROR: umull v0.4s, v1.4h, v2.h[8] 3534// CHECK-ERROR: ^ 3535// CHECK-ERROR: error: invalid operand for instruction 3536// CHECK-ERROR: umull v0.4s, v1.4h, v16.h[4] 3537// CHECK-ERROR: ^ 3538// CHECK-ERROR: error: invalid operand for instruction 3539// CHECK-ERROR: umull v0.2s, v1.2s, v2.s[2] 3540// CHECK-ERROR: ^ 3541// CHECK-ERROR: error: lane number incompatible with layout 3542// CHECK-ERROR: umull v0.2d, v1.2s, v2.s[4] 3543// CHECK-ERROR: ^ 3544// CHECK-ERROR: error: lane number incompatible with layout 3545// CHECK-ERROR: umull v0.2d, v1.2s, v22.s[4] 3546// CHECK-ERROR: ^ 3547// CHECK-ERROR: error: invalid operand for instruction 3548// CHECK-ERROR: umull2 v0.4h, v1.8h, v2.h[2] 3549// CHECK-ERROR: ^ 3550// CHECK-ERROR: error: lane number incompatible with layout 3551// CHECK-ERROR: umull2 v0.4s, v1.8h, v2.h[8] 3552// CHECK-ERROR: ^ 3553// CHECK-ERROR: error: invalid operand for instruction 3554// CHECK-ERROR: umull2 v0.4s, v1.8h, v16.h[4] 3555// CHECK-ERROR: ^ 3556// CHECK-ERROR: error: invalid operand for instruction 3557// CHECK-ERROR: umull2 v0.2s, v1.4s, v2.s[2] 3558// CHECK-ERROR: ^ 3559// CHECK-ERROR: error: lane number incompatible with layout 3560// CHECK-ERROR: umull2 v0.2d, v1.4s, v2.s[4] 3561// CHECK-ERROR: ^ 3562// CHECK-ERROR: error: lane number incompatible with layout 3563// CHECK-ERROR: umull2 v0.2d, v1.4s, v22.s[4] 3564// CHECK-ERROR: ^ 3565 3566 sqdmull v0.4h, v1.4h, v2.h[2] 3567 sqdmull v0.4s, v1.4h, v2.h[8] 3568 sqdmull v0.4s, v1.4h, v16.h[4] 3569 sqdmull v0.2s, v1.2s, v2.s[2] 3570 sqdmull v0.2d, v1.2s, v2.s[4] 3571 sqdmull v0.2d, v1.2s, v22.s[4] 3572 sqdmull2 v0.4h, v1.8h, v2.h[2] 3573 sqdmull2 v0.4s, v1.8h, v2.h[8] 3574 sqdmull2 v0.4s, v1.8h, v16.h[4] 3575 sqdmull2 v0.2s, v1.4s, v2.s[2] 3576 sqdmull2 v0.2d, v1.4s, v2.s[4] 3577 sqdmull2 v0.2d, v1.4s, v22.s[4] 3578 3579// CHECK-ERROR: error: invalid operand for instruction 3580// CHECK-ERROR: sqdmull v0.4h, v1.4h, v2.h[2] 3581// CHECK-ERROR: ^ 3582// CHECK-ERROR: error: lane number incompatible with layout 3583// CHECK-ERROR: sqdmull v0.4s, v1.4h, v2.h[8] 3584// CHECK-ERROR: ^ 3585// CHECK-ERROR: error: invalid operand for instruction 3586// CHECK-ERROR: sqdmull v0.4s, v1.4h, v16.h[4] 3587// CHECK-ERROR: ^ 3588// CHECK-ERROR: error: invalid operand for instruction 3589// CHECK-ERROR: sqdmull v0.2s, v1.2s, v2.s[2] 3590// CHECK-ERROR: ^ 3591// CHECK-ERROR: error: lane number incompatible with layout 3592// CHECK-ERROR: sqdmull v0.2d, v1.2s, v2.s[4] 3593// CHECK-ERROR: ^ 3594// CHECK-ERROR: error: lane number incompatible with layout 3595// CHECK-ERROR: sqdmull v0.2d, v1.2s, v22.s[4] 3596// CHECK-ERROR: ^ 3597// CHECK-ERROR: error: invalid operand for instruction 3598// CHECK-ERROR: sqdmull2 v0.4h, v1.8h, v2.h[2] 3599// CHECK-ERROR: ^ 3600// CHECK-ERROR: error: lane number incompatible with layout 3601// CHECK-ERROR: sqdmull2 v0.4s, v1.8h, v2.h[8] 3602// CHECK-ERROR: ^ 3603// CHECK-ERROR: error: invalid operand for instruction 3604// CHECK-ERROR: sqdmull2 v0.4s, v1.8h, v16.h[4] 3605// CHECK-ERROR: ^ 3606// CHECK-ERROR: error: invalid operand for instruction 3607// CHECK-ERROR: sqdmull2 v0.2s, v1.4s, v2.s[2] 3608// CHECK-ERROR: ^ 3609// CHECK-ERROR: error: lane number incompatible with layout 3610// CHECK-ERROR: sqdmull2 v0.2d, v1.4s, v2.s[4] 3611// CHECK-ERROR: ^ 3612// CHECK-ERROR: error: lane number incompatible with layout 3613// CHECK-ERROR: sqdmull2 v0.2d, v1.4s, v22.s[4] 3614// CHECK-ERROR: ^ 3615 3616 sqdmulh v0.4h, v1.4h, v2.h[8] 3617 sqdmulh v0.4h, v1.4h, v16.h[2] 3618 sqdmulh v0.8h, v1.8h, v2.h[8] 3619 sqdmulh v0.8h, v1.8h, v16.h[2] 3620 sqdmulh v0.2s, v1.2s, v2.s[4] 3621 sqdmulh v0.2s, v1.2s, v22.s[4] 3622 sqdmulh v0.4s, v1.4s, v2.s[4] 3623 sqdmulh v0.4s, v1.4s, v22.s[4] 3624 sqdmulh v0.2d, v1.2d, v22.d[1] 3625 3626// CHECK-ERROR: error: lane number incompatible with layout 3627// CHECK-ERROR: sqdmulh v0.4h, v1.4h, v2.h[8] 3628// CHECK-ERROR: ^ 3629// CHECK-ERROR: error: invalid operand for instruction 3630// CHECK-ERROR: sqdmulh v0.4h, v1.4h, v16.h[2] 3631// CHECK-ERROR: ^ 3632// CHECK-ERROR: error: lane number incompatible with layout 3633// CHECK-ERROR: sqdmulh v0.8h, v1.8h, v2.h[8] 3634// CHECK-ERROR: ^ 3635// CHECK-ERROR: error: invalid operand for instruction 3636// CHECK-ERROR: sqdmulh v0.8h, v1.8h, v16.h[2] 3637// CHECK-ERROR: ^ 3638// CHECK-ERROR: error: lane number incompatible with layout 3639// CHECK-ERROR: sqdmulh v0.2s, v1.2s, v2.s[4] 3640// CHECK-ERROR: ^ 3641// CHECK-ERROR: error: lane number incompatible with layout 3642// CHECK-ERROR: sqdmulh v0.2s, v1.2s, v22.s[4] 3643// CHECK-ERROR: ^ 3644// CHECK-ERROR: error: lane number incompatible with layout 3645// CHECK-ERROR: sqdmulh v0.4s, v1.4s, v2.s[4] 3646// CHECK-ERROR: ^ 3647// CHECK-ERROR: error: lane number incompatible with layout 3648// CHECK-ERROR: sqdmulh v0.4s, v1.4s, v22.s[4] 3649// CHECK-ERROR: ^ 3650// CHECK-ERROR: error: invalid operand for instruction 3651// CHECK-ERROR: sqdmulh v0.2d, v1.2d, v22.d[1] 3652// CHECK-ERROR: ^ 3653 3654 sqrdmulh v0.4h, v1.4h, v2.h[8] 3655 sqrdmulh v0.4h, v1.4h, v16.h[2] 3656 sqrdmulh v0.8h, v1.8h, v2.h[8] 3657 sqrdmulh v0.8h, v1.8h, v16.h[2] 3658 sqrdmulh v0.2s, v1.2s, v2.s[4] 3659 sqrdmulh v0.2s, v1.2s, v22.s[4] 3660 sqrdmulh v0.4s, v1.4s, v2.s[4] 3661 sqrdmulh v0.4s, v1.4s, v22.s[4] 3662 sqrdmulh v0.2d, v1.2d, v22.d[1] 3663 3664// CHECK-ERROR: error: lane number incompatible with layout 3665// CHECK-ERROR: sqrdmulh v0.4h, v1.4h, v2.h[8] 3666// CHECK-ERROR: ^ 3667// CHECK-ERROR: error: invalid operand for instruction 3668// CHECK-ERROR: sqrdmulh v0.4h, v1.4h, v16.h[2] 3669// CHECK-ERROR: ^ 3670// CHECK-ERROR: error: lane number incompatible with layout 3671// CHECK-ERROR: sqrdmulh v0.8h, v1.8h, v2.h[8] 3672// CHECK-ERROR: ^ 3673// CHECK-ERROR: error: invalid operand for instruction 3674// CHECK-ERROR: sqrdmulh v0.8h, v1.8h, v16.h[2] 3675// CHECK-ERROR: ^ 3676// CHECK-ERROR: error: lane number incompatible with layout 3677// CHECK-ERROR: sqrdmulh v0.2s, v1.2s, v2.s[4] 3678// CHECK-ERROR: ^ 3679// CHECK-ERROR: error: lane number incompatible with layout 3680// CHECK-ERROR: sqrdmulh v0.2s, v1.2s, v22.s[4] 3681// CHECK-ERROR: ^ 3682// CHECK-ERROR: error: lane number incompatible with layout 3683// CHECK-ERROR: sqrdmulh v0.4s, v1.4s, v2.s[4] 3684// CHECK-ERROR: ^ 3685// CHECK-ERROR: error: lane number incompatible with layout 3686// CHECK-ERROR: sqrdmulh v0.4s, v1.4s, v22.s[4] 3687// CHECK-ERROR: ^ 3688// CHECK-ERROR: error: invalid operand for instruction 3689// CHECK-ERROR: sqrdmulh v0.2d, v1.2d, v22.d[1] 3690// CHECK-ERROR: ^ 3691 3692//---------------------------------------------------------------------- 3693// Across vectors 3694//---------------------------------------------------------------------- 3695 3696 saddlv b0, v1.8b 3697 saddlv b0, v1.16b 3698 saddlv h0, v1.4h 3699 saddlv h0, v1.8h 3700 saddlv s0, v1.2s 3701 saddlv s0, v1.4s 3702 saddlv d0, v1.2s 3703 3704// CHECK-ERROR: error: invalid operand for instruction 3705// CHECK-ERROR: saddlv b0, v1.8b 3706// CHECK-ERROR: ^ 3707// CHECK-ERROR: error: invalid operand for instruction 3708// CHECK-ERROR: saddlv b0, v1.16b 3709// CHECK-ERROR: ^ 3710// CHECK-ERROR: error: invalid operand for instruction 3711// CHECK-ERROR: saddlv h0, v1.4h 3712// CHECK-ERROR: ^ 3713// CHECK-ERROR: error: invalid operand for instruction 3714// CHECK-ERROR: saddlv h0, v1.8h 3715// CHECK-ERROR: ^ 3716// CHECK-ERROR: error: invalid operand for instruction 3717// CHECK-ERROR: saddlv s0, v1.2s 3718// CHECK-ERROR: ^ 3719// CHECK-ERROR: error: invalid operand for instruction 3720// CHECK-ERROR: saddlv s0, v1.4s 3721// CHECK-ERROR: ^ 3722// CHECK-ERROR: error: invalid operand for instruction 3723// CHECK-ERROR: saddlv d0, v1.2s 3724// CHECK-ERROR: ^ 3725 3726 uaddlv b0, v1.8b 3727 uaddlv b0, v1.16b 3728 uaddlv h0, v1.4h 3729 uaddlv h0, v1.8h 3730 uaddlv s0, v1.2s 3731 uaddlv s0, v1.4s 3732 uaddlv d0, v1.2s 3733 3734// CHECK-ERROR: error: invalid operand for instruction 3735// CHECK-ERROR: uaddlv b0, v1.8b 3736// CHECK-ERROR: ^ 3737// CHECK-ERROR: error: invalid operand for instruction 3738// CHECK-ERROR: uaddlv b0, v1.16b 3739// CHECK-ERROR: ^ 3740// CHECK-ERROR: error: invalid operand for instruction 3741// CHECK-ERROR: uaddlv h0, v1.4h 3742// CHECK-ERROR: ^ 3743// CHECK-ERROR: error: invalid operand for instruction 3744// CHECK-ERROR: uaddlv h0, v1.8h 3745// CHECK-ERROR: ^ 3746// CHECK-ERROR: error: invalid operand for instruction 3747// CHECK-ERROR: uaddlv s0, v1.2s 3748// CHECK-ERROR: ^ 3749// CHECK-ERROR: error: invalid operand for instruction 3750// CHECK-ERROR: uaddlv s0, v1.4s 3751// CHECK-ERROR: ^ 3752// CHECK-ERROR: error: invalid operand for instruction 3753// CHECK-ERROR: uaddlv d0, v1.2s 3754// CHECK-ERROR: ^ 3755 3756 smaxv s0, v1.2s 3757 sminv s0, v1.2s 3758 umaxv s0, v1.2s 3759 uminv s0, v1.2s 3760 addv s0, v1.2s 3761 3762// CHECK-ERROR: error: invalid operand for instruction 3763// CHECK-ERROR: smaxv s0, v1.2s 3764// CHECK-ERROR: ^ 3765// CHECK-ERROR: error: invalid operand for instruction 3766// CHECK-ERROR: sminv s0, v1.2s 3767// CHECK-ERROR: ^ 3768// CHECK-ERROR: error: invalid operand for instruction 3769// CHECK-ERROR: umaxv s0, v1.2s 3770// CHECK-ERROR: ^ 3771// CHECK-ERROR: error: invalid operand for instruction 3772// CHECK-ERROR: uminv s0, v1.2s 3773// CHECK-ERROR: ^ 3774// CHECK-ERROR: error: invalid operand for instruction 3775// CHECK-ERROR: addv s0, v1.2s 3776// CHECK-ERROR: ^ 3777 3778 smaxv d0, v1.2d 3779 sminv d0, v1.2d 3780 umaxv d0, v1.2d 3781 uminv d0, v1.2d 3782 addv d0, v1.2d 3783 3784// CHECK-ERROR: error: invalid operand for instruction 3785// CHECK-ERROR: smaxv d0, v1.2d 3786// CHECK-ERROR: ^ 3787// CHECK-ERROR: error: invalid operand for instruction 3788// CHECK-ERROR: sminv d0, v1.2d 3789// CHECK-ERROR: ^ 3790// CHECK-ERROR: error: invalid operand for instruction 3791// CHECK-ERROR: umaxv d0, v1.2d 3792// CHECK-ERROR: ^ 3793// CHECK-ERROR: error: invalid operand for instruction 3794// CHECK-ERROR: uminv d0, v1.2d 3795// CHECK-ERROR: ^ 3796// CHECK-ERROR: error: invalid operand for instruction 3797// CHECK-ERROR: addv d0, v1.2d 3798// CHECK-ERROR: ^ 3799 3800 fmaxnmv b0, v1.16b 3801 fminnmv b0, v1.16b 3802 fmaxv b0, v1.16b 3803 fminv b0, v1.16b 3804 3805// CHECK-ERROR: error: invalid operand for instruction 3806// CHECK-ERROR: fmaxnmv b0, v1.16b 3807// CHECK-ERROR: ^ 3808// CHECK-ERROR: error: invalid operand for instruction 3809// CHECK-ERROR: fminnmv b0, v1.16b 3810// CHECK-ERROR: ^ 3811// CHECK-ERROR: error: invalid operand for instruction 3812// CHECK-ERROR: fmaxv b0, v1.16b 3813// CHECK-ERROR: ^ 3814// CHECK-ERROR: error: invalid operand for instruction 3815// CHECK-ERROR: fminv b0, v1.16b 3816// CHECK-ERROR: ^ 3817 3818 fmaxnmv h0, v1.8h 3819 fminnmv h0, v1.8h 3820 fmaxv h0, v1.8h 3821 fminv h0, v1.8h 3822 3823// CHECK-ERROR: error: invalid operand for instruction 3824// CHECK-ERROR: fmaxnmv h0, v1.8h 3825// CHECK-ERROR: ^ 3826// CHECK-ERROR: error: invalid operand for instruction 3827// CHECK-ERROR: fminnmv h0, v1.8h 3828// CHECK-ERROR: ^ 3829// CHECK-ERROR: error: invalid operand for instruction 3830// CHECK-ERROR: fmaxv h0, v1.8h 3831// CHECK-ERROR: ^ 3832// CHECK-ERROR: error: invalid operand for instruction 3833// CHECK-ERROR: fminv h0, v1.8h 3834// CHECK-ERROR: ^ 3835 3836 fmaxnmv d0, v1.2d 3837 fminnmv d0, v1.2d 3838 fmaxv d0, v1.2d 3839 fminv d0, v1.2d 3840 3841// CHECK-ERROR: error: invalid operand for instruction 3842// CHECK-ERROR: fmaxnmv d0, v1.2d 3843// CHECK-ERROR: ^ 3844// CHECK-ERROR: error: invalid operand for instruction 3845// CHECK-ERROR: fminnmv d0, v1.2d 3846// CHECK-ERROR: ^ 3847// CHECK-ERROR: error: invalid operand for instruction 3848// CHECK-ERROR: fmaxv d0, v1.2d 3849// CHECK-ERROR: ^ 3850// CHECK-ERROR: error: invalid operand for instruction 3851// CHECK-ERROR: fminv d0, v1.2d 3852// CHECK-ERROR: ^ 3853 3854//---------------------------------------------------------------------- 3855// Floating-point Multiply Extended 3856//---------------------------------------------------------------------- 3857 3858 fmulx s20, h22, s15 3859 fmulx d23, d11, s1 3860 3861// CHECK-ERROR: error: invalid operand for instruction 3862// CHECK-ERROR: fmulx s20, h22, s15 3863// CHECK-ERROR: ^ 3864// CHECK-ERROR: error: invalid operand for instruction 3865// CHECK-ERROR: fmulx d23, d11, s1 3866// CHECK-ERROR: ^ 3867 3868//---------------------------------------------------------------------- 3869// Floating-point Reciprocal Step 3870//---------------------------------------------------------------------- 3871 3872 frecps s21, s16, h13 3873 frecps d22, s30, d21 3874 3875// CHECK-ERROR: error: invalid operand for instruction 3876// CHECK-ERROR: frecps s21, s16, h13 3877// CHECK-ERROR: ^ 3878// CHECK-ERROR: error: invalid operand for instruction 3879// CHECK-ERROR: frecps d22, s30, d21 3880// CHECK-ERROR: ^ 3881 3882//---------------------------------------------------------------------- 3883// Floating-point Reciprocal Square Root Step 3884//---------------------------------------------------------------------- 3885 3886 frsqrts s21, h5, s12 3887 frsqrts d8, s22, d18 3888 3889// CHECK-ERROR: error: invalid operand for instruction 3890// CHECK-ERROR: frsqrts s21, h5, s12 3891// CHECK-ERROR: ^ 3892// CHECK-ERROR: error: invalid operand for instruction 3893// CHECK-ERROR: frsqrts d8, s22, d18 3894// CHECK-ERROR: ^ 3895 3896//---------------------------------------------------------------------- 3897// Vector load/store multiple N-element structure (class SIMD lselem) 3898//---------------------------------------------------------------------- 3899 ld1 {x3}, [x2] 3900 ld1 {v4}, [x0] 3901 ld1 {v32.16b}, [x0] 3902 ld1 {v15.8h}, [x32] 3903// CHECK-ERROR: error: expected vector type register 3904// CHECK-ERROR: ld1 {x3}, [x2] 3905// CHECK-ERROR: ^ 3906// CHECK-ERROR: error: expected vector type register 3907// CHECK-ERROR: ld1 {v4}, [x0] 3908// CHECK-ERROR: ^ 3909// CHECK-ERROR: error: expected vector type register 3910// CHECK-ERROR: ld1 {v32.16b}, [x0] 3911// CHECK-ERROR: ^ 3912// CHECK-ERROR: error: invalid operand for instruction 3913// CHECK-ERROR: ld1 {v15.8h}, [x32] 3914// CHECK-ERROR: ^ 3915 3916 ld1 {v0.16b, v2.16b}, [x0] 3917 ld1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0] 3918 ld1 v0.8b, v1.8b}, [x0] 3919 ld1 {v0.8h-v4.8h}, [x0] 3920 ld1 {v1.8h-v1.8h}, [x0] 3921 ld1 {v15.8h-v17.4h}, [x15] 3922 ld1 {v0.8b-v2.8b, [x0] 3923// CHECK-ERROR: error: invalid space between two vectors 3924// CHECK-ERROR: ld1 {v0.16b, v2.16b}, [x0] 3925// CHECK-ERROR: ^ 3926// CHECK-ERROR: error: invalid number of vectors 3927// CHECK-ERROR: ld1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0] 3928// CHECK-ERROR: ^ 3929// CHECK-ERROR: error: '{' expected 3930// CHECK-ERROR: ld1 v0.8b, v1.8b}, [x0] 3931// CHECK-ERROR: ^ 3932// CHECK-ERROR: error: invalid number of vectors 3933// CHECK-ERROR: ld1 {v0.8h-v4.8h}, [x0] 3934// CHECK-ERROR: ^ 3935// CHECK-ERROR: error: invalid number of vectors 3936// CHECK-ERROR: ld1 {v1.8h-v1.8h}, [x0] 3937// CHECK-ERROR: ^ 3938// CHECK-ERROR: error: expected the same vector layout 3939// CHECK-ERROR: ld1 {v15.8h-v17.4h}, [x15] 3940// CHECK-ERROR: ^ 3941// CHECK-ERROR: error: '}' expected 3942// CHECK-ERROR: ld1 {v0.8b-v2.8b, [x0] 3943// CHECK-ERROR: ^ 3944 3945 ld2 {v15.8h, v16.4h}, [x15] 3946 ld2 {v0.8b, v2.8b}, [x0] 3947 ld2 {v15.4h, v16.4h, v17.4h}, [x32] 3948 ld2 {v15.8h-v16.4h}, [x15] 3949 ld2 {v0.2d-v2.2d}, [x0] 3950// CHECK-ERROR: error: invalid space between two vectors 3951// CHECK-ERROR: ld2 {v15.8h, v16.4h}, [x15] 3952// CHECK-ERROR: ^ 3953// CHECK-ERROR: error: invalid space between two vectors 3954// CHECK-ERROR: ld2 {v0.8b, v2.8b}, [x0] 3955// CHECK-ERROR: ^ 3956// CHECK-ERROR: error: invalid operand for instruction 3957// CHECK-ERROR: ld2 {v15.4h, v16.4h, v17.4h}, [x32] 3958// CHECK-ERROR: ^ 3959// CHECK-ERROR: error: expected the same vector layout 3960// CHECK-ERROR: ld2 {v15.8h-v16.4h}, [x15] 3961// CHECK-ERROR: ^ 3962// CHECK-ERROR: error: invalid operand for instruction 3963// CHECK-ERROR: ld2 {v0.2d-v2.2d}, [x0] 3964// CHECK-ERROR: ^ 3965 3966 ld3 {v15.8h, v16.8h, v17.4h}, [x15] 3967 ld3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0] 3968 ld3 {v0.8b, v2.8b, v3.8b}, [x0] 3969 ld3 {v15.8h-v17.4h}, [x15] 3970 ld3 {v31.4s-v2.4s}, [sp] 3971// CHECK-ERROR: error: invalid space between two vectors 3972// CHECK-ERROR: ld3 {v15.8h, v16.8h, v17.4h}, [x15] 3973// CHECK-ERROR: ^ 3974// CHECK-ERROR: error: expected vector type register 3975// CHECK-ERROR: ld3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0] 3976// CHECK-ERROR: ^ 3977// CHECK-ERROR: error: invalid space between two vectors 3978// CHECK-ERROR: ld3 {v0.8b, v2.8b, v3.8b}, [x0] 3979// CHECK-ERROR: ^ 3980// CHECK-ERROR: error: expected the same vector layout 3981// CHECK-ERROR: ld3 {v15.8h-v17.4h}, [x15] 3982// CHECK-ERROR: ^ 3983// CHECK-ERROR: error: invalid operand for instruction 3984// CHECK-ERROR: ld3 {v31.4s-v2.4s}, [sp] 3985// CHECK-ERROR: ^ 3986 3987 ld4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15] 3988 ld4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0] 3989 ld4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31] 3990 ld4 {v15.8h-v18.4h}, [x15] 3991 ld4 {v31.2s-v1.2s}, [x31] 3992// CHECK-ERROR: error: invalid space between two vectors 3993// CHECK-ERROR: ld4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15] 3994// CHECK-ERROR: ^ 3995// CHECK-ERROR: error: invalid space between two vectors 3996// CHECK-ERROR: ld4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0] 3997// CHECK-ERROR: ^ 3998// CHECK-ERROR: error: invalid number of vectors 3999// CHECK-ERROR: ld4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31] 4000// CHECK-ERROR: ^ 4001// CHECK-ERROR: error: expected the same vector layout 4002// CHECK-ERROR: ld4 {v15.8h-v18.4h}, [x15] 4003// CHECK-ERROR: ^ 4004// CHECK-ERROR: error: invalid operand for instruction 4005// CHECK-ERROR: ld4 {v31.2s-v1.2s}, [x31] 4006// CHECK-ERROR: ^ 4007 4008 st1 {x3}, [x2] 4009 st1 {v4}, [x0] 4010 st1 {v32.16b}, [x0] 4011 st1 {v15.8h}, [x32] 4012// CHECK-ERROR: error: expected vector type register 4013// CHECK-ERROR: st1 {x3}, [x2] 4014// CHECK-ERROR: ^ 4015// CHECK-ERROR: error: expected vector type register 4016// CHECK-ERROR: st1 {v4}, [x0] 4017// CHECK-ERROR: ^ 4018// CHECK-ERROR: error: expected vector type register 4019// CHECK-ERROR: st1 {v32.16b}, [x0] 4020// CHECK-ERROR: ^ 4021// CHECK-ERROR: error: invalid operand for instruction 4022// CHECK-ERROR: st1 {v15.8h}, [x32] 4023// CHECK-ERROR: ^ 4024 4025 st1 {v0.16b, v2.16b}, [x0] 4026 st1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0] 4027 st1 v0.8b, v1.8b}, [x0] 4028 st1 {v0.8h-v4.8h}, [x0] 4029 st1 {v1.8h-v1.8h}, [x0] 4030 st1 {v15.8h-v17.4h}, [x15] 4031 st1 {v0.8b-v2.8b, [x0] 4032// CHECK-ERROR: error: invalid space between two vectors 4033// CHECK-ERROR: st1 {v0.16b, v2.16b}, [x0] 4034// CHECK-ERROR: ^ 4035// CHECK-ERROR: error: invalid number of vectors 4036// CHECK-ERROR: st1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0] 4037// CHECK-ERROR: ^ 4038// CHECK-ERROR: error: '{' expected 4039// CHECK-ERROR: st1 v0.8b, v1.8b}, [x0] 4040// CHECK-ERROR: ^ 4041// CHECK-ERROR: error: invalid number of vectors 4042// CHECK-ERROR: st1 {v0.8h-v4.8h}, [x0] 4043// CHECK-ERROR: ^ 4044// CHECK-ERROR: error: invalid number of vectors 4045// CHECK-ERROR: st1 {v1.8h-v1.8h}, [x0] 4046// CHECK-ERROR: ^ 4047// CHECK-ERROR: error: expected the same vector layout 4048// CHECK-ERROR: st1 {v15.8h-v17.4h}, [x15] 4049// CHECK-ERROR: ^ 4050// CHECK-ERROR: error: '}' expected 4051// CHECK-ERROR: st1 {v0.8b-v2.8b, [x0] 4052// CHECK-ERROR: ^ 4053 4054 st2 {v15.8h, v16.4h}, [x15] 4055 st2 {v0.8b, v2.8b}, [x0] 4056 st2 {v15.4h, v16.4h, v17.4h}, [x30] 4057 st2 {v15.8h-v16.4h}, [x15] 4058 st2 {v0.2d-v2.2d}, [x0] 4059// CHECK-ERROR: error: invalid space between two vectors 4060// CHECK-ERROR: st2 {v15.8h, v16.4h}, [x15] 4061// CHECK-ERROR: ^ 4062// CHECK-ERROR: error: invalid space between two vectors 4063// CHECK-ERROR: st2 {v0.8b, v2.8b}, [x0] 4064// CHECK-ERROR: ^ 4065// CHECK-ERROR: error: invalid operand for instruction 4066// CHECK-ERROR: st2 {v15.4h, v16.4h, v17.4h}, [x30] 4067// CHECK-ERROR: ^ 4068// CHECK-ERROR: error: expected the same vector layout 4069// CHECK-ERROR: st2 {v15.8h-v16.4h}, [x15] 4070// CHECK-ERROR: ^ 4071// CHECK-ERROR: error: invalid operand for instruction 4072// CHECK-ERROR: st2 {v0.2d-v2.2d}, [x0] 4073// CHECK-ERROR: ^ 4074 4075 st3 {v15.8h, v16.8h, v17.4h}, [x15] 4076 st3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0] 4077 st3 {v0.8b, v2.8b, v3.8b}, [x0] 4078 st3 {v15.8h-v17.4h}, [x15] 4079 st3 {v31.4s-v2.4s}, [sp] 4080// CHECK-ERROR: error: invalid space between two vectors 4081// CHECK-ERROR: st3 {v15.8h, v16.8h, v17.4h}, [x15] 4082// CHECK-ERROR: ^ 4083// CHECK-ERROR: error: expected vector type register 4084// CHECK-ERROR: st3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0] 4085// CHECK-ERROR: ^ 4086// CHECK-ERROR: error: invalid space between two vectors 4087// CHECK-ERROR: st3 {v0.8b, v2.8b, v3.8b}, [x0] 4088// CHECK-ERROR: ^ 4089// CHECK-ERROR: error: expected the same vector layout 4090// CHECK-ERROR: st3 {v15.8h-v17.4h}, [x15] 4091// CHECK-ERROR: ^ 4092// CHECK-ERROR: error: invalid operand for instruction 4093// CHECK-ERROR: st3 {v31.4s-v2.4s}, [sp] 4094// CHECK-ERROR: ^ 4095 4096 st4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15] 4097 st4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0] 4098 st4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31] 4099 st4 {v15.8h-v18.4h}, [x15] 4100 st4 {v31.2s-v1.2s}, [x31] 4101// CHECK-ERROR: error: invalid space between two vectors 4102// CHECK-ERROR: st4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15] 4103// CHECK-ERROR: ^ 4104// CHECK-ERROR: error: invalid space between two vectors 4105// CHECK-ERROR: st4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0] 4106// CHECK-ERROR: ^ 4107// CHECK-ERROR: error: invalid number of vectors 4108// CHECK-ERROR: st4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31] 4109// CHECK-ERROR: ^ 4110// CHECK-ERROR: error: expected the same vector layout 4111// CHECK-ERROR: st4 {v15.8h-v18.4h}, [x15] 4112// CHECK-ERROR: ^ 4113// CHECK-ERROR: error: invalid operand for instruction 4114// CHECK-ERROR: st4 {v31.2s-v1.2s}, [x31] 4115// CHECK-ERROR: ^ 4116 4117//---------------------------------------------------------------------- 4118// Vector post-index load/store multiple N-element structure 4119// (class SIMD lselem-post) 4120//---------------------------------------------------------------------- 4121 ld1 {v0.16b}, [x0], #8 4122 ld1 {v0.8h, v1.16h}, [x0], x1 4123 ld1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24 4124// CHECK-ERROR: error: invalid operand for instruction 4125// CHECK-ERROR: ld1 {v0.16b}, [x0], #8 4126// CHECK-ERROR: ^ 4127// CHECK-ERROR: error: expected vector type register 4128// CHECK-ERROR: ld1 {v0.8h, v1.16h}, [x0], x1 4129// CHECK-ERROR: ^ 4130// CHECK-ERROR: error: invalid operand for instruction 4131// CHECK-ERROR: ld1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24 4132// CHECK-ERROR: ^ 4133 4134 ld2 {v0.16b, v1.16b}, [x0], #16 4135 ld3 {v5.2s, v6.2s, v7.2s}, [x1], #48 4136 ld4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1 4137// CHECK-ERROR: error: invalid operand for instruction 4138// CHECK-ERROR: ld2 {v0.16b, v1.16b}, [x0], #16 4139// CHECK-ERROR: ^ 4140// CHECK-ERROR: error: invalid operand for instruction 4141// CHECK-ERROR: ld3 {v5.2s, v6.2s, v7.2s}, [x1], #48 4142// CHECK-ERROR: ^ 4143// CHECK-ERROR: error: invalid space between two vectors 4144// CHECK-ERROR: ld4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1 4145// CHECK-ERROR: ^ 4146 4147 st1 {v0.16b}, [x0], #8 4148 st1 {v0.8h, v1.16h}, [x0], x1 4149 st1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24 4150// CHECK-ERROR: error: invalid operand for instruction 4151// CHECK-ERROR: st1 {v0.16b}, [x0], #8 4152// CHECK-ERROR: ^ 4153// CHECK-ERROR: error: expected vector type register 4154// CHECK-ERROR: st1 {v0.8h, v1.16h}, [x0], x1 4155// CHECK-ERROR: ^ 4156// CHECK-ERROR: error: invalid operand for instruction 4157// CHECK-ERROR: st1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #24 4158 ^ 4159 4160 st2 {v0.16b, v1.16b}, [x0], #16 4161 st3 {v5.2s, v6.2s, v7.2s}, [x1], #48 4162 st4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1 4163// CHECK-ERROR: error: invalid operand for instruction 4164// CHECK-ERROR: st2 {v0.16b, v1.16b}, [x0], #16 4165// CHECK-ERROR: ^ 4166// CHECK-ERROR: error: invalid operand for instruction 4167// CHECK-ERROR: st3 {v5.2s, v6.2s, v7.2s}, [x1], #48 4168// CHECK-ERROR: ^ 4169// CHECK-ERROR: error: invalid space between two vectors 4170// CHECK-ERROR: st4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x1 4171// CHECK-ERROR: ^ 4172 4173//------------------------------------------------------------------------------ 4174// Load single N-element structure to all lanes of N consecutive 4175// registers (N = 1,2,3,4) 4176//------------------------------------------------------------------------------ 4177 ld1r {x1}, [x0] 4178 ld2r {v31.4s, v0.2s}, [sp] 4179 ld3r {v0.8b, v1.8b, v2.8b, v3.8b}, [x0] 4180 ld4r {v31.2s, v0.2s, v1.2d, v2.2s}, [sp] 4181// CHECK-ERROR: error: expected vector type register 4182// CHECK-ERROR: ld1r {x1}, [x0] 4183// CHECK-ERROR: ^ 4184// CHECK-ERROR: error: invalid space between two vectors 4185// CHECK-ERROR: ld2r {v31.4s, v0.2s}, [sp] 4186// CHECK-ERROR: ^ 4187// CHECK-ERROR: error: invalid operand for instruction 4188// CHECK-ERROR: ld3r {v0.8b, v1.8b, v2.8b, v3.8b}, [x0] 4189// CHECK-ERROR: ^ 4190// CHECK-ERROR: error: invalid space between two vectors 4191// CHECK-ERROR: ld4r {v31.2s, v0.2s, v1.2d, v2.2s}, [sp] 4192// CHECK-ERROR: ^ 4193 4194//------------------------------------------------------------------------------ 4195// Load/Store single N-element structure to/from one lane of N consecutive 4196// registers (N = 1, 2,3,4) 4197//------------------------------------------------------------------------------ 4198 ld1 {v0.b}[16], [x0] 4199 ld2 {v15.h, v16.h}[8], [x15] 4200 ld3 {v31.s, v0.s, v1.s}[-1], [sp] 4201 ld4 {v0.d, v1.d, v2.d, v3.d}[2], [x0] 4202// CHECK-ERROR:: error: lane number incompatible with layout 4203// CHECK-ERROR: ld1 {v0.b}[16], [x0] 4204// CHECK-ERROR: ^ 4205// CHECK-ERROR: error: lane number incompatible with layout 4206// CHECK-ERROR: ld2 {v15.h, v16.h}[8], [x15] 4207// CHECK-ERROR: ^ 4208// CHECK-ERROR: error: expected lane number 4209// CHECK-ERROR: ld3 {v31.s, v0.s, v1.s}[-1], [sp] 4210// CHECK-ERROR: ^ 4211// CHECK-ERROR: error: lane number incompatible with layout 4212// CHECK-ERROR: ld4 {v0.d, v1.d, v2.d, v3.d}[2], [x0] 4213// CHECK-ERROR: ^ 4214 4215 st1 {v0.d}[16], [x0] 4216 st2 {v31.s, v0.s}[3], [8] 4217 st3 {v15.h, v16.h, v17.h}[-1], [x15] 4218 st4 {v0.d, v1.d, v2.d, v3.d}[2], [x0] 4219// CHECK-ERROR:: error: lane number incompatible with layout 4220// CHECK-ERROR: st1 {v0.d}[16], [x0] 4221// CHECK-ERROR: ^ 4222// CHECK-ERROR: error: invalid operand for instruction 4223// CHECK-ERROR: st2 {v31.s, v0.s}[3], [8] 4224// CHECK-ERROR: ^ 4225// CHECK-ERROR: error: expected lane number 4226// CHECK-ERROR: st3 {v15.h, v16.h, v17.h}[-1], [x15] 4227// CHECK-ERROR: ^ 4228// CHECK-ERROR: lane number incompatible with layout 4229// CHECK-ERROR: st4 {v0.d, v1.d, v2.d, v3.d}[2], [x0] 4230// CHECK-ERROR: ^ 4231 4232//------------------------------------------------------------------------------ 4233// Post-index of load single N-element structure to all lanes of N consecutive 4234// registers (N = 1,2,3,4) 4235//------------------------------------------------------------------------------ 4236 ld1r {v15.8h}, [x15], #5 4237 ld2r {v0.2d, v1.2d}, [x0], #7 4238 ld3r {v15.4h, v16.4h, v17.4h}, [x15], #1 4239 ld4r {v31.1d, v0.1d, v1.1d, v2.1d}, [sp], sp 4240// CHECK-ERROR: error: invalid operand for instruction 4241// CHECK-ERROR: ld1r {v15.8h}, [x15], #5 4242// CHECK-ERROR: ^ 4243// CHECK-ERROR: error: invalid operand for instruction 4244// CHECK-ERROR: ld2r {v0.2d, v1.2d}, [x0], #7 4245// CHECK-ERROR: ^ 4246// CHECK-ERROR: error: invalid operand for instruction 4247// CHECK-ERROR: ld3r {v15.4h, v16.4h, v17.4h}, [x15], #1 4248// CHECK-ERROR: ^ 4249// CHECK-ERROR: error: invalid operand for instruction 4250// CHECK-ERROR: ld4r {v31.1d, v0.1d, v1.1d, v2.1d}, [sp], sp 4251// CHECK-ERROR: ^ 4252 4253//------------------------------------------------------------------------------ 4254// Post-index of Load/Store single N-element structure to/from one lane of N 4255// consecutive registers (N = 1, 2,3,4) 4256//------------------------------------------------------------------------------ 4257 ld1 {v0.b}[0], [x0], #2 4258 ld2 {v15.h, v16.h}[0], [x15], #3 4259 ld3 {v31.s, v0.s, v1.d}[0], [sp], x9 4260 ld4 {v0.d, v1.d, v2.d, v3.d}[1], [x0], #24 4261// CHECK-ERROR: error: invalid operand for instruction 4262// CHECK-ERROR: ld1 {v0.b}[0], [x0], #2 4263// CHECK-ERROR: ^ 4264// CHECK-ERROR: error: invalid operand for instruction 4265// CHECK-ERROR: ld2 {v15.h, v16.h}[0], [x15], #3 4266// CHECK-ERROR: ^ 4267// CHECK-ERROR: error: expected the same vector layout 4268// CHECK-ERROR: ld3 {v31.s, v0.s, v1.d}[0], [sp], x9 4269// CHECK-ERROR: ^ 4270// CHECK-ERROR: error: invalid operand for instruction 4271// CHECK-ERROR: ld4 {v0.d, v1.d, v2.d, v3.d}[1], [x0], #24 4272// CHECK-ERROR: ^ 4273 4274 st1 {v0.d}[0], [x0], #7 4275 st2 {v31.s, v0.s}[0], [sp], #6 4276 st3 {v15.h, v16.h, v17.h}[0], [x15], #8 4277 st4 {v0.b, v1.b, v2.b, v3.b}[1], [x0], #1 4278// CHECK-ERROR: error: invalid operand for instruction 4279// CHECK-ERROR: st1 {v0.d}[0], [x0], #7 4280// CHECK-ERROR: ^ 4281// CHECK-ERROR: error: invalid operand for instruction 4282// CHECK-ERROR: st2 {v31.s, v0.s}[0], [sp], #6 4283// CHECK-ERROR: ^ 4284// CHECK-ERROR: error: invalid operand for instruction 4285// CHECK-ERROR: st3 {v15.h, v16.h, v17.h}[0], [x15], #8 4286// CHECK-ERROR: ^ 4287// CHECK-ERROR: error: invalid operand for instruction 4288// CHECK-ERROR: st4 {v0.b, v1.b, v2.b, v3.b}[1], [x0], #1 4289// CHECK-ERROR: ^ 4290 4291 4292 ins v2.b[16], w1 4293 ins v7.h[8], w14 4294 ins v20.s[5], w30 4295 ins v1.d[2], x7 4296 ins v2.b[3], b1 4297 ins v7.h[2], h14 4298 ins v20.s[1], s30 4299 ins v1.d[0], d7 4300 4301// CHECK-ERROR: error: lane number incompatible with layout 4302// CHECK-ERROR: ins v2.b[16], w1 4303// CHECK-ERROR: ^ 4304// CHECK-ERROR: error: lane number incompatible with layout 4305// CHECK-ERROR: ins v7.h[8], w14 4306// CHECK-ERROR: ^ 4307// CHECK-ERROR: error: lane number incompatible with layout 4308// CHECK-ERROR: ins v20.s[5], w30 4309// CHECK-ERROR: ^ 4310// CHECK-ERROR: error: lane number incompatible with layout 4311// CHECK-ERROR: ins v1.d[2], x7 4312// CHECK-ERROR: ^ 4313// CHECK-ERROR: error: invalid operand for instruction 4314// CHECK-ERROR: ins v2.b[3], b1 4315// CHECK-ERROR: ^ 4316// CHECK-ERROR: error: invalid operand for instruction 4317// CHECK-ERROR: ins v7.h[2], h14 4318// CHECK-ERROR: ^ 4319// CHECK-ERROR: error: invalid operand for instruction 4320// CHECK-ERROR: ins v20.s[1], s30 4321// CHECK-ERROR: ^ 4322// CHECK-ERROR: error: invalid operand for instruction 4323// CHECK-ERROR: ins v1.d[0], d7 4324// CHECK-ERROR: ^ 4325 4326 smov w1, v0.b[16] 4327 smov w14, v6.h[8] 4328 smov x1, v0.b[16] 4329 smov x14, v6.h[8] 4330 smov x20, v9.s[5] 4331 smov w1, v0.d[0] 4332 smov w14, v6.d[1] 4333 smov x1, v0.d[0] 4334 smov x14, v6.d[1] 4335 smov x20, v9.d[0] 4336 4337// CHECK-ERROR error: lane number incompatible with layout 4338// CHECK-ERROR smov w1, v0.b[16] 4339// CHECK-ERROR ^ 4340// CHECK-ERROR error: lane number incompatible with layout 4341// CHECK-ERROR smov w14, v6.h[8] 4342// CHECK-ERROR ^ 4343// CHECK-ERROR error: lane number incompatible with layout 4344// CHECK-ERROR smov x1, v0.b[16] 4345// CHECK-ERROR ^ 4346// CHECK-ERROR error: lane number incompatible with layout 4347// CHECK-ERROR smov x14, v6.h[8] 4348// CHECK-ERROR ^ 4349// CHECK-ERROR error: lane number incompatible with layout 4350// CHECK-ERROR smov x20, v9.s[5] 4351// CHECK-ERROR ^ 4352// CHECK-ERROR error: invalid operand for instruction 4353// CHECK-ERROR smov w1, v0.d[0] 4354// CHECK-ERROR ^ 4355// CHECK-ERROR error: invalid operand for instruction 4356// CHECK-ERROR smov w14, v6.d[1] 4357// CHECK-ERROR ^ 4358// CHECK-ERROR error: invalid operand for instruction 4359// CHECK-ERROR smov x1, v0.d[0] 4360// CHECK-ERROR ^ 4361// CHECK-ERROR error: invalid operand for instruction 4362// CHECK-ERROR smov x14, v6.d[1] 4363// CHECK-ERROR ^ 4364// CHECK-ERROR error: invalid operand for instruction 4365// CHECK-ERROR smov x20, v9.d[0] 4366// CHECK-ERROR ^ 4367 4368 umov w1, v0.b[16] 4369 umov w14, v6.h[8] 4370 umov w20, v9.s[5] 4371 umov x7, v18.d[3] 4372 umov w1, v0.d[0] 4373 umov s20, v9.s[2] 4374 umov d7, v18.d[1] 4375 4376// CHECK-ERROR error: lane number incompatible with layout 4377// CHECK-ERROR umov w1, v0.b[16] 4378// CHECK-ERROR ^ 4379// CHECK-ERROR error: lane number incompatible with layout 4380// CHECK-ERROR umov w14, v6.h[8] 4381// CHECK-ERROR ^ 4382// CHECK-ERROR error: lane number incompatible with layout 4383// CHECK-ERROR umov w20, v9.s[5] 4384// CHECK-ERROR ^ 4385// CHECK-ERROR error: lane number incompatible with layout 4386// CHECK-ERROR umov x7, v18.d[3] 4387// CHECK-ERROR ^ 4388// CHECK-ERROR error: invalid operand for instruction 4389// CHECK-ERROR umov w1, v0.d[0] 4390// CHECK-ERROR ^ 4391// CHECK-ERROR error: invalid operand for instruction 4392// CHECK-ERROR umov s20, v9.s[2] 4393// CHECK-ERROR ^ 4394// CHECK-ERROR error: invalid operand for instruction 4395// CHECK-ERROR umov d7, v18.d[1] 4396// CHECK-ERROR ^ 4397 4398 Ins v1.h[2], v3.b[6] 4399 Ins v6.h[7], v7.s[2] 4400 Ins v15.d[0], v22.s[2] 4401 Ins v0.d[0], v4.b[1] 4402 4403// CHECK-ERROR error: invalid operand for instruction 4404// CHECK-ERROR Ins v1.h[2], v3.b[6] 4405// CHECK-ERROR ^ 4406// CHECK-ERROR error: invalid operand for instruction 4407// CHECK-ERROR Ins v6.h[7], v7.s[2] 4408// CHECK-ERROR ^ 4409// CHECK-ERROR error: invalid operand for instruction 4410// CHECK-ERROR Ins v15.d[0], v22.s[2] 4411// CHECK-ERROR ^ 4412// CHECK-ERROR error: invalid operand for instruction 4413// CHECK-ERROR Ins v0.d[0], v4.b[1] 4414// CHECK-ERROR ^ 4415 4416 dup v1.8h, v2.b[2] 4417 dup v11.4s, v7.h[7] 4418 dup v17.2d, v20.s[0] 4419 dup v1.16b, v2.h[2] 4420 dup v11.8h, v7.s[3] 4421 dup v17.4s, v20.d[0] 4422 dup v5.2d, v1.b[1] 4423 4424// CHECK-ERROR error: invalid operand for instruction 4425// CHECK-ERROR dup v1.8h, v2.b[2] 4426// CHECK-ERROR ^ 4427// CHECK-ERROR error: invalid operand for instruction 4428// CHECK-ERROR dup v11.4s, v7.h[7] 4429// CHECK-ERROR ^ 4430// CHECK-ERROR error: invalid operand for instruction 4431// CHECK-ERROR dup v17.2d, v20.s[0] 4432// CHECK-ERROR ^ 4433// CHECK-ERROR error: invalid operand for instruction 4434// CHECK-ERROR dup v1.16b, v2.h[2] 4435// CHECK-ERROR ^ 4436// CHECK-ERROR invalid operand for instruction 4437// CHECK-ERROR dup v11.8h, v7.s[3] 4438// CHECK-ERROR ^ 4439// CHECK-ERROR invalid operand for instruction 4440// CHECK-ERROR dup v17.4s, v20.d[0] 4441// CHECK-ERROR ^ 4442// CHECK-ERROR invalid operand for instruction 4443// CHECK-ERROR dup v5.2d, v1.b[1] 4444// CHECK-ERROR ^ 4445 4446 dup v1.8b, b1 4447 dup v11.4h, h14 4448 dup v17.2s, s30 4449 dup v1.16b, d2 4450 dup v11.8s, w16 4451 dup v17.4d, w28 4452 dup v5.2d, w0 4453 4454// CHECK-ERROR error: invalid operand for instruction 4455// CHECK-ERROR dup v1.8b, b1 4456// CHECK-ERROR ^ 4457// CHECK-ERROR error: invalid operand for instruction 4458// CHECK-ERROR dup v11.4h, h14 4459// CHECK-ERROR ^ 4460// CHECK-ERROR error: invalid operand for instruction 4461// CHECK-ERROR dup v17.2s, s30 4462// CHECK-ERROR ^ 4463// CHECK-ERROR error: invalid operand for instruction 4464// CHECK-ERROR dup v1.16b, d2 4465// CHECK-ERROR ^ 4466// CHECK-ERROR error: invalid operand for instruction 4467// CHECK-ERROR dup v11.8s, w16 4468// CHECK-ERROR ^ 4469// CHECK-ERROR error: invalid operand for instruction 4470// CHECK-ERROR dup v17.4d, w28 4471// CHECK-ERROR ^ 4472// CHECK-ERROR error: invalid operand for instruction 4473// CHECK-ERROR dup v5.2d, w0 4474// CHECK-ERROR ^ 4475 4476//---------------------------------------------------------------------- 4477// Scalar Compare Bitwise Equal 4478//---------------------------------------------------------------------- 4479 4480 cmeq b20, d21, d22 4481 4482// CHECK-ERROR: error: invalid operand for instruction 4483// CHECK-ERROR: cmeq b20, d21, d22 4484// CHECK-ERROR: ^ 4485 4486//---------------------------------------------------------------------- 4487// Scalar Compare Bitwise Equal To Zero 4488//---------------------------------------------------------------------- 4489 4490 cmeq d20, b21, #0 4491 4492// CHECK-ERROR: error: invalid operand for instruction 4493// CHECK-ERROR: cmeq d20, b21, #0 4494// CHECK-ERROR: ^ 4495 4496//---------------------------------------------------------------------- 4497// Scalar Compare Unsigned Higher Or Same 4498//---------------------------------------------------------------------- 4499 4500 cmhs b20, d21, d22 4501 4502// CHECK-ERROR: error: invalid operand for instruction 4503// CHECK-ERROR: cmhs b20, d21, d22 4504// CHECK-ERROR: ^ 4505 4506 4507//---------------------------------------------------------------------- 4508// Scalar Compare Signed Greather Than Or Equal 4509//---------------------------------------------------------------------- 4510 4511 cmge b20, d21, d22 4512 4513// CHECK-ERROR: error: invalid operand for instruction 4514// CHECK-ERROR: cmge b20, d21, d22 4515// CHECK-ERROR: ^ 4516 4517//---------------------------------------------------------------------- 4518// Scalar Compare Signed Greather Than Or Equal To Zero 4519//---------------------------------------------------------------------- 4520 4521 cmge d20, b21, #0 4522 4523// CHECK-ERROR: error: invalid operand for instruction 4524// CHECK-ERROR: cmge d20, b21, #0 4525// CHECK-ERROR: ^ 4526 4527//---------------------------------------------------------------------- 4528// Scalar Compare Unsigned Higher 4529//---------------------------------------------------------------------- 4530 4531 cmhi b20, d21, d22 4532 4533// CHECK-ERROR: error: invalid operand for instruction 4534// CHECK-ERROR: cmhi b20, d21, d22 4535// CHECK-ERROR: ^ 4536 4537//---------------------------------------------------------------------- 4538// Scalar Compare Signed Greater Than 4539//---------------------------------------------------------------------- 4540 4541 cmgt b20, d21, d22 4542 4543// CHECK-ERROR: error: invalid operand for instruction 4544// CHECK-ERROR: cmgt b20, d21, d22 4545// CHECK-ERROR: ^ 4546 4547//---------------------------------------------------------------------- 4548// Scalar Compare Signed Greater Than Zero 4549//---------------------------------------------------------------------- 4550 4551 cmgt d20, b21, #0 4552 4553// CHECK-ERROR: error: invalid operand for instruction 4554// CHECK-ERROR: cmgt d20, b21, #0 4555// CHECK-ERROR: ^ 4556 4557//---------------------------------------------------------------------- 4558// Scalar Compare Signed Less Than Or Equal To Zero 4559//---------------------------------------------------------------------- 4560 4561 cmle d20, b21, #0 4562 4563// CHECK-ERROR: error: invalid operand for instruction 4564// CHECK-ERROR: cmle d20, b21, #0 4565// CHECK-ERROR: ^ 4566 4567//---------------------------------------------------------------------- 4568// Scalar Compare Less Than Zero 4569//---------------------------------------------------------------------- 4570 4571 cmlt d20, b21, #0 4572 4573// CHECK-ERROR: error: invalid operand for instruction 4574// CHECK-ERROR: cmlt d20, b21, #0 4575// CHECK-ERROR: ^ 4576 4577//---------------------------------------------------------------------- 4578// Scalar Compare Bitwise Test Bits 4579//---------------------------------------------------------------------- 4580 4581 cmtst b20, d21, d22 4582 4583// CHECK-ERROR: error: invalid operand for instruction 4584// CHECK-ERROR: cmtst b20, d21, d22 4585// CHECK-ERROR: ^ 4586 4587//---------------------------------------------------------------------- 4588// Scalar Floating-point Compare Mask Equal 4589//---------------------------------------------------------------------- 4590 4591 fcmeq s10, h11, s12 4592 fcmeq d20, s21, d22 4593 4594// CHECK-ERROR: error: invalid operand for instruction 4595// CHECK-ERROR: fcmeq s10, h11, s12 4596// CHECK-ERROR: ^ 4597// CHECK-ERROR: error: invalid operand for instruction 4598// CHECK-ERROR: fcmeq d20, s21, d22 4599// CHECK-ERROR: ^ 4600 4601//---------------------------------------------------------------------- 4602// Scalar Floating-point Compare Mask Equal To Zero 4603//---------------------------------------------------------------------- 4604 4605 fcmeq h10, s11, #0.0 4606 fcmeq d20, s21, #0.0 4607 4608// CHECK-ERROR: error: invalid operand for instruction 4609// CHECK-ERROR: fcmeq h10, s11, #0.0 4610// CHECK-ERROR: ^ 4611// CHECK-ERROR: error: invalid operand for instruction 4612// CHECK-ERROR: fcmeq d20, s21, #0.0 4613// CHECK-ERROR: ^ 4614 4615//---------------------------------------------------------------------- 4616// Scalar Floating-point Compare Mask Greater Than Or Equal 4617//---------------------------------------------------------------------- 4618 4619 fcmge s10, h11, s12 4620 fcmge d20, s21, d22 4621 4622// CHECK-ERROR: error: invalid operand for instruction 4623// CHECK-ERROR: fcmge s10, h11, s12 4624// CHECK-ERROR: ^ 4625// CHECK-ERROR: error: invalid operand for instruction 4626// CHECK-ERROR: fcmge d20, s21, d22 4627// CHECK-ERROR: ^ 4628 4629//---------------------------------------------------------------------- 4630// Scalar Floating-point Compare Mask Greater Than Or Equal To Zero 4631//---------------------------------------------------------------------- 4632 4633 fcmge h10, s11, #0.0 4634 fcmge d20, s21, #0.0 4635 4636// CHECK-ERROR: error: invalid operand for instruction 4637// CHECK-ERROR: fcmge h10, s11, #0.0 4638// CHECK-ERROR: ^ 4639// CHECK-ERROR: error: invalid operand for instruction 4640// CHECK-ERROR: fcmge d20, s21, #0.0 4641// CHECK-ERROR: ^ 4642 4643//---------------------------------------------------------------------- 4644// Scalar Floating-point Compare Mask Greather Than 4645//---------------------------------------------------------------------- 4646 4647 fcmgt s10, h11, s12 4648 fcmgt d20, s21, d22 4649 4650// CHECK-ERROR: error: invalid operand for instruction 4651// CHECK-ERROR: fcmgt s10, h11, s12 4652// CHECK-ERROR: ^ 4653// CHECK-ERROR: error: invalid operand for instruction 4654// CHECK-ERROR: fcmgt d20, s21, d22 4655// CHECK-ERROR: ^ 4656 4657//---------------------------------------------------------------------- 4658// Scalar Floating-point Compare Mask Greather Than Zero 4659//---------------------------------------------------------------------- 4660 4661 fcmgt h10, s11, #0.0 4662 fcmgt d20, s21, #0.0 4663 4664// CHECK-ERROR: error: invalid operand for instruction 4665// CHECK-ERROR: fcmgt h10, s11, #0.0 4666// CHECK-ERROR: ^ 4667// CHECK-ERROR: error: invalid operand for instruction 4668// CHECK-ERROR: fcmgt d20, s21, #0.0 4669// CHECK-ERROR: ^ 4670 4671//---------------------------------------------------------------------- 4672// Scalar Floating-point Compare Mask Less Than Or Equal To Zero 4673//---------------------------------------------------------------------- 4674 4675 fcmle h10, s11, #0.0 4676 fcmle d20, s21, #0.0 4677 4678// CHECK-ERROR: error: invalid operand for instruction 4679// CHECK-ERROR: fcmle h10, s11, #0.0 4680// CHECK-ERROR: ^ 4681// CHECK-ERROR: error: invalid operand for instruction 4682// CHECK-ERROR: fcmle d20, s21, #0.0 4683// CHECK-ERROR: ^ 4684 4685//---------------------------------------------------------------------- 4686// Scalar Floating-point Compare Mask Less Than 4687//---------------------------------------------------------------------- 4688 4689 fcmlt h10, s11, #0.0 4690 fcmlt d20, s21, #0.0 4691 4692// CHECK-ERROR: error: invalid operand for instruction 4693// CHECK-ERROR: fcmlt h10, s11, #0.0 4694// CHECK-ERROR: ^ 4695// CHECK-ERROR: error: invalid operand for instruction 4696// CHECK-ERROR: fcmlt d20, s21, #0.0 4697// CHECK-ERROR: ^ 4698 4699//---------------------------------------------------------------------- 4700// Scalar Floating-point Absolute Compare Mask Greater Than Or Equal 4701//---------------------------------------------------------------------- 4702 4703 facge s10, h11, s12 4704 facge d20, s21, d22 4705 4706// CHECK-ERROR: error: invalid operand for instruction 4707// CHECK-ERROR: facge s10, h11, s12 4708// CHECK-ERROR: ^ 4709// CHECK-ERROR: error: invalid operand for instruction 4710// CHECK-ERROR: facge d20, s21, d22 4711// CHECK-ERROR: ^ 4712 4713//---------------------------------------------------------------------- 4714// Scalar Floating-point Absolute Compare Mask Greater Than 4715//---------------------------------------------------------------------- 4716 4717 facgt s10, h11, s12 4718 facgt d20, d21, s22 4719 4720// CHECK-ERROR: error: invalid operand for instruction 4721// CHECK-ERROR: facgt s10, h11, s12 4722// CHECK-ERROR: ^ 4723// CHECK-ERROR: error: invalid operand for instruction 4724// CHECK-ERROR: facgt d20, d21, s22 4725// CHECK-ERROR: ^ 4726 4727//---------------------------------------------------------------------- 4728// Scalar Signed Saturating Accumulated of Unsigned Value 4729//---------------------------------------------------------------------- 4730 4731 suqadd b0, h1 4732 suqadd h0, s1 4733 suqadd s0, d1 4734 suqadd d0, b0 4735 4736// CHECK-ERROR: error: invalid operand for instruction 4737// CHECK-ERROR: suqadd b0, h1 4738// CHECK-ERROR: ^ 4739// CHECK-ERROR: error: invalid operand for instruction 4740// CHECK-ERROR: suqadd h0, s1 4741// CHECK-ERROR: ^ 4742// CHECK-ERROR: error: invalid operand for instruction 4743// CHECK-ERROR: suqadd s0, d1 4744// CHECK-ERROR: ^ 4745// CHECK-ERROR: error: invalid operand for instruction 4746// CHECK-ERROR: suqadd d0, b0 4747// CHECK-ERROR: ^ 4748 4749//---------------------------------------------------------------------- 4750// Scalar Unsigned Saturating Accumulated of Signed Value 4751//---------------------------------------------------------------------- 4752 4753 usqadd b0, h1 4754 usqadd h0, s1 4755 usqadd s0, d1 4756 usqadd d0, b1 4757 4758// CHECK-ERROR: error: invalid operand for instruction 4759// CHECK-ERROR: usqadd b0, h1 4760// CHECK-ERROR: ^ 4761// CHECK-ERROR: error: invalid operand for instruction 4762// CHECK-ERROR: usqadd h0, s1 4763// CHECK-ERROR: ^ 4764// CHECK-ERROR: error: invalid operand for instruction 4765// CHECK-ERROR: usqadd s0, d1 4766// CHECK-ERROR: ^ 4767// CHECK-ERROR: error: invalid operand for instruction 4768// CHECK-ERROR: usqadd d0, b1 4769// CHECK-ERROR: ^ 4770 4771//---------------------------------------------------------------------- 4772// Scalar Absolute Value 4773//---------------------------------------------------------------------- 4774 4775 abs d29, s24 4776 4777// CHECK-ERROR: error: invalid operand for instruction 4778// CHECK-ERROR: abs d29, s24 4779// CHECK-ERROR: ^ 4780 4781//---------------------------------------------------------------------- 4782// Scalar Negate 4783//---------------------------------------------------------------------- 4784 4785 neg d29, s24 4786 4787// CHECK-ERROR: error: invalid operand for instruction 4788// CHECK-ERROR: neg d29, s24 4789// CHECK-ERROR: ^ 4790 4791//---------------------------------------------------------------------- 4792// Signed Saturating Doubling Multiply-Add Long 4793//---------------------------------------------------------------------- 4794 4795 sqdmlal s17, h27, s12 4796 sqdmlal d19, s24, d12 4797 4798// CHECK-ERROR: error: invalid operand for instruction 4799// CHECK-ERROR: sqdmlal s17, h27, s12 4800// CHECK-ERROR: ^ 4801// CHECK-ERROR: error: too few operands for instruction 4802// CHECK-ERROR: sqdmlal d19, s24, d12 4803// CHECK-ERROR: ^ 4804 4805//---------------------------------------------------------------------- 4806// Signed Saturating Doubling Multiply-Subtract Long 4807//---------------------------------------------------------------------- 4808 4809 sqdmlsl s14, h12, s25 4810 sqdmlsl d12, s23, d13 4811 4812// CHECK-ERROR: error: invalid operand for instruction 4813// CHECK-ERROR: sqdmlsl s14, h12, s25 4814// CHECK-ERROR: ^ 4815// CHECK-ERROR: error: too few operands for instruction 4816// CHECK-ERROR: sqdmlsl d12, s23, d13 4817// CHECK-ERROR: ^ 4818 4819//---------------------------------------------------------------------- 4820// Signed Saturating Doubling Multiply Long 4821//---------------------------------------------------------------------- 4822 4823 sqdmull s12, h22, s12 4824 sqdmull d15, s22, d12 4825 4826// CHECK-ERROR: error: invalid operand for instruction 4827// CHECK-ERROR: sqdmull s12, h22, s12 4828// CHECK-ERROR: ^ 4829// CHECK-ERROR: error: too few operands for instruction 4830// CHECK-ERROR: sqdmull d15, s22, d12 4831// CHECK-ERROR: ^ 4832 4833//---------------------------------------------------------------------- 4834// Scalar Signed Saturating Extract Unsigned Narrow 4835//---------------------------------------------------------------------- 4836 4837 sqxtun b19, b14 4838 sqxtun h21, h15 4839 sqxtun s20, s12 4840 4841// CHECK-ERROR: error: invalid operand for instruction 4842// CHECK-ERROR: sqxtun b19, b14 4843// CHECK-ERROR: ^ 4844// CHECK-ERROR: error: invalid operand for instruction 4845// CHECK-ERROR: sqxtun h21, h15 4846// CHECK-ERROR: ^ 4847// CHECK-ERROR: error: invalid operand for instruction 4848// CHECK-ERROR: sqxtun s20, s12 4849// CHECK-ERROR: ^ 4850 4851//---------------------------------------------------------------------- 4852// Scalar Signed Saturating Extract Signed Narrow 4853//---------------------------------------------------------------------- 4854 4855 sqxtn b18, b18 4856 sqxtn h20, h17 4857 sqxtn s19, s14 4858 4859// CHECK-ERROR: error: invalid operand for instruction 4860// CHECK-ERROR: sqxtn b18, b18 4861// CHECK-ERROR: ^ 4862// CHECK-ERROR: error: invalid operand for instruction 4863// CHECK-ERROR: sqxtn h20, h17 4864// CHECK-ERROR: ^ 4865// CHECK-ERROR: error: invalid operand for instruction 4866// CHECK-ERROR: sqxtn s19, s14 4867// CHECK-ERROR: ^ 4868 4869 4870//---------------------------------------------------------------------- 4871// Scalar Unsigned Saturating Extract Narrow 4872//---------------------------------------------------------------------- 4873 4874 uqxtn b18, b18 4875 uqxtn h20, h17 4876 uqxtn s19, s14 4877 4878// CHECK-ERROR: error: invalid operand for instruction 4879// CHECK-ERROR: uqxtn b18, b18 4880// CHECK-ERROR: ^ 4881// CHECK-ERROR: error: invalid operand for instruction 4882// CHECK-ERROR: uqxtn h20, h17 4883// CHECK-ERROR: ^ 4884// CHECK-ERROR: error: invalid operand for instruction 4885// CHECK-ERROR: uqxtn s19, s14 4886// CHECK-ERROR: ^ 4887 4888//---------------------------------------------------------------------- 4889// Scalar Signed Shift Right (Immediate) 4890//---------------------------------------------------------------------- 4891 sshr d15, d16, #99 4892 4893// CHECK-ERROR: error: expected integer in range [1, 64] 4894// CHECK-ERROR: sshr d15, d16, #99 4895// CHECK-ERROR: ^ 4896 4897 sshr d15, s16, #31 4898 4899// CHECK-ERROR: error: invalid operand for instruction 4900// CHECK-ERROR: sshr d15, s16, #31 4901// CHECK-ERROR: ^ 4902 4903//---------------------------------------------------------------------- 4904// Scalar Unsigned Shift Right (Immediate) 4905//---------------------------------------------------------------------- 4906 4907 ushr d10, d17, #99 4908 4909// CHECK-ERROR: error: expected integer in range [1, 64] 4910// CHECK-ERROR: ushr d10, d17, #99 4911// CHECK-ERROR: ^ 4912 4913//---------------------------------------------------------------------- 4914// Scalar Signed Rounding Shift Right (Immediate) 4915//---------------------------------------------------------------------- 4916 4917 srshr d19, d18, #99 4918 4919// CHECK-ERROR: error: expected integer in range [1, 64] 4920// CHECK-ERROR: srshr d19, d18, #99 4921// CHECK-ERROR: ^ 4922 4923//---------------------------------------------------------------------- 4924// Scalar Unigned Rounding Shift Right (Immediate) 4925//---------------------------------------------------------------------- 4926 4927 urshr d20, d23, #99 4928 4929// CHECK-ERROR: error: expected integer in range [1, 64] 4930// CHECK-ERROR: urshr d20, d23, #99 4931// CHECK-ERROR: ^ 4932 4933//---------------------------------------------------------------------- 4934// Scalar Signed Shift Right and Accumulate (Immediate) 4935//---------------------------------------------------------------------- 4936 4937 ssra d18, d12, #99 4938 4939// CHECK-ERROR: error: expected integer in range [1, 64] 4940// CHECK-ERROR: ssra d18, d12, #99 4941// CHECK-ERROR: ^ 4942 4943//---------------------------------------------------------------------- 4944// Scalar Unsigned Shift Right and Accumulate (Immediate) 4945//---------------------------------------------------------------------- 4946 4947 usra d20, d13, #99 4948 4949// CHECK-ERROR: error: expected integer in range [1, 64] 4950// CHECK-ERROR: usra d20, d13, #99 4951// CHECK-ERROR: ^ 4952 4953//---------------------------------------------------------------------- 4954// Scalar Signed Rounding Shift Right and Accumulate (Immediate) 4955//---------------------------------------------------------------------- 4956 4957 srsra d15, d11, #99 4958 4959// CHECK-ERROR: error: expected integer in range [1, 64] 4960// CHECK-ERROR: srsra d15, d11, #99 4961// CHECK-ERROR: ^ 4962 4963//---------------------------------------------------------------------- 4964// Scalar Unsigned Rounding Shift Right and Accumulate (Immediate) 4965//---------------------------------------------------------------------- 4966 4967 ursra d18, d10, #99 4968 4969// CHECK-ERROR: error: expected integer in range [1, 64] 4970// CHECK-ERROR: ursra d18, d10, #99 4971// CHECK-ERROR: ^ 4972 4973//---------------------------------------------------------------------- 4974// Scalar Shift Left (Immediate) 4975//---------------------------------------------------------------------- 4976 4977 shl d7, d10, #99 4978 4979// CHECK-ERROR: error: expected integer in range [0, 63] 4980// CHECK-ERROR: shl d7, d10, #99 4981// CHECK-ERROR: ^ 4982 4983 shl d7, s16, #31 4984 4985// CHECK-ERROR: error: invalid operand for instruction 4986// CHECK-ERROR: shl d7, s16, #31 4987// CHECK-ERROR: ^ 4988 4989//---------------------------------------------------------------------- 4990// Signed Saturating Shift Left (Immediate) 4991//---------------------------------------------------------------------- 4992 4993 sqshl b11, b19, #99 4994 sqshl h13, h18, #99 4995 sqshl s14, s17, #99 4996 sqshl d15, d16, #99 4997 4998// CHECK-ERROR: error: expected integer in range [0, 7] 4999// CHECK-ERROR: sqshl b11, b19, #99 5000// CHECK-ERROR: ^ 5001// CHECK-ERROR: error: expected integer in range [0, 15] 5002// CHECK-ERROR: sqshl h13, h18, #99 5003// CHECK-ERROR: ^ 5004// CHECK-ERROR: error: expected integer in range [0, 31] 5005// CHECK-ERROR: sqshl s14, s17, #99 5006// CHECK-ERROR: ^ 5007// CHECK-ERROR: error: expected integer in range [0, 63] 5008// CHECK-ERROR: sqshl d15, d16, #99 5009// CHECK-ERROR: ^ 5010 5011//---------------------------------------------------------------------- 5012// Unsigned Saturating Shift Left (Immediate) 5013//---------------------------------------------------------------------- 5014 5015 uqshl b18, b15, #99 5016 uqshl h11, h18, #99 5017 uqshl s14, s19, #99 5018 uqshl d15, d12, #99 5019 5020// CHECK-ERROR: error: expected integer in range [0, 7] 5021// CHECK-ERROR: uqshl b18, b15, #99 5022// CHECK-ERROR: ^ 5023// CHECK-ERROR: error: expected integer in range [0, 15] 5024// CHECK-ERROR: uqshl h11, h18, #99 5025// CHECK-ERROR: ^ 5026// CHECK-ERROR: error: expected integer in range [0, 31] 5027// CHECK-ERROR: uqshl s14, s19, #99 5028// CHECK-ERROR: ^ 5029// CHECK-ERROR: error: expected integer in range [0, 63] 5030// CHECK-ERROR: uqshl d15, d12, #99 5031// CHECK-ERROR: ^ 5032 5033//---------------------------------------------------------------------- 5034// Signed Saturating Shift Left Unsigned (Immediate) 5035//---------------------------------------------------------------------- 5036 5037 sqshlu b15, b18, #99 5038 sqshlu h19, h17, #99 5039 sqshlu s16, s14, #99 5040 sqshlu d11, d13, #99 5041 5042// CHECK-ERROR: error: expected integer in range [0, 7] 5043// CHECK-ERROR: sqshlu b15, b18, #99 5044// CHECK-ERROR: ^ 5045// CHECK-ERROR: error: expected integer in range [0, 15] 5046// CHECK-ERROR: sqshlu h19, h17, #99 5047// CHECK-ERROR: ^ 5048// CHECK-ERROR: error: expected integer in range [0, 31] 5049// CHECK-ERROR: sqshlu s16, s14, #99 5050// CHECK-ERROR: ^ 5051// CHECK-ERROR: error: expected integer in range [0, 63] 5052// CHECK-ERROR: sqshlu d11, d13, #99 5053// CHECK-ERROR: ^ 5054 5055//---------------------------------------------------------------------- 5056// Shift Right And Insert (Immediate) 5057//---------------------------------------------------------------------- 5058 5059 sri d10, d12, #99 5060 5061// CHECK-ERROR: error: expected integer in range [1, 64] 5062// CHECK-ERROR: sri d10, d12, #99 5063// CHECK-ERROR: ^ 5064 5065//---------------------------------------------------------------------- 5066// Shift Left And Insert (Immediate) 5067//---------------------------------------------------------------------- 5068 5069 sli d10, d14, #99 5070 5071// CHECK-ERROR: error: expected integer in range [0, 63] 5072// CHECK-ERROR: sli d10, d14, #99 5073// CHECK-ERROR: ^ 5074 5075//---------------------------------------------------------------------- 5076// Signed Saturating Shift Right Narrow (Immediate) 5077//---------------------------------------------------------------------- 5078 5079 sqshrn b10, h15, #99 5080 sqshrn h17, s10, #99 5081 sqshrn s18, d10, #99 5082 5083// CHECK-ERROR: error: expected integer in range [1, 8] 5084// CHECK-ERROR: sqshrn b10, h15, #99 5085// CHECK-ERROR: ^ 5086// CHECK-ERROR: error: expected integer in range [1, 16] 5087// CHECK-ERROR: sqshrn h17, s10, #99 5088// CHECK-ERROR: ^ 5089// CHECK-ERROR: error: expected integer in range [1, 32] 5090// CHECK-ERROR: sqshrn s18, d10, #99 5091// CHECK-ERROR: ^ 5092 5093//---------------------------------------------------------------------- 5094// Unsigned Saturating Shift Right Narrow (Immediate) 5095//---------------------------------------------------------------------- 5096 5097 uqshrn b12, h10, #99 5098 uqshrn h10, s14, #99 5099 uqshrn s10, d12, #99 5100 5101// CHECK-ERROR: error: expected integer in range [1, 8] 5102// CHECK-ERROR: uqshrn b12, h10, #99 5103// CHECK-ERROR: ^ 5104// CHECK-ERROR: error: expected integer in range [1, 16] 5105// CHECK-ERROR: uqshrn h10, s14, #99 5106// CHECK-ERROR: ^ 5107// CHECK-ERROR: error: expected integer in range [1, 32] 5108// CHECK-ERROR: uqshrn s10, d12, #99 5109// CHECK-ERROR: ^ 5110 5111//---------------------------------------------------------------------- 5112// Signed Saturating Rounded Shift Right Narrow (Immediate) 5113//---------------------------------------------------------------------- 5114 5115 sqrshrn b10, h13, #99 5116 sqrshrn h15, s10, #99 5117 sqrshrn s15, d12, #99 5118 5119// CHECK-ERROR: error: expected integer in range [1, 8] 5120// CHECK-ERROR: sqrshrn b10, h13, #99 5121// CHECK-ERROR: ^ 5122// CHECK-ERROR: error: expected integer in range [1, 16] 5123// CHECK-ERROR: sqrshrn h15, s10, #99 5124// CHECK-ERROR: ^ 5125// CHECK-ERROR: error: expected integer in range [1, 32] 5126// CHECK-ERROR: sqrshrn s15, d12, #99 5127// CHECK-ERROR: ^ 5128 5129//---------------------------------------------------------------------- 5130// Unsigned Saturating Rounded Shift Right Narrow (Immediate) 5131//---------------------------------------------------------------------- 5132 5133 uqrshrn b10, h12, #99 5134 uqrshrn h12, s10, #99 5135 uqrshrn s10, d10, #99 5136 5137// CHECK-ERROR: error: expected integer in range [1, 8] 5138// CHECK-ERROR: uqrshrn b10, h12, #99 5139// CHECK-ERROR: ^ 5140// CHECK-ERROR: error: expected integer in range [1, 16] 5141// CHECK-ERROR: uqrshrn h12, s10, #99 5142// CHECK-ERROR: ^ 5143// CHECK-ERROR: error: expected integer in range [1, 32] 5144// CHECK-ERROR: uqrshrn s10, d10, #99 5145// CHECK-ERROR: ^ 5146 5147//---------------------------------------------------------------------- 5148// Signed Saturating Shift Right Unsigned Narrow (Immediate) 5149//---------------------------------------------------------------------- 5150 5151 sqshrun b15, h10, #99 5152 sqshrun h20, s14, #99 5153 sqshrun s10, d15, #99 5154 5155// CHECK-ERROR: error: expected integer in range [1, 8] 5156// CHECK-ERROR: sqshrun b15, h10, #99 5157// CHECK-ERROR: ^ 5158// CHECK-ERROR: error: expected integer in range [1, 16] 5159// CHECK-ERROR: sqshrun h20, s14, #99 5160// CHECK-ERROR: ^ 5161// CHECK-ERROR: error: expected integer in range [1, 32] 5162// CHECK-ERROR: sqshrun s10, d15, #99 5163// CHECK-ERROR: ^ 5164 5165//---------------------------------------------------------------------- 5166// Signed Saturating Rounded Shift Right Unsigned Narrow (Immediate) 5167//---------------------------------------------------------------------- 5168 5169 sqrshrun b17, h10, #99 5170 sqrshrun h10, s13, #99 5171 sqrshrun s22, d16, #99 5172 5173// CHECK-ERROR: error: expected integer in range [1, 8] 5174// CHECK-ERROR: sqrshrun b17, h10, #99 5175// CHECK-ERROR: ^ 5176// CHECK-ERROR: error: expected integer in range [1, 16] 5177// CHECK-ERROR: sqrshrun h10, s13, #99 5178// CHECK-ERROR: ^ 5179// CHECK-ERROR: error: expected integer in range [1, 32] 5180// CHECK-ERROR: sqrshrun s22, d16, #99 5181// CHECK-ERROR: ^ 5182 5183//---------------------------------------------------------------------- 5184// Scalar Signed Fixed-point Convert To Floating-Point (Immediate) 5185//---------------------------------------------------------------------- 5186 5187 scvtf s22, s13, #0 5188 scvtf s22, s13, #33 5189 scvtf d21, d12, #65 5190 scvtf d21, s12, #31 5191 5192// CHECK-ERROR: error: expected integer in range [1, 32] 5193// CHECK-ERROR: scvtf s22, s13, #0 5194// CHECK-ERROR: ^ 5195// CHECK-ERROR: error: expected integer in range [1, 32] 5196// CHECK-ERROR: scvtf s22, s13, #33 5197// CHECK-ERROR: ^ 5198// CHECK-ERROR: error: expected integer in range [1, 64] 5199// CHECK-ERROR: scvtf d21, d12, #65 5200// CHECK-ERROR: ^ 5201// CHECK-ERROR: error: invalid operand for instruction 5202// CHECK-ERROR: scvtf d21, s12, #31 5203// CHECK-ERROR: ^ 5204 5205//---------------------------------------------------------------------- 5206// Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate) 5207//---------------------------------------------------------------------- 5208 5209 ucvtf s22, s13, #34 5210 ucvtf d21, d14, #65 5211 ucvtf d21, s14, #64 5212 5213// CHECK-ERROR: error: expected integer in range [1, 32] 5214// CHECK-ERROR: ucvtf s22, s13, #34 5215// CHECK-ERROR: ^ 5216// CHECK-ERROR: error: expected integer in range [1, 64] 5217// CHECK-ERROR: ucvtf d21, d14, #65 5218// CHECK-ERROR: ^ 5219// CHECK-ERROR: error: invalid operand for instruction 5220// CHECK-ERROR: ucvtf d21, s14, #64 5221// CHECK-ERROR: ^ 5222 5223//------------------------------------------------------------------------------ 5224// Element reverse 5225//------------------------------------------------------------------------------ 5226 rev64 v6.2d, v8.2d 5227 rev32 v30.2s, v31.2s 5228 rev32 v30.4s, v31.4s 5229 rev32 v30.2d, v31.2d 5230 rev16 v21.4h, v1.4h 5231 rev16 v21.8h, v1.8h 5232 rev16 v21.2s, v1.2s 5233 rev16 v21.4s, v1.4s 5234 rev16 v21.2d, v1.2d 5235 5236// CHECK-ERROR: error: invalid operand for instruction 5237// CHECK-ERROR: rev64 v6.2d, v8.2d 5238// CHECK-ERROR: ^ 5239// CHECK-ERROR: error: invalid operand for instruction 5240// CHECK-ERROR: rev32 v30.2s, v31.2s 5241// CHECK-ERROR: ^ 5242// CHECK-ERROR: error: invalid operand for instruction 5243// CHECK-ERROR: rev32 v30.4s, v31.4s 5244// CHECK-ERROR: ^ 5245// CHECK-ERROR: error: invalid operand for instruction 5246// CHECK-ERROR: rev32 v30.2d, v31.2d 5247// CHECK-ERROR: ^ 5248// CHECK-ERROR: error: invalid operand for instruction 5249// CHECK-ERROR: rev16 v21.4h, v1.4h 5250// CHECK-ERROR: ^ 5251// CHECK-ERROR: error: invalid operand for instruction 5252// CHECK-ERROR: rev16 v21.8h, v1.8h 5253// CHECK-ERROR: ^ 5254// CHECK-ERROR: error: invalid operand for instruction 5255// CHECK-ERROR: rev16 v21.2s, v1.2s 5256// CHECK-ERROR: ^ 5257// CHECK-ERROR: error: invalid operand for instruction 5258// CHECK-ERROR: rev16 v21.4s, v1.4s 5259// CHECK-ERROR: ^ 5260// CHECK-ERROR: error: invalid operand for instruction 5261// CHECK-ERROR: rev16 v21.2d, v1.2d 5262// CHECK-ERROR: ^ 5263 5264//------------------------------------------------------------------------------ 5265// Signed integer pairwise add long 5266//------------------------------------------------------------------------------ 5267 5268 saddlp v3.8h, v21.8h 5269 saddlp v8.8b, v5.8b 5270 saddlp v9.8h, v1.4s 5271 saddlp v0.4s, v1.2d 5272 5273// CHECK-ERROR: error: invalid operand for instruction 5274// CHECK-ERROR: saddlp v3.8h, v21.8h 5275// CHECK-ERROR: ^ 5276// CHECK-ERROR: error: invalid operand for instruction 5277// CHECK-ERROR: saddlp v8.8b, v5.8b 5278// CHECK-ERROR: ^ 5279// CHECK-ERROR: error: invalid operand for instruction 5280// CHECK-ERROR: saddlp v9.8h, v1.4s 5281// CHECK-ERROR: ^ 5282// CHECK-ERROR: error: invalid operand for instruction 5283// CHECK-ERROR: saddlp v0.4s, v1.2d 5284// CHECK-ERROR: ^ 5285 5286//------------------------------------------------------------------------------ 5287// Unsigned integer pairwise add long 5288//------------------------------------------------------------------------------ 5289 5290 uaddlp v3.8h, v21.8h 5291 uaddlp v8.8b, v5.8b 5292 uaddlp v9.8h, v1.4s 5293 uaddlp v0.4s, v1.2d 5294 5295// CHECK-ERROR: error: invalid operand for instruction 5296// CHECK-ERROR: uaddlp v3.8h, v21.8h 5297// CHECK-ERROR: ^ 5298// CHECK-ERROR: error: invalid operand for instruction 5299// CHECK-ERROR: uaddlp v8.8b, v5.8b 5300// CHECK-ERROR: ^ 5301// CHECK-ERROR: error: invalid operand for instruction 5302// CHECK-ERROR: uaddlp v9.8h, v1.4s 5303// CHECK-ERROR: ^ 5304// CHECK-ERROR: error: invalid operand for instruction 5305// CHECK-ERROR: uaddlp v0.4s, v1.2d 5306// CHECK-ERROR: ^ 5307 5308//------------------------------------------------------------------------------ 5309// Signed integer pairwise add and accumulate long 5310//------------------------------------------------------------------------------ 5311 5312 sadalp v3.16b, v21.16b 5313 sadalp v8.4h, v5.4h 5314 sadalp v9.4s, v1.4s 5315 sadalp v0.4h, v1.2s 5316 sadalp v12.2d, v4.8h 5317 5318// CHECK-ERROR: error: invalid operand for instruction 5319// CHECK-ERROR: sadalp v3.16b, v21.16b 5320// CHECK-ERROR: ^ 5321// CHECK-ERROR: error: invalid operand for instruction 5322// CHECK-ERROR: sadalp v8.4h, v5.4h 5323// CHECK-ERROR: ^ 5324// CHECK-ERROR: error: invalid operand for instruction 5325// CHECK-ERROR: sadalp v9.4s, v1.4s 5326// CHECK-ERROR: ^ 5327// CHECK-ERROR: error: invalid operand for instruction 5328// CHECK-ERROR: sadalp v0.4h, v1.2s 5329// CHECK-ERROR: ^ 5330// CHECK-ERROR: error: invalid operand for instruction 5331// CHECK-ERROR: sadalp v12.2d, v4.8h 5332// CHECK-ERROR: ^ 5333 5334//------------------------------------------------------------------------------ 5335// Unsigned integer pairwise add and accumulate long 5336//------------------------------------------------------------------------------ 5337 5338 uadalp v3.16b, v21.16b 5339 uadalp v8.4h, v5.4h 5340 uadalp v9.4s, v1.4s 5341 uadalp v0.4h, v1.2s 5342 uadalp v12.2d, v4.8h 5343 5344// CHECK-ERROR: error: invalid operand for instruction 5345// CHECK-ERROR: uadalp v3.16b, v21.16b 5346// CHECK-ERROR: ^ 5347// CHECK-ERROR: error: invalid operand for instruction 5348// CHECK-ERROR: uadalp v8.4h, v5.4h 5349// CHECK-ERROR: ^ 5350// CHECK-ERROR: error: invalid operand for instruction 5351// CHECK-ERROR: uadalp v9.4s, v1.4s 5352// CHECK-ERROR: ^ 5353// CHECK-ERROR: error: invalid operand for instruction 5354// CHECK-ERROR: uadalp v0.4h, v1.2s 5355// CHECK-ERROR: ^ 5356// CHECK-ERROR: error: invalid operand for instruction 5357// CHECK-ERROR: uadalp v12.2d, v4.8h 5358// CHECK-ERROR: ^ 5359 5360//------------------------------------------------------------------------------ 5361// Signed integer saturating accumulate of unsigned value 5362//------------------------------------------------------------------------------ 5363 5364 suqadd v0.16b, v31.8b 5365 suqadd v1.8b, v9.8h 5366 suqadd v13.4h, v21.4s 5367 suqadd v4.2s, v0.2d 5368 5369// CHECK-ERROR: error: invalid operand for instruction 5370// CHECK-ERROR: suqadd v0.16b, v31.8b 5371// CHECK-ERROR: ^ 5372// CHECK-ERROR: error: invalid operand for instruction 5373// CHECK-ERROR: suqadd v1.8b, v9.8h 5374// CHECK-ERROR: ^ 5375// CHECK-ERROR: error: invalid operand for instruction 5376// CHECK-ERROR: suqadd v13.4h, v21.4s 5377// CHECK-ERROR: ^ 5378// CHECK-ERROR: error: invalid operand for instruction 5379// CHECK-ERROR: suqadd v4.2s, v0.2d 5380// CHECK-ERROR: ^ 5381 5382//------------------------------------------------------------------------------ 5383// Unsigned integer saturating accumulate of signed value 5384//------------------------------------------------------------------------------ 5385 5386 usqadd v0.16b, v31.8b 5387 usqadd v2.8h, v4.4h 5388 usqadd v13.4h, v21.4s 5389 usqadd v4.2s, v0.2d 5390 5391// CHECK-ERROR: error: invalid operand for instruction 5392// CHECK-ERROR: usqadd v0.16b, v31.8b 5393// CHECK-ERROR: ^ 5394// CHECK-ERROR: error: invalid operand for instruction 5395// CHECK-ERROR: usqadd v2.8h, v4.4h 5396// CHECK-ERROR: ^ 5397// CHECK-ERROR: error: invalid operand for instruction 5398// CHECK-ERROR: usqadd v13.4h, v21.4s 5399// CHECK-ERROR: ^ 5400// CHECK-ERROR: error: invalid operand for instruction 5401// CHECK-ERROR: usqadd v4.2s, v0.2d 5402// CHECK-ERROR: ^ 5403 5404//------------------------------------------------------------------------------ 5405// Integer saturating absolute 5406//------------------------------------------------------------------------------ 5407 5408 sqabs v0.16b, v31.8b 5409 sqabs v2.8h, v4.4h 5410 sqabs v6.4s, v8.2s 5411 sqabs v6.2d, v8.2s 5412 5413// CHECK-ERROR: error: invalid operand for instruction 5414// CHECK-ERROR: sqabs v0.16b, v31.8b 5415// CHECK-ERROR: ^ 5416// CHECK-ERROR: error: invalid operand for instruction 5417// CHECK-ERROR: sqabs v2.8h, v4.4h 5418// CHECK-ERROR: ^ 5419// CHECK-ERROR: error: invalid operand for instruction 5420// CHECK-ERROR: sqabs v6.4s, v8.2s 5421// CHECK-ERROR: ^ 5422// CHECK-ERROR: error: invalid operand for instruction 5423// CHECK-ERROR: sqabs v6.2d, v8.2s 5424// CHECK-ERROR: ^ 5425 5426//------------------------------------------------------------------------------ 5427// Signed integer saturating negate 5428//------------------------------------------------------------------------------ 5429 5430 sqneg v0.16b, v31.8b 5431 sqneg v2.8h, v4.4h 5432 sqneg v6.4s, v8.2s 5433 sqneg v6.2d, v8.2s 5434 5435// CHECK-ERROR: error: invalid operand for instruction 5436// CHECK-ERROR: sqneg v0.16b, v31.8b 5437// CHECK-ERROR: ^ 5438// CHECK-ERROR: error: invalid operand for instruction 5439// CHECK-ERROR: sqneg v2.8h, v4.4h 5440// CHECK-ERROR: ^ 5441// CHECK-ERROR: error: invalid operand for instruction 5442// CHECK-ERROR: sqneg v6.4s, v8.2s 5443// CHECK-ERROR: ^ 5444// CHECK-ERROR: error: invalid operand for instruction 5445// CHECK-ERROR: sqneg v6.2d, v8.2s 5446// CHECK-ERROR: ^ 5447 5448//------------------------------------------------------------------------------ 5449// Integer absolute 5450//------------------------------------------------------------------------------ 5451 5452 abs v0.16b, v31.8b 5453 abs v2.8h, v4.4h 5454 abs v6.4s, v8.2s 5455 abs v6.2d, v8.2s 5456 5457// CHECK-ERROR: error: invalid operand for instruction 5458// CHECK-ERROR: abs v0.16b, v31.8b 5459// CHECK-ERROR: ^ 5460// CHECK-ERROR: error: invalid operand for instruction 5461// CHECK-ERROR: abs v2.8h, v4.4h 5462// CHECK-ERROR: ^ 5463// CHECK-ERROR: error: invalid operand for instruction 5464// CHECK-ERROR: abs v6.4s, v8.2s 5465// CHECK-ERROR: ^ 5466// CHECK-ERROR: error: invalid operand for instruction 5467// CHECK-ERROR: abs v6.2d, v8.2s 5468// CHECK-ERROR: ^ 5469 5470//------------------------------------------------------------------------------ 5471// Integer count leading sign bits 5472//------------------------------------------------------------------------------ 5473 5474 cls v0.2d, v31.2d 5475 5476// CHECK-ERROR: error: invalid operand for instruction 5477// CHECK-ERROR: cls v0.2d, v31.2d 5478// CHECK-ERROR: ^ 5479 5480//------------------------------------------------------------------------------ 5481// Integer count leading zeros 5482//------------------------------------------------------------------------------ 5483 5484 clz v0.2d, v31.2d 5485 5486// CHECK-ERROR: error: invalid operand for instruction 5487// CHECK-ERROR: clz v0.2d, v31.2d 5488// CHECK-ERROR: ^ 5489 5490//------------------------------------------------------------------------------ 5491// Population count 5492//------------------------------------------------------------------------------ 5493 5494 cnt v2.8h, v4.8h 5495 cnt v6.4s, v8.4s 5496 cnt v6.2d, v8.2d 5497 cnt v13.4h, v21.4h 5498 cnt v4.2s, v0.2s 5499 5500// CHECK-ERROR: error: invalid operand for instruction 5501// CHECK-ERROR: cnt v2.8h, v4.8h 5502// CHECK-ERROR: ^ 5503// CHECK-ERROR: error: invalid operand for instruction 5504// CHECK-ERROR: cnt v6.4s, v8.4s 5505// CHECK-ERROR: ^ 5506// CHECK-ERROR: error: invalid operand for instruction 5507// CHECK-ERROR: cnt v6.2d, v8.2d 5508// CHECK-ERROR: ^ 5509// CHECK-ERROR: error: invalid operand for instruction 5510// CHECK-ERROR: cnt v13.4h, v21.4h 5511// CHECK-ERROR: ^ 5512// CHECK-ERROR: error: invalid operand for instruction 5513// CHECK-ERROR: cnt v4.2s, v0.2s 5514// CHECK-ERROR: ^ 5515 5516 5517//------------------------------------------------------------------------------ 5518// Bitwise NOT 5519//------------------------------------------------------------------------------ 5520 5521 not v2.8h, v4.8h 5522 not v6.4s, v8.4s 5523 not v6.2d, v8.2d 5524 not v13.4h, v21.4h 5525 not v4.2s, v0.2s 5526 5527// CHECK-ERROR: error: invalid operand for instruction 5528// CHECK-ERROR: not v2.8h, v4.8h 5529// CHECK-ERROR: ^ 5530// CHECK-ERROR: error: invalid operand for instruction 5531// CHECK-ERROR: not v6.4s, v8.4s 5532// CHECK-ERROR: ^ 5533// CHECK-ERROR: error: invalid operand for instruction 5534// CHECK-ERROR: not v6.2d, v8.2d 5535// CHECK-ERROR: ^ 5536// CHECK-ERROR: error: invalid operand for instruction 5537// CHECK-ERROR: not v13.4h, v21.4h 5538// CHECK-ERROR: ^ 5539// CHECK-ERROR: error: invalid operand for instruction 5540// CHECK-ERROR: not v4.2s, v0.2s 5541// CHECK-ERROR: ^ 5542 5543//------------------------------------------------------------------------------ 5544// Bitwise reverse 5545//------------------------------------------------------------------------------ 5546 5547 rbit v2.8h, v4.8h 5548 rbit v6.4s, v8.4s 5549 rbit v6.2d, v8.2d 5550 rbit v13.4h, v21.4h 5551 rbit v4.2s, v0.2s 5552 5553// CHECK-ERROR: error: invalid operand for instruction 5554// CHECK-ERROR: rbit v2.8h, v4.8h 5555// CHECK-ERROR: ^ 5556// CHECK-ERROR: error: invalid operand for instruction 5557// CHECK-ERROR: rbit v6.4s, v8.4s 5558// CHECK-ERROR: ^ 5559// CHECK-ERROR: error: invalid operand for instruction 5560// CHECK-ERROR: rbit v6.2d, v8.2d 5561// CHECK-ERROR: ^ 5562// CHECK-ERROR: error: invalid operand for instruction 5563// CHECK-ERROR: rbit v13.4h, v21.4h 5564// CHECK-ERROR: ^ 5565// CHECK-ERROR: error: invalid operand for instruction 5566// CHECK-ERROR: rbit v4.2s, v0.2s 5567// CHECK-ERROR: ^ 5568 5569//------------------------------------------------------------------------------ 5570// Floating-point absolute 5571//------------------------------------------------------------------------------ 5572 5573 fabs v0.16b, v31.16b 5574 fabs v2.8h, v4.8h 5575 fabs v1.8b, v9.8b 5576 fabs v13.4h, v21.4h 5577 5578// CHECK-ERROR: error: invalid operand for instruction 5579// CHECK-ERROR: fabs v0.16b, v31.16b 5580// CHECK-ERROR: ^ 5581// CHECK-ERROR: error: invalid operand for instruction 5582// CHECK-ERROR: fabs v2.8h, v4.8h 5583// CHECK-ERROR: ^ 5584// CHECK-ERROR: error: invalid operand for instruction 5585// CHECK-ERROR: fabs v1.8b, v9.8b 5586// CHECK-ERROR: ^ 5587// CHECK-ERROR: error: invalid operand for instruction 5588// CHECK-ERROR: fabs v13.4h, v21.4h 5589// CHECK-ERROR: ^ 5590 5591//------------------------------------------------------------------------------ 5592// Floating-point negate 5593//------------------------------------------------------------------------------ 5594 5595 fneg v0.16b, v31.16b 5596 fneg v2.8h, v4.8h 5597 fneg v1.8b, v9.8b 5598 fneg v13.4h, v21.4h 5599 5600// CHECK-ERROR: error: invalid operand for instruction 5601// CHECK-ERROR: fneg v0.16b, v31.16b 5602// CHECK-ERROR: ^ 5603// CHECK-ERROR: error: invalid operand for instruction 5604// CHECK-ERROR: fneg v2.8h, v4.8h 5605// CHECK-ERROR: ^ 5606// CHECK-ERROR: error: invalid operand for instruction 5607// CHECK-ERROR: fneg v1.8b, v9.8b 5608// CHECK-ERROR: ^ 5609// CHECK-ERROR: error: invalid operand for instruction 5610// CHECK-ERROR: fneg v13.4h, v21.4h 5611// CHECK-ERROR: ^ 5612 5613//------------------------------------------------------------------------------ 5614// Integer extract and narrow 5615//------------------------------------------------------------------------------ 5616 5617 xtn v0.16b, v31.8h 5618 xtn v2.8h, v4.4s 5619 xtn v6.4s, v8.2d 5620 xtn2 v1.8b, v9.8h 5621 xtn2 v13.4h, v21.4s 5622 xtn2 v4.2s, v0.2d 5623 5624// CHECK-ERROR: error: invalid operand for instruction 5625// CHECK-ERROR: xtn v0.16b, v31.8h 5626// CHECK-ERROR: ^ 5627// CHECK-ERROR: error: invalid operand for instruction 5628// CHECK-ERROR: xtn v2.8h, v4.4s 5629// CHECK-ERROR: ^ 5630// CHECK-ERROR: error: invalid operand for instruction 5631// CHECK-ERROR: xtn v6.4s, v8.2d 5632// CHECK-ERROR: ^ 5633// CHECK-ERROR: error: invalid operand for instruction 5634// CHECK-ERROR: xtn2 v1.8b, v9.8h 5635// CHECK-ERROR: ^ 5636// CHECK-ERROR: error: invalid operand for instruction 5637// CHECK-ERROR: xtn2 v13.4h, v21.4s 5638// CHECK-ERROR: ^ 5639// CHECK-ERROR: error: invalid operand for instruction 5640// CHECK-ERROR: xtn2 v4.2s, v0.2d 5641// CHECK-ERROR: ^ 5642 5643//------------------------------------------------------------------------------ 5644// Signed integer saturating extract and unsigned narrow 5645//------------------------------------------------------------------------------ 5646 5647 sqxtun v0.16b, v31.8h 5648 sqxtun v2.8h, v4.4s 5649 sqxtun v6.4s, v8.2d 5650 sqxtun2 v1.8b, v9.8h 5651 sqxtun2 v13.4h, v21.4s 5652 sqxtun2 v4.2s, v0.2d 5653 5654// CHECK-ERROR: error: invalid operand for instruction 5655// CHECK-ERROR: sqxtun v0.16b, v31.8h 5656// CHECK-ERROR: ^ 5657// CHECK-ERROR: error: invalid operand for instruction 5658// CHECK-ERROR: sqxtun v2.8h, v4.4s 5659// CHECK-ERROR: ^ 5660// CHECK-ERROR: error: invalid operand for instruction 5661// CHECK-ERROR: sqxtun v6.4s, v8.2d 5662// CHECK-ERROR: ^ 5663// CHECK-ERROR: error: invalid operand for instruction 5664// CHECK-ERROR: sqxtun2 v1.8b, v9.8h 5665// CHECK-ERROR: ^ 5666// CHECK-ERROR: error: invalid operand for instruction 5667// CHECK-ERROR: sqxtun2 v13.4h, v21.4s 5668// CHECK-ERROR: ^ 5669// CHECK-ERROR: error: invalid operand for instruction 5670// CHECK-ERROR: sqxtun2 v4.2s, v0.2d 5671// CHECK-ERROR: ^ 5672 5673//------------------------------------------------------------------------------ 5674// Signed integer saturating extract and narrow 5675//------------------------------------------------------------------------------ 5676 5677 sqxtn v0.16b, v31.8h 5678 sqxtn v2.8h, v4.4s 5679 sqxtn v6.4s, v8.2d 5680 sqxtn2 v1.8b, v9.8h 5681 sqxtn2 v13.4h, v21.4s 5682 sqxtn2 v4.2s, v0.2d 5683 5684// CHECK-ERROR: error: invalid operand for instruction 5685// CHECK-ERROR: sqxtn v0.16b, v31.8h 5686// CHECK-ERROR: ^ 5687// CHECK-ERROR: error: invalid operand for instruction 5688// CHECK-ERROR: sqxtn v2.8h, v4.4s 5689// CHECK-ERROR: ^ 5690// CHECK-ERROR: error: invalid operand for instruction 5691// CHECK-ERROR: sqxtn v6.4s, v8.2d 5692// CHECK-ERROR: ^ 5693// CHECK-ERROR: error: invalid operand for instruction 5694// CHECK-ERROR: sqxtn2 v1.8b, v9.8h 5695// CHECK-ERROR: ^ 5696// CHECK-ERROR: error: invalid operand for instruction 5697// CHECK-ERROR: sqxtn2 v13.4h, v21.4s 5698// CHECK-ERROR: ^ 5699// CHECK-ERROR: error: invalid operand for instruction 5700// CHECK-ERROR: sqxtn2 v4.2s, v0.2d 5701// CHECK-ERROR: ^ 5702 5703//------------------------------------------------------------------------------ 5704// Unsigned integer saturating extract and narrow 5705//------------------------------------------------------------------------------ 5706 5707 uqxtn v0.16b, v31.8h 5708 uqxtn v2.8h, v4.4s 5709 uqxtn v6.4s, v8.2d 5710 uqxtn2 v1.8b, v9.8h 5711 uqxtn2 v13.4h, v21.4s 5712 uqxtn2 v4.2s, v0.2d 5713 5714// CHECK-ERROR: error: invalid operand for instruction 5715// CHECK-ERROR: uqxtn v0.16b, v31.8h 5716// CHECK-ERROR: ^ 5717// CHECK-ERROR: error: invalid operand for instruction 5718// CHECK-ERROR: uqxtn v2.8h, v4.4s 5719// CHECK-ERROR: ^ 5720// CHECK-ERROR: error: invalid operand for instruction 5721// CHECK-ERROR: uqxtn v6.4s, v8.2d 5722// CHECK-ERROR: ^ 5723// CHECK-ERROR: error: invalid operand for instruction 5724// CHECK-ERROR: uqxtn2 v1.8b, v9.8h 5725// CHECK-ERROR: ^ 5726// CHECK-ERROR: error: invalid operand for instruction 5727// CHECK-ERROR: uqxtn2 v13.4h, v21.4s 5728// CHECK-ERROR: ^ 5729// CHECK-ERROR: error: invalid operand for instruction 5730// CHECK-ERROR: uqxtn2 v4.2s, v0.2d 5731// CHECK-ERROR: ^ 5732 5733//------------------------------------------------------------------------------ 5734// Integer shift left long 5735//------------------------------------------------------------------------------ 5736 5737 shll2 v2.8h, v4.16b, #7 5738 shll2 v6.4s, v8.8h, #15 5739 shll2 v6.2d, v8.4s, #31 5740 shll v2.8h, v4.16b, #8 5741 shll v6.4s, v8.8h, #16 5742 shll v6.2d, v8.4s, #32 5743 shll v2.8h, v4.8b, #8 5744 shll v6.4s, v8.4h, #16 5745 shll v6.2d, v8.2s, #32 5746 shll2 v2.8h, v4.8b, #5 5747 shll2 v6.4s, v8.4h, #14 5748 shll2 v6.2d, v8.2s, #1 5749 5750// CHECK-ERROR: error: invalid operand for instruction 5751// CHECK-ERROR: shll2 v2.8h, v4.16b, #7 5752// CHECK-ERROR: ^ 5753// CHECK-ERROR: error: invalid operand for instruction 5754// CHECK-ERROR: shll2 v6.4s, v8.8h, #15 5755// CHECK-ERROR: ^ 5756// CHECK-ERROR: error: invalid operand for instruction 5757// CHECK-ERROR: shll2 v6.2d, v8.4s, #31 5758// CHECK-ERROR: ^ 5759// CHECK-ERROR: error: invalid operand for instruction 5760// CHECK-ERROR: shll v2.8h, v4.16b, #8 5761// CHECK-ERROR: ^ 5762// CHECK-ERROR: error: invalid operand for instruction 5763// CHECK-ERROR: shll v6.4s, v8.8h, #16 5764// CHECK-ERROR: ^ 5765// CHECK-ERROR: error: invalid operand for instruction 5766// CHECK-ERROR: shll v6.2d, v8.4s, #32 5767// CHECK-ERROR: ^ 5768// CHECK-ERROR: error: invalid operand for instruction 5769// CHECK-ERROR: shll2 v2.8h, v4.8b, #5 5770// CHECK-ERROR: ^ 5771// CHECK-ERROR: error: invalid operand for instruction 5772// CHECK-ERROR: shll2 v6.4s, v8.4h, #14 5773// CHECK-ERROR: ^ 5774// CHECK-ERROR: error: invalid operand for instruction 5775// CHECK-ERROR: shll2 v6.2d, v8.2s, #1 5776// CHECK-ERROR: ^ 5777 5778//------------------------------------------------------------------------------ 5779// Floating-point convert downsize 5780//------------------------------------------------------------------------------ 5781 5782 fcvtn v2.8h, v4.4s 5783 fcvtn v6.4s, v8.2d 5784 fcvtn2 v13.4h, v21.4s 5785 fcvtn2 v4.2s, v0.2d 5786 5787// CHECK-ERROR: error: invalid operand for instruction 5788// CHECK-ERROR: fcvtn v2.8h, v4.4s 5789// CHECK-ERROR: ^ 5790// CHECK-ERROR: error: invalid operand for instruction 5791// CHECK-ERROR: fcvtn v6.4s, v8.2d 5792// CHECK-ERROR: ^ 5793// CHECK-ERROR: error: invalid operand for instruction 5794// CHECK-ERROR: fcvtn2 v13.4h, v21.4s 5795// CHECK-ERROR: ^ 5796// CHECK-ERROR: error: invalid operand for instruction 5797// CHECK-ERROR: fcvtn2 v4.2s, v0.2d 5798// CHECK-ERROR: ^ 5799 5800//------------------------------------------------------------------------------ 5801// Floating-point convert downsize with inexact 5802//------------------------------------------------------------------------------ 5803 5804 fcvtxn v6.4s, v8.2d 5805 fcvtxn2 v4.2s, v0.2d 5806 5807// CHECK-ERROR: error: invalid operand for instruction 5808// CHECK-ERROR: fcvtxn v6.4s, v8.2d 5809// CHECK-ERROR: ^ 5810// CHECK-ERROR: error: invalid operand for instruction 5811// CHECK-ERROR: fcvtxn2 v4.2s, v0.2d 5812// CHECK-ERROR: ^ 5813 5814//------------------------------------------------------------------------------ 5815// Floating-point convert upsize 5816//------------------------------------------------------------------------------ 5817 5818 fcvtl2 v9.4s, v1.4h 5819 fcvtl2 v0.2d, v1.2s 5820 fcvtl v12.4s, v4.8h 5821 fcvtl v17.2d, v28.4s 5822 5823// CHECK-ERROR: error: invalid operand for instruction 5824// CHECK-ERROR: fcvtl2 v9.4s, v1.4h 5825// CHECK-ERROR: ^ 5826// CHECK-ERROR: error: invalid operand for instruction 5827// CHECK-ERROR: fcvtl2 v0.2d, v1.2s 5828// CHECK-ERROR: ^ 5829// CHECK-ERROR: error: invalid operand for instruction 5830// CHECK-ERROR: fcvtl v12.4s, v4.8h 5831// CHECK-ERROR: ^ 5832// CHECK-ERROR: error: invalid operand for instruction 5833// CHECK-ERROR: fcvtl v17.2d, v28.4s 5834// CHECK-ERROR: ^ 5835 5836//------------------------------------------------------------------------------ 5837// Floating-point round to integral 5838//------------------------------------------------------------------------------ 5839 5840 frintn v0.16b, v31.16b 5841 frintn v2.8h, v4.8h 5842 frintn v1.8b, v9.8b 5843 frintn v13.4h, v21.4h 5844 5845 frinta v0.16b, v31.16b 5846 frinta v2.8h, v4.8h 5847 frinta v1.8b, v9.8b 5848 frinta v13.4h, v21.4h 5849 5850 frintp v0.16b, v31.16b 5851 frintp v2.8h, v4.8h 5852 frintp v1.8b, v9.8b 5853 frintp v13.4h, v21.4h 5854 5855 frintm v0.16b, v31.16b 5856 frintm v2.8h, v4.8h 5857 frintm v1.8b, v9.8b 5858 frintm v13.4h, v21.4h 5859 5860 frintx v0.16b, v31.16b 5861 frintx v2.8h, v4.8h 5862 frintx v1.8b, v9.8b 5863 frintx v13.4h, v21.4h 5864 5865 frintz v0.16b, v31.16b 5866 frintz v2.8h, v4.8h 5867 frintz v1.8b, v9.8b 5868 frintz v13.4h, v21.4h 5869 5870 frinti v0.16b, v31.16b 5871 frinti v2.8h, v4.8h 5872 frinti v1.8b, v9.8b 5873 frinti v13.4h, v21.4h 5874 5875 fcvtns v0.16b, v31.16b 5876 fcvtns v2.8h, v4.8h 5877 fcvtns v1.8b, v9.8b 5878 fcvtns v13.4h, v21.4h 5879 5880 fcvtnu v0.16b, v31.16b 5881 fcvtnu v2.8h, v4.8h 5882 fcvtnu v1.8b, v9.8b 5883 fcvtnu v13.4h, v21.4h 5884 5885 fcvtps v0.16b, v31.16b 5886 fcvtps v2.8h, v4.8h 5887 fcvtps v1.8b, v9.8b 5888 fcvtps v13.4h, v21.4h 5889 5890 fcvtpu v0.16b, v31.16b 5891 fcvtpu v2.8h, v4.8h 5892 fcvtpu v1.8b, v9.8b 5893 fcvtpu v13.4h, v21.4h 5894 5895 fcvtms v0.16b, v31.16b 5896 fcvtms v2.8h, v4.8h 5897 fcvtms v1.8b, v9.8b 5898 fcvtms v13.4h, v21.4h 5899 5900 fcvtmu v0.16b, v31.16b 5901 fcvtmu v2.8h, v4.8h 5902 fcvtmu v1.8b, v9.8b 5903 fcvtmu v13.4h, v21.4h 5904 5905 fcvtzs v0.16b, v31.16b 5906 fcvtzs v2.8h, v4.8h 5907 fcvtzs v1.8b, v9.8b 5908 fcvtzs v13.4h, v21.4h 5909 5910 fcvtzu v0.16b, v31.16b 5911 fcvtzu v2.8h, v4.8h 5912 fcvtzu v1.8b, v9.8b 5913 fcvtzu v13.4h, v21.4h 5914 5915 fcvtas v0.16b, v31.16b 5916 fcvtas v2.8h, v4.8h 5917 fcvtas v1.8b, v9.8b 5918 fcvtas v13.4h, v21.4h 5919 5920 fcvtau v0.16b, v31.16b 5921 fcvtau v2.8h, v4.8h 5922 fcvtau v1.8b, v9.8b 5923 fcvtau v13.4h, v21.4h 5924 5925 urecpe v0.16b, v31.16b 5926 urecpe v2.8h, v4.8h 5927 urecpe v1.8b, v9.8b 5928 urecpe v13.4h, v21.4h 5929 urecpe v1.2d, v9.2d 5930 5931 ursqrte v0.16b, v31.16b 5932 ursqrte v2.8h, v4.8h 5933 ursqrte v1.8b, v9.8b 5934 ursqrte v13.4h, v21.4h 5935 ursqrte v1.2d, v9.2d 5936 5937 scvtf v0.16b, v31.16b 5938 scvtf v2.8h, v4.8h 5939 scvtf v1.8b, v9.8b 5940 scvtf v13.4h, v21.4h 5941 5942 ucvtf v0.16b, v31.16b 5943 ucvtf v2.8h, v4.8h 5944 ucvtf v1.8b, v9.8b 5945 ucvtf v13.4h, v21.4h 5946 5947 frecpe v0.16b, v31.16b 5948 frecpe v2.8h, v4.8h 5949 frecpe v1.8b, v9.8b 5950 frecpe v13.4h, v21.4h 5951 5952 frsqrte v0.16b, v31.16b 5953 frsqrte v2.8h, v4.8h 5954 frsqrte v1.8b, v9.8b 5955 frsqrte v13.4h, v21.4h 5956 5957 fsqrt v0.16b, v31.16b 5958 fsqrt v2.8h, v4.8h 5959 fsqrt v1.8b, v9.8b 5960 fsqrt v13.4h, v21.4h 5961 5962// CHECK-ERROR: error: invalid operand for instruction 5963// CHECK-ERROR: frintn v0.16b, v31.16b 5964// CHECK-ERROR: ^ 5965// CHECK-ERROR: error: invalid operand for instruction 5966// CHECK-ERROR: frintn v2.8h, v4.8h 5967// CHECK-ERROR: ^ 5968// CHECK-ERROR: error: invalid operand for instruction 5969// CHECK-ERROR: frintn v1.8b, v9.8b 5970// CHECK-ERROR: ^ 5971// CHECK-ERROR: error: invalid operand for instruction 5972// CHECK-ERROR: frintn v13.4h, v21.4h 5973// CHECK-ERROR: ^ 5974// CHECK-ERROR: error: invalid operand for instruction 5975// CHECK-ERROR: frinta v0.16b, v31.16b 5976// CHECK-ERROR: ^ 5977// CHECK-ERROR: error: invalid operand for instruction 5978// CHECK-ERROR: frinta v2.8h, v4.8h 5979// CHECK-ERROR: ^ 5980// CHECK-ERROR: error: invalid operand for instruction 5981// CHECK-ERROR: frinta v1.8b, v9.8b 5982// CHECK-ERROR: ^ 5983// CHECK-ERROR: error: invalid operand for instruction 5984// CHECK-ERROR: frinta v13.4h, v21.4h 5985// CHECK-ERROR: ^ 5986// CHECK-ERROR: error: invalid operand for instruction 5987// CHECK-ERROR: frintp v0.16b, v31.16b 5988// CHECK-ERROR: ^ 5989// CHECK-ERROR: error: invalid operand for instruction 5990// CHECK-ERROR: frintp v2.8h, v4.8h 5991// CHECK-ERROR: ^ 5992// CHECK-ERROR: error: invalid operand for instruction 5993// CHECK-ERROR: frintp v1.8b, v9.8b 5994// CHECK-ERROR: ^ 5995// CHECK-ERROR: error: invalid operand for instruction 5996// CHECK-ERROR: frintp v13.4h, v21.4h 5997// CHECK-ERROR: ^ 5998// CHECK-ERROR: error: invalid operand for instruction 5999// CHECK-ERROR: frintm v0.16b, v31.16b 6000// CHECK-ERROR: ^ 6001// CHECK-ERROR: error: invalid operand for instruction 6002// CHECK-ERROR: frintm v2.8h, v4.8h 6003// CHECK-ERROR: ^ 6004// CHECK-ERROR: error: invalid operand for instruction 6005// CHECK-ERROR: frintm v1.8b, v9.8b 6006// CHECK-ERROR: ^ 6007// CHECK-ERROR: error: invalid operand for instruction 6008// CHECK-ERROR: frintm v13.4h, v21.4h 6009// CHECK-ERROR: ^ 6010// CHECK-ERROR: error: invalid operand for instruction 6011// CHECK-ERROR: frintx v0.16b, v31.16b 6012// CHECK-ERROR: ^ 6013// CHECK-ERROR: error: invalid operand for instruction 6014// CHECK-ERROR: frintx v2.8h, v4.8h 6015// CHECK-ERROR: ^ 6016// CHECK-ERROR: error: invalid operand for instruction 6017// CHECK-ERROR: frintx v1.8b, v9.8b 6018// CHECK-ERROR: ^ 6019// CHECK-ERROR: error: invalid operand for instruction 6020// CHECK-ERROR: frintx v13.4h, v21.4h 6021// CHECK-ERROR: ^ 6022// CHECK-ERROR: error: invalid operand for instruction 6023// CHECK-ERROR: frintz v0.16b, v31.16b 6024// CHECK-ERROR: ^ 6025// CHECK-ERROR: error: invalid operand for instruction 6026// CHECK-ERROR: frintz v2.8h, v4.8h 6027// CHECK-ERROR: ^ 6028// CHECK-ERROR: error: invalid operand for instruction 6029// CHECK-ERROR: frintz v1.8b, v9.8b 6030// CHECK-ERROR: ^ 6031// CHECK-ERROR: error: invalid operand for instruction 6032// CHECK-ERROR: frintz v13.4h, v21.4h 6033// CHECK-ERROR: ^ 6034// CHECK-ERROR: error: invalid operand for instruction 6035// CHECK-ERROR: frinti v0.16b, v31.16b 6036// CHECK-ERROR: ^ 6037// CHECK-ERROR: error: invalid operand for instruction 6038// CHECK-ERROR: frinti v2.8h, v4.8h 6039// CHECK-ERROR: ^ 6040// CHECK-ERROR: error: invalid operand for instruction 6041// CHECK-ERROR: frinti v1.8b, v9.8b 6042// CHECK-ERROR: ^ 6043// CHECK-ERROR: error: invalid operand for instruction 6044// CHECK-ERROR: frinti v13.4h, v21.4h 6045// CHECK-ERROR: ^ 6046// CHECK-ERROR: error: invalid operand for instruction 6047// CHECK-ERROR: fcvtns v0.16b, v31.16b 6048// CHECK-ERROR: ^ 6049// CHECK-ERROR: error: invalid operand for instruction 6050// CHECK-ERROR: fcvtns v2.8h, v4.8h 6051// CHECK-ERROR: ^ 6052// CHECK-ERROR: error: invalid operand for instruction 6053// CHECK-ERROR: fcvtns v1.8b, v9.8b 6054// CHECK-ERROR: ^ 6055// CHECK-ERROR: error: invalid operand for instruction 6056// CHECK-ERROR: fcvtns v13.4h, v21.4h 6057// CHECK-ERROR: ^ 6058// CHECK-ERROR: error: invalid operand for instruction 6059// CHECK-ERROR: fcvtnu v0.16b, v31.16b 6060// CHECK-ERROR: ^ 6061// CHECK-ERROR: error: invalid operand for instruction 6062// CHECK-ERROR: fcvtnu v2.8h, v4.8h 6063// CHECK-ERROR: ^ 6064// CHECK-ERROR: error: invalid operand for instruction 6065// CHECK-ERROR: fcvtnu v1.8b, v9.8b 6066// CHECK-ERROR: ^ 6067// CHECK-ERROR: error: invalid operand for instruction 6068// CHECK-ERROR: fcvtnu v13.4h, v21.4h 6069// CHECK-ERROR: ^ 6070// CHECK-ERROR: error: invalid operand for instruction 6071// CHECK-ERROR: fcvtps v0.16b, v31.16b 6072// CHECK-ERROR: ^ 6073// CHECK-ERROR: error: invalid operand for instruction 6074// CHECK-ERROR: fcvtps v2.8h, v4.8h 6075// CHECK-ERROR: ^ 6076// CHECK-ERROR: error: invalid operand for instruction 6077// CHECK-ERROR: fcvtps v1.8b, v9.8b 6078// CHECK-ERROR: ^ 6079// CHECK-ERROR: error: invalid operand for instruction 6080// CHECK-ERROR: fcvtps v13.4h, v21.4h 6081// CHECK-ERROR: ^ 6082// CHECK-ERROR: error: invalid operand for instruction 6083// CHECK-ERROR: fcvtpu v0.16b, v31.16b 6084// CHECK-ERROR: ^ 6085// CHECK-ERROR: error: invalid operand for instruction 6086// CHECK-ERROR: fcvtpu v2.8h, v4.8h 6087// CHECK-ERROR: ^ 6088// CHECK-ERROR: error: invalid operand for instruction 6089// CHECK-ERROR: fcvtpu v1.8b, v9.8b 6090// CHECK-ERROR: ^ 6091// CHECK-ERROR: error: invalid operand for instruction 6092// CHECK-ERROR: fcvtpu v13.4h, v21.4h 6093// CHECK-ERROR: ^ 6094// CHECK-ERROR: error: invalid operand for instruction 6095// CHECK-ERROR: fcvtms v0.16b, v31.16b 6096// CHECK-ERROR: ^ 6097// CHECK-ERROR: error: invalid operand for instruction 6098// CHECK-ERROR: fcvtms v2.8h, v4.8h 6099// CHECK-ERROR: ^ 6100// CHECK-ERROR: error: invalid operand for instruction 6101// CHECK-ERROR: fcvtms v1.8b, v9.8b 6102// CHECK-ERROR: ^ 6103// CHECK-ERROR: error: invalid operand for instruction 6104// CHECK-ERROR: fcvtms v13.4h, v21.4h 6105// CHECK-ERROR: ^ 6106// CHECK-ERROR: error: invalid operand for instruction 6107// CHECK-ERROR: fcvtmu v0.16b, v31.16b 6108// CHECK-ERROR: ^ 6109// CHECK-ERROR: error: invalid operand for instruction 6110// CHECK-ERROR: fcvtmu v2.8h, v4.8h 6111// CHECK-ERROR: ^ 6112// CHECK-ERROR: error: invalid operand for instruction 6113// CHECK-ERROR: fcvtmu v1.8b, v9.8b 6114// CHECK-ERROR: ^ 6115// CHECK-ERROR: error: invalid operand for instruction 6116// CHECK-ERROR: fcvtmu v13.4h, v21.4h 6117// CHECK-ERROR: ^ 6118// CHECK-ERROR: error: invalid operand for instruction 6119// CHECK-ERROR: fcvtzs v0.16b, v31.16b 6120// CHECK-ERROR: ^ 6121// CHECK-ERROR: error: invalid operand for instruction 6122// CHECK-ERROR: fcvtzs v2.8h, v4.8h 6123// CHECK-ERROR: ^ 6124// CHECK-ERROR: error: invalid operand for instruction 6125// CHECK-ERROR: fcvtzs v1.8b, v9.8b 6126// CHECK-ERROR: ^ 6127// CHECK-ERROR: error: invalid operand for instruction 6128// CHECK-ERROR: fcvtzs v13.4h, v21.4h 6129// CHECK-ERROR: ^ 6130// CHECK-ERROR: error: invalid operand for instruction 6131// CHECK-ERROR: fcvtzu v0.16b, v31.16b 6132// CHECK-ERROR: ^ 6133// CHECK-ERROR: error: invalid operand for instruction 6134// CHECK-ERROR: fcvtzu v2.8h, v4.8h 6135// CHECK-ERROR: ^ 6136// CHECK-ERROR: error: invalid operand for instruction 6137// CHECK-ERROR: fcvtzu v1.8b, v9.8b 6138// CHECK-ERROR: ^ 6139// CHECK-ERROR: error: invalid operand for instruction 6140// CHECK-ERROR: fcvtzu v13.4h, v21.4h 6141// CHECK-ERROR: ^ 6142// CHECK-ERROR: error: invalid operand for instruction 6143// CHECK-ERROR: fcvtas v0.16b, v31.16b 6144// CHECK-ERROR: ^ 6145// CHECK-ERROR: error: invalid operand for instruction 6146// CHECK-ERROR: fcvtas v2.8h, v4.8h 6147// CHECK-ERROR: ^ 6148// CHECK-ERROR: error: invalid operand for instruction 6149// CHECK-ERROR: fcvtas v1.8b, v9.8b 6150// CHECK-ERROR: ^ 6151// CHECK-ERROR: error: invalid operand for instruction 6152// CHECK-ERROR: fcvtas v13.4h, v21.4h 6153// CHECK-ERROR: ^ 6154// CHECK-ERROR: error: invalid operand for instruction 6155// CHECK-ERROR: fcvtau v0.16b, v31.16b 6156// CHECK-ERROR: ^ 6157// CHECK-ERROR: error: invalid operand for instruction 6158// CHECK-ERROR: fcvtau v2.8h, v4.8h 6159// CHECK-ERROR: ^ 6160// CHECK-ERROR: error: invalid operand for instruction 6161// CHECK-ERROR: fcvtau v1.8b, v9.8b 6162// CHECK-ERROR: ^ 6163// CHECK-ERROR: error: invalid operand for instruction 6164// CHECK-ERROR: fcvtau v13.4h, v21.4h 6165// CHECK-ERROR: ^ 6166// CHECK-ERROR: error: invalid operand for instruction 6167// CHECK-ERROR: urecpe v0.16b, v31.16b 6168// CHECK-ERROR: ^ 6169// CHECK-ERROR: error: invalid operand for instruction 6170// CHECK-ERROR: urecpe v2.8h, v4.8h 6171// CHECK-ERROR: ^ 6172// CHECK-ERROR: error: invalid operand for instruction 6173// CHECK-ERROR: urecpe v1.8b, v9.8b 6174// CHECK-ERROR: ^ 6175// CHECK-ERROR: error: invalid operand for instruction 6176// CHECK-ERROR: urecpe v13.4h, v21.4h 6177// CHECK-ERROR: ^ 6178// CHECK-ERROR: error: invalid operand for instruction 6179// CHECK-ERROR: urecpe v1.2d, v9.2d 6180// CHECK-ERROR: ^ 6181// CHECK-ERROR: error: invalid operand for instruction 6182// CHECK-ERROR: ursqrte v0.16b, v31.16b 6183// CHECK-ERROR: ^ 6184// CHECK-ERROR: error: invalid operand for instruction 6185// CHECK-ERROR: ursqrte v2.8h, v4.8h 6186// CHECK-ERROR: ^ 6187// CHECK-ERROR: error: invalid operand for instruction 6188// CHECK-ERROR: ursqrte v1.8b, v9.8b 6189// CHECK-ERROR: ^ 6190// CHECK-ERROR: error: invalid operand for instruction 6191// CHECK-ERROR: ursqrte v13.4h, v21.4h 6192// CHECK-ERROR: ^ 6193// CHECK-ERROR: error: invalid operand for instruction 6194// CHECK-ERROR: ursqrte v1.2d, v9.2d 6195// CHECK-ERROR: ^ 6196// CHECK-ERROR: error: invalid operand for instruction 6197// CHECK-ERROR: scvtf v0.16b, v31.16b 6198// CHECK-ERROR: ^ 6199// CHECK-ERROR: error: invalid operand for instruction 6200// CHECK-ERROR: scvtf v2.8h, v4.8h 6201// CHECK-ERROR: ^ 6202// CHECK-ERROR: error: invalid operand for instruction 6203// CHECK-ERROR: scvtf v1.8b, v9.8b 6204// CHECK-ERROR: ^ 6205// CHECK-ERROR: error: invalid operand for instruction 6206// CHECK-ERROR: scvtf v13.4h, v21.4h 6207// CHECK-ERROR: ^ 6208// CHECK-ERROR: error: invalid operand for instruction 6209// CHECK-ERROR: ucvtf v0.16b, v31.16b 6210// CHECK-ERROR: ^ 6211// CHECK-ERROR: error: invalid operand for instruction 6212// CHECK-ERROR: ucvtf v2.8h, v4.8h 6213// CHECK-ERROR: ^ 6214// CHECK-ERROR: error: invalid operand for instruction 6215// CHECK-ERROR: ucvtf v1.8b, v9.8b 6216// CHECK-ERROR: ^ 6217// CHECK-ERROR: error: invalid operand for instruction 6218// CHECK-ERROR: ucvtf v13.4h, v21.4h 6219// CHECK-ERROR: ^ 6220// CHECK-ERROR: error: invalid operand for instruction 6221// CHECK-ERROR: frecpe v0.16b, v31.16b 6222// CHECK-ERROR: ^ 6223// CHECK-ERROR: error: invalid operand for instruction 6224// CHECK-ERROR: frecpe v2.8h, v4.8h 6225// CHECK-ERROR: ^ 6226// CHECK-ERROR: error: invalid operand for instruction 6227// CHECK-ERROR: frecpe v1.8b, v9.8b 6228// CHECK-ERROR: ^ 6229// CHECK-ERROR: error: invalid operand for instruction 6230// CHECK-ERROR: frecpe v13.4h, v21.4h 6231// CHECK-ERROR: ^ 6232// CHECK-ERROR: error: invalid operand for instruction 6233// CHECK-ERROR: frsqrte v0.16b, v31.16b 6234// CHECK-ERROR: ^ 6235// CHECK-ERROR: error: invalid operand for instruction 6236// CHECK-ERROR: frsqrte v2.8h, v4.8h 6237// CHECK-ERROR: ^ 6238// CHECK-ERROR: error: invalid operand for instruction 6239// CHECK-ERROR: frsqrte v1.8b, v9.8b 6240// CHECK-ERROR: ^ 6241// CHECK-ERROR: error: invalid operand for instruction 6242// CHECK-ERROR: frsqrte v13.4h, v21.4h 6243// CHECK-ERROR: ^ 6244// CHECK-ERROR: error: invalid operand for instruction 6245// CHECK-ERROR: fsqrt v0.16b, v31.16b 6246// CHECK-ERROR: ^ 6247// CHECK-ERROR: error: invalid operand for instruction 6248// CHECK-ERROR: fsqrt v2.8h, v4.8h 6249// CHECK-ERROR: ^ 6250// CHECK-ERROR: error: invalid operand for instruction 6251// CHECK-ERROR: fsqrt v1.8b, v9.8b 6252// CHECK-ERROR: ^ 6253// CHECK-ERROR: error: invalid operand for instruction 6254// CHECK-ERROR: fsqrt v13.4h, v21.4h 6255// CHECK-ERROR: ^ 6256 6257//---------------------------------------------------------------------- 6258// Scalar Floating-point Convert To Signed Fixed-point (Immediate) 6259//---------------------------------------------------------------------- 6260 6261 fcvtzs s21, s12, #0 6262 fcvtzs d21, d12, #65 6263 fcvtzs s21, d12, #1 6264 6265// CHECK-ERROR: error: expected integer in range [1, 32] 6266// CHECK-ERROR: fcvtzs s21, s12, #0 6267// CHECK-ERROR: ^ 6268// CHECK-ERROR: error: expected integer in range [1, 64] 6269// CHECK-ERROR: fcvtzs d21, d12, #65 6270// CHECK-ERROR: ^ 6271// CHECK-ERROR: error: invalid operand for instruction 6272// CHECK-ERROR: fcvtzs s21, d12, #1 6273// CHECK-ERROR: ^ 6274 6275//---------------------------------------------------------------------- 6276// Scalar Floating-point Convert To Unsigned Fixed-point (Immediate) 6277//---------------------------------------------------------------------- 6278 6279 fcvtzu s21, s12, #33 6280 fcvtzu d21, d12, #0 6281 fcvtzu s21, d12, #1 6282 6283// CHECK-ERROR: error: expected integer in range [1, 32] 6284// CHECK-ERROR: fcvtzu s21, s12, #33 6285// CHECK-ERROR: ^ 6286// CHECK-ERROR: error: expected integer in range [1, 64] 6287// CHECK-ERROR: fcvtzu d21, d12, #0 6288// CHECK-ERROR: ^ 6289// CHECK-ERROR: error: invalid operand for instruction 6290// CHECK-ERROR: fcvtzu s21, d12, #1 6291// CHECK-ERROR: ^ 6292 6293//---------------------------------------------------------------------- 6294// Scalar Unsigned Saturating Extract Narrow 6295//---------------------------------------------------------------------- 6296 6297 aese v0.8h, v1.8h 6298 aese v0.4s, v1.4s 6299 aese v0.2d, v1.2d 6300 aesd v0.8h, v1.8h 6301 aesmc v0.8h, v1.8h 6302 aesimc v0.8h, v1.8h 6303 6304// CHECK: error: invalid operand for instruction 6305// CHECK: aese v0.8h, v1.8h 6306// CHECK: ^ 6307// CHECK: error: invalid operand for instruction 6308// CHECK: aese v0.4s, v1.4s 6309// CHECK: ^ 6310// CHECK: error: invalid operand for instruction 6311// CHECK: aese v0.2d, v1.2d 6312// CHECK: ^ 6313// CHECK: error: invalid operand for instruction 6314// CHECK: aesd v0.8h, v1.8h 6315// CHECK: ^ 6316// CHECK: error: invalid operand for instruction 6317// CHECK: aesmc v0.8h, v1.8h 6318// CHECK: ^ 6319// CHECK: error: invalid operand for instruction 6320// CHECK: aesimc v0.8h, v1.8h 6321// CHECK: ^ 6322 6323 sha1h b0, b1 6324 sha1h h0, h1 6325 sha1h d0, d1 6326 sha1h q0, q1 6327 sha1su1 v0.16b, v1.16b 6328 sha1su1 v0.8h, v1.8h 6329 sha1su1 v0.2d, v1.2d 6330 sha256su0 v0.16b, v1.16b 6331 6332// CHECK: error: invalid operand for instruction 6333// CHECK: sha1h b0, b1 6334// CHECK: ^ 6335// CHECK: error: invalid operand for instruction 6336// CHECK: sha1h h0, h1 6337// CHECK: ^ 6338// CHECK: error: invalid operand for instruction 6339// CHECK: sha1h d0, d1 6340// CHECK: ^ 6341// CHECK: error: invalid operand for instruction 6342// CHECK: sha1h q0, q1 6343// CHECK: ^ 6344// CHECK: error: invalid operand for instruction 6345// CHECK: sha1su1 v0.16b, v1.16b 6346// CHECK: ^ 6347// CHECK: error: invalid operand for instruction 6348// CHECK: sha1su1 v0.8h, v1.8h 6349// CHECK: ^ 6350// CHECK: error: invalid operand for instruction 6351// CHECK: sha1su1 v0.2d, v1.2d 6352// CHECK: ^ 6353// CHECK: error: invalid operand for instruction 6354// CHECK: sha256su0 v0.16b, v1.16b 6355// CHECK: ^ 6356 6357 sha1c q0, q1, v2.4s 6358 sha1p q0, q1, v2.4s 6359 sha1m q0, q1, v2.4s 6360 sha1su0 v0.16b, v1.16b, v2.16b 6361 sha1su0 v0.8h, v1.8h, v2.8h 6362 sha1su0 v0.2d, v1.2d, v2.2d 6363 sha256h q0, q1, q2 6364 sha256h v0.4s, v1.4s, v2.4s 6365 sha256h2 q0, q1, q2 6366 sha256su1 v0.16b, v1.16b, v2.16b 6367 6368// CHECK: error: invalid operand for instruction 6369// CHECK: sha1c q0, q1, v2.4s 6370// CHECK: ^ 6371// CHECK: error: invalid operand for instruction 6372// CHECK: sha1p q0, q1, v2.4s 6373// CHECK: ^ 6374// CHECK: error: invalid operand for instruction 6375// CHECK: sha1m q0, q1, v2.4s 6376// CHECK: ^ 6377// CHECK: error: invalid operand for instruction 6378// CHECK: sha1su0 v0.16b, v1.16b, v2.16b 6379// CHECK: ^ 6380// CHECK: error: invalid operand for instruction 6381// CHECK: sha1su0 v0.8h, v1.8h, v2.8h 6382// CHECK: ^ 6383// CHECK: error: invalid operand for instruction 6384// CHECK: sha1su0 v0.2d, v1.2d, v2.2d 6385// CHECK: ^ 6386// CHECK: error: too few operands for instruction 6387// CHECK: sha256h q0, q1, q2 6388// CHECK: ^ 6389// CHECK: error: invalid operand for instruction 6390// CHECK: sha256h v0.4s, v1.4s, v2.4s 6391// CHECK: ^ 6392// CHECK: error: too few operands for instruction 6393// CHECK: sha256h2 q0, q1, q2 6394// CHECK: ^ 6395// CHECK: error: invalid operand for instruction 6396// CHECK: sha256su1 v0.16b, v1.16b, v2.16b 6397// CHECK: ^ 6398 6399//---------------------------------------------------------------------- 6400// Bitwise extract 6401//---------------------------------------------------------------------- 6402 6403 ext v0.8b, v1.8b, v2.4h, #0x3 6404 ext v0.4h, v1.4h, v2.4h, #0x3 6405 ext v0.2s, v1.2s, v2.2s, #0x1 6406 ext v0.1d, v1.1d, v2.1d, #0x0 6407 6408// CHECK-ERROR: error: invalid operand for instruction 6409// CHECK-ERROR: ext v0.8b, v1.8b, v2.4h, #0x3 6410// CHECK-ERROR: ^ 6411// CHECK-ERROR: error: invalid operand for instruction 6412// CHECK-ERROR: ext v0.4h, v1.4h, v2.4h, #0x3 6413// CHECK-ERROR: ^ 6414// CHECK-ERROR: error: invalid operand for instruction 6415// CHECK-ERROR: ext v0.2s, v1.2s, v2.2s, #0x1 6416// CHECK-ERROR: ^ 6417// CHECK-ERROR: error: invalid operand for instruction 6418// CHECK-ERROR: ext v0.1d, v1.1d, v2.1d, #0x0 6419// CHECK-ERROR: ^ 6420 6421 ext v0.16b, v1.16b, v2.8h, #0x3 6422 ext v0.8h, v1.8h, v2.8h, #0x3 6423 ext v0.4s, v1.4s, v2.4s, #0x1 6424 ext v0.2d, v1.2d, v2.2d, #0x0 6425 6426// CHECK-ERROR: error: invalid operand for instruction 6427// CHECK-ERROR: ext v0.16b, v1.16b, v2.8h, #0x3 6428// CHECK-ERROR: ^ 6429// CHECK-ERROR: error: invalid operand for instruction 6430// CHECK-ERROR: ext v0.8h, v1.8h, v2.8h, #0x3 6431// CHECK-ERROR: ^ 6432// CHECK-ERROR: error: invalid operand for instruction 6433// CHECK-ERROR: ext v0.4s, v1.4s, v2.4s, #0x1 6434// CHECK-ERROR: ^ 6435// CHECK-ERROR: error: invalid operand for instruction 6436// CHECK-ERROR: ext v0.2d, v1.2d, v2.2d, #0x0 6437// CHECK-ERROR: ^ 6438 6439 6440//---------------------------------------------------------------------- 6441// Permutation with 3 vectors 6442//---------------------------------------------------------------------- 6443 6444 uzp1 v0.16b, v1.8b, v2.8b 6445 uzp1 v0.8b, v1.4b, v2.4b 6446 uzp1 v0.8h, v1.4h, v2.4h 6447 uzp1 v0.4h, v1.2h, v2.2h 6448 uzp1 v0.4s, v1.2s, v2.2s 6449 uzp1 v0.2s, v1.1s, v2.1s 6450 uzp1 v0.2d, v1.1d, v2.1d 6451 uzp1 v0.1d, v1.1d, v2.1d 6452 6453// CHECK-ERROR <stdin>:4289:22: error: invalid operand for instruction 6454// CHECK-ERROR uzp1 v0.16b, v1.8b, v2.8b 6455// CHECK-ERROR ^ 6456// CHECK-ERROR <stdin>:4290:21: error: invalid operand for instruction 6457// CHECK-ERROR uzp1 v0.8b, v1.4b, v2.4b 6458// CHECK-ERROR ^ 6459// CHECK-ERROR <stdin>:4291:21: error: invalid operand for instruction 6460// CHECK-ERROR uzp1 v0.8h, v1.4h, v2.4h 6461// CHECK-ERROR ^ 6462// CHECK-ERROR <stdin>:4292:21: error: invalid operand for instruction 6463// CHECK-ERROR uzp1 v0.4h, v1.2h, v2.2h 6464// CHECK-ERROR ^ 6465// CHECK-ERROR <stdin>:4293:21: error: invalid operand for instruction 6466// CHECK-ERROR uzp1 v0.4s, v1.2s, v2.2s 6467// CHECK-ERROR ^ 6468// CHECK-ERROR <stdin>:4294:21: error: invalid operand for instruction 6469// CHECK-ERROR uzp1 v0.2s, v1.1s, v2.1s 6470// CHECK-ERROR ^ 6471// CHECK-ERROR <stdin>:4295:21: error: invalid operand for instruction 6472// CHECK-ERROR uzp1 v0.2d, v1.1d, v2.1d 6473// CHECK-ERROR ^ 6474// CHECK-ERROR <stdin>:4296:17: error: invalid operand for instruction 6475// CHECK-ERROR uzp1 v0.1d, v1.1d, v2.1d 6476// CHECK-ERROR ^ 6477 6478 uzp2 v0.16b, v1.8b, v2.8b 6479 uzp2 v0.8b, v1.4b, v2.4b 6480 uzp2 v0.8h, v1.4h, v2.4h 6481 uzp2 v0.4h, v1.2h, v2.2h 6482 uzp2 v0.4s, v1.2s, v2.2s 6483 uzp2 v0.2s, v1.1s, v2.1s 6484 uzp2 v0.2d, v1.1d, v2.1d 6485 uzp2 v0.1d, v1.1d, v2.1d 6486 6487// CHECK-ERROR <stdin>:4298:22: error: invalid operand for instruction 6488// CHECK-ERROR uzp2 v0.16b, v1.8b, v2.8b 6489// CHECK-ERROR ^ 6490// CHECK-ERROR <stdin>:4299:21: error: invalid operand for instruction 6491// CHECK-ERROR uzp2 v0.8b, v1.4b, v2.4b 6492// CHECK-ERROR ^ 6493// CHECK-ERROR <stdin>:4300:21: error: invalid operand for instruction 6494// CHECK-ERROR uzp2 v0.8h, v1.4h, v2.4h 6495// CHECK-ERROR ^ 6496// CHECK-ERROR <stdin>:4301:21: error: invalid operand for instruction 6497// CHECK-ERROR uzp2 v0.4h, v1.2h, v2.2h 6498// CHECK-ERROR ^ 6499// CHECK-ERROR <stdin>:4302:21: error: invalid operand for instruction 6500// CHECK-ERROR uzp2 v0.4s, v1.2s, v2.2s 6501// CHECK-ERROR ^ 6502// CHECK-ERROR <stdin>:4303:21: error: invalid operand for instruction 6503// CHECK-ERROR uzp2 v0.2s, v1.1s, v2.1s 6504// CHECK-ERROR ^ 6505// CHECK-ERROR <stdin>:4304:21: error: invalid operand for instruction 6506// CHECK-ERROR uzp2 v0.2d, v1.1d, v2.1d 6507// CHECK-ERROR ^ 6508// CHECK-ERROR <stdin>:4305:17: error: invalid operand for instruction 6509// CHECK-ERROR uzp2 v0.1d, v1.1d, v2.1d 6510// CHECK-ERROR ^ 6511 6512 zip1 v0.16b, v1.8b, v2.8b 6513 zip1 v0.8b, v1.4b, v2.4b 6514 zip1 v0.8h, v1.4h, v2.4h 6515 zip1 v0.4h, v1.2h, v2.2h 6516 zip1 v0.4s, v1.2s, v2.2s 6517 zip1 v0.2s, v1.1s, v2.1s 6518 zip1 v0.2d, v1.1d, v2.1d 6519 zip1 v0.1d, v1.1d, v2.1d 6520 6521// CHECK-ERROR <stdin>:4307:22: error: invalid operand for instruction 6522// CHECK-ERROR zip1 v0.16b, v1.8b, v2.8b 6523// CHECK-ERROR ^ 6524// CHECK-ERROR <stdin>:4308:21: error: invalid operand for instruction 6525// CHECK-ERROR zip1 v0.8b, v1.4b, v2.4b 6526// CHECK-ERROR ^ 6527// CHECK-ERROR <stdin>:4309:21: error: invalid operand for instruction 6528// CHECK-ERROR zip1 v0.8h, v1.4h, v2.4h 6529// CHECK-ERROR ^ 6530// CHECK-ERROR <stdin>:4310:21: error: invalid operand for instruction 6531// CHECK-ERROR zip1 v0.4h, v1.2h, v2.2h 6532// CHECK-ERROR ^ 6533// CHECK-ERROR <stdin>:4311:21: error: invalid operand for instruction 6534// CHECK-ERROR zip1 v0.4s, v1.2s, v2.2s 6535// CHECK-ERROR ^ 6536// CHECK-ERROR <stdin>:4312:21: error: invalid operand for instruction 6537// CHECK-ERROR zip1 v0.2s, v1.1s, v2.1s 6538// CHECK-ERROR ^ 6539// CHECK-ERROR <stdin>:4313:21: error: invalid operand for instruction 6540// CHECK-ERROR zip1 v0.2d, v1.1d, v2.1d 6541// CHECK-ERROR ^ 6542// CHECK-ERROR <stdin>:4314:17: error: invalid operand for instruction 6543// CHECK-ERROR zip1 v0.1d, v1.1d, v2.1d 6544// CHECK-ERROR ^ 6545 6546 zip2 v0.16b, v1.8b, v2.8b 6547 zip2 v0.8b, v1.4b, v2.4b 6548 zip2 v0.8h, v1.4h, v2.4h 6549 zip2 v0.4h, v1.2h, v2.2h 6550 zip2 v0.4s, v1.2s, v2.2s 6551 zip2 v0.2s, v1.1s, v2.1s 6552 zip2 v0.2d, v1.1d, v2.1d 6553 zip2 v0.1d, v1.1d, v2.1d 6554 6555// CHECK-ERROR <stdin>:4316:22: error: invalid operand for instruction 6556// CHECK-ERROR zip2 v0.16b, v1.8b, v2.8b 6557// CHECK-ERROR ^ 6558// CHECK-ERROR <stdin>:4317:21: error: invalid operand for instruction 6559// CHECK-ERROR zip2 v0.8b, v1.4b, v2.4b 6560// CHECK-ERROR ^ 6561// CHECK-ERROR <stdin>:4318:21: error: invalid operand for instruction 6562// CHECK-ERROR zip2 v0.8h, v1.4h, v2.4h 6563// CHECK-ERROR ^ 6564// CHECK-ERROR <stdin>:4319:21: error: invalid operand for instruction 6565// CHECK-ERROR zip2 v0.4h, v1.2h, v2.2h 6566// CHECK-ERROR ^ 6567// CHECK-ERROR <stdin>:4320:21: error: invalid operand for instruction 6568// CHECK-ERROR zip2 v0.4s, v1.2s, v2.2s 6569// CHECK-ERROR ^ 6570// CHECK-ERROR <stdin>:4321:21: error: invalid operand for instruction 6571// CHECK-ERROR zip2 v0.2s, v1.1s, v2.1s 6572// CHECK-ERROR ^ 6573// CHECK-ERROR <stdin>:4322:21: error: invalid operand for instruction 6574// CHECK-ERROR zip2 v0.2d, v1.1d, v2.1d 6575// CHECK-ERROR ^ 6576// CHECK-ERROR <stdin>:4323:17: error: invalid operand for instruction 6577// CHECK-ERROR zip2 v0.1d, v1.1d, v2.1d 6578// CHECK-ERROR ^ 6579 6580 trn1 v0.16b, v1.8b, v2.8b 6581 trn1 v0.8b, v1.4b, v2.4b 6582 trn1 v0.8h, v1.4h, v2.4h 6583 trn1 v0.4h, v1.2h, v2.2h 6584 trn1 v0.4s, v1.2s, v2.2s 6585 trn1 v0.2s, v1.1s, v2.1s 6586 trn1 v0.2d, v1.1d, v2.1d 6587 trn1 v0.1d, v1.1d, v2.1d 6588 6589// CHECK-ERROR <stdin>:4325:22: error: invalid operand for instruction 6590// CHECK-ERROR trn1 v0.16b, v1.8b, v2.8b 6591// CHECK-ERROR ^ 6592// CHECK-ERROR <stdin>:4326:21: error: invalid operand for instruction 6593// CHECK-ERROR trn1 v0.8b, v1.4b, v2.4b 6594// CHECK-ERROR ^ 6595// CHECK-ERROR <stdin>:4327:21: error: invalid operand for instruction 6596// CHECK-ERROR trn1 v0.8h, v1.4h, v2.4h 6597// CHECK-ERROR ^ 6598// CHECK-ERROR <stdin>:4328:21: error: invalid operand for instruction 6599// CHECK-ERROR trn1 v0.4h, v1.2h, v2.2h 6600// CHECK-ERROR ^ 6601// CHECK-ERROR <stdin>:4329:21: error: invalid operand for instruction 6602// CHECK-ERROR trn1 v0.4s, v1.2s, v2.2s 6603// CHECK-ERROR ^ 6604// CHECK-ERROR <stdin>:4330:21: error: invalid operand for instruction 6605// CHECK-ERROR trn1 v0.2s, v1.1s, v2.1s 6606// CHECK-ERROR ^ 6607// CHECK-ERROR <stdin>:4331:21: error: invalid operand for instruction 6608// CHECK-ERROR trn1 v0.2d, v1.1d, v2.1d 6609// CHECK-ERROR ^ 6610// CHECK-ERROR <stdin>:4332:17: error: invalid operand for instruction 6611// CHECK-ERROR trn1 v0.1d, v1.1d, v2.1d 6612// CHECK-ERROR ^ 6613 6614 trn2 v0.16b, v1.8b, v2.8b 6615 trn2 v0.8b, v1.4b, v2.4b 6616 trn2 v0.8h, v1.4h, v2.4h 6617 trn2 v0.4h, v1.2h, v2.2h 6618 trn2 v0.4s, v1.2s, v2.2s 6619 trn2 v0.2s, v1.1s, v2.1s 6620 trn2 v0.2d, v1.1d, v2.1d 6621 trn2 v0.1d, v1.1d, v2.1d 6622 6623// CHECK-ERROR <stdin>:4334:22: error: invalid operand for instruction 6624// CHECK-ERROR trn2 v0.16b, v1.8b, v2.8b 6625// CHECK-ERROR ^ 6626// CHECK-ERROR <stdin>:4335:21: error: invalid operand for instruction 6627// CHECK-ERROR trn2 v0.8b, v1.4b, v2.4b 6628// CHECK-ERROR ^ 6629// CHECK-ERROR <stdin>:4336:21: error: invalid operand for instruction 6630// CHECK-ERROR trn2 v0.8h, v1.4h, v2.4h 6631// CHECK-ERROR ^ 6632// CHECK-ERROR <stdin>:4337:21: error: invalid operand for instruction 6633// CHECK-ERROR trn2 v0.4h, v1.2h, v2.2h 6634// CHECK-ERROR ^ 6635// CHECK-ERROR <stdin>:4338:21: error: invalid operand for instruction 6636// CHECK-ERROR trn2 v0.4s, v1.2s, v2.2s 6637// CHECK-ERROR ^ 6638// CHECK-ERROR <stdin>:4339:21: error: invalid operand for instruction 6639// CHECK-ERROR trn2 v0.2s, v1.1s, v2.1s 6640// CHECK-ERROR ^ 6641// CHECK-ERROR <stdin>:4340:21: error: invalid operand for instruction 6642// CHECK-ERROR trn2 v0.2d, v1.1d, v2.1d 6643// CHECK-ERROR ^ 6644// CHECK-ERROR <stdin>:4341:17: error: invalid operand for instruction 6645// CHECK-ERROR trn2 v0.1d, v1.1d, v2.1d 6646// CHECK-ERROR ^ 6647 6648//---------------------------------------------------------------------- 6649// Permutation with 3 vectors 6650//---------------------------------------------------------------------- 6651 6652 uzp1 v0.16b, v1.8b, v2.8b 6653 uzp1 v0.8b, v1.4b, v2.4b 6654 uzp1 v0.8h, v1.4h, v2.4h 6655 uzp1 v0.4h, v1.2h, v2.2h 6656 uzp1 v0.4s, v1.2s, v2.2s 6657 uzp1 v0.2s, v1.1s, v2.1s 6658 uzp1 v0.2d, v1.1d, v2.1d 6659 uzp1 v0.1d, v1.1d, v2.1d 6660 6661// CHECK-ERROR <stdin>:4289:22: error: invalid operand for instruction 6662// CHECK-ERROR uzp1 v0.16b, v1.8b, v2.8b 6663// CHECK-ERROR ^ 6664// CHECK-ERROR <stdin>:4290:21: error: invalid operand for instruction 6665// CHECK-ERROR uzp1 v0.8b, v1.4b, v2.4b 6666// CHECK-ERROR ^ 6667// CHECK-ERROR <stdin>:4291:21: error: invalid operand for instruction 6668// CHECK-ERROR uzp1 v0.8h, v1.4h, v2.4h 6669// CHECK-ERROR ^ 6670// CHECK-ERROR <stdin>:4292:21: error: invalid operand for instruction 6671// CHECK-ERROR uzp1 v0.4h, v1.2h, v2.2h 6672// CHECK-ERROR ^ 6673// CHECK-ERROR <stdin>:4293:21: error: invalid operand for instruction 6674// CHECK-ERROR uzp1 v0.4s, v1.2s, v2.2s 6675// CHECK-ERROR ^ 6676// CHECK-ERROR <stdin>:4294:21: error: invalid operand for instruction 6677// CHECK-ERROR uzp1 v0.2s, v1.1s, v2.1s 6678// CHECK-ERROR ^ 6679// CHECK-ERROR <stdin>:4295:21: error: invalid operand for instruction 6680// CHECK-ERROR uzp1 v0.2d, v1.1d, v2.1d 6681// CHECK-ERROR ^ 6682// CHECK-ERROR <stdin>:4296:17: error: invalid operand for instruction 6683// CHECK-ERROR uzp1 v0.1d, v1.1d, v2.1d 6684// CHECK-ERROR ^ 6685 6686 uzp2 v0.16b, v1.8b, v2.8b 6687 uzp2 v0.8b, v1.4b, v2.4b 6688 uzp2 v0.8h, v1.4h, v2.4h 6689 uzp2 v0.4h, v1.2h, v2.2h 6690 uzp2 v0.4s, v1.2s, v2.2s 6691 uzp2 v0.2s, v1.1s, v2.1s 6692 uzp2 v0.2d, v1.1d, v2.1d 6693 uzp2 v0.1d, v1.1d, v2.1d 6694 6695// CHECK-ERROR <stdin>:4298:22: error: invalid operand for instruction 6696// CHECK-ERROR uzp2 v0.16b, v1.8b, v2.8b 6697// CHECK-ERROR ^ 6698// CHECK-ERROR <stdin>:4299:21: error: invalid operand for instruction 6699// CHECK-ERROR uzp2 v0.8b, v1.4b, v2.4b 6700// CHECK-ERROR ^ 6701// CHECK-ERROR <stdin>:4300:21: error: invalid operand for instruction 6702// CHECK-ERROR uzp2 v0.8h, v1.4h, v2.4h 6703// CHECK-ERROR ^ 6704// CHECK-ERROR <stdin>:4301:21: error: invalid operand for instruction 6705// CHECK-ERROR uzp2 v0.4h, v1.2h, v2.2h 6706// CHECK-ERROR ^ 6707// CHECK-ERROR <stdin>:4302:21: error: invalid operand for instruction 6708// CHECK-ERROR uzp2 v0.4s, v1.2s, v2.2s 6709// CHECK-ERROR ^ 6710// CHECK-ERROR <stdin>:4303:21: error: invalid operand for instruction 6711// CHECK-ERROR uzp2 v0.2s, v1.1s, v2.1s 6712// CHECK-ERROR ^ 6713// CHECK-ERROR <stdin>:4304:21: error: invalid operand for instruction 6714// CHECK-ERROR uzp2 v0.2d, v1.1d, v2.1d 6715// CHECK-ERROR ^ 6716// CHECK-ERROR <stdin>:4305:17: error: invalid operand for instruction 6717// CHECK-ERROR uzp2 v0.1d, v1.1d, v2.1d 6718// CHECK-ERROR ^ 6719 6720 zip1 v0.16b, v1.8b, v2.8b 6721 zip1 v0.8b, v1.4b, v2.4b 6722 zip1 v0.8h, v1.4h, v2.4h 6723 zip1 v0.4h, v1.2h, v2.2h 6724 zip1 v0.4s, v1.2s, v2.2s 6725 zip1 v0.2s, v1.1s, v2.1s 6726 zip1 v0.2d, v1.1d, v2.1d 6727 zip1 v0.1d, v1.1d, v2.1d 6728 6729// CHECK-ERROR <stdin>:4307:22: error: invalid operand for instruction 6730// CHECK-ERROR zip1 v0.16b, v1.8b, v2.8b 6731// CHECK-ERROR ^ 6732// CHECK-ERROR <stdin>:4308:21: error: invalid operand for instruction 6733// CHECK-ERROR zip1 v0.8b, v1.4b, v2.4b 6734// CHECK-ERROR ^ 6735// CHECK-ERROR <stdin>:4309:21: error: invalid operand for instruction 6736// CHECK-ERROR zip1 v0.8h, v1.4h, v2.4h 6737// CHECK-ERROR ^ 6738// CHECK-ERROR <stdin>:4310:21: error: invalid operand for instruction 6739// CHECK-ERROR zip1 v0.4h, v1.2h, v2.2h 6740// CHECK-ERROR ^ 6741// CHECK-ERROR <stdin>:4311:21: error: invalid operand for instruction 6742// CHECK-ERROR zip1 v0.4s, v1.2s, v2.2s 6743// CHECK-ERROR ^ 6744// CHECK-ERROR <stdin>:4312:21: error: invalid operand for instruction 6745// CHECK-ERROR zip1 v0.2s, v1.1s, v2.1s 6746// CHECK-ERROR ^ 6747// CHECK-ERROR <stdin>:4313:21: error: invalid operand for instruction 6748// CHECK-ERROR zip1 v0.2d, v1.1d, v2.1d 6749// CHECK-ERROR ^ 6750// CHECK-ERROR <stdin>:4314:17: error: invalid operand for instruction 6751// CHECK-ERROR zip1 v0.1d, v1.1d, v2.1d 6752// CHECK-ERROR ^ 6753 6754 zip2 v0.16b, v1.8b, v2.8b 6755 zip2 v0.8b, v1.4b, v2.4b 6756 zip2 v0.8h, v1.4h, v2.4h 6757 zip2 v0.4h, v1.2h, v2.2h 6758 zip2 v0.4s, v1.2s, v2.2s 6759 zip2 v0.2s, v1.1s, v2.1s 6760 zip2 v0.2d, v1.1d, v2.1d 6761 zip2 v0.1d, v1.1d, v2.1d 6762 6763// CHECK-ERROR <stdin>:4316:22: error: invalid operand for instruction 6764// CHECK-ERROR zip2 v0.16b, v1.8b, v2.8b 6765// CHECK-ERROR ^ 6766// CHECK-ERROR <stdin>:4317:21: error: invalid operand for instruction 6767// CHECK-ERROR zip2 v0.8b, v1.4b, v2.4b 6768// CHECK-ERROR ^ 6769// CHECK-ERROR <stdin>:4318:21: error: invalid operand for instruction 6770// CHECK-ERROR zip2 v0.8h, v1.4h, v2.4h 6771// CHECK-ERROR ^ 6772// CHECK-ERROR <stdin>:4319:21: error: invalid operand for instruction 6773// CHECK-ERROR zip2 v0.4h, v1.2h, v2.2h 6774// CHECK-ERROR ^ 6775// CHECK-ERROR <stdin>:4320:21: error: invalid operand for instruction 6776// CHECK-ERROR zip2 v0.4s, v1.2s, v2.2s 6777// CHECK-ERROR ^ 6778// CHECK-ERROR <stdin>:4321:21: error: invalid operand for instruction 6779// CHECK-ERROR zip2 v0.2s, v1.1s, v2.1s 6780// CHECK-ERROR ^ 6781// CHECK-ERROR <stdin>:4322:21: error: invalid operand for instruction 6782// CHECK-ERROR zip2 v0.2d, v1.1d, v2.1d 6783// CHECK-ERROR ^ 6784// CHECK-ERROR <stdin>:4323:17: error: invalid operand for instruction 6785// CHECK-ERROR zip2 v0.1d, v1.1d, v2.1d 6786// CHECK-ERROR ^ 6787 6788 trn1 v0.16b, v1.8b, v2.8b 6789 trn1 v0.8b, v1.4b, v2.4b 6790 trn1 v0.8h, v1.4h, v2.4h 6791 trn1 v0.4h, v1.2h, v2.2h 6792 trn1 v0.4s, v1.2s, v2.2s 6793 trn1 v0.2s, v1.1s, v2.1s 6794 trn1 v0.2d, v1.1d, v2.1d 6795 trn1 v0.1d, v1.1d, v2.1d 6796 6797// CHECK-ERROR <stdin>:4325:22: error: invalid operand for instruction 6798// CHECK-ERROR trn1 v0.16b, v1.8b, v2.8b 6799// CHECK-ERROR ^ 6800// CHECK-ERROR <stdin>:4326:21: error: invalid operand for instruction 6801// CHECK-ERROR trn1 v0.8b, v1.4b, v2.4b 6802// CHECK-ERROR ^ 6803// CHECK-ERROR <stdin>:4327:21: error: invalid operand for instruction 6804// CHECK-ERROR trn1 v0.8h, v1.4h, v2.4h 6805// CHECK-ERROR ^ 6806// CHECK-ERROR <stdin>:4328:21: error: invalid operand for instruction 6807// CHECK-ERROR trn1 v0.4h, v1.2h, v2.2h 6808// CHECK-ERROR ^ 6809// CHECK-ERROR <stdin>:4329:21: error: invalid operand for instruction 6810// CHECK-ERROR trn1 v0.4s, v1.2s, v2.2s 6811// CHECK-ERROR ^ 6812// CHECK-ERROR <stdin>:4330:21: error: invalid operand for instruction 6813// CHECK-ERROR trn1 v0.2s, v1.1s, v2.1s 6814// CHECK-ERROR ^ 6815// CHECK-ERROR <stdin>:4331:21: error: invalid operand for instruction 6816// CHECK-ERROR trn1 v0.2d, v1.1d, v2.1d 6817// CHECK-ERROR ^ 6818// CHECK-ERROR <stdin>:4332:17: error: invalid operand for instruction 6819// CHECK-ERROR trn1 v0.1d, v1.1d, v2.1d 6820// CHECK-ERROR ^ 6821 6822 trn2 v0.16b, v1.8b, v2.8b 6823 trn2 v0.8b, v1.4b, v2.4b 6824 trn2 v0.8h, v1.4h, v2.4h 6825 trn2 v0.4h, v1.2h, v2.2h 6826 trn2 v0.4s, v1.2s, v2.2s 6827 trn2 v0.2s, v1.1s, v2.1s 6828 trn2 v0.2d, v1.1d, v2.1d 6829 trn2 v0.1d, v1.1d, v2.1d 6830 6831// CHECK-ERROR <stdin>:4334:22: error: invalid operand for instruction 6832// CHECK-ERROR trn2 v0.16b, v1.8b, v2.8b 6833// CHECK-ERROR ^ 6834// CHECK-ERROR <stdin>:4335:21: error: invalid operand for instruction 6835// CHECK-ERROR trn2 v0.8b, v1.4b, v2.4b 6836// CHECK-ERROR ^ 6837// CHECK-ERROR <stdin>:4336:21: error: invalid operand for instruction 6838// CHECK-ERROR trn2 v0.8h, v1.4h, v2.4h 6839// CHECK-ERROR ^ 6840// CHECK-ERROR <stdin>:4337:21: error: invalid operand for instruction 6841// CHECK-ERROR trn2 v0.4h, v1.2h, v2.2h 6842// CHECK-ERROR ^ 6843// CHECK-ERROR <stdin>:4338:21: error: invalid operand for instruction 6844// CHECK-ERROR trn2 v0.4s, v1.2s, v2.2s 6845// CHECK-ERROR ^ 6846// CHECK-ERROR <stdin>:4339:21: error: invalid operand for instruction 6847// CHECK-ERROR trn2 v0.2s, v1.1s, v2.1s 6848// CHECK-ERROR ^ 6849// CHECK-ERROR <stdin>:4340:21: error: invalid operand for instruction 6850// CHECK-ERROR trn2 v0.2d, v1.1d, v2.1d 6851// CHECK-ERROR ^ 6852// CHECK-ERROR <stdin>:4341:17: error: invalid operand for instruction 6853// CHECK-ERROR trn2 v0.1d, v1.1d, v2.1d 6854// CHECK-ERROR ^ 6855 6856//---------------------------------------------------------------------- 6857// Floating Point multiply (scalar, by element) 6858//---------------------------------------------------------------------- 6859 // mismatched and invalid vector types 6860 fmul s0, s1, v1.h[0] 6861 fmul h0, h1, v1.s[0] 6862 // invalid lane 6863 fmul s2, s29, v10.s[4] 6864 6865// CHECK-ERROR: error: invalid operand for instruction 6866// CHECK-ERROR: fmul s0, s1, v1.h[0] 6867// CHECK-ERROR: ^ 6868// CHECK-ERROR: error: invalid operand for instruction 6869// CHECK-ERROR: fmul h0, h1, v1.s[0] 6870// CHECK-ERROR: ^ 6871// CHECK-ERROR: error: lane number incompatible with layout 6872// CHECK-ERROR: fmul s2, s29, v10.s[4] 6873// CHECK-ERROR: ^ 6874 6875//---------------------------------------------------------------------- 6876// Floating Point multiply extended (scalar, by element) 6877//---------------------------------------------------------------------- 6878 // mismatched and invalid vector types 6879 fmulx d0, d1, v1.b[0] 6880 fmulx h0, h1, v1.d[0] 6881 // invalid lane 6882 fmulx d2, d29, v10.d[3] 6883 6884// CHECK-ERROR: error: invalid operand for instruction 6885// CHECK-ERROR: fmulx d0, d1, v1.b[0] 6886// CHECK-ERROR: ^ 6887// CHECK-ERROR: error: invalid operand for instruction 6888// CHECK-ERROR: fmulx h0, h1, v1.d[0] 6889// CHECK-ERROR: ^ 6890// CHECK-ERROR: error: lane number incompatible with layout 6891// CHECK-ERROR: fmulx d2, d29, v10.d[3] 6892// CHECK-ERROR: ^ 6893 6894//---------------------------------------------------------------------- 6895// Floating Point fused multiply-add (scalar, by element) 6896//---------------------------------------------------------------------- 6897 // mismatched and invalid vector types 6898 fmla b0, b1, v1.b[0] 6899 fmla d30, s11, v1.d[1] 6900 // invalid lane 6901 fmla s16, s22, v16.s[5] 6902 6903// CHECK-ERROR: error: invalid operand for instruction 6904// CHECK-ERROR: fmla b0, b1, v1.b[0] 6905// CHECK-ERROR: ^ 6906// CHECK-ERROR: error: invalid operand for instruction 6907// CHECK-ERROR: fmla d30, s11, v1.d[1] 6908// CHECK-ERROR: ^ 6909// CHECK-ERROR: error: lane number incompatible with layout 6910// CHECK-ERROR: fmla s16, s22, v16.s[5] 6911// CHECK-ERROR: ^ 6912 6913//---------------------------------------------------------------------- 6914// Floating Point fused multiply-subtract (scalar, by element) 6915//---------------------------------------------------------------------- 6916 // mismatched and invalid vector types 6917 fmls s29, h10, v28.s[1] 6918 fmls h7, h17, v26.s[2] 6919 // invalid lane 6920 fmls d16, d22, v16.d[-1] 6921 6922// CHECK-ERROR: error: invalid operand for instruction 6923// CHECK-ERROR: fmls s29, h10, v28.s[1] 6924// CHECK-ERROR: ^ 6925// CHECK-ERROR: error: invalid operand for instruction 6926// CHECK-ERROR: fmls h7, h17, v26.s[2] 6927// CHECK-ERROR: ^ 6928// CHECK-ERROR: error: expected lane number 6929// CHECK-ERROR: fmls d16, d22, v16.d[-1] 6930// CHECK-ERROR: ^ 6931 6932//---------------------------------------------------------------------- 6933// Scalar Signed saturating doubling multiply-add long 6934// (scalar, by element) 6935//---------------------------------------------------------------------- 6936 // mismatched and invalid vector types 6937 sqdmlal s0, h0, v0.s[0] 6938 sqdmlal s8, s9, v14.s[1] 6939 // invalid lane 6940 sqdmlal s4, s5, v1.s[5] 6941 // invalid vector index 6942 sqdmlal s0, h0, v17.h[0] 6943 6944// CHECK-ERROR: error: invalid operand for instruction 6945// CHECK-ERROR: sqdmlal s0, h0, v0.s[0] 6946// CHECK-ERROR: ^ 6947// CHECK-ERROR: error: invalid operand for instruction 6948// CHECK-ERROR: sqdmlal s8, s9, v14.s[1] 6949// CHECK-ERROR: ^ 6950// CHECK-ERROR: error: lane number incompatible with layout 6951// CHECK-ERROR: sqdmlal s4, s5, v1.s[5] 6952// CHECK-ERROR: ^ 6953// CHECK-ERROR: error: invalid operand for instruction 6954// CHECK-ERROR: sqdmlal s0, h0, v17.h[0] 6955// CHECK-ERROR: ^ 6956 6957//---------------------------------------------------------------------- 6958// Scalar Signed saturating doubling multiply-subtract long 6959// (scalar, by element) 6960//---------------------------------------------------------------------- 6961 // mismatched and invalid vector types 6962 sqdmlsl s1, h1, v1.d[0] 6963 sqdmlsl d1, h1, v13.s[0] 6964 // invalid lane 6965 sqdmlsl d1, s1, v13.s[4] 6966 // invalid vector index 6967 sqdmlsl s1, h1, v20.h[7] 6968 6969// CHECK-ERROR: error: invalid operand for instruction 6970// CHECK-ERROR: sqdmlsl s1, h1, v1.d[0] 6971// CHECK-ERROR: ^ 6972// CHECK-ERROR: error: invalid operand for instruction 6973// CHECK-ERROR: sqdmlsl d1, h1, v13.s[0] 6974// CHECK-ERROR: ^ 6975// CHECK-ERROR: error: lane number incompatible with layout 6976// CHECK-ERROR: sqdmlsl d1, s1, v13.s[4] 6977// CHECK-ERROR: ^ 6978// CHECK-ERROR: error: invalid operand for instruction 6979// CHECK-ERROR: sqdmlsl s1, h1, v20.h[7] 6980// CHECK-ERROR: ^ 6981 6982//---------------------------------------------------------------------- 6983// Scalar Signed saturating doubling multiply long (scalar, by element) 6984//---------------------------------------------------------------------- 6985 // mismatched and invalid vector types 6986 // invalid lane 6987 // invalid vector index 6988 // mismatched and invalid vector types 6989 sqdmull s1, h1, v1.s[1] 6990 sqdmull s1, s1, v4.s[0] 6991 // invalid lane 6992 sqdmull s12, h17, v9.h[9] 6993 // invalid vector index 6994 sqdmull s1, h1, v16.h[5] 6995 6996// CHECK-ERROR: error: invalid operand for instruction 6997// CHECK-ERROR: sqdmull s1, h1, v1.s[1] 6998// CHECK-ERROR: ^ 6999// CHECK-ERROR: error: invalid operand for instruction 7000// CHECK-ERROR: sqdmull s1, s1, v4.s[0] 7001// CHECK-ERROR: ^ 7002// CHECK-ERROR: error: lane number incompatible with layout 7003// CHECK-ERROR: sqdmull s12, h17, v9.h[9] 7004// CHECK-ERROR: ^ 7005// CHECK-ERROR: error: invalid operand for instruction 7006// CHECK-ERROR: sqdmull s1, h1, v16.h[5] 7007// CHECK-ERROR: ^ 7008 7009//---------------------------------------------------------------------- 7010// Scalar Signed saturating doubling multiply returning 7011// high half (scalar, by element) 7012//---------------------------------------------------------------------- 7013 // mismatched and invalid vector types 7014 sqdmulh h0, s1, v0.h[0] 7015 sqdmulh s25, s26, v27.h[3] 7016 // invalid lane 7017 sqdmulh s25, s26, v27.s[4] 7018 // invalid vector index 7019 sqdmulh s0, h1, v30.h[0] 7020 7021// CHECK-ERROR: error: invalid operand for instruction 7022// CHECK-ERROR: sqdmulh h0, s1, v0.h[0] 7023// CHECK-ERROR: ^ 7024// CHECK-ERROR: error: invalid operand for instruction 7025// CHECK-ERROR: sqdmulh s25, s26, v27.h[3] 7026// CHECK-ERROR: ^ 7027// CHECK-ERROR: error: lane number incompatible with layout 7028// CHECK-ERROR: sqdmulh s25, s26, v27.s[4] 7029// CHECK-ERROR: ^ 7030// CHECK-ERROR: error: invalid operand for instruction 7031// CHECK-ERROR: sqdmulh s0, h1, v30.h[0] 7032// CHECK-ERROR: ^ 7033 7034//---------------------------------------------------------------------- 7035// Scalar Signed saturating rounding doubling multiply 7036// returning high half (scalar, by element) 7037//---------------------------------------------------------------------- 7038 // mismatched and invalid vector types 7039 sqrdmulh h31, h30, v14.s[2] 7040 sqrdmulh s5, h6, v7.s[2] 7041 // invalid lane 7042 sqrdmulh h31, h30, v14.h[9] 7043 // invalid vector index 7044 sqrdmulh h31, h30, v20.h[4] 7045 7046// CHECK-ERROR: error: invalid operand for instruction 7047// CHECK-ERROR: sqrdmulh h31, h30, v14.s[2] 7048// CHECK-ERROR: ^ 7049// CHECK-ERROR: error: invalid operand for instruction 7050// CHECK-ERROR: sqrdmulh s5, h6, v7.s[2] 7051// CHECK-ERROR: ^ 7052// CHECK-ERROR: error: lane number incompatible with layout 7053// CHECK-ERROR: sqrdmulh h31, h30, v14.h[9] 7054// CHECK-ERROR: ^ 7055// CHECK-ERROR: error: invalid operand for instruction 7056// CHECK-ERROR: sqrdmulh h31, h30, v20.h[4] 7057// CHECK-ERROR: ^ 7058 7059//---------------------------------------------------------------------- 7060// Scalar Duplicate element (scalar) 7061//---------------------------------------------------------------------- 7062 // mismatched and invalid vector types 7063 dup b0, v1.d[0] 7064 dup h0, v31.b[8] 7065 dup s0, v2.h[4] 7066 dup d0, v17.s[3] 7067 // invalid lane 7068 dup d0, v17.d[4] 7069 dup s0, v1.s[7] 7070 dup h0, v31.h[16] 7071 dup b1, v3.b[16] 7072// CHECK-ERROR: error: invalid operand for instruction 7073// CHECK-ERROR: dup b0, v1.d[0] 7074// CHECK-ERROR: ^ 7075// CHECK-ERROR: error: invalid operand for instruction 7076// CHECK-ERROR: dup h0, v31.b[8] 7077// CHECK-ERROR: ^ 7078// CHECK-ERROR: error: invalid operand for instruction 7079// CHECK-ERROR: dup s0, v2.h[4] 7080// CHECK-ERROR: ^ 7081// CHECK-ERROR: error: invalid operand for instruction 7082// CHECK-ERROR: dup d0, v17.s[3] 7083// CHECK-ERROR: ^ 7084// CHECK-ERROR: error: lane number incompatible with layout 7085// CHECK-ERROR: dup d0, v17.d[4] 7086// CHECK-ERROR: ^ 7087// CHECK-ERROR: error: lane number incompatible with layout 7088// CHECK-ERROR: dup s0, v1.s[7] 7089// CHECK-ERROR: ^ 7090// CHECK-ERROR: error: lane number incompatible with layout 7091// CHECK-ERROR: dup h0, v31.h[16] 7092// CHECK-ERROR: ^ 7093// CHECK-ERROR: error: lane number incompatible with layout 7094// CHECK-ERROR: dup b1, v3.b[16] 7095// CHECK-ERROR: ^ 7096 7097//---------------------------------------------------------------------- 7098// Table look up 7099//---------------------------------------------------------------------- 7100 7101 tbl v0.8b, {v1.8b}, v2.8b 7102 tbl v0.8b, {v1.8b, v2.8b}, v2.8b 7103 tbl v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b 7104 tbl v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b 7105 tbl v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b 7106 7107// CHECK-ERROR: error: invalid operand for instruction 7108// CHECK-ERROR: tbl v0.8b, {v1.8b}, v2.8b 7109// CHECK-ERROR: ^ 7110// CHECK-ERROR: error: invalid operand for instruction 7111// CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b}, v2.8b 7112// CHECK-ERROR: ^ 7113// CHECK-ERROR: error: invalid operand for instruction 7114// CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b 7115// CHECK-ERROR: ^ 7116// CHECK-ERROR: error: invalid operand for instruction 7117// CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b 7118// CHECK-ERROR: ^ 7119// CHECK-ERROR: error: invalid number of vectors 7120// CHECK-ERROR: tbl v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b 7121// CHECK-ERROR: ^ 7122 7123 tbx v0.8b, {v1.8b}, v2.8b 7124 tbx v0.8b, {v1.8b, v2.8b}, v2.8b 7125 tbx v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b 7126 tbx v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b 7127 tbx v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b 7128 7129// CHECK-ERROR: error: invalid operand for instruction 7130// CHECK-ERROR: tbx v0.8b, {v1.8b}, v2.8b 7131// CHECK-ERROR: ^ 7132// CHECK-ERROR: error: invalid operand for instruction 7133// CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b}, v2.8b 7134// CHECK-ERROR: ^ 7135// CHECK-ERROR: error: invalid operand for instruction 7136// CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b 7137// CHECK-ERROR: ^ 7138// CHECK-ERROR: error: invalid operand for instruction 7139// CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b 7140// CHECK-ERROR: ^ 7141// CHECK-ERROR: error: invalid number of vectors 7142// CHECK-ERROR: tbx v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b 7143// CHECK-ERROR: ^ 7144