7154 lines · plain
1// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fprcvt < %s 2> %t2// RUN: FileCheck --check-prefix=CHECK-ERROR < %t %s3 4//------------------------------------------------------------------------------5// Vector Integer Add/sub6//------------------------------------------------------------------------------7 8 // Mismatched vector types9 add v0.16b, v1.8b, v2.8b10 sub v0.2d, v1.2d, v2.2s11 12// CHECK-ERROR: error: invalid operand for instruction13// CHECK-ERROR: add v0.16b, v1.8b, v2.8b14// CHECK-ERROR: ^15// CHECK-ERROR: error: invalid operand for instruction16// CHECK-ERROR: sub v0.2d, v1.2d, v2.2s17// CHECK-ERROR: ^18 19//------------------------------------------------------------------------------20// Vector Floating-Point Add/sub21//------------------------------------------------------------------------------22 23 // Mismatched and invalid vector types24 fadd v0.2d, v1.2s, v2.2s25 fsub v0.4s, v1.2s, v2.4s26 fsub v0.8b, v1.8b, v2.8b27 28// CHECK-ERROR: error: invalid operand for instruction29// CHECK-ERROR: fadd v0.2d, v1.2s, v2.2s30// CHECK-ERROR: ^31// CHECK-ERROR: error: invalid operand for instruction32// CHECK-ERROR: fsub v0.4s, v1.2s, v2.4s33// CHECK-ERROR: ^34// CHECK-ERROR: error: invalid operand for instruction35// CHECK-ERROR: fsub v0.8b, v1.8b, v2.8b36// CHECK-ERROR: ^37 38//----------------------------------------------------------------------39// Vector Integer Mul40//----------------------------------------------------------------------41 42 // Mismatched and invalid vector types43 mul v0.16b, v1.8b, v2.8b44 mul v0.2d, v1.2d, v2.2d45 46// CHECK-ERROR: error: invalid operand for instruction47// CHECK-ERROR: mul v0.16b, v1.8b, v2.8b48// CHECK-ERROR: ^49// CHECK-ERROR: error: invalid operand for instruction50// CHECK-ERROR: mul v0.2d, v1.2d, v2.2d51// CHECK-ERROR: ^52 53//----------------------------------------------------------------------54// Vector Floating-Point Mul/Div55//----------------------------------------------------------------------56 // Mismatched vector types57 fmul v0.16b, v1.8b, v2.8b58 fdiv v0.2s, v1.2d, v2.2d59 60// CHECK-ERROR: error: invalid operand for instruction61// CHECK-ERROR: fmul v0.16b, v1.8b, v2.8b62// CHECK-ERROR: ^63// CHECK-ERROR: error: invalid operand for instruction64// CHECK-ERROR: fdiv v0.2s, v1.2d, v2.2d65// CHECK-ERROR: ^66 67//----------------------------------------------------------------------68// Vector And Orr Eor Bsl Bit Bif, Orn, Bic,69//----------------------------------------------------------------------70 // Mismatched and invalid vector types71 and v0.8b, v1.16b, v2.8b72 orr v0.4h, v1.4h, v2.4h73 eor v0.2s, v1.2s, v2.2s74 bsl v0.8b, v1.16b, v2.8b75 bsl v0.2s, v1.2s, v2.2s76 bit v0.2d, v1.2d, v2.2d77 bif v0.4h, v1.4h, v2.4h78 orn v0.8b, v1.16b, v2.16b79 bic v0.2d, v1.2d, v2.2d80 81// CHECK-ERROR: error: invalid operand for instruction82// CHECK-ERROR: and v0.8b, v1.16b, v2.8b83// CHECK-ERROR: ^84// CHECK-ERROR: error: immediate must be an integer in range [0, 255]85// CHECK-ERROR: orr v0.4h, v1.4h, v2.4h86// CHECK-ERROR: ^87// CHECK-ERROR: error: invalid operand for instruction88// CHECK-ERROR: eor v0.2s, v1.2s, v2.2s89// CHECK-ERROR: ^90// CHECK-ERROR: error: invalid operand for instruction91// CHECK-ERROR: bsl v0.8b, v1.16b, v2.8b92// CHECK-ERROR: ^93// CHECK-ERROR: error: invalid operand for instruction94// CHECK-ERROR: bsl v0.2s, v1.2s, v2.2s95// CHECK-ERROR: ^96// CHECK-ERROR: error: invalid operand for instruction97// CHECK-ERROR: bit v0.2d, v1.2d, v2.2d98// CHECK-ERROR: ^99// CHECK-ERROR: error: invalid operand for instruction100// CHECK-ERROR: bif v0.4h, v1.4h, v2.4h101// CHECK-ERROR: ^102// CHECK-ERROR: error: invalid operand for instruction103// CHECK-ERROR: orn v0.8b, v1.16b, v2.16b104// CHECK-ERROR: ^105// CHECK-ERROR: error: invalid operand for instruction106// CHECK-ERROR: bic v0.2d, v1.2d, v2.2d107// CHECK-ERROR: ^108 109//----------------------------------------------------------------------110// Vector Integer Multiply-accumulate and Multiply-subtract111//----------------------------------------------------------------------112 113 // Mismatched and invalid vector types114 mla v0.16b, v1.8b, v2.8b115 mls v0.2d, v1.2d, v2.2d116 117// CHECK-ERROR: error: invalid operand for instruction118// CHECK-ERROR: mla v0.16b, v1.8b, v2.8b119// CHECK-ERROR: ^120// CHECK-ERROR: error: invalid operand for instruction121// CHECK-ERROR: mls v0.2d, v1.2d, v2.2d122// CHECK-ERROR: ^123 124//----------------------------------------------------------------------125// Vector Floating-Point Multiply-accumulate and Multiply-subtract126//----------------------------------------------------------------------127 // Mismatched vector types128 fmla v0.2s, v1.2d, v2.2d129 fmls v0.16b, v1.8b, v2.8b130 131// CHECK-ERROR: error: invalid operand for instruction132// CHECK-ERROR: fmla v0.2s, v1.2d, v2.2d133// CHECK-ERROR: ^134// CHECK-ERROR: error: invalid operand for instruction135// CHECK-ERROR: fmls v0.16b, v1.8b, v2.8b136// CHECK-ERROR: ^137 138 139//----------------------------------------------------------------------140// Vector Move Immediate Shifted141// Vector Move Inverted Immediate Shifted142// Vector Bitwise Bit Clear (AND NOT) - immediate143// Vector Bitwise OR - immedidate144//----------------------------------------------------------------------145 // out of range immediate (0 to 0xff)146 movi v0.2s, #-1147 mvni v1.4s, #256148 // out of range shift (0, 8, 16, 24 and 0, 8)149 bic v15.4h, #1, lsl #7150 orr v31.2s, #1, lsl #25151 movi v5.4h, #10, lsl #16152 // invalid vector type (2s, 4s, 4h, 8h)153 movi v5.8b, #1, lsl #8154 155// CHECK-ERROR: error: immediate must be an integer in range [0, 255]156// CHECK-ERROR: movi v0.2s, #-1157// CHECK-ERROR: ^158// CHECK-ERROR: error: immediate must be an integer in range [0, 255]159// CHECK-ERROR: mvni v1.4s, #256160// CHECK-ERROR: ^161// CHECK-ERROR: error: invalid operand for instruction162// CHECK-ERROR: bic v15.4h, #1, lsl #7163// CHECK-ERROR: ^164// CHECK-ERROR: error: invalid operand for instruction165// CHECK-ERROR: orr v31.2s, #1, lsl #25166// CHECK-ERROR: ^167// CHECK-ERROR: error: invalid operand for instruction168// CHECK-ERROR: movi v5.4h, #10, lsl #16169// CHECK-ERROR: ^170// CHECK-ERROR: error: invalid operand for instruction171// CHECK-ERROR: movi v5.8b, #1, lsl #8172// CHECK-ERROR: ^173//----------------------------------------------------------------------174// Vector Move Immediate Masked175// Vector Move Inverted Immediate Masked176//----------------------------------------------------------------------177 // out of range immediate (0 to 0xff)178 movi v0.2s, #-1, msl #8179 mvni v7.4s, #256, msl #16180 // out of range shift (8, 16)181 movi v3.2s, #1, msl #0182 mvni v17.4s, #255, msl #32183 // invalid vector type (2s, 4s)184 movi v5.4h, #31, msl #8185 186// CHECK-ERROR: error: immediate must be an integer in range [0, 255]187// CHECK-ERROR: movi v0.2s, #-1, msl #8188// CHECK-ERROR: ^189// CHECK-ERROR: error: immediate must be an integer in range [0, 255]190// CHECK-ERROR: mvni v7.4s, #256, msl #16191// CHECK-ERROR: ^192// CHECK-ERROR: error: invalid operand for instruction193// CHECK-ERROR: movi v3.2s, #1, msl #0194// CHECK-ERROR: ^195// CHECK-ERROR: error: invalid operand for instruction196// CHECK-ERROR: mvni v17.4s, #255, msl #32197// CHECK-ERROR: ^198// CHECK-ERROR: error: invalid operand for instruction199// CHECK-ERROR: movi v5.4h, #31, msl #8200// CHECK-ERROR: ^201 202//----------------------------------------------------------------------203// Vector Immediate - per byte204//----------------------------------------------------------------------205 // out of range immediate (0 to 0xff)206 movi v0.8b, #-1207 movi v1.16b, #256208 209// CHECK-ERROR: error: immediate must be an integer in range [0, 255]210// CHECK-ERROR: movi v0.8b, #-1211// CHECK-ERROR: ^212// CHECK-ERROR: error: immediate must be an integer in range [0, 255]213// CHECK-ERROR: movi v1.16b, #256214// CHECK-ERROR: ^215 216//----------------------------------------------------------------------217// Scalar Floating-point Reciprocal Estimate218//----------------------------------------------------------------------219 220 frecpe s19, h14221 frecpe d13, s13222 223// CHECK-ERROR: error: invalid operand for instruction224// CHECK-ERROR: frecpe s19, h14225// CHECK-ERROR: ^226// CHECK-ERROR: error: invalid operand for instruction227// CHECK-ERROR: frecpe d13, s13228// CHECK-ERROR: ^229 230//----------------------------------------------------------------------231// Scalar Floating-point Reciprocal Exponent232//----------------------------------------------------------------------233 234 frecpx s18, h10235 frecpx d16, s19236 237// CHECK-ERROR: error: invalid operand for instruction238// CHECK-ERROR: frecpx s18, h10239// CHECK-ERROR: ^240// CHECK-ERROR: error: invalid operand for instruction241// CHECK-ERROR: frecpx d16, s19242// CHECK-ERROR: ^243 244//----------------------------------------------------------------------245// Scalar Floating-point Reciprocal Square Root Estimate246//----------------------------------------------------------------------247 248 frsqrte s22, h13249 frsqrte d21, s12250 251// CHECK-ERROR: error: invalid operand for instruction252// CHECK-ERROR: frsqrte s22, h13253// CHECK-ERROR: ^254// CHECK-ERROR: error: invalid operand for instruction255// CHECK-ERROR: frsqrte d21, s12256// CHECK-ERROR: ^257 258//----------------------------------------------------------------------259// Vector Move Immediate - bytemask, per doubleword260//---------------------------------------------------------------------261 // invalid bytemask (0x00 or 0xff)262 movi v0.2d, #0x10ff00ff00ff00ff263 264// CHECK:ERROR: error: invalid operand for instruction265// CHECK:ERROR: movi v0.2d, #0x10ff00ff00ff00ff266// CHECK:ERROR: ^267 268//----------------------------------------------------------------------269// Vector Move Immediate - bytemask, one doubleword270//----------------------------------------------------------------------271 // invalid bytemask (0x00 or 0xff)272 movi v0.2d, #0xffff00ff001f00ff273 274// CHECK:ERROR: error: invalid operand for instruction275// CHECK:ERROR: movi v0.2d, #0xffff00ff001f00ff276// CHECK:ERROR: ^277//----------------------------------------------------------------------278// Vector Floating Point Move Immediate279//----------------------------------------------------------------------280 // invalid vector type (2s, 4s, 2d)281 fmov v0.4h, #1.0282 // invalid immediate (negative hexadecimal encoding)283 fmov v0.4s, #-0x0284 285// CHECK:ERROR: error: invalid operand for instruction286// CHECK:ERROR: fmov v0.4h, #1.0287// CHECK:ERROR: ^288// CHECK-ERROR: error: encoded floating point value out of range289// CHECK-ERROR: fmov v0.4s, #-0x0290// CHECK-ERROR: ^291 292//----------------------------------------------------------------------293// Vector Move - register294//----------------------------------------------------------------------295 // invalid vector type (8b, 16b)296 mov v0.2s, v31.8b297// CHECK:ERROR: error: invalid operand for instruction298// CHECK:ERROR: mov v0.2s, v31.8b299// CHECK:ERROR: ^300 301//----------------------------------------------------------------------302// Vector Absolute Difference and Accumulate (Signed, Unsigned)303//----------------------------------------------------------------------304 305 // Mismatched and invalid vector types (2d)306 saba v0.16b, v1.8b, v2.8b307 uaba v0.2d, v1.2d, v2.2d308 309// CHECK-ERROR: error: invalid operand for instruction310// CHECK-ERROR: saba v0.16b, v1.8b, v2.8b311// CHECK-ERROR: ^312// CHECK-ERROR: error: invalid operand for instruction313// CHECK-ERROR: uaba v0.2d, v1.2d, v2.2d314// CHECK-ERROR: ^315 316//----------------------------------------------------------------------317// Vector Absolute Difference and Accumulate (Signed, Unsigned)318// Vector Absolute Difference (Signed, Unsigned)319 320 // Mismatched and invalid vector types (2d)321 uaba v0.16b, v1.8b, v2.8b322 saba v0.2d, v1.2d, v2.2d323 uabd v0.4s, v1.2s, v2.2s324 sabd v0.4h, v1.8h, v8.8h325 326// CHECK-ERROR: error: invalid operand for instruction327// CHECK-ERROR: uaba v0.16b, v1.8b, v2.8b328// CHECK-ERROR: ^329// CHECK-ERROR: error: invalid operand for instruction330// CHECK-ERROR: saba v0.2d, v1.2d, v2.2d331// CHECK-ERROR: ^332// CHECK-ERROR: error: invalid operand for instruction333// CHECK-ERROR: uabd v0.4s, v1.2s, v2.2s334// CHECK-ERROR: ^335// CHECK-ERROR: error: invalid operand for instruction336// CHECK-ERROR: sabd v0.4h, v1.8h, v8.8h337// CHECK-ERROR: ^338 339//----------------------------------------------------------------------340// Vector Absolute Difference (Floating Point)341//----------------------------------------------------------------------342 // Mismatched and invalid vector types343 fabd v0.2s, v1.4s, v2.2d344 fabd v0.4h, v1.4h, v2.4h345 346// CHECK-ERROR: error: invalid operand for instruction347// CHECK-ERROR: fabd v0.2s, v1.4s, v2.2d348// CHECK-ERROR: ^349// CHECK-ERROR: error: instruction requires: fullfp16350// CHECK-ERROR: fabd v0.4h, v1.4h, v2.4h351// CHECK-ERROR: ^352//----------------------------------------------------------------------353// Vector Multiply (Polynomial)354//----------------------------------------------------------------------355 356 // Mismatched and invalid vector types357 pmul v0.8b, v1.8b, v2.16b358 pmul v0.2s, v1.2s, v2.2s359 360// CHECK-ERROR: error: invalid operand for instruction361// CHECK-ERROR: pmul v0.8b, v1.8b, v2.16b362// CHECK-ERROR: ^363// CHECK-ERROR: error: invalid operand for instruction364// CHECK-ERROR: pmul v0.2s, v1.2s, v2.2s365// CHECK-ERROR: ^366 367//----------------------------------------------------------------------368// Scalar Integer Add and Sub369//----------------------------------------------------------------------370 371 // Mismatched registers372 add d0, s1, d2373 sub s1, d1, d2374 375// CHECK-ERROR: error: invalid operand for instruction376// CHECK-ERROR: add d0, s1, d2377// CHECK-ERROR: ^378// CHECK-ERROR: error: invalid operand for instruction379// CHECK-ERROR: sub s1, d1, d2380// CHECK-ERROR: ^381 382//----------------------------------------------------------------------383// Vector Reciprocal Step (Floating Point)384//----------------------------------------------------------------------385 386 // Mismatched and invalid vector types387 frecps v0.4s, v1.2d, v2.4s388 frecps v0.8h, v1.8h, v2.8h389 390// CHECK-ERROR: error: invalid operand for instruction391// CHECK-ERROR: frecps v0.4s, v1.2d, v2.4s392// CHECK-ERROR: ^393// CHECK-ERROR: error: instruction requires: fullfp16394// CHECK-ERROR: frecps v0.8h, v1.8h, v2.8h395// CHECK-ERROR: ^396 397//----------------------------------------------------------------------398// Vector Reciprocal Square Root Step (Floating Point)399//----------------------------------------------------------------------400 401 // Mismatched and invalid vector types402 frsqrts v0.2d, v1.2d, v2.2s403 frsqrts v0.4h, v1.4h, v2.4h404 405// CHECK-ERROR: error: invalid operand for instruction406// CHECK-ERROR: frsqrts v0.2d, v1.2d, v2.2s407// CHECK-ERROR: ^408// CHECK-ERROR: error: instruction requires: fullfp16409// CHECK-ERROR: frsqrts v0.4h, v1.4h, v2.4h410// CHECK-ERROR: ^411 412 413//----------------------------------------------------------------------414// Vector Absolute Compare Mask Less Than Or Equal (Floating Point)415//----------------------------------------------------------------------416 417 // Mismatched and invalid vector types418 facge v0.2d, v1.2s, v2.2d419 facge v0.4h, v1.4h, v2.4h420 facle v0.8h, v1.4h, v2.4h421 422// CHECK-ERROR: error: invalid operand for instruction423// CHECK-ERROR: facge v0.2d, v1.2s, v2.2d424// CHECK-ERROR: ^425// CHECK-ERROR: error: instruction requires: fullfp16426// CHECK-ERROR: facge v0.4h, v1.4h, v2.4h427// CHECK-ERROR: ^428// CHECK-ERROR: error: invalid operand for instruction429// CHECK-ERROR: facle v0.8h, v1.4h, v2.4h430// CHECK-ERROR: ^431//----------------------------------------------------------------------432// Vector Absolute Compare Mask Less Than (Floating Point)433//----------------------------------------------------------------------434 435 // Mismatched and invalid vector types436 facgt v0.2d, v1.2d, v2.4s437 facgt v0.8h, v1.8h, v2.8h438 faclt v0.8b, v1.8b, v2.8b439 440// CHECK-ERROR: error: invalid operand for instruction441// CHECK-ERROR: facgt v0.2d, v1.2d, v2.4s442// CHECK-ERROR: ^443// CHECK-ERROR: error: instruction requires: fullfp16444// CHECK-ERROR: facgt v0.8h, v1.8h, v2.8h445// CHECK-ERROR: ^446// CHECK-ERROR: error: invalid operand for instruction447// CHECK-ERROR: faclt v0.8b, v1.8b, v2.8b448// CHECK-ERROR: ^449 450 451//----------------------------------------------------------------------452// Vector Compare Mask Equal (Integer)453//----------------------------------------------------------------------454 455 // Mismatched vector types456 cmeq c0.2d, v1.2d, v2.2s457 458// CHECK-ERROR: error: invalid operand for instruction459// CHECK-ERROR: cmeq c0.2d, v1.2d, v2.2s460// CHECK-ERROR: ^461 462//----------------------------------------------------------------------463// Vector Compare Mask Higher or Same (Unsigned Integer)464// Vector Compare Mask Less or Same (Unsigned Integer)465// CMLS is alias for CMHS with operands reversed.466//----------------------------------------------------------------------467 468 // Mismatched vector types469 cmhs c0.4h, v1.8b, v2.8b470 cmls c0.16b, v1.16b, v2.2d471 472// CHECK-ERROR: error: invalid operand for instruction473// CHECK-ERROR: cmhs c0.4h, v1.8b, v2.8b474// CHECK-ERROR: ^475// CHECK-ERROR: error: invalid operand for instruction476// CHECK-ERROR: cmls c0.16b, v1.16b, v2.2d477// CHECK-ERROR: ^478 479//----------------------------------------------------------------------480// Vector Compare Mask Greater Than or Equal (Integer)481// Vector Compare Mask Less Than or Equal (Integer)482// CMLE is alias for CMGE with operands reversed.483//----------------------------------------------------------------------484 485 // Mismatched vector types486 cmge c0.8h, v1.8b, v2.8b487 cmle c0.4h, v1.2s, v2.2s488 489// CHECK-ERROR: error: invalid operand for instruction490// CHECK-ERROR: cmge c0.8h, v1.8b, v2.8b491// CHECK-ERROR: ^492// CHECK-ERROR: error: invalid operand for instruction493// CHECK-ERROR: cmle c0.4h, v1.2s, v2.2s494// CHECK-ERROR: ^495 496//----------------------------------------------------------------------497// Vector Compare Mask Higher (Unsigned Integer)498// Vector Compare Mask Lower (Unsigned Integer)499// CMLO is alias for CMHI with operands reversed.500//----------------------------------------------------------------------501 502 // Mismatched vector types503 cmhi c0.4s, v1.4s, v2.16b504 cmlo c0.8b, v1.8b, v2.2s505 506// CHECK-ERROR: error: invalid operand for instruction507// CHECK-ERROR: cmhi c0.4s, v1.4s, v2.16b508// CHECK-ERROR: ^509// CHECK-ERROR: error: invalid operand for instruction510// CHECK-ERROR: cmlo c0.8b, v1.8b, v2.2s511// CHECK-ERROR: ^512 513//----------------------------------------------------------------------514// Vector Compare Mask Greater Than (Integer)515// Vector Compare Mask Less Than (Integer)516// CMLT is alias for CMGT with operands reversed.517//----------------------------------------------------------------------518 519 // Mismatched vector types520 cmgt c0.8b, v1.4s, v2.16b521 cmlt c0.8h, v1.16b, v2.4s522 523// CHECK-ERROR: error: invalid operand for instruction524// CHECK-ERROR: cmgt c0.8b, v1.4s, v2.16b525// CHECK-ERROR: ^526// CHECK-ERROR: error: invalid operand for instruction527// CHECK-ERROR: cmlt c0.8h, v1.16b, v2.4s528// CHECK-ERROR: ^529 530//----------------------------------------------------------------------531// Vector Compare Mask Bitwise Test (Integer)532//----------------------------------------------------------------------533 534 // Mismatched vector types535 cmtst c0.16b, v1.16b, v2.4s536 537// CHECK-ERROR: error: invalid operand for instruction538// CHECK-ERROR: cmtst c0.16b, v1.16b, v2.4s539// CHECK-ERROR: ^540 541//----------------------------------------------------------------------542// Vector Compare Mask Equal (Floating Point)543//----------------------------------------------------------------------544 545 // Mismatched and invalid vector types546 fcmeq v0.2d, v1.2s, v2.2d547 fcmeq v0.16b, v1.16b, v2.16b548 fcmeq v0.8b, v1.4h, v2.4h549 550// CHECK-ERROR: error: invalid operand for instruction551// CHECK-ERROR: fcmeq v0.2d, v1.2s, v2.2d552// CHECK-ERROR: ^553// CHECK-ERROR: error: invalid operand for instruction554// CHECK-ERROR: fcmeq v0.16b, v1.16b, v2.16b555// CHECK-ERROR: ^556// CHECK-ERROR: error: invalid operand for instruction557// CHECK-ERROR: fcmeq v0.8b, v1.4h, v2.4h558// CHECK-ERROR: ^559 560//----------------------------------------------------------------------561// Vector Compare Mask Greater Than Or Equal (Floating Point)562// Vector Compare Mask Less Than Or Equal (Floating Point)563// FCMLE is alias for FCMGE with operands reversed.564//----------------------------------------------------------------------565 566 // Mismatched and invalid vector types567 fcmge v31.4s, v29.2s, v28.4s568 fcmge v3.8b, v8.2s, v12.2s569 fcmle v17.8h, v15.2d, v13.2d570 571// CHECK-ERROR: error: invalid operand for instruction572// CHECK-ERROR: fcmge v31.4s, v29.2s, v28.4s573// CHECK-ERROR: ^574// CHECK-ERROR: error: invalid operand for instruction575// CHECK-ERROR: fcmge v3.8b, v8.2s, v12.2s576// CHECK-ERROR: ^577// CHECK-ERROR: error: invalid operand for instruction578// CHECK-ERROR: fcmle v17.8h, v15.2d, v13.2d579// CHECK-ERROR: ^580 581//----------------------------------------------------------------------582// Vector Compare Mask Greater Than (Floating Point)583// Vector Compare Mask Less Than (Floating Point)584// FCMLT is alias for FCMGT with operands reversed.585//----------------------------------------------------------------------586 587 // Mismatched and invalid vector types588 fcmgt v0.2d, v31.2s, v16.2s589 fcmgt v4.4s, v7.4s, v15.4h590 fcmlt v29.2d, v5.2d, v2.16b591 592// CHECK-ERROR: error: invalid operand for instruction593// CHECK-ERROR: fcmgt v0.2d, v31.2s, v16.2s594// CHECK-ERROR: ^595 596// CHECK-ERROR: error: invalid operand for instruction597// CHECK-ERROR: fcmgt v4.4s, v7.4s, v15.4h598// CHECK-ERROR: ^599// CHECK-ERROR: error: invalid operand for instruction600// CHECK-ERROR: fcmlt v29.2d, v5.2d, v2.16b601// CHECK-ERROR: ^602 603//----------------------------------------------------------------------604// Vector Compare Mask Equal to Zero (Integer)605//----------------------------------------------------------------------606 // Mismatched vector types and invalid imm607 // Mismatched vector types608 cmeq c0.2d, v1.2s, #0609 cmeq c0.2d, v1.2d, #1610 611// CHECK-ERROR: error: invalid operand for instruction612// CHECK-ERROR: cmeq c0.2d, v1.2s, #0613// CHECK-ERROR: ^614// CHECK-ERROR: error: invalid operand for instruction615// CHECK-ERROR: cmeq c0.2d, v1.2d, #1616// CHECK-ERROR: ^617 618//----------------------------------------------------------------------619// Vector Compare Mask Greater Than or Equal to Zero (Signed Integer)620//----------------------------------------------------------------------621 // Mismatched vector types and invalid imm622 cmge c0.8h, v1.8b, #0623 cmge c0.4s, v1.4s, #-1624 625// CHECK-ERROR: error: invalid operand for instruction626// CHECK-ERROR: cmge c0.8h, v1.8b, #0627// CHECK-ERROR: ^628// CHECK-ERROR: error: invalid operand for instruction629// CHECK-ERROR: cmge c0.4s, v1.4s, #-1630// CHECK-ERROR: ^631 632//----------------------------------------------------------------------633// Vector Compare Mask Greater Than Zero (Signed Integer)634//----------------------------------------------------------------------635 // Mismatched vector types and invalid imm636 cmgt c0.8b, v1.4s, #0637 cmgt c0.8b, v1.8b, #-255638 639// CHECK-ERROR: error: invalid operand for instruction640// CHECK-ERROR: cmgt c0.8b, v1.4s, #0641// CHECK-ERROR: ^642// CHECK-ERROR: error: invalid operand for instruction643// CHECK-ERROR: cmgt c0.8b, v1.8b, #-255644// CHECK-ERROR: ^645 646//----------------------------------------------------------------------647// Vector Compare Mask Less Than or Equal To Zero (Signed Integer)648//----------------------------------------------------------------------649 // Mismatched vector types and invalid imm650 cmle c0.4h, v1.2s, #0651 cmle c0.16b, v1.16b, #16652 653// CHECK-ERROR: error: invalid operand for instruction654// CHECK-ERROR: cmle c0.4h, v1.2s, #0655// CHECK-ERROR: ^656// CHECK-ERROR: error: invalid operand for instruction657// CHECK-ERROR: cmle c0.16b, v1.16b, #16658// CHECK-ERROR: ^659//----------------------------------------------------------------------660// Vector Compare Mask Less Than Zero (Signed Integer)661//----------------------------------------------------------------------662 // Mismatched vector types and invalid imm663 cmlt c0.8h, v1.16b, #0664 cmlt c0.8h, v1.8h, #-15665 666// CHECK-ERROR: error: invalid operand for instruction667// CHECK-ERROR: cmlt c0.8h, v1.16b, #0668// CHECK-ERROR: ^669// CHECK-ERROR: error: invalid operand for instruction670// CHECK-ERROR: cmlt c0.8h, v1.8h, #-15671// CHECK-ERROR: ^672 673//----------------------------------------------------------------------674// Vector Compare Mask Equal to Zero (Floating Point)675//----------------------------------------------------------------------676 677 // Mismatched and invalid vector types, invalid imm678 fcmeq v0.2d, v1.2s, #0.0679 fcmeq v0.16b, v1.16b, #0.0680 fcmeq v0.8b, v1.4h, #1.0681 fcmeq v0.8b, v1.4h, #1682 683// CHECK-ERROR: error: invalid operand for instruction684// CHECK-ERROR: fcmeq v0.2d, v1.2s, #0.0685// CHECK-ERROR: ^686// CHECK-ERROR: error: invalid operand for instruction687// CHECK-ERROR: fcmeq v0.16b, v1.16b, #0.0688// CHECK-ERROR: ^689 690 691// CHECK-ERROR: error: expected floating-point constant #0.0692// CHECK-ERROR: fcmeq v0.8b, v1.4h, #1.0693// CHECK-ERROR: ^694// CHECK-ERROR: error: invalid operand for instruction695// CHECK-ERROR: fcmeq v0.8b, v1.4h, #1696// CHECK-ERROR: ^697 698//----------------------------------------------------------------------699// Vector Compare Mask Greater Than or Equal to Zero (Floating Point)700//----------------------------------------------------------------------701 702 // Mismatched and invalid vector types, invalid imm703 fcmge v31.4s, v29.2s, #0.0704 fcmge v3.8b, v8.2s, #0.0705 fcmle v17.8h, v15.2d, #-1.0706 fcmle v17.8h, v15.2d, #2707 708// CHECK-ERROR: error: invalid operand for instruction709// CHECK-ERROR: fcmge v31.4s, v29.2s, #0.0710// CHECK-ERROR: ^711// CHECK-ERROR: error: invalid operand for instruction712// CHECK-ERROR: fcmge v3.8b, v8.2s, #0.0713// CHECK-ERROR: ^714 715 716// CHECK-ERROR: error: expected floating-point constant #0.0717// CHECK-ERROR: fcmle v17.8h, v15.2d, #-1.0718// CHECK-ERROR: ^719// CHECK-ERROR: error: invalid operand for instruction720// CHECK-ERROR: fcmle v17.8h, v15.2d, #2721// CHECK-ERROR: ^722 723//----------------------------------------------------------------------724// Vector Compare Mask Greater Than Zero (Floating Point)725//----------------------------------------------------------------------726 // Mismatched and invalid vector types, invalid imm727 fcmgt v0.2d, v31.2s, #0.0728 fcmgt v4.4s, v7.4h, #0.0729 fcmlt v29.2d, v5.2d, #255.0730 fcmlt v29.2d, v5.2d, #255731 732// CHECK-ERROR: error: invalid operand for instruction733// CHECK-ERROR: fcmgt v0.2d, v31.2s, #0.0734// CHECK-ERROR: ^735// CHECK-ERROR: error: invalid operand for instruction736// CHECK-ERROR: fcmgt v4.4s, v7.4h, #0.0737// CHECK-ERROR: ^738 739 740// CHECK-ERROR: error: expected floating-point constant #0.0741// CHECK-ERROR: fcmlt v29.2d, v5.2d, #255.0742// CHECK-ERROR: ^743// CHECK-ERROR: error: invalid operand for instruction744// CHECK-ERROR: fcmlt v29.2d, v5.2d, #255745// CHECK-ERROR: ^746 747//----------------------------------------------------------------------748// Vector Compare Mask Less Than or Equal To Zero (Floating Point)749//----------------------------------------------------------------------750 // Mismatched and invalid vector types, invalid imm751 fcmge v31.4s, v29.2s, #0.0752 fcmge v3.8b, v8.2s, #0.0753 fcmle v17.2d, v15.2d, #15.0754 fcmle v17.2d, v15.2d, #15755 756// CHECK-ERROR: error: invalid operand for instruction757// CHECK-ERROR: fcmge v31.4s, v29.2s, #0.0758// CHECK-ERROR: ^759// CHECK-ERROR: error: invalid operand for instruction760// CHECK-ERROR: fcmge v3.8b, v8.2s, #0.0761// CHECK-ERROR: ^762 763 764// CHECK-ERROR: error: expected floating-point constant #0.0765// CHECK-ERROR: fcmle v17.2d, v15.2d, #15.0766// CHECK-ERROR: ^767// CHECK-ERROR: error: invalid operand for instruction768// CHECK-ERROR: fcmle v17.2d, v15.2d, #15769// CHECK-ERROR: ^770 771//----------------------------------------------------------------------772// Vector Compare Mask Less Than Zero (Floating Point)773//----------------------------------------------------------------------774 // Mismatched and invalid vector types, invalid imm775 fcmgt v0.2d, v31.2s, #0.0776 fcmgt v4.4s, v7.4h, #0.0777 fcmlt v29.2d, v5.2d, #16.0778 fcmlt v29.2d, v5.2d, #2779 780// CHECK-ERROR: error: invalid operand for instruction781// CHECK-ERROR: fcmgt v0.2d, v31.2s, #0.0782// CHECK-ERROR: ^783// CHECK-ERROR: error: invalid operand for instruction784// CHECK-ERROR: fcmgt v4.4s, v7.4h, #0.0785// CHECK-ERROR: ^786 787 788// CHECK-ERROR: error: expected floating-point constant #0.0789// CHECK-ERROR: fcmlt v29.2d, v5.2d, #16.0790// CHECK-ERROR: ^791// CHECK-ERROR: error: invalid operand for instruction792// CHECK-ERROR: fcmlt v29.2d, v5.2d, #2793// CHECK-ERROR: ^794 795//-----------------------------------------------------------------------796// Vector Integer Halving Add (Signed)797// Vector Integer Halving Add (Unsigned)798// Vector Integer Halving Sub (Signed)799// Vector Integer Halving Sub (Unsigned)800//----------------------------------------------------------------------801 // Mismatched and invalid vector types (2d)802 shadd v0.2d, v1.2d, v2.2d803 uhadd v4.2s, v5.2s, v5.4h804 shsub v11.4h, v12.8h, v13.4h805 uhsub v31.16b, v29.8b, v28.8b806 807// CHECK-ERROR: error: invalid operand for instruction808// CHECK-ERROR: shadd v0.2d, v1.2d, v2.2d809// CHECK-ERROR: ^810// CHECK-ERROR: error: invalid operand for instruction811// CHECK-ERROR: uhadd v4.2s, v5.2s, v5.4h812// CHECK-ERROR: ^813// CHECK-ERROR: error: invalid operand for instruction814// CHECK-ERROR: shsub v11.4h, v12.8h, v13.4h815// CHECK-ERROR: ^816// CHECK-ERROR: error: invalid operand for instruction817// CHECK-ERROR: uhsub v31.16b, v29.8b, v28.8b818// CHECK-ERROR: ^819 820//----------------------------------------------------------------------821// Vector Integer Rouding Halving Add (Signed)822// Vector Integer Rouding Halving Add (Unsigned)823//----------------------------------------------------------------------824 825 // Mismatched and invalid vector types (2d)826 srhadd v0.2s, v1.2s, v2.2d827 urhadd v0.16b, v1.16b, v2.8h828 829// CHECK-ERROR: error: invalid operand for instruction830// CHECK-ERROR: srhadd v0.2s, v1.2s, v2.2d831// CHECK-ERROR: ^832// CHECK-ERROR: error: invalid operand for instruction833// CHECK-ERROR: urhadd v0.16b, v1.16b, v2.8h834// CHECK-ERROR: ^835 836//----------------------------------------------------------------------837// Vector Integer Saturating Add (Signed)838// Vector Integer Saturating Add (Unsigned)839// Vector Integer Saturating Sub (Signed)840// Vector Integer Saturating Sub (Unsigned)841//----------------------------------------------------------------------842 843 // Mismatched vector types844 sqadd v0.2s, v1.2s, v2.2d845 uqadd v31.8h, v1.4h, v2.4h846 sqsub v10.8h, v1.16b, v2.16b847 uqsub v31.8b, v1.8b, v2.4s848 849// CHECK-ERROR: error: invalid operand for instruction850// CHECK-ERROR: sqadd v0.2s, v1.2s, v2.2d851// CHECK-ERROR: ^852// CHECK-ERROR: error: invalid operand for instruction853// CHECK-ERROR: uqadd v31.8h, v1.4h, v2.4h854// CHECK-ERROR: ^855// CHECK-ERROR: error: invalid operand for instruction856// CHECK-ERROR: sqsub v10.8h, v1.16b, v2.16b857// CHECK-ERROR: ^858// CHECK-ERROR: error: invalid operand for instruction859// CHECK-ERROR: uqsub v31.8b, v1.8b, v2.4s860// CHECK-ERROR: ^861 862//----------------------------------------------------------------------863// Scalar Integer Saturating Add (Signed)864// Scalar Integer Saturating Add (Unsigned)865// Scalar Integer Saturating Sub (Signed)866// Scalar Integer Saturating Sub (Unsigned)867//----------------------------------------------------------------------868 869 // Mismatched registers870 sqadd d0, s31, d2871 uqadd s0, s1, d2872 sqsub b0, b2, s18873 uqsub h1, h2, d2874 875// CHECK-ERROR: error: invalid operand for instruction876// CHECK-ERROR: sqadd d0, s31, d2877// CHECK-ERROR: ^878// CHECK-ERROR: error: invalid operand for instruction879// CHECK-ERROR: uqadd s0, s1, d2880// CHECK-ERROR: ^881// CHECK-ERROR: error: invalid operand for instruction882// CHECK-ERROR: sqsub b0, b2, s18883// CHECK-ERROR: ^884// CHECK-ERROR: error: invalid operand for instruction885// CHECK-ERROR: uqsub h1, h2, d2886// CHECK-ERROR: ^887 888//----------------------------------------------------------------------889// Scalar Integer Saturating Doubling Multiply Half High (Signed)890//----------------------------------------------------------------------891 892 sqdmulh h10, s11, h12893 sqdmulh s20, h21, s2894 895// CHECK-ERROR: error: invalid operand for instruction896// CHECK-ERROR: sqdmulh h10, s11, h12897// CHECK-ERROR: ^898// CHECK-ERROR: error: invalid operand for instruction899// CHECK-ERROR: sqdmulh s20, h21, s2900// CHECK-ERROR: ^901 902//------------------------------------------------------------------------903// Scalar Integer Saturating Rounding Doubling Multiply Half High (Signed)904//------------------------------------------------------------------------905 906 sqrdmulh h10, s11, h12907 sqrdmulh s20, h21, s2908 909// CHECK-ERROR: error: invalid operand for instruction910// CHECK-ERROR: sqrdmulh h10, s11, h12911// CHECK-ERROR: ^912// CHECK-ERROR: error: invalid operand for instruction913// CHECK-ERROR: sqrdmulh s20, h21, s2914// CHECK-ERROR: ^915 916//----------------------------------------------------------------------917// Vector Shift Left (Signed and Unsigned Integer)918//----------------------------------------------------------------------919 // Mismatched vector types920 sshl v0.4s, v15.2s, v16.2s921 ushl v1.16b, v25.16b, v6.8h922 923// CHECK-ERROR: error: invalid operand for instruction924// CHECK-ERROR: sshl v0.4s, v15.2s, v16.2s925// CHECK-ERROR: ^926// CHECK-ERROR: error: invalid operand for instruction927// CHECK-ERROR: ushl v1.16b, v25.16b, v6.8h928// CHECK-ERROR: ^929 930//----------------------------------------------------------------------931// Vector Saturating Shift Left (Signed and Unsigned Integer)932//----------------------------------------------------------------------933 // Mismatched vector types934 sqshl v0.2s, v15.4s, v16.2d935 uqshl v1.8b, v25.4h, v6.8h936 937// CHECK-ERROR: error: invalid operand for instruction938// CHECK-ERROR: sqshl v0.2s, v15.4s, v16.2d 939// CHECK-ERROR: ^940// CHECK-ERROR: error: invalid operand for instruction941// CHECK-ERROR: uqshl v1.8b, v25.4h, v6.8h942// CHECK-ERROR: ^943 944//----------------------------------------------------------------------945// Vector Rouding Shift Left (Signed and Unsigned Integer)946//----------------------------------------------------------------------947 // Mismatched vector types948 srshl v0.8h, v15.8h, v16.16b949 urshl v1.2d, v25.2d, v6.4s950 951// CHECK-ERROR: error: invalid operand for instruction952// CHECK-ERROR: srshl v0.8h, v15.8h, v16.16b953// CHECK-ERROR: ^954// CHECK-ERROR: error: invalid operand for instruction955// CHECK-ERROR: urshl v1.2d, v25.2d, v6.4s956// CHECK-ERROR: ^957 958//----------------------------------------------------------------------959// Vector Saturating Rouding Shift Left (Signed and Unsigned Integer)960//----------------------------------------------------------------------961 // Mismatched vector types962 sqrshl v0.2s, v15.8h, v16.16b963 uqrshl v1.4h, v25.4h, v6.2d964 965// CHECK-ERROR: error: invalid operand for instruction966// CHECK-ERROR: sqrshl v0.2s, v15.8h, v16.16b967// CHECK-ERROR: ^968// CHECK-ERROR: error: invalid operand for instruction969// CHECK-ERROR: uqrshl v1.4h, v25.4h, v6.2d970// CHECK-ERROR: ^971 972//----------------------------------------------------------------------973// Scalar Integer Shift Left (Signed, Unsigned)974//----------------------------------------------------------------------975 // Mismatched and invalid vector types976 sshl d0, d1, s2977 ushl b2, b0, b1978 979// CHECK-ERROR: error: invalid operand for instruction980// CHECK-ERROR: sshl d0, d1, s2981// CHECK-ERROR: ^982// CHECK-ERROR: error: invalid operand for instruction983// CHECK-ERROR: ushl b2, b0, b1984// CHECK-ERROR: ^985 986//----------------------------------------------------------------------987// Scalar Integer Saturating Shift Left (Signed, Unsigned)988//----------------------------------------------------------------------989 990 // Mismatched vector types991 sqshl b0, s1, b0992 uqshl h0, b1, h0993 sqshl s0, h1, s0994 uqshl d0, b1, d0995 996// CHECK-ERROR: error: invalid operand for instruction997// CHECK-ERROR: sqshl b0, s1, b0998// CHECK-ERROR: ^999// CHECK-ERROR: error: invalid operand for instruction1000// CHECK-ERROR: uqshl h0, b1, h01001// CHECK-ERROR: ^1002// CHECK-ERROR: error: invalid operand for instruction1003// CHECK-ERROR: sqshl s0, h1, s01004// CHECK-ERROR: ^1005// CHECK-ERROR: error: invalid operand for instruction1006// CHECK-ERROR: uqshl d0, b1, d01007// CHECK-ERROR: ^1008 1009//----------------------------------------------------------------------1010// Scalar Integer Rouding Shift Left (Signed, Unsigned)1011//----------------------------------------------------------------------1012 // Mismatched and invalid vector types1013 srshl h0, h1, h21014 urshl s0, s1, s21015 1016// CHECK-ERROR: error: invalid operand for instruction1017// CHECK-ERROR: srshl h0, h1, h21018// CHECK-ERROR: ^1019// CHECK-ERROR: error: invalid operand for instruction1020// CHECK-ERROR: urshl s0, s1, s21021// CHECK-ERROR: ^1022 1023 1024//----------------------------------------------------------------------1025// Scalar Integer Saturating Rounding Shift Left (Signed, Unsigned)1026//----------------------------------------------------------------------1027 1028 // Mismatched vector types1029 sqrshl b0, b1, s01030 uqrshl h0, h1, b01031 sqrshl s0, s1, h01032 uqrshl d0, d1, b01033 1034// CHECK-ERROR: error: invalid operand for instruction1035// CHECK-ERROR: sqrshl b0, b1, s01036// CHECK-ERROR: ^1037// CHECK-ERROR: error: invalid operand for instruction1038// CHECK-ERROR: uqrshl h0, h1, b01039// CHECK-ERROR: ^1040// CHECK-ERROR: error: invalid operand for instruction1041// CHECK-ERROR: sqrshl s0, s1, h01042// CHECK-ERROR: ^1043// CHECK-ERROR: error: invalid operand for instruction1044// CHECK-ERROR: uqrshl d0, d1, b01045// CHECK-ERROR: ^1046 1047 1048//----------------------------------------------------------------------1049// Vector Maximum (Signed, Unsigned)1050//----------------------------------------------------------------------1051 // Mismatched and invalid vector types1052 smax v0.2d, v1.2d, v2.2d1053 umax v0.4h, v1.4h, v2.2s1054 1055// CHECK-ERROR: error: invalid operand for instruction1056// CHECK-ERROR: smax v0.2d, v1.2d, v2.2d1057// CHECK-ERROR: ^1058// CHECK-ERROR: error: invalid operand for instruction1059// CHECK-ERROR: umax v0.4h, v1.4h, v2.2s1060// CHECK-ERROR: ^1061 1062//----------------------------------------------------------------------1063// Vector Minimum (Signed, Unsigned)1064//----------------------------------------------------------------------1065 // Mismatched and invalid vector types1066 smin v0.2d, v1.2d, v2.2d1067 umin v0.2s, v1.2s, v2.8b1068 1069// CHECK-ERROR: error: invalid operand for instruction1070// CHECK-ERROR: smin v0.2d, v1.2d, v2.2d1071// CHECK-ERROR: ^1072// CHECK-ERROR: error: invalid operand for instruction1073// CHECK-ERROR: umin v0.2s, v1.2s, v2.8b1074// CHECK-ERROR: ^1075 1076 1077//----------------------------------------------------------------------1078// Vector Maximum (Floating Point)1079//----------------------------------------------------------------------1080 // Mismatched and invalid vector types1081 fmax v0.2s, v1.2s, v2.4s1082 fmax v0.8b, v1.8b, v2.8b1083 1084// CHECK-ERROR: error: invalid operand for instruction1085// CHECK-ERROR: fmax v0.2s, v1.2s, v2.4s1086// CHECK-ERROR: ^1087// CHECK-ERROR: error: invalid operand for instruction1088// CHECK-ERROR: fmax v0.8b, v1.8b, v2.8b1089// CHECK-ERROR: ^1090//----------------------------------------------------------------------1091// Vector Minimum (Floating Point)1092//----------------------------------------------------------------------1093 // Mismatched and invalid vector types1094 fmin v0.4s, v1.4s, v2.2d1095 fmin v0.8h, v1.8h, v2.8h1096 1097// CHECK-ERROR: error: invalid operand for instruction1098// CHECK-ERROR: fmin v0.4s, v1.4s, v2.2d1099// CHECK-ERROR: ^1100// CHECK-ERROR: error: instruction requires: fullfp161101// CHECK-ERROR: fmin v0.8h, v1.8h, v2.8h1102// CHECK-ERROR: ^1103 1104//----------------------------------------------------------------------1105// Vector maxNum (Floating Point)1106//----------------------------------------------------------------------1107 // Mismatched and invalid vector types1108 fmaxnm v0.2s, v1.2s, v2.2d1109 fmaxnm v0.4h, v1.8h, v2.4h1110 1111// CHECK-ERROR: error: invalid operand for instruction1112// CHECK-ERROR: fmaxnm v0.2s, v1.2s, v2.2d1113// CHECK-ERROR: ^1114// CHECK-ERROR: error: invalid operand for instruction1115// CHECK-ERROR: fmaxnm v0.4h, v1.8h, v2.4h1116// CHECK-ERROR: ^1117 1118//----------------------------------------------------------------------1119// Vector minNum (Floating Point)1120//----------------------------------------------------------------------1121 // Mismatched and invalid vector types1122 fminnm v0.4s, v1.2s, v2.4s1123 fminnm v0.16b, v0.16b, v0.16b1124 1125// CHECK-ERROR: error: invalid operand for instruction1126// CHECK-ERROR: fminnm v0.4s, v1.2s, v2.4s1127// CHECK-ERROR: ^1128// CHECK-ERROR: error: invalid operand for instruction1129// CHECK-ERROR: fminnm v0.16b, v0.16b, v0.16b1130// CHECK-ERROR: ^1131 1132 1133//----------------------------------------------------------------------1134// Vector Maximum Pairwise (Signed, Unsigned)1135//----------------------------------------------------------------------1136 // Mismatched and invalid vector types1137 smaxp v0.2d, v1.2d, v2.2d1138 umaxp v0.4h, v1.4h, v2.2s1139 1140// CHECK-ERROR: error: invalid operand for instruction1141// CHECK-ERROR: smaxp v0.2d, v1.2d, v2.2d1142// CHECK-ERROR: ^1143// CHECK-ERROR: error: invalid operand for instruction1144// CHECK-ERROR: umaxp v0.4h, v1.4h, v2.2s1145// CHECK-ERROR: ^1146 1147//----------------------------------------------------------------------1148// Vector Minimum Pairwise (Signed, Unsigned)1149//----------------------------------------------------------------------1150 // Mismatched and invalid vector types1151 sminp v0.2d, v1.2d, v2.2d1152 uminp v0.2s, v1.2s, v2.8b1153 1154// CHECK-ERROR: error: invalid operand for instruction1155// CHECK-ERROR: sminp v0.2d, v1.2d, v2.2d1156// CHECK-ERROR: ^1157// CHECK-ERROR: error: invalid operand for instruction1158// CHECK-ERROR: uminp v0.2s, v1.2s, v2.8b1159// CHECK-ERROR: ^1160 1161 1162//----------------------------------------------------------------------1163// Vector Maximum Pairwise (Floating Point)1164//----------------------------------------------------------------------1165 // Mismatched and invalid vector types1166 fmaxp v0.2s, v1.2s, v2.4s1167 fmaxp v0.8b, v1.8b, v2.8b1168 1169// CHECK-ERROR: error: invalid operand for instruction1170// CHECK-ERROR: fmaxp v0.2s, v1.2s, v2.4s1171// CHECK-ERROR: ^1172// CHECK-ERROR: error: invalid operand for instruction1173// CHECK-ERROR: fmaxp v0.8b, v1.8b, v2.8b1174// CHECK-ERROR: ^1175//----------------------------------------------------------------------1176// Vector Minimum Pairwise (Floating Point)1177//----------------------------------------------------------------------1178 // Mismatched and invalid vector types1179 fminp v0.4s, v1.4s, v2.2d1180 fminp v0.8h, v1.8h, v2.8h1181 1182// CHECK-ERROR: error: invalid operand for instruction1183// CHECK-ERROR: fminp v0.4s, v1.4s, v2.2d1184// CHECK-ERROR: ^1185// CHECK-ERROR: error: instruction requires: fullfp161186// CHECK-ERROR: fminp v0.8h, v1.8h, v2.8h1187// CHECK-ERROR: ^1188 1189//----------------------------------------------------------------------1190// Vector maxNum Pairwise (Floating Point)1191//----------------------------------------------------------------------1192 // Mismatched and invalid vector types1193 fmaxnmp v0.2s, v1.2s, v2.2d1194 fmaxnmp v0.4h, v1.8h, v2.4h1195 1196// CHECK-ERROR: error: invalid operand for instruction1197// CHECK-ERROR: fmaxnmp v0.2s, v1.2s, v2.2d1198// CHECK-ERROR: ^1199// CHECK-ERROR: error: invalid operand for instruction1200// CHECK-ERROR: fmaxnmp v0.4h, v1.8h, v2.4h1201// CHECK-ERROR: ^1202 1203//----------------------------------------------------------------------1204// Vector minNum Pairwise (Floating Point)1205//----------------------------------------------------------------------1206 // Mismatched and invalid vector types1207 fminnmp v0.4s, v1.2s, v2.4s1208 fminnmp v0.16b, v0.16b, v0.16b1209 1210// CHECK-ERROR: error: invalid operand for instruction1211// CHECK-ERROR: fminnmp v0.4s, v1.2s, v2.4s1212// CHECK-ERROR: ^1213// CHECK-ERROR: error: invalid operand for instruction1214// CHECK-ERROR: fminnmp v0.16b, v0.16b, v0.16b1215// CHECK-ERROR: ^1216 1217 1218//----------------------------------------------------------------------1219// Vector Add Pairwise (Integer)1220//----------------------------------------------------------------------1221 1222 // Mismatched vector types1223 addp v0.16b, v1.8b, v2.8b1224 1225// CHECK-ERROR: error: invalid operand for instruction1226// CHECK-ERROR: addp v0.16b, v1.8b, v2.8b1227// CHECK-ERROR: ^1228 1229//----------------------------------------------------------------------1230// Vector Add Pairwise (Floating Point)1231//----------------------------------------------------------------------1232 // Mismatched and invalid vector types1233 faddp v0.16b, v1.8b, v2.8b1234 faddp v0.2d, v1.2d, v2.8h1235 1236// CHECK-ERROR: error: invalid operand for instruction1237// CHECK-ERROR: faddp v0.16b, v1.8b, v2.8b1238// CHECK-ERROR: ^1239// CHECK-ERROR: error: invalid operand for instruction1240// CHECK-ERROR: faddp v0.2d, v1.2d, v2.8h1241// CHECK-ERROR: ^1242 1243 1244//----------------------------------------------------------------------1245// Vector Saturating Doubling Multiply High1246//----------------------------------------------------------------------1247 // Mismatched and invalid vector types1248 sqdmulh v2.4h, v25.8h, v3.4h1249 sqdmulh v12.2d, v5.2d, v13.2d1250 sqdmulh v3.8b, v1.8b, v30.8b1251 1252// CHECK-ERROR: error: invalid operand for instruction1253// CHECK-ERROR: sqdmulh v2.4h, v25.8h, v3.4h1254// CHECK-ERROR: ^1255// CHECK-ERROR: error: invalid operand for instruction1256// CHECK-ERROR: sqdmulh v12.2d, v5.2d, v13.2d1257// CHECK-ERROR: ^1258// CHECK-ERROR: error: invalid operand for instruction1259// CHECK-ERROR: sqdmulh v3.8b, v1.8b, v30.8b1260// CHECK-ERROR: ^1261 1262//----------------------------------------------------------------------1263// Vector Saturating Rouding Doubling Multiply High1264//----------------------------------------------------------------------1265 // Mismatched and invalid vector types1266 sqrdmulh v2.2s, v25.4s, v3.4s1267 sqrdmulh v12.16b, v5.16b, v13.16b1268 sqrdmulh v3.4h, v1.4h, v30.2d1269 1270 1271// CHECK-ERROR: error: invalid operand for instruction1272// CHECK-ERROR: sqrdmulh v2.2s, v25.4s, v3.4s1273// CHECK-ERROR: ^1274// CHECK-ERROR: error: invalid operand for instruction1275// CHECK-ERROR: sqrdmulh v12.16b, v5.16b, v13.16b1276// CHECK-ERROR: ^1277// CHECK-ERROR: error: invalid operand for instruction1278// CHECK-ERROR: sqrdmulh v3.4h, v1.4h, v30.2d1279// CHECK-ERROR: ^1280 1281//----------------------------------------------------------------------1282// Vector Multiply Extended1283//----------------------------------------------------------------------1284 // Mismatched and invalid vector types1285 fmulx v21.2s, v5.2s, v13.2d1286 fmulx v1.4h, v25.4h, v3.4h1287 1288// CHECK-ERROR: error: invalid operand for instruction1289// CHECK-ERROR: fmulx v21.2s, v5.2s, v13.2d1290// CHECK-ERROR: ^1291// CHECK-ERROR: error: instruction requires: fullfp161292// CHECK-ERROR: fmulx v1.4h, v25.4h, v3.4h1293// CHECK-ERROR: ^1294 1295//------------------------------------------------------------------------------1296// Vector Shift Left by Immediate1297//------------------------------------------------------------------------------1298 // Mismatched vector types and out of range1299 shl v0.4s, v15,2s, #31300 shl v0.2d, v17.4s, #31301 shl v0.8b, v31.8b, #-11302 shl v0.8b, v31.8b, #81303 shl v0.4s, v21.4s, #321304 shl v0.2d, v1.2d, #641305 1306 1307// CHECK-ERROR: error: unexpected token in argument list1308// CHECK-ERROR: shl v0.4s, v15,2s, #31309// CHECK-ERROR: ^1310 1311// CHECK-ERROR: error: invalid operand for instruction1312// CHECK-ERROR: shl v0.2d, v17.4s, #31313// CHECK-ERROR: ^1314// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1315// CHECK-ERROR: shl v0.8b, v31.8b, #-11316// CHECK-ERROR: ^1317// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1318// CHECK-ERROR: shl v0.8b, v31.8b, #81319// CHECK-ERROR: ^1320// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]1321// CHECK-ERROR: shl v0.4s, v21.4s, #321322// CHECK-ERROR: ^1323// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]1324// CHECK-ERROR: shl v0.2d, v1.2d, #641325// CHECK-ERROR: ^1326 1327//----------------------------------------------------------------------1328// Vector Shift Left Long by Immediate1329//----------------------------------------------------------------------1330 // Mismatched vector types1331 sshll v0.4s, v15.2s, #31332 ushll v1.16b, v25.16b, #61333 sshll2 v0.2d, v3.8s, #151334 ushll2 v1.4s, v25.4s, #71335 1336 // Out of range 1337 sshll v0.8h, v1.8b, #-11338 sshll v0.8h, v1.8b, #91339 ushll v0.4s, v1.4h, #171340 ushll v0.2d, v1.2s, #331341 sshll2 v0.8h, v1.16b, #91342 sshll2 v0.4s, v1.8h, #171343 ushll2 v0.2d, v1.4s, #331344 1345// CHECK-ERROR: error: invalid operand for instruction1346// CHECK-ERROR: sshll v0.4s, v15.2s, #31347// CHECK-ERROR: ^1348// CHECK-ERROR: error: invalid operand for instruction1349// CHECK-ERROR: ushll v1.16b, v25.16b, #61350// CHECK-ERROR: ^1351// CHECK-ERROR: error: invalid vector kind qualifier1352// CHECK-ERROR: sshll2 v0.2d, v3.8s, #151353// CHECK-ERROR: ^1354// CHECK-ERROR: error: invalid operand for instruction1355// CHECK-ERROR: ushll2 v1.4s, v25.4s, #71356// CHECK-ERROR: ^1357// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1358// CHECK-ERROR: sshll v0.8h, v1.8b, #-11359// CHECK-ERROR: ^1360// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1361// CHECK-ERROR: sshll v0.8h, v1.8b, #91362// CHECK-ERROR: ^1363// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]1364// CHECK-ERROR: ushll v0.4s, v1.4h, #171365// CHECK-ERROR: ^1366// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]1367// CHECK-ERROR: ushll v0.2d, v1.2s, #331368// CHECK-ERROR: ^1369// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1370// CHECK-ERROR: sshll2 v0.8h, v1.16b, #91371// CHECK-ERROR: ^1372// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]1373// CHECK-ERROR: sshll2 v0.4s, v1.8h, #171374// CHECK-ERROR: ^1375// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]1376// CHECK-ERROR: ushll2 v0.2d, v1.4s, #331377// CHECK-ERROR: ^1378 1379 1380//------------------------------------------------------------------------------1381// Vector shift right by immediate1382//------------------------------------------------------------------------------1383 sshr v0.8b, v1.8h, #31384 sshr v0.4h, v1.4s, #31385 sshr v0.2s, v1.2d, #31386 sshr v0.16b, v1.16b, #91387 sshr v0.8h, v1.8h, #171388 sshr v0.4s, v1.4s, #331389 sshr v0.2d, v1.2d, #651390 1391// CHECK-ERROR: error: invalid operand for instruction1392// CHECK-ERROR: sshr v0.8b, v1.8h, #31393// CHECK-ERROR: ^1394// CHECK-ERROR: error: invalid operand for instruction1395// CHECK-ERROR: sshr v0.4h, v1.4s, #31396// CHECK-ERROR: ^1397// CHECK-ERROR: error: invalid operand for instruction1398// CHECK-ERROR: sshr v0.2s, v1.2d, #31399// CHECK-ERROR: ^1400// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1401// CHECK-ERROR: sshr v0.16b, v1.16b, #91402// CHECK-ERROR: ^1403// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1404// CHECK-ERROR: sshr v0.8h, v1.8h, #171405// CHECK-ERROR: ^1406// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1407// CHECK-ERROR: sshr v0.4s, v1.4s, #331408// CHECK-ERROR: ^1409// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1410// CHECK-ERROR: sshr v0.2d, v1.2d, #651411// CHECK-ERROR: ^1412 1413//------------------------------------------------------------------------------1414// Vector shift right by immediate1415//------------------------------------------------------------------------------1416 ushr v0.8b, v1.8h, #31417 ushr v0.4h, v1.4s, #31418 ushr v0.2s, v1.2d, #31419 ushr v0.16b, v1.16b, #91420 ushr v0.8h, v1.8h, #171421 ushr v0.4s, v1.4s, #331422 ushr v0.2d, v1.2d, #651423 1424// CHECK-ERROR: error: invalid operand for instruction1425// CHECK-ERROR: ushr v0.8b, v1.8h, #31426// CHECK-ERROR: ^1427// CHECK-ERROR: error: invalid operand for instruction1428// CHECK-ERROR: ushr v0.4h, v1.4s, #31429// CHECK-ERROR: ^1430// CHECK-ERROR: error: invalid operand for instruction1431// CHECK-ERROR: ushr v0.2s, v1.2d, #31432// CHECK-ERROR: ^1433// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1434// CHECK-ERROR: ushr v0.16b, v1.16b, #91435// CHECK-ERROR: ^1436// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1437// CHECK-ERROR: ushr v0.8h, v1.8h, #171438// CHECK-ERROR: ^1439// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1440// CHECK-ERROR: ushr v0.4s, v1.4s, #331441// CHECK-ERROR: ^1442// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1443// CHECK-ERROR: ushr v0.2d, v1.2d, #651444// CHECK-ERROR: ^1445 1446//------------------------------------------------------------------------------1447// Vector shift right and accumulate by immediate1448//------------------------------------------------------------------------------1449 ssra v0.8b, v1.8h, #31450 ssra v0.4h, v1.4s, #31451 ssra v0.2s, v1.2d, #31452 ssra v0.16b, v1.16b, #91453 ssra v0.8h, v1.8h, #171454 ssra v0.4s, v1.4s, #331455 ssra v0.2d, v1.2d, #651456 1457// CHECK-ERROR: error: invalid operand for instruction1458// CHECK-ERROR: ssra v0.8b, v1.8h, #31459// CHECK-ERROR: ^1460// CHECK-ERROR: error: invalid operand for instruction1461// CHECK-ERROR: ssra v0.4h, v1.4s, #31462// CHECK-ERROR: ^1463// CHECK-ERROR: error: invalid operand for instruction1464// CHECK-ERROR: ssra v0.2s, v1.2d, #31465// CHECK-ERROR: ^1466// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1467// CHECK-ERROR: ssra v0.16b, v1.16b, #91468// CHECK-ERROR: ^1469// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1470// CHECK-ERROR: ssra v0.8h, v1.8h, #171471// CHECK-ERROR: ^1472// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1473// CHECK-ERROR: ssra v0.4s, v1.4s, #331474// CHECK-ERROR: ^1475// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1476// CHECK-ERROR: ssra v0.2d, v1.2d, #651477// CHECK-ERROR: ^1478 1479//------------------------------------------------------------------------------1480// Vector shift right and accumulate by immediate1481//------------------------------------------------------------------------------1482 usra v0.8b, v1.8h, #31483 usra v0.4h, v1.4s, #31484 usra v0.2s, v1.2d, #31485 usra v0.16b, v1.16b, #91486 usra v0.8h, v1.8h, #171487 usra v0.4s, v1.4s, #331488 usra v0.2d, v1.2d, #651489 1490// CHECK-ERROR: error: invalid operand for instruction1491// CHECK-ERROR: usra v0.8b, v1.8h, #31492// CHECK-ERROR: ^1493// CHECK-ERROR: error: invalid operand for instruction1494// CHECK-ERROR: usra v0.4h, v1.4s, #31495// CHECK-ERROR: ^1496// CHECK-ERROR: error: invalid operand for instruction1497// CHECK-ERROR: usra v0.2s, v1.2d, #31498// CHECK-ERROR: ^1499// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1500// CHECK-ERROR: usra v0.16b, v1.16b, #91501// CHECK-ERROR: ^1502// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1503// CHECK-ERROR: usra v0.8h, v1.8h, #171504// CHECK-ERROR: ^1505// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1506// CHECK-ERROR: usra v0.4s, v1.4s, #331507// CHECK-ERROR: ^1508// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1509// CHECK-ERROR: usra v0.2d, v1.2d, #651510// CHECK-ERROR: ^1511 1512//------------------------------------------------------------------------------1513// Vector rounding shift right by immediate1514//------------------------------------------------------------------------------1515 srshr v0.8b, v1.8h, #31516 srshr v0.4h, v1.4s, #31517 srshr v0.2s, v1.2d, #31518 srshr v0.16b, v1.16b, #91519 srshr v0.8h, v1.8h, #171520 srshr v0.4s, v1.4s, #331521 srshr v0.2d, v1.2d, #651522 1523// CHECK-ERROR: error: invalid operand for instruction1524// CHECK-ERROR: srshr v0.8b, v1.8h, #31525// CHECK-ERROR: ^1526// CHECK-ERROR: error: invalid operand for instruction1527// CHECK-ERROR: srshr v0.4h, v1.4s, #31528// CHECK-ERROR: ^1529// CHECK-ERROR: error: invalid operand for instruction1530// CHECK-ERROR: srshr v0.2s, v1.2d, #31531// CHECK-ERROR: ^1532// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1533// CHECK-ERROR: srshr v0.16b, v1.16b, #91534// CHECK-ERROR: ^1535// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1536// CHECK-ERROR: srshr v0.8h, v1.8h, #171537// CHECK-ERROR: ^1538// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1539// CHECK-ERROR: srshr v0.4s, v1.4s, #331540// CHECK-ERROR: ^1541// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1542// CHECK-ERROR: srshr v0.2d, v1.2d, #651543// CHECK-ERROR: ^1544 1545//------------------------------------------------------------------------------1546// Vecotr rounding shift right by immediate1547//------------------------------------------------------------------------------1548 urshr v0.8b, v1.8h, #31549 urshr v0.4h, v1.4s, #31550 urshr v0.2s, v1.2d, #31551 urshr v0.16b, v1.16b, #91552 urshr v0.8h, v1.8h, #171553 urshr v0.4s, v1.4s, #331554 urshr v0.2d, v1.2d, #651555 1556// CHECK-ERROR: error: invalid operand for instruction1557// CHECK-ERROR: urshr v0.8b, v1.8h, #31558// CHECK-ERROR: ^1559// CHECK-ERROR: error: invalid operand for instruction1560// CHECK-ERROR: urshr v0.4h, v1.4s, #31561// CHECK-ERROR: ^1562// CHECK-ERROR: error: invalid operand for instruction1563// CHECK-ERROR: urshr v0.2s, v1.2d, #31564// CHECK-ERROR: ^1565// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1566// CHECK-ERROR: urshr v0.16b, v1.16b, #91567// CHECK-ERROR: ^1568// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1569// CHECK-ERROR: urshr v0.8h, v1.8h, #171570// CHECK-ERROR: ^1571// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1572// CHECK-ERROR: urshr v0.4s, v1.4s, #331573// CHECK-ERROR: ^1574// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1575// CHECK-ERROR: urshr v0.2d, v1.2d, #651576// CHECK-ERROR: ^1577 1578//------------------------------------------------------------------------------1579// Vector rounding shift right and accumulate by immediate1580//------------------------------------------------------------------------------1581 srsra v0.8b, v1.8h, #31582 srsra v0.4h, v1.4s, #31583 srsra v0.2s, v1.2d, #31584 srsra v0.16b, v1.16b, #91585 srsra v0.8h, v1.8h, #171586 srsra v0.4s, v1.4s, #331587 srsra v0.2d, v1.2d, #651588 1589// CHECK-ERROR: error: invalid operand for instruction1590// CHECK-ERROR: srsra v0.8b, v1.8h, #31591// CHECK-ERROR: ^1592// CHECK-ERROR: error: invalid operand for instruction1593// CHECK-ERROR: srsra v0.4h, v1.4s, #31594// CHECK-ERROR: ^1595// CHECK-ERROR: error: invalid operand for instruction1596// CHECK-ERROR: srsra v0.2s, v1.2d, #31597// CHECK-ERROR: ^1598// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1599// CHECK-ERROR: srsra v0.16b, v1.16b, #91600// CHECK-ERROR: ^1601// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1602// CHECK-ERROR: srsra v0.8h, v1.8h, #171603// CHECK-ERROR: ^1604// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1605// CHECK-ERROR: srsra v0.4s, v1.4s, #331606// CHECK-ERROR: ^1607// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1608// CHECK-ERROR: srsra v0.2d, v1.2d, #651609// CHECK-ERROR: ^1610 1611//------------------------------------------------------------------------------1612// Vector rounding shift right and accumulate by immediate1613//------------------------------------------------------------------------------1614 ursra v0.8b, v1.8h, #31615 ursra v0.4h, v1.4s, #31616 ursra v0.2s, v1.2d, #31617 ursra v0.16b, v1.16b, #91618 ursra v0.8h, v1.8h, #171619 ursra v0.4s, v1.4s, #331620 ursra v0.2d, v1.2d, #651621 1622// CHECK-ERROR: error: invalid operand for instruction1623// CHECK-ERROR: ursra v0.8b, v1.8h, #31624// CHECK-ERROR: ^1625// CHECK-ERROR: error: invalid operand for instruction1626// CHECK-ERROR: ursra v0.4h, v1.4s, #31627// CHECK-ERROR: ^1628// CHECK-ERROR: error: invalid operand for instruction1629// CHECK-ERROR: ursra v0.2s, v1.2d, #31630// CHECK-ERROR: ^1631// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1632// CHECK-ERROR: ursra v0.16b, v1.16b, #91633// CHECK-ERROR: ^1634// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1635// CHECK-ERROR: ursra v0.8h, v1.8h, #171636// CHECK-ERROR: ^1637// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1638// CHECK-ERROR: ursra v0.4s, v1.4s, #331639// CHECK-ERROR: ^1640// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1641// CHECK-ERROR: ursra v0.2d, v1.2d, #651642// CHECK-ERROR: ^1643 1644//------------------------------------------------------------------------------1645// Vector shift right and insert by immediate1646//------------------------------------------------------------------------------1647 sri v0.8b, v1.8h, #31648 sri v0.4h, v1.4s, #31649 sri v0.2s, v1.2d, #31650 sri v0.16b, v1.16b, #91651 sri v0.8h, v1.8h, #171652 sri v0.4s, v1.4s, #331653 sri v0.2d, v1.2d, #651654 1655// CHECK-ERROR: error: invalid operand for instruction1656// CHECK-ERROR: sri v0.8b, v1.8h, #31657// CHECK-ERROR: ^1658// CHECK-ERROR: error: invalid operand for instruction1659// CHECK-ERROR: sri v0.4h, v1.4s, #31660// CHECK-ERROR: ^1661// CHECK-ERROR: error: invalid operand for instruction1662// CHECK-ERROR: sri v0.2s, v1.2d, #31663// CHECK-ERROR: ^1664// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1665// CHECK-ERROR: sri v0.16b, v1.16b, #91666// CHECK-ERROR: ^1667// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1668// CHECK-ERROR: sri v0.8h, v1.8h, #171669// CHECK-ERROR: ^1670// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1671// CHECK-ERROR: sri v0.4s, v1.4s, #331672// CHECK-ERROR: ^1673// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]1674// CHECK-ERROR: sri v0.2d, v1.2d, #651675// CHECK-ERROR: ^1676 1677//------------------------------------------------------------------------------1678// Vector shift left and insert by immediate1679//------------------------------------------------------------------------------1680 sli v0.8b, v1.8h, #31681 sli v0.4h, v1.4s, #31682 sli v0.2s, v1.2d, #31683 sli v0.16b, v1.16b, #81684 sli v0.8h, v1.8h, #161685 sli v0.4s, v1.4s, #321686 sli v0.2d, v1.2d, #641687 1688// CHECK-ERROR: error: invalid operand for instruction1689// CHECK-ERROR: sli v0.8b, v1.8h, #31690// CHECK-ERROR: ^1691// CHECK-ERROR: error: invalid operand for instruction1692// CHECK-ERROR: sli v0.4h, v1.4s, #31693// CHECK-ERROR: ^1694// CHECK-ERROR: error: invalid operand for instruction1695// CHECK-ERROR: sli v0.2s, v1.2d, #31696// CHECK-ERROR: ^1697// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1698// CHECK-ERROR: sli v0.16b, v1.16b, #81699// CHECK-ERROR: ^1700// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]1701// CHECK-ERROR: sli v0.8h, v1.8h, #161702// CHECK-ERROR: ^1703// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]1704// CHECK-ERROR: sli v0.4s, v1.4s, #321705// CHECK-ERROR: ^1706// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]1707// CHECK-ERROR: sli v0.2d, v1.2d, #641708// CHECK-ERROR: ^1709 1710//------------------------------------------------------------------------------1711// Vector saturating shift left unsigned by immediate1712//------------------------------------------------------------------------------1713 sqshlu v0.8b, v1.8h, #31714 sqshlu v0.4h, v1.4s, #31715 sqshlu v0.2s, v1.2d, #31716 sqshlu v0.16b, v1.16b, #81717 sqshlu v0.8h, v1.8h, #161718 sqshlu v0.4s, v1.4s, #321719 sqshlu v0.2d, v1.2d, #641720 1721// CHECK-ERROR: error: invalid operand for instruction1722// CHECK-ERROR: sqshlu v0.8b, v1.8h, #31723// CHECK-ERROR: ^1724// CHECK-ERROR: error: invalid operand for instruction1725// CHECK-ERROR: sqshlu v0.4h, v1.4s, #31726// CHECK-ERROR: ^1727// CHECK-ERROR: error: invalid operand for instruction1728// CHECK-ERROR: sqshlu v0.2s, v1.2d, #31729// CHECK-ERROR: ^1730// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1731// CHECK-ERROR: sqshlu v0.16b, v1.16b, #81732// CHECK-ERROR: ^1733// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]1734// CHECK-ERROR: sqshlu v0.8h, v1.8h, #161735// CHECK-ERROR: ^1736// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]1737// CHECK-ERROR: sqshlu v0.4s, v1.4s, #321738// CHECK-ERROR: ^1739// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]1740// CHECK-ERROR: sqshlu v0.2d, v1.2d, #641741// CHECK-ERROR: ^1742 1743//------------------------------------------------------------------------------1744// Vector saturating shift left by immediate1745//------------------------------------------------------------------------------1746 sqshl v0.8b, v1.8h, #31747 sqshl v0.4h, v1.4s, #31748 sqshl v0.2s, v1.2d, #31749 sqshl v0.16b, v1.16b, #81750 sqshl v0.8h, v1.8h, #161751 sqshl v0.4s, v1.4s, #321752 sqshl v0.2d, v1.2d, #641753 1754// CHECK-ERROR: error: invalid operand for instruction1755// CHECK-ERROR: sqshl v0.8b, v1.8h, #31756// CHECK-ERROR: ^1757// CHECK-ERROR: error: invalid operand for instruction1758// CHECK-ERROR: sqshl v0.4h, v1.4s, #31759// CHECK-ERROR: ^1760// CHECK-ERROR: error: invalid operand for instruction1761// CHECK-ERROR: sqshl v0.2s, v1.2d, #31762// CHECK-ERROR: ^1763// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1764// CHECK-ERROR: sqshl v0.16b, v1.16b, #81765// CHECK-ERROR: ^1766// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]1767// CHECK-ERROR: sqshl v0.8h, v1.8h, #161768// CHECK-ERROR: ^1769// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]1770// CHECK-ERROR: sqshl v0.4s, v1.4s, #321771// CHECK-ERROR: ^1772// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]1773// CHECK-ERROR: sqshl v0.2d, v1.2d, #641774// CHECK-ERROR: ^1775 1776//------------------------------------------------------------------------------1777// Vector saturating shift left by immediate1778//------------------------------------------------------------------------------1779 uqshl v0.8b, v1.8h, #31780 uqshl v0.4h, v1.4s, #31781 uqshl v0.2s, v1.2d, #31782 uqshl v0.16b, v1.16b, #81783 uqshl v0.8h, v1.8h, #161784 uqshl v0.4s, v1.4s, #321785 uqshl v0.2d, v1.2d, #641786 1787// CHECK-ERROR: error: invalid operand for instruction1788// CHECK-ERROR: uqshl v0.8b, v1.8h, #31789// CHECK-ERROR: ^1790// CHECK-ERROR: error: invalid operand for instruction1791// CHECK-ERROR: uqshl v0.4h, v1.4s, #31792// CHECK-ERROR: ^1793// CHECK-ERROR: error: invalid operand for instruction1794// CHECK-ERROR: uqshl v0.2s, v1.2d, #31795// CHECK-ERROR: ^1796// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]1797// CHECK-ERROR: uqshl v0.16b, v1.16b, #81798// CHECK-ERROR: ^1799// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]1800// CHECK-ERROR: uqshl v0.8h, v1.8h, #161801// CHECK-ERROR: ^1802// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]1803// CHECK-ERROR: uqshl v0.4s, v1.4s, #321804// CHECK-ERROR: ^1805// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]1806// CHECK-ERROR: uqshl v0.2d, v1.2d, #641807// CHECK-ERROR: ^1808 1809//------------------------------------------------------------------------------1810// Vector shift right narrow by immediate1811//------------------------------------------------------------------------------1812 shrn v0.8b, v1.8b, #31813 shrn v0.4h, v1.4h, #31814 shrn v0.2s, v1.2s, #31815 shrn2 v0.16b, v1.8h, #171816 shrn2 v0.8h, v1.4s, #331817 shrn2 v0.4s, v1.2d, #651818 1819// CHECK-ERROR: error: invalid operand for instruction1820// CHECK-ERROR: shrn v0.8b, v1.8b, #31821// CHECK-ERROR: ^1822// CHECK-ERROR: error: invalid operand for instruction1823// CHECK-ERROR: shrn v0.4h, v1.4h, #31824// CHECK-ERROR: ^1825// CHECK-ERROR: error: invalid operand for instruction1826// CHECK-ERROR: shrn v0.2s, v1.2s, #31827// CHECK-ERROR: ^1828// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1829// CHECK-ERROR: shrn2 v0.16b, v1.8h, #171830// CHECK-ERROR: ^1831// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1832// CHECK-ERROR: shrn2 v0.8h, v1.4s, #331833// CHECK-ERROR: ^1834// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1835// CHECK-ERROR: shrn2 v0.4s, v1.2d, #651836// CHECK-ERROR: ^1837 1838//------------------------------------------------------------------------------1839// Vector saturating shift right unsigned narrow by immediate1840//------------------------------------------------------------------------------1841 sqshrun v0.8b, v1.8b, #31842 sqshrun v0.4h, v1.4h, #31843 sqshrun v0.2s, v1.2s, #31844 sqshrun2 v0.16b, v1.8h, #171845 sqshrun2 v0.8h, v1.4s, #331846 sqshrun2 v0.4s, v1.2d, #651847 1848// CHECK-ERROR: error: invalid operand for instruction1849// CHECK-ERROR: sqshrun v0.8b, v1.8b, #31850// CHECK-ERROR: ^1851// CHECK-ERROR: error: invalid operand for instruction1852// CHECK-ERROR: sqshrun v0.4h, v1.4h, #31853// CHECK-ERROR: ^1854// CHECK-ERROR: error: invalid operand for instruction1855// CHECK-ERROR: sqshrun v0.2s, v1.2s, #31856// CHECK-ERROR: ^1857// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1858// CHECK-ERROR: sqshrun2 v0.16b, v1.8h, #171859// CHECK-ERROR: ^1860// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1861// CHECK-ERROR: sqshrun2 v0.8h, v1.4s, #331862// CHECK-ERROR: ^1863// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1864// CHECK-ERROR: sqshrun2 v0.4s, v1.2d, #651865// CHECK-ERROR: ^1866 1867//------------------------------------------------------------------------------1868// Vector rounding shift right narrow by immediate1869//------------------------------------------------------------------------------1870 rshrn v0.8b, v1.8b, #31871 rshrn v0.4h, v1.4h, #31872 rshrn v0.2s, v1.2s, #31873 rshrn2 v0.16b, v1.8h, #171874 rshrn2 v0.8h, v1.4s, #331875 rshrn2 v0.4s, v1.2d, #651876 1877// CHECK-ERROR: error: invalid operand for instruction1878// CHECK-ERROR: rshrn v0.8b, v1.8b, #31879// CHECK-ERROR: ^1880// CHECK-ERROR: error: invalid operand for instruction1881// CHECK-ERROR: rshrn v0.4h, v1.4h, #31882// CHECK-ERROR: ^1883// CHECK-ERROR: error: invalid operand for instruction1884// CHECK-ERROR: rshrn v0.2s, v1.2s, #31885// CHECK-ERROR: ^1886// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1887// CHECK-ERROR: rshrn2 v0.16b, v1.8h, #171888// CHECK-ERROR: ^1889// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1890// CHECK-ERROR: rshrn2 v0.8h, v1.4s, #331891// CHECK-ERROR: ^1892// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1893// CHECK-ERROR: rshrn2 v0.4s, v1.2d, #651894// CHECK-ERROR: ^1895 1896//------------------------------------------------------------------------------1897// Vector saturating shift right rounded unsigned narrow by immediate1898//------------------------------------------------------------------------------1899 sqrshrun v0.8b, v1.8b, #31900 sqrshrun v0.4h, v1.4h, #31901 sqrshrun v0.2s, v1.2s, #31902 sqrshrun2 v0.16b, v1.8h, #171903 sqrshrun2 v0.8h, v1.4s, #331904 sqrshrun2 v0.4s, v1.2d, #651905 1906// CHECK-ERROR: error: invalid operand for instruction1907// CHECK-ERROR: sqrshrun v0.8b, v1.8b, #31908// CHECK-ERROR: ^1909// CHECK-ERROR: error: invalid operand for instruction1910// CHECK-ERROR: sqrshrun v0.4h, v1.4h, #31911// CHECK-ERROR: ^1912// CHECK-ERROR: error: invalid operand for instruction1913// CHECK-ERROR: sqrshrun v0.2s, v1.2s, #31914// CHECK-ERROR: ^1915// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1916// CHECK-ERROR: sqrshrun2 v0.16b, v1.8h, #171917// CHECK-ERROR: ^1918// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1919// CHECK-ERROR: sqrshrun2 v0.8h, v1.4s, #331920// CHECK-ERROR: ^1921// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1922// CHECK-ERROR: sqrshrun2 v0.4s, v1.2d, #651923// CHECK-ERROR: ^1924 1925//------------------------------------------------------------------------------1926// Vector saturating shift right narrow by immediate1927//------------------------------------------------------------------------------1928 sqshrn v0.8b, v1.8b, #31929 sqshrn v0.4h, v1.4h, #31930 sqshrn v0.2s, v1.2s, #31931 sqshrn2 v0.16b, v1.8h, #171932 sqshrn2 v0.8h, v1.4s, #331933 sqshrn2 v0.4s, v1.2d, #651934 1935// CHECK-ERROR: error: invalid operand for instruction1936// CHECK-ERROR: sqshrn v0.8b, v1.8b, #31937// CHECK-ERROR: ^1938// CHECK-ERROR: error: invalid operand for instruction1939// CHECK-ERROR: sqshrn v0.4h, v1.4h, #31940// CHECK-ERROR: ^1941// CHECK-ERROR: error: invalid operand for instruction1942// CHECK-ERROR: sqshrn v0.2s, v1.2s, #31943// CHECK-ERROR: ^1944// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1945// CHECK-ERROR: sqshrn2 v0.16b, v1.8h, #171946// CHECK-ERROR: ^1947// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1948// CHECK-ERROR: sqshrn2 v0.8h, v1.4s, #331949// CHECK-ERROR: ^1950// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1951// CHECK-ERROR: sqshrn2 v0.4s, v1.2d, #651952// CHECK-ERROR: ^1953 1954//------------------------------------------------------------------------------1955// Vector saturating shift right narrow by immediate1956//------------------------------------------------------------------------------1957 uqshrn v0.8b, v1.8b, #31958 uqshrn v0.4h, v1.4h, #31959 uqshrn v0.2s, v1.2s, #31960 uqshrn2 v0.16b, v1.8h, #171961 uqshrn2 v0.8h, v1.4s, #331962 uqshrn2 v0.4s, v1.2d, #651963 1964// CHECK-ERROR: error: invalid operand for instruction1965// CHECK-ERROR: uqshrn v0.8b, v1.8b, #31966// CHECK-ERROR: ^1967// CHECK-ERROR: error: invalid operand for instruction1968// CHECK-ERROR: uqshrn v0.4h, v1.4h, #31969// CHECK-ERROR: ^1970// CHECK-ERROR: error: invalid operand for instruction1971// CHECK-ERROR: uqshrn v0.2s, v1.2s, #31972// CHECK-ERROR: ^1973// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]1974// CHECK-ERROR: uqshrn2 v0.16b, v1.8h, #171975// CHECK-ERROR: ^1976// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]1977// CHECK-ERROR: uqshrn2 v0.8h, v1.4s, #331978// CHECK-ERROR: ^1979// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]1980// CHECK-ERROR: uqshrn2 v0.4s, v1.2d, #651981// CHECK-ERROR: ^1982 1983//------------------------------------------------------------------------------1984// Vector saturating shift right rounded narrow by immediate1985//------------------------------------------------------------------------------1986 sqrshrn v0.8b, v1.8b, #31987 sqrshrn v0.4h, v1.4h, #31988 sqrshrn v0.2s, v1.2s, #31989 sqrshrn2 v0.16b, v1.8h, #171990 sqrshrn2 v0.8h, v1.4s, #331991 sqrshrn2 v0.4s, v1.2d, #651992 1993// CHECK-ERROR: error: invalid operand for instruction1994// CHECK-ERROR: sqrshrn v0.8b, v1.8b, #31995// CHECK-ERROR: ^1996// CHECK-ERROR: error: invalid operand for instruction1997// CHECK-ERROR: sqrshrn v0.4h, v1.4h, #31998// CHECK-ERROR: ^1999// CHECK-ERROR: error: invalid operand for instruction2000// CHECK-ERROR: sqrshrn v0.2s, v1.2s, #32001// CHECK-ERROR: ^2002// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]2003// CHECK-ERROR: sqrshrn2 v0.16b, v1.8h, #172004// CHECK-ERROR: ^2005// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]2006// CHECK-ERROR: sqrshrn2 v0.8h, v1.4s, #332007// CHECK-ERROR: ^2008// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]2009// CHECK-ERROR: sqrshrn2 v0.4s, v1.2d, #652010// CHECK-ERROR: ^2011 2012//------------------------------------------------------------------------------2013// Vector saturating shift right rounded narrow by immediate2014//------------------------------------------------------------------------------2015 uqrshrn v0.8b, v1.8b, #32016 uqrshrn v0.4h, v1.4h, #32017 uqrshrn v0.2s, v1.2s, #32018 uqrshrn2 v0.16b, v1.8h, #172019 uqrshrn2 v0.8h, v1.4s, #332020 uqrshrn2 v0.4s, v1.2d, #652021 2022// CHECK-ERROR: error: invalid operand for instruction2023// CHECK-ERROR: uqrshrn v0.8b, v1.8b, #32024// CHECK-ERROR: ^2025// CHECK-ERROR: error: invalid operand for instruction2026// CHECK-ERROR: uqrshrn v0.4h, v1.4h, #32027// CHECK-ERROR: ^2028// CHECK-ERROR: error: invalid operand for instruction2029// CHECK-ERROR: uqrshrn v0.2s, v1.2s, #32030// CHECK-ERROR: ^2031// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]2032// CHECK-ERROR: uqrshrn2 v0.16b, v1.8h, #172033// CHECK-ERROR: ^2034// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]2035// CHECK-ERROR: uqrshrn2 v0.8h, v1.4s, #332036// CHECK-ERROR: ^2037// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]2038// CHECK-ERROR: uqrshrn2 v0.4s, v1.2d, #652039// CHECK-ERROR: ^2040 2041//------------------------------------------------------------------------------2042// Fixed-point convert to floating-point2043//------------------------------------------------------------------------------2044 scvtf v0.2s, v1.2d, #32045 scvtf v0.4s, v1.4h, #32046 scvtf v0.2d, v1.2s, #32047 ucvtf v0.2s, v1.2s, #332048 ucvtf v0.4s, v1.4s, #332049 ucvtf v0.2d, v1.2d, #652050 2051// CHECK-ERROR: error: invalid operand for instruction2052// CHECK-ERROR: scvtf v0.2s, v1.2d, #32053// CHECK-ERROR: ^2054// CHECK-ERROR: error: invalid operand for instruction2055// CHECK-ERROR: scvtf v0.4s, v1.4h, #32056// CHECK-ERROR: ^2057// CHECK-ERROR: error: invalid operand for instruction2058// CHECK-ERROR: scvtf v0.2d, v1.2s, #32059// CHECK-ERROR: ^2060// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]2061// CHECK-ERROR: ucvtf v0.2s, v1.2s, #332062// CHECK-ERROR: ^2063// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]2064// CHECK-ERROR: ucvtf v0.4s, v1.4s, #332065// CHECK-ERROR: ^2066// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]2067// CHECK-ERROR: ucvtf v0.2d, v1.2d, #652068// CHECK-ERROR: ^2069 2070//------------------------------------------------------------------------------2071// Floating-point convert to fixed-point2072//------------------------------------------------------------------------------2073 fcvtzs v0.2s, v1.2d, #32074 fcvtzs v0.4s, v1.4h, #32075 fcvtzs v0.2d, v1.2s, #32076 fcvtzu v0.2s, v1.2s, #332077 fcvtzu v0.4s, v1.4s, #332078 fcvtzu v0.2d, v1.2d, #652079 2080// CHECK-ERROR: error: invalid operand for instruction2081// CHECK-ERROR: fcvtzs v0.2s, v1.2d, #32082// CHECK-ERROR: ^2083// CHECK-ERROR: error: invalid operand for instruction2084// CHECK-ERROR: fcvtzs v0.4s, v1.4h, #32085// CHECK-ERROR: ^2086// CHECK-ERROR: error: invalid operand for instruction2087// CHECK-ERROR: fcvtzs v0.2d, v1.2s, #32088// CHECK-ERROR: ^2089// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]2090// CHECK-ERROR: fcvtzu v0.2s, v1.2s, #332091// CHECK-ERROR: ^2092// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]2093// CHECK-ERROR: fcvtzu v0.4s, v1.4s, #332094// CHECK-ERROR: ^2095// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]2096// CHECK-ERROR: fcvtzu v0.2d, v1.2d, #652097// CHECK-ERROR: ^2098 2099//----------------------------------------------------------------------2100// Vector operation on 3 operands with different types2101//----------------------------------------------------------------------2102 2103 // Mismatched and invalid vector types2104 saddl v0.8h, v1.8h, v2.8b2105 saddl v0.4s, v1.4s, v2.4h2106 saddl v0.2d, v1.2d, v2.2s2107 2108// CHECK-ERROR: error: invalid operand for instruction2109// CHECK-ERROR: saddl v0.8h, v1.8h, v2.8b2110// CHECK-ERROR: ^2111// CHECK-ERROR: error: invalid operand for instruction2112// CHECK-ERROR: saddl v0.4s, v1.4s, v2.4h2113// CHECK-ERROR: ^2114// CHECK-ERROR: error: invalid operand for instruction2115// CHECK-ERROR: saddl v0.2d, v1.2d, v2.2s2116// CHECK-ERROR: ^2117 2118 saddl2 v0.4s, v1.8s, v2.8h2119 saddl2 v0.8h, v1.16h, v2.16b2120 saddl2 v0.2d, v1.4d, v2.4s2121 2122// CHECK-ERROR: error: invalid vector kind qualifier2123// CHECK-ERROR: saddl2 v0.4s, v1.8s, v2.8h2124// CHECK-ERROR: ^2125// CHECK-ERROR: error: invalid vector kind qualifier2126// CHECK-ERROR: saddl2 v0.8h, v1.16h, v2.16b2127// CHECK-ERROR: ^2128// CHECK-ERROR: error: invalid vector kind qualifier2129// CHECK-ERROR: saddl2 v0.2d, v1.4d, v2.4s2130// CHECK-ERROR: ^2131 2132 uaddl v0.8h, v1.8h, v2.8b2133 uaddl v0.4s, v1.4s, v2.4h2134 uaddl v0.2d, v1.2d, v2.2s2135 2136// CHECK-ERROR: error: invalid operand for instruction2137// CHECK-ERROR: uaddl v0.8h, v1.8h, v2.8b2138// CHECK-ERROR: ^2139// CHECK-ERROR: error: invalid operand for instruction2140// CHECK-ERROR: uaddl v0.4s, v1.4s, v2.4h2141// CHECK-ERROR: ^2142// CHECK-ERROR: error: invalid operand for instruction2143// CHECK-ERROR: uaddl v0.2d, v1.2d, v2.2s2144// CHECK-ERROR: ^2145 2146 uaddl2 v0.8h, v1.16h, v2.16b2147 uaddl2 v0.4s, v1.8s, v2.8h2148 uaddl2 v0.2d, v1.4d, v2.4s2149 2150// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2151// CHECK-ERROR-NEXT: uaddl2 v0.8h, v1.16h, v2.16b2152// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2153// CHECK-ERROR-NEXT: uaddl2 v0.4s, v1.8s, v2.8h2154// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2155// CHECK-ERROR-NEXT: uaddl2 v0.2d, v1.4d, v2.4s2156 2157 ssubl v0.8h, v1.8h, v2.8b2158 ssubl v0.4s, v1.4s, v2.4h2159 ssubl v0.2d, v1.2d, v2.2s2160 2161// CHECK-ERROR: [[@LINE-4]]:22: error: invalid operand for instruction2162// CHECK-ERROR-NEXT: ssubl v0.8h, v1.8h, v2.8b2163// CHECK-ERROR: error: invalid operand for instruction2164// CHECK-ERROR: ssubl v0.4s, v1.4s, v2.4h2165// CHECK-ERROR: ^2166// CHECK-ERROR: error: invalid operand for instruction2167// CHECK-ERROR: ssubl v0.2d, v1.2d, v2.2s2168// CHECK-ERROR: ^2169 2170 ssubl2 v0.8h, v1.16h, v2.16b2171 ssubl2 v0.4s, v1.8s, v2.8h2172 ssubl2 v0.2d, v1.4d, v2.4s2173 2174// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2175// CHECK-ERROR: ssubl2 v0.8h, v1.16h, v2.16b2176// CHECK-ERROR: ^2177// CHECK-ERROR: error: invalid vector kind qualifier2178// CHECK-ERROR: ssubl2 v0.4s, v1.8s, v2.8h2179// CHECK-ERROR: ^2180// CHECK-ERROR: error: invalid vector kind qualifier2181// CHECK-ERROR: ssubl2 v0.2d, v1.4d, v2.4s2182// CHECK-ERROR: ^2183 2184 usubl v0.8h, v1.8h, v2.8b2185 usubl v0.4s, v1.4s, v2.4h2186 usubl v0.2d, v1.2d, v2.2s2187 2188// CHECK-ERROR: error: invalid operand for instruction2189// CHECK-ERROR: usubl v0.8h, v1.8h, v2.8b2190// CHECK-ERROR: ^2191// CHECK-ERROR: error: invalid operand for instruction2192// CHECK-ERROR: usubl v0.4s, v1.4s, v2.4h2193// CHECK-ERROR: ^2194// CHECK-ERROR: error: invalid operand for instruction2195// CHECK-ERROR: usubl v0.2d, v1.2d, v2.2s2196// CHECK-ERROR: ^2197 2198 usubl2 v0.8h, v1.16h, v2.16b2199 usubl2 v0.4s, v1.8s, v2.8h2200 usubl2 v0.2d, v1.4d, v2.4s2201 2202// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2203// CHECK-ERROR: usubl2 v0.8h, v1.16h, v2.16b2204// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2205// CHECK-ERROR: usubl2 v0.4s, v1.8s, v2.8h2206// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2207// CHECK-ERROR: usubl2 v0.2d, v1.4d, v2.4s2208 2209 sabal v0.8h, v1.8h, v2.8b2210 sabal v0.4s, v1.4s, v2.4h2211 sabal v0.2d, v1.2d, v2.2s2212 2213// CHECK-ERROR: error: invalid operand for instruction2214// CHECK-ERROR: sabal v0.8h, v1.8h, v2.8b2215// CHECK-ERROR: ^2216// CHECK-ERROR: error: invalid operand for instruction2217// CHECK-ERROR: sabal v0.4s, v1.4s, v2.4h2218// CHECK-ERROR: ^2219// CHECK-ERROR: error: invalid operand for instruction2220// CHECK-ERROR: sabal v0.2d, v1.2d, v2.2s2221// CHECK-ERROR: ^2222 2223 sabal2 v0.8h, v1.16h, v2.16b2224 sabal2 v0.4s, v1.8s, v2.8h2225 sabal2 v0.2d, v1.4d, v2.4s2226 2227// CHECK-ERROR: error: invalid vector kind qualifier2228// CHECK-ERROR: sabal2 v0.8h, v1.16h, v2.16b2229// CHECK-ERROR: ^2230// CHECK-ERROR: error: invalid vector kind qualifier2231// CHECK-ERROR: sabal2 v0.4s, v1.8s, v2.8h2232// CHECK-ERROR: ^2233// CHECK-ERROR: error: invalid vector kind qualifier2234// CHECK-ERROR: sabal2 v0.2d, v1.4d, v2.4s2235// CHECK-ERROR: ^2236 2237 uabal v0.8h, v1.8h, v2.8b2238 uabal v0.4s, v1.4s, v2.4h2239 uabal v0.2d, v1.2d, v2.2s2240 2241// CHECK-ERROR: error: invalid operand for instruction2242// CHECK-ERROR: uabal v0.8h, v1.8h, v2.8b2243// CHECK-ERROR: ^2244// CHECK-ERROR: error: invalid operand for instruction2245// CHECK-ERROR: uabal v0.4s, v1.4s, v2.4h2246// CHECK-ERROR: ^2247// CHECK-ERROR: error: invalid operand for instruction2248// CHECK-ERROR: uabal v0.2d, v1.2d, v2.2s2249// CHECK-ERROR: ^2250 2251 uabal2 v0.8h, v1.16h, v2.16b2252 uabal2 v0.4s, v1.8s, v2.8h2253 uabal2 v0.2d, v1.4d, v2.4s2254 2255// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2256// CHECK-ERROR: uabal2 v0.8h, v1.16h, v2.16b2257// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2258// CHECK-ERROR: uabal2 v0.4s, v1.8s, v2.8h2259// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2260// CHECK-ERROR: uabal2 v0.2d, v1.4d, v2.4s2261 2262 sabdl v0.8h, v1.8h, v2.8b2263 sabdl v0.4s, v1.4s, v2.4h2264 sabdl v0.2d, v1.2d, v2.2s2265 2266// CHECK-ERROR: error: invalid operand for instruction2267// CHECK-ERROR: sabdl v0.8h, v1.8h, v2.8b2268// CHECK-ERROR: ^2269// CHECK-ERROR: error: invalid operand for instruction2270// CHECK-ERROR: sabdl v0.4s, v1.4s, v2.4h2271// CHECK-ERROR: ^2272// CHECK-ERROR: error: invalid operand for instruction2273// CHECK-ERROR: sabdl v0.2d, v1.2d, v2.2s2274// CHECK-ERROR: ^2275 2276 sabdl2 v0.8h, v1.16h, v2.16b2277 sabdl2 v0.4s, v1.8s, v2.8h2278 sabdl2 v0.2d, v1.4d, v2.4s2279 2280// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2281// CHECK-ERROR: sabdl2 v0.8h, v1.16h, v2.16b2282// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2283// CHECK-ERROR: sabdl2 v0.4s, v1.8s, v2.8h2284// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2285// CHECK-ERROR: sabdl2 v0.2d, v1.4d, v2.4s2286 2287 uabdl v0.8h, v1.8h, v2.8b2288 uabdl v0.4s, v1.4s, v2.4h2289 uabdl v0.2d, v1.2d, v2.2s2290 2291// CHECK-ERROR: error: invalid operand for instruction2292// CHECK-ERROR: uabdl v0.8h, v1.8h, v2.8b2293// CHECK-ERROR: ^2294// CHECK-ERROR: error: invalid operand for instruction2295// CHECK-ERROR: uabdl v0.4s, v1.4s, v2.4h2296// CHECK-ERROR: ^2297// CHECK-ERROR: error: invalid operand for instruction2298// CHECK-ERROR: uabdl v0.2d, v1.2d, v2.2s2299// CHECK-ERROR: ^2300 2301 uabdl2 v0.8h, v1.16h, v2.16b2302 uabdl2 v0.4s, v1.8s, v2.8h2303 uabdl2 v0.2d, v1.4d, v2.4s2304 2305// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2306// CHECK-ERROR: uabdl2 v0.8h, v1.16h, v2.16b2307// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2308// CHECK-ERROR: uabdl2 v0.4s, v1.8s, v2.8h2309// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2310// CHECK-ERROR: uabdl2 v0.2d, v1.4d, v2.4s2311 2312 smlal v0.8h, v1.8h, v2.8b2313 smlal v0.4s, v1.4s, v2.4h2314 smlal v0.2d, v1.2d, v2.2s2315 2316// CHECK-ERROR: error: invalid operand for instruction2317// CHECK-ERROR: smlal v0.8h, v1.8h, v2.8b2318// CHECK-ERROR: ^2319// CHECK-ERROR: error: invalid operand for instruction2320// CHECK-ERROR: smlal v0.4s, v1.4s, v2.4h2321// CHECK-ERROR: ^2322// CHECK-ERROR: error: invalid operand for instruction2323// CHECK-ERROR: smlal v0.2d, v1.2d, v2.2s2324// CHECK-ERROR: ^2325 2326 smlal2 v0.8h, v1.16h, v2.16b2327 smlal2 v0.4s, v1.8s, v2.8h2328 smlal2 v0.2d, v1.4d, v2.4s2329 2330// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2331// CHECK-ERROR: smlal2 v0.8h, v1.16h, v2.16b2332// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2333// CHECK-ERROR: smlal2 v0.4s, v1.8s, v2.8h2334// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2335// CHECK-ERROR: smlal2 v0.2d, v1.4d, v2.4s2336 2337 umlal v0.8h, v1.8h, v2.8b2338 umlal v0.4s, v1.4s, v2.4h2339 umlal v0.2d, v1.2d, v2.2s2340 2341// CHECK-ERROR: [[@LINE-4]]:22: error: invalid operand for instruction2342// CHECK-ERROR: umlal v0.8h, v1.8h, v2.8b2343// CHECK-ERROR: [[@LINE-5]]:22: error: invalid operand for instruction2344// CHECK-ERROR: umlal v0.4s, v1.4s, v2.4h2345// CHECK-ERROR: [[@LINE-6]]:22: error: invalid operand for instruction2346// CHECK-ERROR: umlal v0.2d, v1.2d, v2.2s2347 2348 umlal2 v0.8h, v1.16h, v2.16b2349 umlal2 v0.4s, v1.8s, v2.8h2350 umlal2 v0.2d, v1.4d, v2.4s2351 2352// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2353// CHECK-ERROR: umlal2 v0.8h, v1.16h, v2.16b2354// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2355// CHECK-ERROR: umlal2 v0.4s, v1.8s, v2.8h2356// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2357// CHECK-ERROR: umlal2 v0.2d, v1.4d, v2.4s2358 2359 smlsl v0.8h, v1.8h, v2.8b2360 smlsl v0.4s, v1.4s, v2.4h2361 smlsl v0.2d, v1.2d, v2.2s2362 2363// CHECK-ERROR: [[@LINE-4]]:22: error: invalid operand for instruction2364// CHECK-ERROR: smlsl v0.8h, v1.8h, v2.8b2365// CHECK-ERROR: [[@LINE-5]]:22: error: invalid operand for instruction2366// CHECK-ERROR: smlsl v0.4s, v1.4s, v2.4h2367// CHECK-ERROR: [[@LINE-6]]:22: error: invalid operand for instruction2368// CHECK-ERROR: smlsl v0.2d, v1.2d, v2.2s2369 2370 smlsl2 v0.8h, v1.16h, v2.16b2371 smlsl2 v0.4s, v1.8s, v2.8h2372 smlsl2 v0.2d, v1.4d, v2.4s2373 2374// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2375// CHECK-ERROR: smlsl2 v0.8h, v1.16h, v2.16b2376// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2377// CHECK-ERROR: smlsl2 v0.4s, v1.8s, v2.8h2378// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2379// CHECK-ERROR: smlsl2 v0.2d, v1.4d, v2.4s2380 2381 umlsl v0.8h, v1.8h, v2.8b2382 umlsl v0.4s, v1.4s, v2.4h2383 umlsl v0.2d, v1.2d, v2.2s2384 2385// CHECK-ERROR: error: invalid operand for instruction2386// CHECK-ERROR: umlsl v0.8h, v1.8h, v2.8b2387// CHECK-ERROR: ^2388// CHECK-ERROR: error: invalid operand for instruction2389// CHECK-ERROR: umlsl v0.4s, v1.4s, v2.4h2390// CHECK-ERROR: ^2391// CHECK-ERROR: error: invalid operand for instruction2392// CHECK-ERROR: umlsl v0.2d, v1.2d, v2.2s2393// CHECK-ERROR: ^2394 2395 umlsl2 v0.8h, v1.16h, v2.16b2396 umlsl2 v0.4s, v1.8s, v2.8h2397 umlsl2 v0.2d, v1.4d, v2.4s2398 2399// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2400// CHECK-ERROR: umlsl2 v0.8h, v1.16h, v2.16b2401// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2402// CHECK-ERROR: umlsl2 v0.4s, v1.8s, v2.8h2403// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2404// CHECK-ERROR: umlsl2 v0.2d, v1.4d, v2.4s2405 2406 smull v0.8h, v1.8h, v2.8b2407 smull v0.4s, v1.4s, v2.4h2408 smull v0.2d, v1.2d, v2.2s2409 2410// CHECK-ERROR: error: invalid operand for instruction2411// CHECK-ERROR: smull v0.8h, v1.8h, v2.8b2412// CHECK-ERROR: ^2413// CHECK-ERROR: error: invalid operand for instruction2414// CHECK-ERROR: smull v0.4s, v1.4s, v2.4h2415// CHECK-ERROR: ^2416// CHECK-ERROR: error: invalid operand for instruction2417// CHECK-ERROR: smull v0.2d, v1.2d, v2.2s2418// CHECK-ERROR: ^2419 2420 smull2 v0.8h, v1.16h, v2.16b2421 smull2 v0.4s, v1.8s, v2.8h2422 smull2 v0.2d, v1.4d, v2.4s2423 2424// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2425// CHECK-ERROR: smull2 v0.8h, v1.16h, v2.16b2426// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2427// CHECK-ERROR: smull2 v0.4s, v1.8s, v2.8h2428// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2429// CHECK-ERROR: smull2 v0.2d, v1.4d, v2.4s2430 2431 umull v0.8h, v1.8h, v2.8b2432 umull v0.4s, v1.4s, v2.4h2433 umull v0.2d, v1.2d, v2.2s2434 2435// CHECK-ERROR: error: invalid operand for instruction2436// CHECK-ERROR: umull v0.8h, v1.8h, v2.8b2437// CHECK-ERROR: ^2438// CHECK-ERROR: error: invalid operand for instruction2439// CHECK-ERROR: umull v0.4s, v1.4s, v2.4h2440// CHECK-ERROR: ^2441// CHECK-ERROR: error: invalid operand for instruction2442// CHECK-ERROR: umull v0.2d, v1.2d, v2.2s2443// CHECK-ERROR: ^2444 2445 umull2 v0.8h, v1.16h, v2.16b2446 umull2 v0.4s, v1.8s, v2.8h2447 umull2 v0.2d, v1.4d, v2.4s2448 2449// CHECK-ERROR: [[@LINE-4]]:23: error: invalid vector kind qualifier2450// CHECK-ERROR: umull2 v0.8h, v1.16h, v2.16b2451// CHECK-ERROR: [[@LINE-5]]:23: error: invalid vector kind qualifier2452// CHECK-ERROR: umull2 v0.4s, v1.8s, v2.8h2453// CHECK-ERROR: [[@LINE-6]]:23: error: invalid vector kind qualifier2454// CHECK-ERROR: umull2 v0.2d, v1.4d, v2.4s2455 2456//------------------------------------------------------------------------------2457// Long - Variant 22458//------------------------------------------------------------------------------2459 2460 sqdmlal v0.4s, v1.4s, v2.4h2461 sqdmlal v0.2d, v1.2d, v2.2s2462 2463// CHECK-ERROR: error: invalid operand for instruction2464// CHECK-ERROR: sqdmlal v0.4s, v1.4s, v2.4h2465// CHECK-ERROR: ^2466// CHECK-ERROR: error: invalid operand for instruction2467// CHECK-ERROR: sqdmlal v0.2d, v1.2d, v2.2s2468// CHECK-ERROR: ^2469 2470 sqdmlal2 v0.4s, v1.8s, v2.8h2471 sqdmlal2 v0.2d, v1.4d, v2.4s2472 2473// CHECK-ERROR: [[@LINE-3]]:25: error: invalid vector kind qualifier2474// CHECK-ERROR: sqdmlal2 v0.4s, v1.8s, v2.8h2475// CHECK-ERROR: [[@LINE-4]]:25: error: invalid vector kind qualifier2476// CHECK-ERROR: sqdmlal2 v0.2d, v1.4d, v2.4s2477 2478 // Mismatched vector types2479 sqdmlal v0.8h, v1.8b, v2.8b2480 sqdmlal2 v0.8h, v1.16b, v2.16b2481 2482// CHECK-ERROR: error: invalid operand for instruction2483// CHECK-ERROR: sqdmlal v0.8h, v1.8b, v2.8b2484// CHECK-ERROR: ^2485// CHECK-ERROR: error: invalid operand for instruction2486// CHECK-ERROR: sqdmlal2 v0.8h, v1.16b, v2.16b2487// CHECK-ERROR: ^2488 2489 sqdmlsl v0.4s, v1.4s, v2.4h2490 sqdmlsl v0.2d, v1.2d, v2.2s2491 2492// CHECK-ERROR: error: invalid operand for instruction2493// CHECK-ERROR: sqdmlsl v0.4s, v1.4s, v2.4h2494// CHECK-ERROR: ^2495// CHECK-ERROR: error: invalid operand for instruction2496// CHECK-ERROR: sqdmlsl v0.2d, v1.2d, v2.2s2497// CHECK-ERROR: ^2498 2499 sqdmlsl2 v0.4s, v1.8s, v2.8h2500 sqdmlsl2 v0.2d, v1.4d, v2.4s2501 2502// CHECK-ERROR: [[@LINE-3]]:25: error: invalid vector kind qualifier2503// CHECK-ERROR: sqdmlsl2 v0.4s, v1.8s, v2.8h2504// CHECK-ERROR: [[@LINE-4]]:25: error: invalid vector kind qualifier2505// CHECK-ERROR: sqdmlsl2 v0.2d, v1.4d, v2.4s2506 2507 // Mismatched vector types2508 sqdmlsl v0.8h, v1.8b, v2.8b2509 sqdmlsl2 v0.8h, v1.16b, v2.16b2510 2511// CHECK-ERROR: error: invalid operand for instruction2512// CHECK-ERROR: sqdmlsl v0.8h, v1.8b, v2.8b2513// CHECK-ERROR: ^2514// CHECK-ERROR: error: invalid operand for instruction2515// CHECK-ERROR: sqdmlsl2 v0.8h, v1.16b, v2.16b2516// CHECK-ERROR: ^2517 2518 2519 sqdmull v0.4s, v1.4s, v2.4h2520 sqdmull v0.2d, v1.2d, v2.2s2521 2522// CHECK-ERROR: error: invalid operand for instruction2523// CHECK-ERROR: sqdmull v0.4s, v1.4s, v2.4h2524// CHECK-ERROR: ^2525// CHECK-ERROR: error: invalid operand for instruction2526// CHECK-ERROR: sqdmull v0.2d, v1.2d, v2.2s2527// CHECK-ERROR: ^2528 2529 sqdmull2 v0.4s, v1.8s, v2.8h2530 sqdmull2 v0.2d, v1.4d, v2.4s2531 2532// CHECK-ERROR: [[@LINE-3]]:25: error: invalid vector kind qualifier2533// CHECK-ERROR: sqdmull2 v0.4s, v1.8s, v2.8h2534// CHECK-ERROR: [[@LINE-4]]:25: error: invalid vector kind qualifier2535// CHECK-ERROR: sqdmull2 v0.2d, v1.4d, v2.4s2536 2537 // Mismatched vector types2538 sqdmull v0.8h, v1.8b, v2.8b2539 sqdmull2 v0.8h, v1.16b, v2.16b2540 2541// CHECK-ERROR: error: invalid operand for instruction2542// CHECK-ERROR: sqdmull v0.8h, v1.8b, v2.8b2543// CHECK-ERROR: ^2544// CHECK-ERROR: error: invalid operand for instruction2545// CHECK-ERROR: sqdmull2 v0.8h, v1.16b, v2.16b2546// CHECK-ERROR: ^2547 2548 2549//------------------------------------------------------------------------------2550// Long - Variant 32551//------------------------------------------------------------------------------2552 2553 pmull v0.8h, v1.8h, v2.8b2554 2555// CHECK-ERROR: error: invalid operand for instruction2556// CHECK-ERROR: pmull v0.8h, v1.8h, v2.8b2557// CHECK-ERROR: ^2558 2559 pmull v0.1q, v1.2d, v2.2d2560 2561// CHECK-ERROR: error: invalid operand for instruction2562// CHECK-ERROR: pmull v0.1q, v1.2d, v2.2d2563// CHECK-ERROR: ^2564 2565 // Mismatched vector types2566 pmull v0.4s, v1.4h, v2.4h2567 pmull v0.2d, v1.2s, v2.2s2568 2569// CHECK-ERROR: error: invalid operand for instruction2570// CHECK-ERROR: pmull v0.4s, v1.4h, v2.4h2571// CHECK-ERROR: ^2572// CHECK-ERROR: error: invalid operand for instruction2573// CHECK-ERROR: pmull v0.2d, v1.2s, v2.2s2574// CHECK-ERROR: ^2575 2576 2577 pmull2 v0.8h, v1.16h, v2.16b2578// CHECK-ERROR: [[@LINE-1]]:23: error: invalid vector kind qualifier2579// CHECK-ERROR: pmull2 v0.8h, v1.16h, v2.16b2580 2581 pmull2 v0.q, v1.2d, v2.2d2582// CHECK-ERROR: [[@LINE-1]]:16: error: invalid vector kind qualifier2583// CHECK-ERROR: pmull2 v0.q, v1.2d, v2.2d2584 2585 // Mismatched vector types2586 pmull2 v0.4s, v1.8h v2.8h2587 pmull2 v0.2d, v1.4s, v2.4s2588 2589 2590// CHECK-ERROR: error: unexpected token in argument list2591// CHECK-ERROR: pmull2 v0.4s, v1.8h v2.8h2592// CHECK-ERROR: ^2593 2594// CHECK-ERROR: error: invalid operand for instruction2595// CHECK-ERROR: pmull2 v0.2d, v1.4s, v2.4s2596// CHECK-ERROR: ^2597 2598//------------------------------------------------------------------------------2599// Widen2600//------------------------------------------------------------------------------2601 2602 saddw v0.8h, v1.8h, v2.8h2603 saddw v0.4s, v1.4s, v2.4s2604 saddw v0.2d, v1.2d, v2.2d2605 2606// CHECK-ERROR: error: invalid operand for instruction2607// CHECK-ERROR: saddw v0.8h, v1.8h, v2.8h2608// CHECK-ERROR: ^2609// CHECK-ERROR: error: invalid operand for instruction2610// CHECK-ERROR: saddw v0.4s, v1.4s, v2.4s2611// CHECK-ERROR: ^2612// CHECK-ERROR: error: invalid operand for instruction2613// CHECK-ERROR: saddw v0.2d, v1.2d, v2.2d2614// CHECK-ERROR: ^2615 2616 saddw2 v0.8h, v1.8h, v2.16h2617 saddw2 v0.4s, v1.4s, v2.8s2618 saddw2 v0.2d, v1.2d, v2.4d2619 2620// CHECK-ERROR: [[@LINE-4]]:30: error: invalid vector kind qualifier2621// CHECK-ERROR: saddw2 v0.8h, v1.8h, v2.16h2622// CHECK-ERROR: [[@LINE-5]]:30: error: invalid vector kind qualifier2623// CHECK-ERROR: saddw2 v0.4s, v1.4s, v2.8s2624// CHECK-ERROR: [[@LINE-6]]:30: error: invalid vector kind qualifier2625// CHECK-ERROR: saddw2 v0.2d, v1.2d, v2.4d2626 2627 uaddw v0.8h, v1.8h, v2.8h2628 uaddw v0.4s, v1.4s, v2.4s2629 uaddw v0.2d, v1.2d, v2.2d2630 2631// CHECK-ERROR: error: invalid operand for instruction2632// CHECK-ERROR: uaddw v0.8h, v1.8h, v2.8h2633// CHECK-ERROR: ^2634// CHECK-ERROR: error: invalid operand for instruction2635// CHECK-ERROR: uaddw v0.4s, v1.4s, v2.4s2636// CHECK-ERROR: ^2637// CHECK-ERROR: error: invalid operand for instruction2638// CHECK-ERROR: uaddw v0.2d, v1.2d, v2.2d2639// CHECK-ERROR: ^2640 2641 uaddw2 v0.8h, v1.8h, v2.16h2642 uaddw2 v0.4s, v1.4s, v2.8s2643 uaddw2 v0.2d, v1.2d, v2.4d2644 2645// CHECK-ERROR: [[@LINE-4]]:30: error: invalid vector kind qualifier2646// CHECK-ERROR: uaddw2 v0.8h, v1.8h, v2.16h2647// CHECK-ERROR: [[@LINE-5]]:30: error: invalid vector kind qualifier2648// CHECK-ERROR: uaddw2 v0.4s, v1.4s, v2.8s2649// CHECK-ERROR: [[@LINE-6]]:30: error: invalid vector kind qualifier2650// CHECK-ERROR: uaddw2 v0.2d, v1.2d, v2.4d2651 2652 ssubw v0.8h, v1.8h, v2.8h2653 ssubw v0.4s, v1.4s, v2.4s2654 ssubw v0.2d, v1.2d, v2.2d2655 2656// CHECK-ERROR: error: invalid operand for instruction2657// CHECK-ERROR: ssubw v0.8h, v1.8h, v2.8h2658// CHECK-ERROR: ^2659// CHECK-ERROR: error: invalid operand for instruction2660// CHECK-ERROR: ssubw v0.4s, v1.4s, v2.4s2661// CHECK-ERROR: ^2662// CHECK-ERROR: error: invalid operand for instruction2663// CHECK-ERROR: ssubw v0.2d, v1.2d, v2.2d2664// CHECK-ERROR: ^2665 2666 ssubw2 v0.8h, v1.8h, v2.16h2667 ssubw2 v0.4s, v1.4s, v2.8s2668 ssubw2 v0.2d, v1.2d, v2.4d2669 2670// CHECK-ERROR: [[@LINE-4]]:30: error: invalid vector kind qualifier2671// CHECK-ERROR: ssubw2 v0.8h, v1.8h, v2.16h2672// CHECK-ERROR: [[@LINE-5]]:30: error: invalid vector kind qualifier2673// CHECK-ERROR: ssubw2 v0.4s, v1.4s, v2.8s2674// CHECK-ERROR: [[@LINE-6]]:30: error: invalid vector kind qualifier2675// CHECK-ERROR: ssubw2 v0.2d, v1.2d, v2.4d2676 2677 usubw v0.8h, v1.8h, v2.8h2678 usubw v0.4s, v1.4s, v2.4s2679 usubw v0.2d, v1.2d, v2.2d2680 2681// CHECK-ERROR: error: invalid operand for instruction2682// CHECK-ERROR: usubw v0.8h, v1.8h, v2.8h2683// CHECK-ERROR: ^2684// CHECK-ERROR: error: invalid operand for instruction2685// CHECK-ERROR: usubw v0.4s, v1.4s, v2.4s2686// CHECK-ERROR: ^2687// CHECK-ERROR: error: invalid operand for instruction2688// CHECK-ERROR: usubw v0.2d, v1.2d, v2.2d2689// CHECK-ERROR: ^2690 2691 usubw2 v0.8h, v1.8h, v2.16h2692 usubw2 v0.4s, v1.4s, v2.8s2693 usubw2 v0.2d, v1.2d, v2.4d2694 2695// CHECK-ERROR: [[@LINE-4]]:30: error: invalid vector kind qualifier2696// CHECK-ERROR: usubw2 v0.8h, v1.8h, v2.16h2697// CHECK-ERROR: [[@LINE-5]]:30: error: invalid vector kind qualifier2698// CHECK-ERROR: usubw2 v0.4s, v1.4s, v2.8s2699// CHECK-ERROR: [[@LINE-6]]:30: error: invalid vector kind qualifier2700// CHECK-ERROR: usubw2 v0.2d, v1.2d, v2.4d2701 2702//------------------------------------------------------------------------------2703// Narrow2704//------------------------------------------------------------------------------2705 2706 addhn v0.8b, v1.8h, v2.8d2707 addhn v0.4h, v1.4s, v2.4h2708 addhn v0.2s, v1.2d, v2.2s2709 2710// CHECK-ERROR: [[@LINE-4]]:29: error: invalid vector kind qualifier2711// CHECK-ERROR: addhn v0.8b, v1.8h, v2.8d2712// CHECK-ERROR: [[@LINE-5]]:29: error: invalid operand for instruction2713// CHECK-ERROR: addhn v0.4h, v1.4s, v2.4h2714// CHECK-ERROR: [[@LINE-6]]:29: error: invalid operand for instruction2715// CHECK-ERROR: addhn v0.2s, v1.2d, v2.2s2716 2717 addhn2 v0.16b, v1.8h, v2.8b2718 addhn2 v0.8h, v1.4s, v2.4h2719 addhn2 v0.4s, v1.2d, v2.2s2720 2721// CHECK-ERROR: error: invalid operand for instruction2722// CHECK-ERROR: addhn2 v0.16b, v1.8h, v2.8b2723// CHECK-ERROR: ^2724// CHECK-ERROR: error: invalid operand for instruction2725// CHECK-ERROR: addhn2 v0.8h, v1.4s, v2.4h2726// CHECK-ERROR: ^2727// CHECK-ERROR: error: invalid operand for instruction2728// CHECK-ERROR: addhn2 v0.4s, v1.2d, v2.2s2729// CHECK-ERROR: ^2730 2731 raddhn v0.8b, v1.8h, v2.8b2732 raddhn v0.4h, v1.4s, v2.4h2733 raddhn v0.2s, v1.2d, v2.2s2734 2735// CHECK-ERROR: error: invalid operand for instruction2736// CHECK-ERROR: raddhn v0.8b, v1.8h, v2.8b2737// CHECK-ERROR: ^2738// CHECK-ERROR: error: invalid operand for instruction2739// CHECK-ERROR: raddhn v0.4h, v1.4s, v2.4h2740// CHECK-ERROR: ^2741// CHECK-ERROR: error: invalid operand for instruction2742// CHECK-ERROR: raddhn v0.2s, v1.2d, v2.2s2743// CHECK-ERROR: ^2744 2745 raddhn2 v0.16b, v1.8h, v2.8b2746 raddhn2 v0.8h, v1.4s, v2.4h2747 raddhn2 v0.4s, v1.2d, v2.2s2748 2749// CHECK-ERROR: error: invalid operand for instruction2750// CHECK-ERROR: raddhn2 v0.16b, v1.8h, v2.8b2751// CHECK-ERROR: ^2752// CHECK-ERROR: error: invalid operand for instruction2753// CHECK-ERROR: raddhn2 v0.8h, v1.4s, v2.4h2754// CHECK-ERROR: ^2755// CHECK-ERROR: error: invalid operand for instruction2756// CHECK-ERROR: raddhn2 v0.4s, v1.2d, v2.2s2757// CHECK-ERROR: ^2758 2759 rsubhn v0.8b, v1.8h, v2.8b2760 rsubhn v0.4h, v1.4s, v2.4h2761 rsubhn v0.2s, v1.2d, v2.2s2762 2763// CHECK-ERROR: error: invalid operand for instruction2764// CHECK-ERROR: rsubhn v0.8b, v1.8h, v2.8b2765// CHECK-ERROR: ^2766// CHECK-ERROR: error: invalid operand for instruction2767// CHECK-ERROR: rsubhn v0.4h, v1.4s, v2.4h2768// CHECK-ERROR: ^2769// CHECK-ERROR: error: invalid operand for instruction2770// CHECK-ERROR: rsubhn v0.2s, v1.2d, v2.2s2771// CHECK-ERROR: ^2772 2773 rsubhn2 v0.16b, v1.8h, v2.8b2774 rsubhn2 v0.8h, v1.4s, v2.4h2775 rsubhn2 v0.4s, v1.2d, v2.2s2776 2777// CHECK-ERROR: error: invalid operand for instruction2778// CHECK-ERROR: rsubhn2 v0.16b, v1.8h, v2.8b2779// CHECK-ERROR: ^2780// CHECK-ERROR: error: invalid operand for instruction2781// CHECK-ERROR: rsubhn2 v0.8h, v1.4s, v2.4h2782// CHECK-ERROR: ^2783// CHECK-ERROR: error: invalid operand for instruction2784// CHECK-ERROR: rsubhn2 v0.4s, v1.2d, v2.2s2785// CHECK-ERROR: ^2786 2787//----------------------------------------------------------------------2788// Scalar Reduce Add Pairwise (Integer)2789//----------------------------------------------------------------------2790 // invalid vector types2791 addp s0, d1.2d2792 addp d0, d1.2s2793 2794// CHECK-ERROR: error: invalid operand for instruction2795// CHECK-ERROR: addp s0, d1.2d2796// CHECK-ERROR: ^2797// CHECK-ERROR: error: invalid operand for instruction2798// CHECK-ERROR: addp d0, d1.2s2799// CHECK-ERROR: ^2800 2801//----------------------------------------------------------------------2802// Scalar Reduce Add Pairwise (Floating Point)2803//----------------------------------------------------------------------2804 // invalid vector types2805 faddp s0, d1.2d2806 faddp d0, d1.2s2807 2808// CHECK-ERROR: error: invalid operand for instruction2809// CHECK-ERROR: faddp s0, d1.2d2810// CHECK-ERROR: ^2811// CHECK-ERROR: error: invalid operand for instruction2812// CHECK-ERROR: faddp d0, d1.2s2813// CHECK-ERROR: ^2814 2815//----------------------------------------------------------------------2816// Scalar Reduce Maximum Pairwise (Floating Point)2817//----------------------------------------------------------------------2818 // mismatched and invalid vector types2819 fmaxp s0, v1.2d2820 fmaxp d31, v2.2s2821 fmaxp h3, v2.2s2822 2823// CHECK-ERROR: error: invalid operand for instruction2824// CHECK-ERROR: fmaxp s0, v1.2d2825// CHECK-ERROR: ^2826// CHECK-ERROR: error: invalid operand for instruction2827// CHECK-ERROR: fmaxp d31, v2.2s2828// CHECK-ERROR: ^2829// CHECK-ERROR: error: invalid operand for instruction2830// CHECK-ERROR: fmaxp h3, v2.2s2831// CHECK-ERROR: ^2832 2833 2834//----------------------------------------------------------------------2835// Scalar Reduce Minimum Pairwise (Floating Point)2836//----------------------------------------------------------------------2837 // mismatched and invalid vector types2838 fminp s0, v1.4h2839 fminp d31, v2.8h2840 fminp b3, v2.2s2841 2842// CHECK-ERROR: error: invalid operand for instruction2843// CHECK-ERROR: fminp s0, v1.4h2844// CHECK-ERROR: ^2845// CHECK-ERROR: error: invalid operand for instruction2846// CHECK-ERROR: fminp d31, v2.8h2847// CHECK-ERROR: ^2848// CHECK-ERROR: error: invalid operand for instruction2849// CHECK-ERROR: fminp b3, v2.2s2850// CHECK-ERROR: ^2851 2852 2853//----------------------------------------------------------------------2854// Scalar Reduce maxNum Pairwise (Floating Point)2855//----------------------------------------------------------------------2856 // mismatched and invalid vector types2857 fmaxnmp s0, v1.8b2858 fmaxnmp d31, v2.16b2859 fmaxnmp v1.2s, v2.2s2860 2861// CHECK-ERROR: error: invalid operand for instruction2862// CHECK-ERROR: fmaxnmp s0, v1.8b2863// CHECK-ERROR: ^2864// CHECK-ERROR: error: invalid operand for instruction2865// CHECK-ERROR: fmaxnmp d31, v2.16b2866// CHECK-ERROR: ^2867// CHECK-ERROR: error: too few operands for instruction2868// CHECK-ERROR: fmaxnmp v1.2s, v2.2s2869// CHECK-ERROR: ^2870 2871//----------------------------------------------------------------------2872// Scalar Reduce minNum Pairwise (Floating Point)2873//----------------------------------------------------------------------2874 // mismatched and invalid vector types2875 fminnmp s0, v1.2d2876 fminnmp d31, v2.4s2877 fminnmp v1.4s, v2.2d2878 2879// CHECK-ERROR: error: invalid operand for instruction2880// CHECK-ERROR: fminnmp s0, v1.2d2881// CHECK-ERROR: ^2882// CHECK-ERROR: error: invalid operand for instruction2883// CHECK-ERROR: fminnmp d31, v2.4s2884// CHECK-ERROR: ^2885// CHECK-ERROR: error: invalid operand for instruction2886// CHECK-ERROR: fminnmp v1.4s, v2.2d2887// CHECK-ERROR: ^2888 2889 mla v0.2d, v1.2d, v16.d[1]2890 mla v0.2s, v1.2s, v2.s[4]2891 mla v0.4s, v1.4s, v2.s[4]2892 mla v0.2h, v1.2h, v2.h[1]2893 mla v0.4h, v1.4h, v2.h[8]2894 mla v0.8h, v1.8h, v2.h[8]2895 mla v0.4h, v1.4h, v16.h[2]2896 mla v0.8h, v1.8h, v16.h[2]2897 2898// CHECK-ERROR: error: invalid operand for instruction2899// CHECK-ERROR: mla v0.2d, v1.2d, v16.d[1]2900// CHECK-ERROR: ^2901// CHECK-ERROR: vector lane must be an integer in range2902// CHECK-ERROR: mla v0.2s, v1.2s, v2.s[4]2903// CHECK-ERROR: ^2904// CHECK-ERROR: vector lane must be an integer in range2905// CHECK-ERROR: mla v0.4s, v1.4s, v2.s[4]2906// CHECK-ERROR: ^2907// CHECK-ERROR: error: invalid operand for instruction2908// CHECK-ERROR: mla v0.2h, v1.2h, v2.h[1]2909// CHECK-ERROR: ^2910// CHECK-ERROR: vector lane must be an integer in range2911// CHECK-ERROR: mla v0.4h, v1.4h, v2.h[8]2912// CHECK-ERROR: ^2913// CHECK-ERROR: vector lane must be an integer in range2914// CHECK-ERROR: mla v0.8h, v1.8h, v2.h[8]2915// CHECK-ERROR: ^2916// CHECK-ERROR: error: invalid operand for instruction2917// CHECK-ERROR: mla v0.4h, v1.4h, v16.h[2]2918// CHECK-ERROR: ^2919// CHECK-ERROR: error: invalid operand for instruction2920// CHECK-ERROR: mla v0.8h, v1.8h, v16.h[2]2921// CHECK-ERROR: ^2922 2923 mls v0.2d, v1.2d, v16.d[1]2924 mls v0.2s, v1.2s, v2.s[4]2925 mls v0.4s, v1.4s, v2.s[4]2926 mls v0.2h, v1.2h, v2.h[1]2927 mls v0.4h, v1.4h, v2.h[8]2928 mls v0.8h, v1.8h, v2.h[8]2929 mls v0.4h, v1.4h, v16.h[2]2930 mls v0.8h, v1.8h, v16.h[2]2931 2932// CHECK-ERROR: error: invalid operand for instruction2933// CHECK-ERROR: mls v0.2d, v1.2d, v16.d[1]2934// CHECK-ERROR: ^2935// CHECK-ERROR: vector lane must be an integer in range2936// CHECK-ERROR: mls v0.2s, v1.2s, v2.s[4]2937// CHECK-ERROR: ^2938// CHECK-ERROR: vector lane must be an integer in range2939// CHECK-ERROR: mls v0.4s, v1.4s, v2.s[4]2940// CHECK-ERROR: ^2941// CHECK-ERROR: error: invalid operand for instruction2942// CHECK-ERROR: mls v0.2h, v1.2h, v2.h[1]2943// CHECK-ERROR: ^2944// CHECK-ERROR: vector lane must be an integer in range2945// CHECK-ERROR: mls v0.4h, v1.4h, v2.h[8]2946// CHECK-ERROR: ^2947// CHECK-ERROR: vector lane must be an integer in range2948// CHECK-ERROR: mls v0.8h, v1.8h, v2.h[8]2949// CHECK-ERROR: ^2950// CHECK-ERROR: error: invalid operand for instruction2951// CHECK-ERROR: mls v0.4h, v1.4h, v16.h[2]2952// CHECK-ERROR: ^2953// CHECK-ERROR: error: invalid operand for instruction2954// CHECK-ERROR: mls v0.8h, v1.8h, v16.h[2]2955// CHECK-ERROR: ^2956 2957 fmla v0.4h, v1.4h, v2.h[2]2958 fmla v0.8h, v1.8h, v2.h[2]2959 fmla v0.2s, v1.2s, v2.s[4]2960 fmla v0.2s, v1.2s, v22.s[4]2961 fmla v3.4s, v8.4s, v2.s[4]2962 fmla v3.4s, v8.4s, v22.s[4]2963 fmla v0.2d, v1.2d, v2.d[2]2964 fmla v0.2d, v1.2d, v22.d[2]2965 2966// CHECK-ERROR: error: instruction requires: fullfp162967// CHECK-ERROR: fmla v0.4h, v1.4h, v2.h[2]2968// CHECK-ERROR: ^2969// CHECK-ERROR: error: instruction requires: fullfp162970// CHECK-ERROR: fmla v0.8h, v1.8h, v2.h[2]2971// CHECK-ERROR: ^2972// CHECK-ERROR: vector lane must be an integer in range2973// CHECK-ERROR: fmla v0.2s, v1.2s, v2.s[4]2974// CHECK-ERROR: ^2975// CHECK-ERROR: vector lane must be an integer in range2976// CHECK-ERROR: fmla v0.2s, v1.2s, v22.s[4]2977// CHECK-ERROR: ^2978// CHECK-ERROR: vector lane must be an integer in range2979// CHECK-ERROR: fmla v3.4s, v8.4s, v2.s[4]2980// CHECK-ERROR: ^2981// CHECK-ERROR: vector lane must be an integer in range2982// CHECK-ERROR: fmla v3.4s, v8.4s, v22.s[4]2983// CHECK-ERROR: ^2984// CHECK-ERROR: vector lane must be an integer in range2985// CHECK-ERROR: fmla v0.2d, v1.2d, v2.d[2]2986// CHECK-ERROR: ^2987// CHECK-ERROR: vector lane must be an integer in range2988// CHECK-ERROR: fmla v0.2d, v1.2d, v22.d[2]2989// CHECK-ERROR: ^2990 2991 fmls v0.4h, v1.4h, v2.h[2]2992 fmls v0.8h, v1.8h, v2.h[2]2993 fmls v0.2s, v1.2s, v2.s[4]2994 fmls v0.2s, v1.2s, v22.s[4]2995 fmls v3.4s, v8.4s, v2.s[4]2996 fmls v3.4s, v8.4s, v22.s[4]2997 fmls v0.2d, v1.2d, v2.d[2]2998 fmls v0.2d, v1.2d, v22.d[2]2999 3000// CHECK-ERROR: error: instruction requires: fullfp163001// CHECK-ERROR: fmls v0.4h, v1.4h, v2.h[2]3002// CHECK-ERROR: ^3003// CHECK-ERROR: error: instruction requires: fullfp163004// CHECK-ERROR: fmls v0.8h, v1.8h, v2.h[2]3005// CHECK-ERROR: ^3006// CHECK-ERROR: vector lane must be an integer in range3007// CHECK-ERROR: fmls v0.2s, v1.2s, v2.s[4]3008// CHECK-ERROR: ^3009// CHECK-ERROR: vector lane must be an integer in range3010// CHECK-ERROR: fmls v0.2s, v1.2s, v22.s[4]3011// CHECK-ERROR: ^3012// CHECK-ERROR: vector lane must be an integer in range3013// CHECK-ERROR: fmls v3.4s, v8.4s, v2.s[4]3014// CHECK-ERROR: ^3015// CHECK-ERROR: vector lane must be an integer in range3016// CHECK-ERROR: fmls v3.4s, v8.4s, v22.s[4]3017// CHECK-ERROR: ^3018// CHECK-ERROR: vector lane must be an integer in range3019// CHECK-ERROR: fmls v0.2d, v1.2d, v2.d[2]3020// CHECK-ERROR: ^3021// CHECK-ERROR: vector lane must be an integer in range3022// CHECK-ERROR: fmls v0.2d, v1.2d, v22.d[2]3023// CHECK-ERROR: ^3024 3025 smlal v0.4h, v1.4h, v2.h[2]3026 smlal v0.4s, v1.4h, v2.h[8]3027 smlal v0.4s, v1.4h, v16.h[2]3028 smlal v0.2s, v1.2s, v2.s[1]3029 smlal v0.2d, v1.2s, v2.s[4]3030 smlal v0.2d, v1.2s, v22.s[4]3031 smlal2 v0.4h, v1.8h, v1.h[2]3032 smlal2 v0.4s, v1.8h, v1.h[8]3033 smlal2 v0.4s, v1.8h, v16.h[2]3034 smlal2 v0.2s, v1.4s, v1.s[2]3035 smlal2 v0.2d, v1.4s, v1.s[4]3036 smlal2 v0.2d, v1.4s, v22.s[4]3037 3038// CHECK-ERROR: error: invalid operand for instruction3039// CHECK-ERROR: smlal v0.4h, v1.4h, v2.h[2]3040// CHECK-ERROR: ^3041// CHECK-ERROR: vector lane must be an integer in range3042// CHECK-ERROR: smlal v0.4s, v1.4h, v2.h[8]3043// CHECK-ERROR: ^3044// CHECK-ERROR: error: invalid operand for instruction3045// CHECK-ERROR: smlal v0.4s, v1.4h, v16.h[2]3046// CHECK-ERROR: ^3047// CHECK-ERROR: error: invalid operand for instruction3048// CHECK-ERROR: smlal v0.2s, v1.2s, v2.s[1]3049// CHECK-ERROR: ^3050// CHECK-ERROR: vector lane must be an integer in range3051// CHECK-ERROR: smlal v0.2d, v1.2s, v2.s[4]3052// CHECK-ERROR: ^3053// CHECK-ERROR: vector lane must be an integer in range3054// CHECK-ERROR: smlal v0.2d, v1.2s, v22.s[4]3055// CHECK-ERROR: ^3056// CHECK-ERROR: error: invalid operand for instruction3057// CHECK-ERROR: smlal2 v0.4h, v1.8h, v1.h[2]3058// CHECK-ERROR: ^3059// CHECK-ERROR: vector lane must be an integer in range3060// CHECK-ERROR: smlal2 v0.4s, v1.8h, v1.h[8]3061// CHECK-ERROR: ^3062// CHECK-ERROR: error: invalid operand for instruction3063// CHECK-ERROR: smlal2 v0.4s, v1.8h, v16.h[2]3064// CHECK-ERROR: ^3065// CHECK-ERROR: error: invalid operand for instruction3066// CHECK-ERROR: smlal2 v0.2s, v1.4s, v1.s[2]3067// CHECK-ERROR: ^3068// CHECK-ERROR: vector lane must be an integer in range3069// CHECK-ERROR: smlal2 v0.2d, v1.4s, v1.s[4]3070// CHECK-ERROR: ^3071// CHECK-ERROR: vector lane must be an integer in range3072// CHECK-ERROR: smlal2 v0.2d, v1.4s, v22.s[4]3073// CHECK-ERROR: ^3074 3075 smlsl v0.4h, v1.4h, v2.h[2]3076 smlsl v0.4s, v1.4h, v2.h[8]3077 smlsl v0.4s, v1.4h, v16.h[2]3078 smlsl v0.2s, v1.2s, v2.s[1]3079 smlsl v0.2d, v1.2s, v2.s[4]3080 smlsl v0.2d, v1.2s, v22.s[4]3081 smlsl2 v0.4h, v1.8h, v1.h[2]3082 smlsl2 v0.4s, v1.8h, v1.h[8]3083 smlsl2 v0.4s, v1.8h, v16.h[2]3084 smlsl2 v0.2s, v1.4s, v1.s[2]3085 smlsl2 v0.2d, v1.4s, v1.s[4]3086 smlsl2 v0.2d, v1.4s, v22.s[4]3087 3088// CHECK-ERROR: error: invalid operand for instruction3089// CHECK-ERROR: smlsl v0.4h, v1.4h, v2.h[2]3090// CHECK-ERROR: ^3091// CHECK-ERROR: vector lane must be an integer in range3092// CHECK-ERROR: smlsl v0.4s, v1.4h, v2.h[8]3093// CHECK-ERROR: ^3094// CHECK-ERROR: error: invalid operand for instruction3095// CHECK-ERROR: smlsl v0.4s, v1.4h, v16.h[2]3096// CHECK-ERROR: ^3097// CHECK-ERROR: error: invalid operand for instruction3098// CHECK-ERROR: smlsl v0.2s, v1.2s, v2.s[1]3099// CHECK-ERROR: ^3100// CHECK-ERROR: vector lane must be an integer in range3101// CHECK-ERROR: smlsl v0.2d, v1.2s, v2.s[4]3102// CHECK-ERROR: ^3103// CHECK-ERROR: vector lane must be an integer in range3104// CHECK-ERROR: smlsl v0.2d, v1.2s, v22.s[4]3105// CHECK-ERROR: ^3106// CHECK-ERROR: error: invalid operand for instruction3107// CHECK-ERROR: smlsl2 v0.4h, v1.8h, v1.h[2]3108// CHECK-ERROR: ^3109// CHECK-ERROR: vector lane must be an integer in range3110// CHECK-ERROR: smlsl2 v0.4s, v1.8h, v1.h[8]3111// CHECK-ERROR: ^3112// CHECK-ERROR: error: invalid operand for instruction3113// CHECK-ERROR: smlsl2 v0.4s, v1.8h, v16.h[2]3114// CHECK-ERROR: ^3115// CHECK-ERROR: error: invalid operand for instruction3116// CHECK-ERROR: smlsl2 v0.2s, v1.4s, v1.s[2]3117// CHECK-ERROR: ^3118// CHECK-ERROR: vector lane must be an integer in range3119// CHECK-ERROR: smlsl2 v0.2d, v1.4s, v1.s[4]3120// CHECK-ERROR: ^3121// CHECK-ERROR: vector lane must be an integer in range3122// CHECK-ERROR: smlsl2 v0.2d, v1.4s, v22.s[4]3123// CHECK-ERROR: ^3124 3125 umlal v0.4h, v1.4h, v2.h[2]3126 umlal v0.4s, v1.4h, v2.h[8]3127 umlal v0.4s, v1.4h, v16.h[2]3128 umlal v0.2s, v1.2s, v2.s[1]3129 umlal v0.2d, v1.2s, v2.s[4]3130 umlal v0.2d, v1.2s, v22.s[4]3131 umlal2 v0.4h, v1.8h, v1.h[2]3132 umlal2 v0.4s, v1.8h, v1.h[8]3133 umlal2 v0.4s, v1.8h, v16.h[2]3134 umlal2 v0.2s, v1.4s, v1.s[2]3135 umlal2 v0.2d, v1.4s, v1.s[4]3136 umlal2 v0.2d, v1.4s, v22.s[4]3137 3138// CHECK-ERROR: error: invalid operand for instruction3139// CHECK-ERROR: umlal v0.4h, v1.4h, v2.h[2]3140// CHECK-ERROR: ^3141// CHECK-ERROR: vector lane must be an integer in range3142// CHECK-ERROR: umlal v0.4s, v1.4h, v2.h[8]3143// CHECK-ERROR: ^3144// CHECK-ERROR: error: invalid operand for instruction3145// CHECK-ERROR: umlal v0.4s, v1.4h, v16.h[2]3146// CHECK-ERROR: ^3147// CHECK-ERROR: error: invalid operand for instruction3148// CHECK-ERROR: umlal v0.2s, v1.2s, v2.s[1]3149// CHECK-ERROR: ^3150// CHECK-ERROR: vector lane must be an integer in range3151// CHECK-ERROR: umlal v0.2d, v1.2s, v2.s[4]3152// CHECK-ERROR: ^3153// CHECK-ERROR: vector lane must be an integer in range3154// CHECK-ERROR: umlal v0.2d, v1.2s, v22.s[4]3155// CHECK-ERROR: ^3156// CHECK-ERROR: error: invalid operand for instruction3157// CHECK-ERROR: umlal2 v0.4h, v1.8h, v1.h[2]3158// CHECK-ERROR: ^3159// CHECK-ERROR: vector lane must be an integer in range3160// CHECK-ERROR: umlal2 v0.4s, v1.8h, v1.h[8]3161// CHECK-ERROR: ^3162// CHECK-ERROR: error: invalid operand for instruction3163// CHECK-ERROR: umlal2 v0.4s, v1.8h, v16.h[2]3164// CHECK-ERROR: ^3165// CHECK-ERROR: error: invalid operand for instruction3166// CHECK-ERROR: umlal2 v0.2s, v1.4s, v1.s[2]3167// CHECK-ERROR: ^3168// CHECK-ERROR: vector lane must be an integer in range3169// CHECK-ERROR: umlal2 v0.2d, v1.4s, v1.s[4]3170// CHECK-ERROR: ^3171// CHECK-ERROR: vector lane must be an integer in range3172// CHECK-ERROR: umlal2 v0.2d, v1.4s, v22.s[4]3173// CHECK-ERROR: ^3174 3175 umlsl v0.4h, v1.4h, v2.h[2]3176 umlsl v0.4s, v1.4h, v2.h[8]3177 umlsl v0.4s, v1.4h, v16.h[2]3178 umlsl v0.2s, v1.2s, v2.s[3]3179 umlsl v0.2d, v1.2s, v2.s[4]3180 umlsl v0.2d, v1.2s, v22.s[4]3181 umlsl2 v0.4h, v1.8h, v1.h[2]3182 umlsl2 v0.4s, v1.8h, v1.h[8]3183 umlsl2 v0.4s, v1.8h, v16.h[2]3184 umlsl2 v0.2s, v1.4s, v1.s[2]3185 umlsl2 v0.2d, v1.4s, v1.s[4]3186 umlsl2 v0.2d, v1.4s, v22.s[4]3187 3188// CHECK-ERROR: error: invalid operand for instruction3189// CHECK-ERROR: umlsl v0.4h, v1.4h, v2.h[2]3190// CHECK-ERROR: ^3191// CHECK-ERROR: vector lane must be an integer in range3192// CHECK-ERROR: umlsl v0.4s, v1.4h, v2.h[8]3193// CHECK-ERROR: ^3194// CHECK-ERROR: error: invalid operand for instruction3195// CHECK-ERROR: umlsl v0.4s, v1.4h, v16.h[2]3196// CHECK-ERROR: ^3197// CHECK-ERROR: error: invalid operand for instruction3198// CHECK-ERROR: umlsl v0.2s, v1.2s, v2.s[3]3199// CHECK-ERROR: ^3200// CHECK-ERROR: vector lane must be an integer in range3201// CHECK-ERROR: umlsl v0.2d, v1.2s, v2.s[4]3202// CHECK-ERROR: ^3203// CHECK-ERROR: vector lane must be an integer in range3204// CHECK-ERROR: umlsl v0.2d, v1.2s, v22.s[4]3205// CHECK-ERROR: ^3206// CHECK-ERROR: error: invalid operand for instruction3207// CHECK-ERROR: umlsl2 v0.4h, v1.8h, v1.h[2]3208// CHECK-ERROR: ^3209// CHECK-ERROR: vector lane must be an integer in range3210// CHECK-ERROR: umlsl2 v0.4s, v1.8h, v1.h[8]3211// CHECK-ERROR: ^3212// CHECK-ERROR: error: invalid operand for instruction3213// CHECK-ERROR: umlsl2 v0.4s, v1.8h, v16.h[2]3214// CHECK-ERROR: ^3215// CHECK-ERROR: error: invalid operand for instruction3216// CHECK-ERROR: umlsl2 v0.2s, v1.4s, v1.s[2]3217// CHECK-ERROR: ^3218// CHECK-ERROR: vector lane must be an integer in range3219// CHECK-ERROR: umlsl2 v0.2d, v1.4s, v1.s[4]3220// CHECK-ERROR: ^3221// CHECK-ERROR: vector lane must be an integer in range3222// CHECK-ERROR: umlsl2 v0.2d, v1.4s, v22.s[4]3223// CHECK-ERROR: ^3224 3225 sqdmlal v0.4h, v1.4h, v2.h[2]3226 sqdmlal v0.4s, v1.4h, v2.h[8]3227 sqdmlal v0.4s, v1.4h, v16.h[2]3228 sqdmlal v0.2s, v1.2s, v2.s[3]3229 sqdmlal v0.2d, v1.2s, v2.s[4]3230 sqdmlal v0.2d, v1.2s, v22.s[4]3231 sqdmlal2 v0.4h, v1.8h, v1.h[2]3232 sqdmlal2 v0.4s, v1.8h, v1.h[8]3233 sqdmlal2 v0.4s, v1.8h, v16.h[2]3234 sqdmlal2 v0.2s, v1.4s, v1.s[2]3235 sqdmlal2 v0.2d, v1.4s, v1.s[4]3236 sqdmlal2 v0.2d, v1.4s, v22.s[4]3237 3238// CHECK-ERROR: error: invalid operand for instruction3239// CHECK-ERROR: sqdmlal v0.4h, v1.4h, v2.h[2]3240// CHECK-ERROR: ^3241// CHECK-ERROR: vector lane must be an integer in range3242// CHECK-ERROR: sqdmlal v0.4s, v1.4h, v2.h[8]3243// CHECK-ERROR: ^3244// CHECK-ERROR: error: invalid operand for instruction3245// CHECK-ERROR: sqdmlal v0.4s, v1.4h, v16.h[2]3246// CHECK-ERROR: ^3247// CHECK-ERROR: error: invalid operand for instruction3248// CHECK-ERROR: sqdmlal v0.2s, v1.2s, v2.s[3]3249// CHECK-ERROR: ^3250// CHECK-ERROR: vector lane must be an integer in range3251// CHECK-ERROR: sqdmlal v0.2d, v1.2s, v2.s[4]3252// CHECK-ERROR: ^3253// CHECK-ERROR: vector lane must be an integer in range3254// CHECK-ERROR: sqdmlal v0.2d, v1.2s, v22.s[4]3255// CHECK-ERROR: ^3256// CHECK-ERROR: error: invalid operand for instruction3257// CHECK-ERROR: sqdmlal2 v0.4h, v1.8h, v1.h[2]3258// CHECK-ERROR: ^3259// CHECK-ERROR: vector lane must be an integer in range3260// CHECK-ERROR: sqdmlal2 v0.4s, v1.8h, v1.h[8]3261// CHECK-ERROR: ^3262// CHECK-ERROR: error: invalid operand for instruction3263// CHECK-ERROR: sqdmlal2 v0.4s, v1.8h, v16.h[2]3264// CHECK-ERROR: ^3265// CHECK-ERROR: error: invalid operand for instruction3266// CHECK-ERROR: sqdmlal2 v0.2s, v1.4s, v1.s[2]3267// CHECK-ERROR: ^3268// CHECK-ERROR: vector lane must be an integer in range3269// CHECK-ERROR: sqdmlal2 v0.2d, v1.4s, v1.s[4]3270// CHECK-ERROR: ^3271// CHECK-ERROR: vector lane must be an integer in range3272// CHECK-ERROR: sqdmlal2 v0.2d, v1.4s, v22.s[4]3273// CHECK-ERROR: ^3274 3275 sqdmlsl v0.4h, v1.4h, v2.h[2]3276 sqdmlsl v0.4s, v1.4h, v2.h[8]3277 sqdmlsl v0.4s, v1.4h, v16.h[2]3278 sqdmlsl v0.2s, v1.2s, v2.s[3]3279 sqdmlsl v0.2d, v1.2s, v2.s[4]3280 sqdmlsl v0.2d, v1.2s, v22.s[4]3281 sqdmlsl2 v0.4h, v1.8h, v1.h[2]3282 sqdmlsl2 v0.4s, v1.8h, v1.h[8]3283 sqdmlsl2 v0.4s, v1.8h, v16.h[2]3284 sqdmlsl2 v0.2s, v1.4s, v1.s[2]3285 sqdmlsl2 v0.2d, v1.4s, v1.s[4]3286 sqdmlsl2 v0.2d, v1.4s, v22.s[4]3287 3288// CHECK-ERROR: error: invalid operand for instruction3289// CHECK-ERROR: sqdmlsl v0.4h, v1.4h, v2.h[2]3290// CHECK-ERROR: ^3291// CHECK-ERROR: vector lane must be an integer in range3292// CHECK-ERROR: sqdmlsl v0.4s, v1.4h, v2.h[8]3293// CHECK-ERROR: ^3294// CHECK-ERROR: error: invalid operand for instruction3295// CHECK-ERROR: sqdmlsl v0.4s, v1.4h, v16.h[2]3296// CHECK-ERROR: ^3297// CHECK-ERROR: error: invalid operand for instruction3298// CHECK-ERROR: sqdmlsl v0.2s, v1.2s, v2.s[3]3299// CHECK-ERROR: ^3300// CHECK-ERROR: vector lane must be an integer in range3301// CHECK-ERROR: sqdmlsl v0.2d, v1.2s, v2.s[4]3302// CHECK-ERROR: ^3303// CHECK-ERROR: vector lane must be an integer in range3304// CHECK-ERROR: sqdmlsl v0.2d, v1.2s, v22.s[4]3305// CHECK-ERROR: ^3306// CHECK-ERROR: error: invalid operand for instruction3307// CHECK-ERROR: sqdmlsl2 v0.4h, v1.8h, v1.h[2]3308// CHECK-ERROR: ^3309// CHECK-ERROR: vector lane must be an integer in range3310// CHECK-ERROR: sqdmlsl2 v0.4s, v1.8h, v1.h[8]3311// CHECK-ERROR: ^3312// CHECK-ERROR: error: invalid operand for instruction3313// CHECK-ERROR: sqdmlsl2 v0.4s, v1.8h, v16.h[2]3314// CHECK-ERROR: ^3315// CHECK-ERROR: error: invalid operand for instruction3316// CHECK-ERROR: sqdmlsl2 v0.2s, v1.4s, v1.s[2]3317// CHECK-ERROR: ^3318// CHECK-ERROR: vector lane must be an integer in range3319// CHECK-ERROR: sqdmlsl2 v0.2d, v1.4s, v1.s[4]3320// CHECK-ERROR: ^3321// CHECK-ERROR: vector lane must be an integer in range3322// CHECK-ERROR: sqdmlsl2 v0.2d, v1.4s, v22.s[4]3323// CHECK-ERROR: ^3324 3325 mul v0.4h, v1.4h, v2.h[8]3326 mul v0.4h, v1.4h, v16.h[8]3327 mul v0.8h, v1.8h, v2.h[8]3328 mul v0.8h, v1.8h, v16.h[8]3329 mul v0.2s, v1.2s, v2.s[4]3330 mul v0.2s, v1.2s, v22.s[4]3331 mul v0.4s, v1.4s, v2.s[4]3332 mul v0.4s, v1.4s, v22.s[4]3333 mul v0.2d, v1.2d, v2.d[1]3334 3335// CHECK-ERROR: vector lane must be an integer in range3336// CHECK-ERROR: mul v0.4h, v1.4h, v2.h[8]3337// CHECK-ERROR: ^3338// CHECK-ERROR: error: invalid operand for instruction3339// CHECK-ERROR: mul v0.4h, v1.4h, v16.h[8]3340// CHECK-ERROR: ^3341// CHECK-ERROR: vector lane must be an integer in range3342// CHECK-ERROR: mul v0.8h, v1.8h, v2.h[8]3343// CHECK-ERROR: ^3344// CHECK-ERROR: invalid operand for instruction3345// CHECK-ERROR: mul v0.8h, v1.8h, v16.h[8]3346// CHECK-ERROR: ^3347// CHECK-ERROR: vector lane must be an integer in range3348// CHECK-ERROR: mul v0.2s, v1.2s, v2.s[4]3349// CHECK-ERROR: ^3350// CHECK-ERROR: vector lane must be an integer in range3351// CHECK-ERROR: mul v0.2s, v1.2s, v22.s[4]3352// CHECK-ERROR: ^3353// CHECK-ERROR: vector lane must be an integer in range3354// CHECK-ERROR: mul v0.4s, v1.4s, v2.s[4]3355// CHECK-ERROR: ^3356// CHECK-ERROR: vector lane must be an integer in range3357// CHECK-ERROR: mul v0.4s, v1.4s, v22.s[4]3358// CHECK-ERROR: ^3359 3360 fmul v0.4h, v1.4h, v2.h[4]3361 fmul v0.2s, v1.2s, v2.s[4]3362 fmul v0.2s, v1.2s, v22.s[4]3363 fmul v0.4s, v1.4s, v2.s[4]3364 fmul v0.4s, v1.4s, v22.s[4]3365 fmul v0.2d, v1.2d, v2.d[2]3366 fmul v0.2d, v1.2d, v22.d[2]3367 3368// CHECK-ERROR: error: invalid operand for instruction3369// CHECK-ERROR: mul v0.2d, v1.2d, v2.d[1]3370// CHECK-ERROR: ^3371// CHECK-ERROR: error: instruction requires: fullfp163372// CHECK-ERROR: fmul v0.4h, v1.4h, v2.h[4]3373// CHECK-ERROR: ^3374// CHECK-ERROR: vector lane must be an integer in range3375// CHECK-ERROR: fmul v0.2s, v1.2s, v2.s[4]3376// CHECK-ERROR: ^3377// CHECK-ERROR: vector lane must be an integer in range3378// CHECK-ERROR: fmul v0.2s, v1.2s, v22.s[4]3379// CHECK-ERROR: ^3380// CHECK-ERROR: vector lane must be an integer in range3381// CHECK-ERROR: fmul v0.4s, v1.4s, v2.s[4]3382// CHECK-ERROR: ^3383// CHECK-ERROR: vector lane must be an integer in range3384// CHECK-ERROR: fmul v0.4s, v1.4s, v22.s[4]3385// CHECK-ERROR: ^3386// CHECK-ERROR: vector lane must be an integer in range3387// CHECK-ERROR: fmul v0.2d, v1.2d, v2.d[2]3388// CHECK-ERROR: ^3389// CHECK-ERROR: vector lane must be an integer in range3390// CHECK-ERROR: fmul v0.2d, v1.2d, v22.d[2]3391// CHECK-ERROR: ^3392 3393 fmulx v0.4h, v1.4h, v2.h[4]3394 fmulx v0.2s, v1.2s, v2.s[4]3395 fmulx v0.2s, v1.2s, v22.s[4]3396 fmulx v0.4s, v1.4s, v2.s[4]3397 fmulx v0.4s, v1.4s, v22.s[4]3398 fmulx v0.2d, v1.2d, v2.d[2]3399 fmulx v0.2d, v1.2d, v22.d[2]3400 3401// CHECK-ERROR: error: instruction requires: fullfp163402// CHECK-ERROR: fmulx v0.4h, v1.4h, v2.h[4]3403// CHECK-ERROR: ^3404// CHECK-ERROR: vector lane must be an integer in range3405// CHECK-ERROR: fmulx v0.2s, v1.2s, v2.s[4]3406// CHECK-ERROR: ^3407// CHECK-ERROR: vector lane must be an integer in range3408// CHECK-ERROR: fmulx v0.2s, v1.2s, v22.s[4]3409// CHECK-ERROR: ^3410// CHECK-ERROR: vector lane must be an integer in range3411// CHECK-ERROR: fmulx v0.4s, v1.4s, v2.s[4]3412// CHECK-ERROR: ^3413// CHECK-ERROR: vector lane must be an integer in range3414// CHECK-ERROR: fmulx v0.4s, v1.4s, v22.s[4]3415// CHECK-ERROR: ^3416// CHECK-ERROR: vector lane must be an integer in range3417// CHECK-ERROR: fmulx v0.2d, v1.2d, v2.d[2]3418// CHECK-ERROR: ^3419// CHECK-ERROR: vector lane must be an integer in range3420// CHECK-ERROR: fmulx v0.2d, v1.2d, v22.d[2]3421// CHECK-ERROR: ^3422 3423 smull v0.4h, v1.4h, v2.h[2]3424 smull v0.4s, v1.4h, v2.h[8]3425 smull v0.4s, v1.4h, v16.h[4]3426 smull v0.2s, v1.2s, v2.s[2]3427 smull v0.2d, v1.2s, v2.s[4]3428 smull v0.2d, v1.2s, v22.s[4]3429 smull2 v0.4h, v1.8h, v2.h[2]3430 smull2 v0.4s, v1.8h, v2.h[8]3431 smull2 v0.4s, v1.8h, v16.h[4]3432 smull2 v0.2s, v1.4s, v2.s[2]3433 smull2 v0.2d, v1.4s, v2.s[4]3434 smull2 v0.2d, v1.4s, v22.s[4]3435 3436// CHECK-ERROR: error: invalid operand for instruction3437// CHECK-ERROR: smull v0.4h, v1.4h, v2.h[2]3438// CHECK-ERROR: ^3439// CHECK-ERROR: vector lane must be an integer in range3440// CHECK-ERROR: smull v0.4s, v1.4h, v2.h[8]3441// CHECK-ERROR: ^3442// CHECK-ERROR: error: invalid operand for instruction3443// CHECK-ERROR: smull v0.4s, v1.4h, v16.h[4]3444// CHECK-ERROR: ^3445// CHECK-ERROR: error: invalid operand for instruction3446// CHECK-ERROR: smull v0.2s, v1.2s, v2.s[2]3447// CHECK-ERROR: ^3448// CHECK-ERROR: vector lane must be an integer in range3449// CHECK-ERROR: smull v0.2d, v1.2s, v2.s[4]3450// CHECK-ERROR: ^3451// CHECK-ERROR: vector lane must be an integer in range3452// CHECK-ERROR: smull v0.2d, v1.2s, v22.s[4]3453// CHECK-ERROR: ^3454// CHECK-ERROR: error: invalid operand for instruction3455// CHECK-ERROR: smull2 v0.4h, v1.8h, v2.h[2]3456// CHECK-ERROR: ^3457// CHECK-ERROR: vector lane must be an integer in range3458// CHECK-ERROR: smull2 v0.4s, v1.8h, v2.h[8]3459// CHECK-ERROR: ^3460// CHECK-ERROR: error: invalid operand for instruction3461// CHECK-ERROR: smull2 v0.4s, v1.8h, v16.h[4]3462// CHECK-ERROR: ^3463// CHECK-ERROR: error: invalid operand for instruction3464// CHECK-ERROR: smull2 v0.2s, v1.4s, v2.s[2]3465// CHECK-ERROR: ^3466// CHECK-ERROR: vector lane must be an integer in range3467// CHECK-ERROR: smull2 v0.2d, v1.4s, v2.s[4]3468// CHECK-ERROR: ^3469// CHECK-ERROR: vector lane must be an integer in range3470// CHECK-ERROR: smull2 v0.2d, v1.4s, v22.s[4]3471// CHECK-ERROR: ^3472 3473 umull v0.4h, v1.4h, v2.h[2]3474 umull v0.4s, v1.4h, v2.h[8]3475 umull v0.4s, v1.4h, v16.h[4]3476 umull v0.2s, v1.2s, v2.s[2]3477 umull v0.2d, v1.2s, v2.s[4]3478 umull v0.2d, v1.2s, v22.s[4]3479 umull2 v0.4h, v1.8h, v2.h[2]3480 umull2 v0.4s, v1.8h, v2.h[8]3481 umull2 v0.4s, v1.8h, v16.h[4]3482 umull2 v0.2s, v1.4s, v2.s[2]3483 umull2 v0.2d, v1.4s, v2.s[4]3484 umull2 v0.2d, v1.4s, v22.s[4]3485 3486// CHECK-ERROR: error: invalid operand for instruction3487// CHECK-ERROR: umull v0.4h, v1.4h, v2.h[2]3488// CHECK-ERROR: ^3489// CHECK-ERROR: vector lane must be an integer in range3490// CHECK-ERROR: umull v0.4s, v1.4h, v2.h[8]3491// CHECK-ERROR: ^3492// CHECK-ERROR: error: invalid operand for instruction3493// CHECK-ERROR: umull v0.4s, v1.4h, v16.h[4]3494// CHECK-ERROR: ^3495// CHECK-ERROR: error: invalid operand for instruction3496// CHECK-ERROR: umull v0.2s, v1.2s, v2.s[2]3497// CHECK-ERROR: ^3498// CHECK-ERROR: vector lane must be an integer in range3499// CHECK-ERROR: umull v0.2d, v1.2s, v2.s[4]3500// CHECK-ERROR: ^3501// CHECK-ERROR: vector lane must be an integer in range3502// CHECK-ERROR: umull v0.2d, v1.2s, v22.s[4]3503// CHECK-ERROR: ^3504// CHECK-ERROR: error: invalid operand for instruction3505// CHECK-ERROR: umull2 v0.4h, v1.8h, v2.h[2]3506// CHECK-ERROR: ^3507// CHECK-ERROR: vector lane must be an integer in range3508// CHECK-ERROR: umull2 v0.4s, v1.8h, v2.h[8]3509// CHECK-ERROR: ^3510// CHECK-ERROR: error: invalid operand for instruction3511// CHECK-ERROR: umull2 v0.4s, v1.8h, v16.h[4]3512// CHECK-ERROR: ^3513// CHECK-ERROR: error: invalid operand for instruction3514// CHECK-ERROR: umull2 v0.2s, v1.4s, v2.s[2]3515// CHECK-ERROR: ^3516// CHECK-ERROR: vector lane must be an integer in range3517// CHECK-ERROR: umull2 v0.2d, v1.4s, v2.s[4]3518// CHECK-ERROR: ^3519// CHECK-ERROR: vector lane must be an integer in range3520// CHECK-ERROR: umull2 v0.2d, v1.4s, v22.s[4]3521// CHECK-ERROR: ^3522 3523 sqdmull v0.4h, v1.4h, v2.h[2]3524 sqdmull v0.4s, v1.4h, v2.h[8]3525 sqdmull v0.4s, v1.4h, v16.h[4]3526 sqdmull v0.2s, v1.2s, v2.s[2]3527 sqdmull v0.2d, v1.2s, v2.s[4]3528 sqdmull v0.2d, v1.2s, v22.s[4]3529 sqdmull2 v0.4h, v1.8h, v2.h[2]3530 sqdmull2 v0.4s, v1.8h, v2.h[8]3531 sqdmull2 v0.4s, v1.8h, v16.h[4]3532 sqdmull2 v0.2s, v1.4s, v2.s[2]3533 sqdmull2 v0.2d, v1.4s, v2.s[4]3534 sqdmull2 v0.2d, v1.4s, v22.s[4]3535 3536// CHECK-ERROR: error: invalid operand for instruction3537// CHECK-ERROR: sqdmull v0.4h, v1.4h, v2.h[2]3538// CHECK-ERROR: ^3539// CHECK-ERROR: vector lane must be an integer in range3540// CHECK-ERROR: sqdmull v0.4s, v1.4h, v2.h[8]3541// CHECK-ERROR: ^3542// CHECK-ERROR: error: invalid operand for instruction3543// CHECK-ERROR: sqdmull v0.4s, v1.4h, v16.h[4]3544// CHECK-ERROR: ^3545// CHECK-ERROR: error: invalid operand for instruction3546// CHECK-ERROR: sqdmull v0.2s, v1.2s, v2.s[2]3547// CHECK-ERROR: ^3548// CHECK-ERROR: vector lane must be an integer in range3549// CHECK-ERROR: sqdmull v0.2d, v1.2s, v2.s[4]3550// CHECK-ERROR: ^3551// CHECK-ERROR: vector lane must be an integer in range3552// CHECK-ERROR: sqdmull v0.2d, v1.2s, v22.s[4]3553// CHECK-ERROR: ^3554// CHECK-ERROR: error: invalid operand for instruction3555// CHECK-ERROR: sqdmull2 v0.4h, v1.8h, v2.h[2]3556// CHECK-ERROR: ^3557// CHECK-ERROR: vector lane must be an integer in range3558// CHECK-ERROR: sqdmull2 v0.4s, v1.8h, v2.h[8]3559// CHECK-ERROR: ^3560// CHECK-ERROR: error: invalid operand for instruction3561// CHECK-ERROR: sqdmull2 v0.4s, v1.8h, v16.h[4]3562// CHECK-ERROR: ^3563// CHECK-ERROR: error: invalid operand for instruction3564// CHECK-ERROR: sqdmull2 v0.2s, v1.4s, v2.s[2]3565// CHECK-ERROR: ^3566// CHECK-ERROR: vector lane must be an integer in range3567// CHECK-ERROR: sqdmull2 v0.2d, v1.4s, v2.s[4]3568// CHECK-ERROR: ^3569// CHECK-ERROR: vector lane must be an integer in range3570// CHECK-ERROR: sqdmull2 v0.2d, v1.4s, v22.s[4]3571// CHECK-ERROR: ^3572 3573 sqdmulh v0.4h, v1.4h, v2.h[8]3574 sqdmulh v0.4h, v1.4h, v16.h[2]3575 sqdmulh v0.8h, v1.8h, v2.h[8]3576 sqdmulh v0.8h, v1.8h, v16.h[2]3577 sqdmulh v0.2s, v1.2s, v2.s[4]3578 sqdmulh v0.2s, v1.2s, v22.s[4]3579 sqdmulh v0.4s, v1.4s, v2.s[4]3580 sqdmulh v0.4s, v1.4s, v22.s[4]3581 sqdmulh v0.2d, v1.2d, v22.d[1]3582 3583// CHECK-ERROR: vector lane must be an integer in range3584// CHECK-ERROR: sqdmulh v0.4h, v1.4h, v2.h[8]3585// CHECK-ERROR: ^3586// CHECK-ERROR: error: invalid operand for instruction3587// CHECK-ERROR: sqdmulh v0.4h, v1.4h, v16.h[2]3588// CHECK-ERROR: ^3589// CHECK-ERROR: vector lane must be an integer in range3590// CHECK-ERROR: sqdmulh v0.8h, v1.8h, v2.h[8]3591// CHECK-ERROR: ^3592// CHECK-ERROR: error: invalid operand for instruction3593// CHECK-ERROR: sqdmulh v0.8h, v1.8h, v16.h[2]3594// CHECK-ERROR: ^3595// CHECK-ERROR: vector lane must be an integer in range3596// CHECK-ERROR: sqdmulh v0.2s, v1.2s, v2.s[4]3597// CHECK-ERROR: ^3598// CHECK-ERROR: vector lane must be an integer in range3599// CHECK-ERROR: sqdmulh v0.2s, v1.2s, v22.s[4]3600// CHECK-ERROR: ^3601// CHECK-ERROR: vector lane must be an integer in range3602// CHECK-ERROR: sqdmulh v0.4s, v1.4s, v2.s[4]3603// CHECK-ERROR: ^3604// CHECK-ERROR: vector lane must be an integer in range3605// CHECK-ERROR: sqdmulh v0.4s, v1.4s, v22.s[4]3606// CHECK-ERROR: ^3607// CHECK-ERROR: error: invalid operand for instruction3608// CHECK-ERROR: sqdmulh v0.2d, v1.2d, v22.d[1]3609// CHECK-ERROR: ^3610 3611 sqrdmulh v0.4h, v1.4h, v2.h[8]3612 sqrdmulh v0.4h, v1.4h, v16.h[2]3613 sqrdmulh v0.8h, v1.8h, v2.h[8]3614 sqrdmulh v0.8h, v1.8h, v16.h[2]3615 sqrdmulh v0.2s, v1.2s, v2.s[4]3616 sqrdmulh v0.2s, v1.2s, v22.s[4]3617 sqrdmulh v0.4s, v1.4s, v2.s[4]3618 sqrdmulh v0.4s, v1.4s, v22.s[4]3619 sqrdmulh v0.2d, v1.2d, v22.d[1]3620 3621// CHECK-ERROR: vector lane must be an integer in range3622// CHECK-ERROR: sqrdmulh v0.4h, v1.4h, v2.h[8]3623// CHECK-ERROR: ^3624// CHECK-ERROR: error: invalid operand for instruction3625// CHECK-ERROR: sqrdmulh v0.4h, v1.4h, v16.h[2]3626// CHECK-ERROR: ^3627// CHECK-ERROR: vector lane must be an integer in range3628// CHECK-ERROR: sqrdmulh v0.8h, v1.8h, v2.h[8]3629// CHECK-ERROR: ^3630// CHECK-ERROR: error: invalid operand for instruction3631// CHECK-ERROR: sqrdmulh v0.8h, v1.8h, v16.h[2]3632// CHECK-ERROR: ^3633// CHECK-ERROR: vector lane must be an integer in range3634// CHECK-ERROR: sqrdmulh v0.2s, v1.2s, v2.s[4]3635// CHECK-ERROR: ^3636// CHECK-ERROR: vector lane must be an integer in range3637// CHECK-ERROR: sqrdmulh v0.2s, v1.2s, v22.s[4]3638// CHECK-ERROR: ^3639// CHECK-ERROR: vector lane must be an integer in range3640// CHECK-ERROR: sqrdmulh v0.4s, v1.4s, v2.s[4]3641// CHECK-ERROR: ^3642// CHECK-ERROR: vector lane must be an integer in range3643// CHECK-ERROR: sqrdmulh v0.4s, v1.4s, v22.s[4]3644// CHECK-ERROR: ^3645// CHECK-ERROR: error: invalid operand for instruction3646// CHECK-ERROR: sqrdmulh v0.2d, v1.2d, v22.d[1]3647// CHECK-ERROR: ^3648 3649//----------------------------------------------------------------------3650// Across vectors3651//----------------------------------------------------------------------3652 3653 saddlv b0, v1.8b3654 saddlv b0, v1.16b3655 saddlv h0, v1.4h3656 saddlv h0, v1.8h3657 saddlv s0, v1.2s3658 saddlv s0, v1.4s3659 saddlv d0, v1.2s3660 3661// CHECK-ERROR: error: invalid operand for instruction3662// CHECK-ERROR: saddlv b0, v1.8b3663// CHECK-ERROR: ^3664// CHECK-ERROR: error: invalid operand for instruction3665// CHECK-ERROR: saddlv b0, v1.16b3666// CHECK-ERROR: ^3667// CHECK-ERROR: error: invalid operand for instruction3668// CHECK-ERROR: saddlv h0, v1.4h3669// CHECK-ERROR: ^3670// CHECK-ERROR: error: invalid operand for instruction3671// CHECK-ERROR: saddlv h0, v1.8h3672// CHECK-ERROR: ^3673// CHECK-ERROR: error: invalid operand for instruction3674// CHECK-ERROR: saddlv s0, v1.2s3675// CHECK-ERROR: ^3676// CHECK-ERROR: error: invalid operand for instruction3677// CHECK-ERROR: saddlv s0, v1.4s3678// CHECK-ERROR: ^3679// CHECK-ERROR: error: invalid operand for instruction3680// CHECK-ERROR: saddlv d0, v1.2s3681// CHECK-ERROR: ^3682 3683 uaddlv b0, v1.8b3684 uaddlv b0, v1.16b3685 uaddlv h0, v1.4h3686 uaddlv h0, v1.8h3687 uaddlv s0, v1.2s3688 uaddlv s0, v1.4s3689 uaddlv d0, v1.2s3690 3691// CHECK-ERROR: error: invalid operand for instruction3692// CHECK-ERROR: uaddlv b0, v1.8b3693// CHECK-ERROR: ^3694// CHECK-ERROR: error: invalid operand for instruction3695// CHECK-ERROR: uaddlv b0, v1.16b3696// CHECK-ERROR: ^3697// CHECK-ERROR: error: invalid operand for instruction3698// CHECK-ERROR: uaddlv h0, v1.4h3699// CHECK-ERROR: ^3700// CHECK-ERROR: error: invalid operand for instruction3701// CHECK-ERROR: uaddlv h0, v1.8h3702// CHECK-ERROR: ^3703// CHECK-ERROR: error: invalid operand for instruction3704// CHECK-ERROR: uaddlv s0, v1.2s3705// CHECK-ERROR: ^3706// CHECK-ERROR: error: invalid operand for instruction3707// CHECK-ERROR: uaddlv s0, v1.4s3708// CHECK-ERROR: ^3709// CHECK-ERROR: error: invalid operand for instruction3710// CHECK-ERROR: uaddlv d0, v1.2s3711// CHECK-ERROR: ^3712 3713 smaxv s0, v1.2s3714 sminv s0, v1.2s3715 umaxv s0, v1.2s3716 uminv s0, v1.2s3717 addv s0, v1.2s3718 3719// CHECK-ERROR: error: invalid operand for instruction3720// CHECK-ERROR: smaxv s0, v1.2s3721// CHECK-ERROR: ^3722// CHECK-ERROR: error: invalid operand for instruction3723// CHECK-ERROR: sminv s0, v1.2s3724// CHECK-ERROR: ^3725// CHECK-ERROR: error: invalid operand for instruction3726// CHECK-ERROR: umaxv s0, v1.2s3727// CHECK-ERROR: ^3728// CHECK-ERROR: error: invalid operand for instruction3729// CHECK-ERROR: uminv s0, v1.2s3730// CHECK-ERROR: ^3731// CHECK-ERROR: error: invalid operand for instruction3732// CHECK-ERROR: addv s0, v1.2s3733// CHECK-ERROR: ^3734 3735 smaxv d0, v1.2d3736 sminv d0, v1.2d3737 umaxv d0, v1.2d3738 uminv d0, v1.2d3739 addv d0, v1.2d3740 3741// CHECK-ERROR: error: invalid operand for instruction3742// CHECK-ERROR: smaxv d0, v1.2d3743// CHECK-ERROR: ^3744// CHECK-ERROR: error: invalid operand for instruction3745// CHECK-ERROR: sminv d0, v1.2d3746// CHECK-ERROR: ^3747// CHECK-ERROR: error: invalid operand for instruction3748// CHECK-ERROR: umaxv d0, v1.2d3749// CHECK-ERROR: ^3750// CHECK-ERROR: error: invalid operand for instruction3751// CHECK-ERROR: uminv d0, v1.2d3752// CHECK-ERROR: ^3753// CHECK-ERROR: error: invalid operand for instruction3754// CHECK-ERROR: addv d0, v1.2d3755// CHECK-ERROR: ^3756 3757 fmaxnmv b0, v1.16b3758 fminnmv b0, v1.16b3759 fmaxv b0, v1.16b3760 fminv b0, v1.16b3761 3762// CHECK-ERROR: error: invalid operand for instruction3763// CHECK-ERROR: fmaxnmv b0, v1.16b3764// CHECK-ERROR: ^3765// CHECK-ERROR: error: invalid operand for instruction3766// CHECK-ERROR: fminnmv b0, v1.16b3767// CHECK-ERROR: ^3768// CHECK-ERROR: error: invalid operand for instruction3769// CHECK-ERROR: fmaxv b0, v1.16b3770// CHECK-ERROR: ^3771// CHECK-ERROR: error: invalid operand for instruction3772// CHECK-ERROR: fminv b0, v1.16b3773// CHECK-ERROR: ^3774 3775 fmaxnmv h0, v1.8h3776 fminnmv h0, v1.8h3777 fmaxv h0, v1.8h3778 fminv h0, v1.8h3779 3780// CHECK-ERROR: error: instruction requires: fullfp163781// CHECK-ERROR: fmaxnmv h0, v1.8h3782// CHECK-ERROR: ^3783// CHECK-ERROR: error: instruction requires: fullfp163784// CHECK-ERROR: fminnmv h0, v1.8h3785// CHECK-ERROR: ^3786// CHECK-ERROR: error: instruction requires: fullfp163787// CHECK-ERROR: fmaxv h0, v1.8h3788// CHECK-ERROR: ^3789// CHECK-ERROR: error: instruction requires: fullfp163790// CHECK-ERROR: fminv h0, v1.8h3791// CHECK-ERROR: ^3792 3793 fmaxnmv d0, v1.2d3794 fminnmv d0, v1.2d3795 fmaxv d0, v1.2d3796 fminv d0, v1.2d3797 3798// CHECK-ERROR: error: invalid operand for instruction3799// CHECK-ERROR: fmaxnmv d0, v1.2d3800// CHECK-ERROR: ^3801// CHECK-ERROR: error: invalid operand for instruction3802// CHECK-ERROR: fminnmv d0, v1.2d3803// CHECK-ERROR: ^3804// CHECK-ERROR: error: invalid operand for instruction3805// CHECK-ERROR: fmaxv d0, v1.2d3806// CHECK-ERROR: ^3807// CHECK-ERROR: error: invalid operand for instruction3808// CHECK-ERROR: fminv d0, v1.2d3809// CHECK-ERROR: ^3810 3811//----------------------------------------------------------------------3812// Floating-point Multiply Extended3813//----------------------------------------------------------------------3814 3815 fmulx s20, h22, s153816 fmulx d23, d11, s13817 3818// CHECK-ERROR: error: invalid operand for instruction3819// CHECK-ERROR: fmulx s20, h22, s153820// CHECK-ERROR: ^3821// CHECK-ERROR: error: invalid operand for instruction3822// CHECK-ERROR: fmulx d23, d11, s13823// CHECK-ERROR: ^3824 3825//----------------------------------------------------------------------3826// Floating-point Reciprocal Step3827//----------------------------------------------------------------------3828 3829 frecps s21, s16, h133830 frecps d22, s30, d213831 3832// CHECK-ERROR: error: invalid operand for instruction3833// CHECK-ERROR: frecps s21, s16, h133834// CHECK-ERROR: ^3835// CHECK-ERROR: error: invalid operand for instruction3836// CHECK-ERROR: frecps d22, s30, d213837// CHECK-ERROR: ^3838 3839//----------------------------------------------------------------------3840// Floating-point Reciprocal Square Root Step3841//----------------------------------------------------------------------3842 3843 frsqrts s21, h5, s123844 frsqrts d8, s22, d183845 3846// CHECK-ERROR: error: invalid operand for instruction3847// CHECK-ERROR: frsqrts s21, h5, s123848// CHECK-ERROR: ^3849// CHECK-ERROR: error: invalid operand for instruction3850// CHECK-ERROR: frsqrts d8, s22, d183851// CHECK-ERROR: ^3852 3853//----------------------------------------------------------------------3854// Vector load/store multiple N-element structure (class SIMD lselem)3855//----------------------------------------------------------------------3856 ld1 {x3}, [x2]3857 ld1 {v4}, [x0]3858 ld1 {v32.16b}, [x0]3859 ld1 {v15.8h}, [x32]3860// CHECK-ERROR: error: vector register expected3861// CHECK-ERROR: ld1 {x3}, [x2]3862// CHECK-ERROR: ^3863// CHECK-ERROR: error: invalid operand for instruction3864// CHECK-ERROR: ld1 {v4}, [x0]3865// CHECK-ERROR: ^3866// CHECK-ERROR: error: vector register expected3867// CHECK-ERROR: ld1 {v32.16b}, [x0]3868// CHECK-ERROR: ^3869// CHECK-ERROR: error: invalid operand for instruction3870// CHECK-ERROR: ld1 {v15.8h}, [x32]3871// CHECK-ERROR: ^3872 3873 ld1 {v0.16b, v2.16b}, [x0]3874 ld1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]3875 ld1 v0.8b, v1.8b}, [x0]3876 ld1 {v0.8h-v4.8h}, [x0]3877 ld1 {v1.8h-v1.8h}, [x0]3878 ld1 {v15.8h-v17.4h}, [x15]3879 ld1 {v0.8b-v2.8b, [x0]3880// CHECK-ERROR: error: invalid operand for instruction3881// CHECK-ERROR: ld1 {v0.16b, v2.16b}, [x0]3882// CHECK-ERROR: ^3883// CHECK-ERROR: error: invalid number of vectors3884// CHECK-ERROR: ld1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]3885// CHECK-ERROR: ^3886// CHECK-ERROR: error: invalid operand for instruction3887// CHECK-ERROR: ld1 v0.8b, v1.8b}, [x0]3888// CHECK-ERROR: ^3889// CHECK-ERROR: error: invalid number of vectors3890// CHECK-ERROR: ld1 {v0.8h-v4.8h}, [x0]3891// CHECK-ERROR: ^3892// CHECK-ERROR: error: invalid number of vectors3893// CHECK-ERROR: ld1 {v1.8h-v1.8h}, [x0]3894// CHECK-ERROR: ^3895// CHECK-ERROR: error: mismatched register size suffix3896// CHECK-ERROR: ld1 {v15.8h-v17.4h}, [x15]3897// CHECK-ERROR: ^3898// CHECK-ERROR: error: '}' expected3899// CHECK-ERROR: ld1 {v0.8b-v2.8b, [x0]3900// CHECK-ERROR: ^3901 3902 ld2 {v15.8h, v16.4h}, [x15]3903 ld2 {v0.8b, v2.8b}, [x0]3904 ld2 {v15.4h, v16.4h, v17.4h}, [x32]3905 ld2 {v15.8h-v16.4h}, [x15]3906 ld2 {v0.2d-v2.2d}, [x0]3907// CHECK-ERROR: error: mismatched register size suffix3908// CHECK-ERROR: ld2 {v15.8h, v16.4h}, [x15]3909// CHECK-ERROR: ^3910// CHECK-ERROR: error: invalid operand for instruction3911// CHECK-ERROR: ld2 {v0.8b, v2.8b}, [x0]3912// CHECK-ERROR: ^3913// CHECK-ERROR: ld2 {v15.4h, v16.4h, v17.4h}, [x32]3914// CHECK-ERROR: ^3915// CHECK-ERROR: error: mismatched register size suffix3916// CHECK-ERROR: ld2 {v15.8h-v16.4h}, [x15]3917// CHECK-ERROR: ^3918// CHECK-ERROR: error: invalid operand for instruction3919// CHECK-ERROR: ld2 {v0.2d-v2.2d}, [x0]3920// CHECK-ERROR: ^3921 3922 ld3 {v15.8h, v16.8h, v17.4h}, [x15]3923 ld3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]3924 ld3 {v0.8b, v2.8b, v3.8b}, [x0]3925 ld3 {v15.8h-v17.4h}, [x15]3926 ld3 {v31.4s-v2.4s}, [sp]3927// CHECK-ERROR: error: mismatched register size suffix3928// CHECK-ERROR: ld3 {v15.8h, v16.8h, v17.4h}, [x15]3929// CHECK-ERROR: ^3930// CHECK-ERROR: error: mismatched register size suffix3931// CHECK-ERROR: ld3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]3932// CHECK-ERROR: ^3933// CHECK-ERROR: error: registers must have the same sequential stride3934// CHECK-ERROR: ld3 {v0.8b, v2.8b, v3.8b}, [x0]3935// CHECK-ERROR: ^3936// CHECK-ERROR: error: mismatched register size suffix3937// CHECK-ERROR: ld3 {v15.8h-v17.4h}, [x15]3938// CHECK-ERROR: ^3939// CHECK-ERROR: error: invalid operand for instruction3940// CHECK-ERROR: ld3 {v31.4s-v2.4s}, [sp]3941// CHECK-ERROR: ^3942 3943 ld4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]3944 ld4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]3945 ld4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]3946 ld4 {v15.8h-v18.4h}, [x15]3947 ld4 {v31.2s-v1.2s}, [x31]3948// CHECK-ERROR: error: mismatched register size suffix3949// CHECK-ERROR: ld4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]3950// CHECK-ERROR: ^3951// CHECK-ERROR: error: registers must have the same sequential stride3952// CHECK-ERROR: ld4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]3953// CHECK-ERROR: ^3954// CHECK-ERROR: error: invalid number of vectors3955// CHECK-ERROR: ld4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]3956// CHECK-ERROR: ^3957// CHECK-ERROR: error: mismatched register size suffix3958// CHECK-ERROR: ld4 {v15.8h-v18.4h}, [x15]3959// CHECK-ERROR: ^3960// CHECK-ERROR: error: invalid operand for instruction3961// CHECK-ERROR: ld4 {v31.2s-v1.2s}, [x31]3962// CHECK-ERROR: ^3963 3964 st1 {x3}, [x2]3965 st1 {v4}, [x0]3966 st1 {v32.16b}, [x0]3967 st1 {v15.8h}, [x32]3968// CHECK-ERROR: error: vector register expected3969// CHECK-ERROR: st1 {x3}, [x2]3970// CHECK-ERROR: ^3971// CHECK-ERROR: error: invalid operand for instruction3972// CHECK-ERROR: st1 {v4}, [x0]3973// CHECK-ERROR: ^3974// CHECK-ERROR: error: vector register expected3975// CHECK-ERROR: st1 {v32.16b}, [x0]3976// CHECK-ERROR: ^3977// CHECK-ERROR: error: invalid operand for instruction3978// CHECK-ERROR: st1 {v15.8h}, [x32]3979// CHECK-ERROR: ^3980 3981 st1 {v0.16b, v2.16b}, [x0]3982 st1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]3983 st1 v0.8b, v1.8b}, [x0]3984 st1 {v0.8h-v4.8h}, [x0]3985 st1 {v1.8h-v1.8h}, [x0]3986 st1 {v15.8h-v17.4h}, [x15]3987 st1 {v0.8b-v2.8b, [x0]3988// CHECK-ERROR: error: invalid operand for instruction3989// CHECK-ERROR: st1 {v0.16b, v2.16b}, [x0]3990// CHECK-ERROR: ^3991// CHECK-ERROR: error: invalid number of vectors3992// CHECK-ERROR: st1 {v0.8h, v1.8h, v2.8h, v3.8h, v4.8h}, [x0]3993// CHECK-ERROR: ^3994// CHECK-ERROR: error: invalid operand for instruction3995// CHECK-ERROR: st1 v0.8b, v1.8b}, [x0]3996// CHECK-ERROR: ^3997// CHECK-ERROR: error: invalid number of vectors3998// CHECK-ERROR: st1 {v0.8h-v4.8h}, [x0]3999// CHECK-ERROR: ^4000// CHECK-ERROR: error: invalid number of vectors4001// CHECK-ERROR: st1 {v1.8h-v1.8h}, [x0]4002// CHECK-ERROR: ^4003// CHECK-ERROR: error: mismatched register size suffix4004// CHECK-ERROR: st1 {v15.8h-v17.4h}, [x15]4005// CHECK-ERROR: ^4006// CHECK-ERROR: error: '}' expected4007// CHECK-ERROR: st1 {v0.8b-v2.8b, [x0]4008// CHECK-ERROR: ^4009 4010 st2 {v15.8h, v16.4h}, [x15]4011 st2 {v0.8b, v2.8b}, [x0]4012 st2 {v15.4h, v16.4h, v17.4h}, [x30]4013 st2 {v15.8h-v16.4h}, [x15]4014 st2 {v0.2d-v2.2d}, [x0]4015// CHECK-ERROR: error: mismatched register size suffix4016// CHECK-ERROR: st2 {v15.8h, v16.4h}, [x15]4017// CHECK-ERROR: ^4018// CHECK-ERROR: error: invalid operand for instruction4019// CHECK-ERROR: st2 {v0.8b, v2.8b}, [x0]4020// CHECK-ERROR: ^4021// CHECK-ERROR: error: invalid operand for instruction4022// CHECK-ERROR: st2 {v15.4h, v16.4h, v17.4h}, [x30]4023// CHECK-ERROR: ^4024// CHECK-ERROR: error: mismatched register size suffix4025// CHECK-ERROR: st2 {v15.8h-v16.4h}, [x15]4026// CHECK-ERROR: ^4027// CHECK-ERROR: error: invalid operand for instruction4028// CHECK-ERROR: st2 {v0.2d-v2.2d}, [x0]4029// CHECK-ERROR: ^4030 4031 st3 {v15.8h, v16.8h, v17.4h}, [x15]4032 st3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]4033 st3 {v0.8b, v2.8b, v3.8b}, [x0]4034 st3 {v15.8h-v17.4h}, [x15]4035 st3 {v31.4s-v2.4s}, [sp]4036// CHECK-ERROR: error: mismatched register size suffix4037// CHECK-ERROR: st3 {v15.8h, v16.8h, v17.4h}, [x15]4038// CHECK-ERROR: ^4039// CHECK-ERROR: error: mismatched register size suffix4040// CHECK-ERROR: st3 {v0.8b, v1,8b, v2.8b, v3.8b}, [x0]4041// CHECK-ERROR: ^4042// CHECK-ERROR: error: registers must have the same sequential stride4043// CHECK-ERROR: st3 {v0.8b, v2.8b, v3.8b}, [x0]4044// CHECK-ERROR: ^4045// CHECK-ERROR: error: mismatched register size suffix4046// CHECK-ERROR: st3 {v15.8h-v17.4h}, [x15]4047// CHECK-ERROR: ^4048// CHECK-ERROR: error: invalid operand for instruction4049// CHECK-ERROR: st3 {v31.4s-v2.4s}, [sp]4050// CHECK-ERROR: ^4051 4052 st4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]4053 st4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]4054 st4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]4055 st4 {v15.8h-v18.4h}, [x15]4056 st4 {v31.2s-v1.2s}, [x31]4057// CHECK-ERROR: error: mismatched register size suffix4058// CHECK-ERROR: st4 {v15.8h, v16.8h, v17.4h, v18.8h}, [x15]4059// CHECK-ERROR: ^4060// CHECK-ERROR: error: registers must have the same sequential stride4061// CHECK-ERROR: st4 {v0.8b, v2.8b, v3.8b, v4.8b}, [x0]4062// CHECK-ERROR: ^4063// CHECK-ERROR: error: invalid number of vectors4064// CHECK-ERROR: st4 {v15.4h, v16.4h, v17.4h, v18.4h, v19.4h}, [x31]4065// CHECK-ERROR: ^4066// CHECK-ERROR: error: mismatched register size suffix4067// CHECK-ERROR: st4 {v15.8h-v18.4h}, [x15]4068// CHECK-ERROR: ^4069// CHECK-ERROR: error: invalid operand for instruction4070// CHECK-ERROR: st4 {v31.2s-v1.2s}, [x31]4071// CHECK-ERROR: ^4072 4073//----------------------------------------------------------------------4074// Vector post-index load/store multiple N-element structure4075// (class SIMD lselem-post)4076//----------------------------------------------------------------------4077 ld1 {v0.16b}, [x0], #84078 ld1 {v0.8h, v1.16h}, [x0], x14079 ld1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #244080// CHECK-ERROR: error: invalid operand for instruction4081// CHECK-ERROR: ld1 {v0.16b}, [x0], #84082// CHECK-ERROR: ^4083// CHECK-ERROR: error: invalid vector kind qualifier4084// CHECK-ERROR: ld1 {v0.8h, v1.16h}, [x0], x14085// CHECK-ERROR: ^4086// CHECK-ERROR: error: invalid operand for instruction4087// CHECK-ERROR: ld1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #244088// CHECK-ERROR: ^4089 4090 ld2 {v0.16b, v1.16b}, [x0], #164091 ld3 {v5.2s, v6.2s, v7.2s}, [x1], #484092 ld4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x14093// CHECK-ERROR: error: invalid operand for instruction4094// CHECK-ERROR: ld2 {v0.16b, v1.16b}, [x0], #164095// CHECK-ERROR: ^4096// CHECK-ERROR: error: invalid operand for instruction4097// CHECK-ERROR: ld3 {v5.2s, v6.2s, v7.2s}, [x1], #484098// CHECK-ERROR: ^4099// CHECK-ERROR: error: mismatched register size suffix4100// CHECK-ERROR: ld4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x14101// CHECK-ERROR: ^4102 4103 st1 {v0.16b}, [x0], #84104 st1 {v0.8h, v1.16h}, [x0], x14105 st1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #244106// CHECK-ERROR: error: invalid operand for instruction4107// CHECK-ERROR: st1 {v0.16b}, [x0], #84108// CHECK-ERROR: ^4109// CHECK-ERROR: error: invalid vector kind qualifier4110// CHECK-ERROR: st1 {v0.8h, v1.16h}, [x0], x14111// CHECK-ERROR: ^4112// CHECK-ERROR: error: invalid operand for instruction4113// CHECK-ERROR: st1 {v0.8b, v1.8b, v2.8b, v3.8b}, [x0], #244114 ^4115 4116 st2 {v0.16b, v1.16b}, [x0], #164117 st3 {v5.2s, v6.2s, v7.2s}, [x1], #484118 st4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x14119// CHECK-ERROR: error: invalid operand for instruction4120// CHECK-ERROR: st2 {v0.16b, v1.16b}, [x0], #164121// CHECK-ERROR: ^4122// CHECK-ERROR: error: invalid operand for instruction4123// CHECK-ERROR: st3 {v5.2s, v6.2s, v7.2s}, [x1], #484124// CHECK-ERROR: ^4125// CHECK-ERROR: error: mismatched register size suffix4126// CHECK-ERROR: st4 {v31.2d, v0.2d, v1.2d, v2.1d}, [x3], x14127// CHECK-ERROR: ^4128 4129//------------------------------------------------------------------------------4130// Load single N-element structure to all lanes of N consecutive4131// registers (N = 1,2,3,4)4132//------------------------------------------------------------------------------4133 ld1r {x1}, [x0]4134 ld2r {v31.4s, v0.2s}, [sp]4135 ld3r {v0.8b, v1.8b, v2.8b, v3.8b}, [x0]4136 ld4r {v31.2s, v0.2s, v1.2d, v2.2s}, [sp]4137// CHECK-ERROR: error: vector register expected4138// CHECK-ERROR: ld1r {x1}, [x0]4139// CHECK-ERROR: ^4140// CHECK-ERROR: error: mismatched register size suffix4141// CHECK-ERROR: ld2r {v31.4s, v0.2s}, [sp]4142// CHECK-ERROR: ^4143// CHECK-ERROR: error: invalid operand for instruction4144// CHECK-ERROR: ld3r {v0.8b, v1.8b, v2.8b, v3.8b}, [x0]4145// CHECK-ERROR: ^4146// CHECK-ERROR: error: mismatched register size suffix4147// CHECK-ERROR: ld4r {v31.2s, v0.2s, v1.2d, v2.2s}, [sp]4148// CHECK-ERROR: ^4149 4150//------------------------------------------------------------------------------4151// Load/Store single N-element structure to/from one lane of N consecutive4152// registers (N = 1, 2,3,4)4153//------------------------------------------------------------------------------4154 ld1 {v0.b}[16], [x0]4155 ld2 {v15.h, v16.h}[8], [x15]4156 ld3 {v31.s, v0.s, v1.s}[-1], [sp]4157 ld4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]4158// CHECK-ERROR: vector lane must be an integer in range4159// CHECK-ERROR: ld1 {v0.b}[16], [x0]4160// CHECK-ERROR: ^4161// CHECK-ERROR: vector lane must be an integer in range4162// CHECK-ERROR: ld2 {v15.h, v16.h}[8], [x15]4163// CHECK-ERROR: ^4164// CHECK-ERROR: error: vector lane must be an integer in range4165// CHECK-ERROR: ld3 {v31.s, v0.s, v1.s}[-1], [sp]4166// CHECK-ERROR: ^4167// CHECK-ERROR: vector lane must be an integer in range4168// CHECK-ERROR: ld4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]4169// CHECK-ERROR: ^4170 4171 st1 {v0.d}[16], [x0]4172 st2 {v31.s, v0.s}[3], [8]4173 st3 {v15.h, v16.h, v17.h}[-1], [x15]4174 st4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]4175// CHECK-ERROR: vector lane must be an integer in range4176// CHECK-ERROR: st1 {v0.d}[16], [x0]4177// CHECK-ERROR: ^4178// CHECK-ERROR: error: invalid operand for instruction4179// CHECK-ERROR: st2 {v31.s, v0.s}[3], [8]4180// CHECK-ERROR: ^4181// CHECK-ERROR: error: vector lane must be an integer in range4182// CHECK-ERROR: st3 {v15.h, v16.h, v17.h}[-1], [x15]4183// CHECK-ERROR: ^4184// CHECK-ERROR: vector lane must be an integer in range4185// CHECK-ERROR: st4 {v0.d, v1.d, v2.d, v3.d}[2], [x0]4186// CHECK-ERROR: ^4187 4188//------------------------------------------------------------------------------4189// Post-index of load single N-element structure to all lanes of N consecutive4190// registers (N = 1,2,3,4)4191//------------------------------------------------------------------------------4192 ld1r {v15.8h}, [x15], #54193 ld2r {v0.2d, v1.2d}, [x0], #74194 ld3r {v15.4h, v16.4h, v17.4h}, [x15], #14195 ld4r {v31.1d, v0.1d, v1.1d, v2.1d}, [sp], sp4196// CHECK-ERROR: error: invalid operand for instruction4197// CHECK-ERROR: ld1r {v15.8h}, [x15], #54198// CHECK-ERROR: ^4199// CHECK-ERROR: error: invalid operand for instruction4200// CHECK-ERROR: ld2r {v0.2d, v1.2d}, [x0], #74201// CHECK-ERROR: ^4202// CHECK-ERROR: error: invalid operand for instruction4203// CHECK-ERROR: ld3r {v15.4h, v16.4h, v17.4h}, [x15], #14204// CHECK-ERROR: ^4205// CHECK-ERROR: error: invalid operand for instruction4206// CHECK-ERROR: ld4r {v31.1d, v0.1d, v1.1d, v2.1d}, [sp], sp4207// CHECK-ERROR: ^4208 4209//------------------------------------------------------------------------------4210// Post-index of Load/Store single N-element structure to/from one lane of N4211// consecutive registers (N = 1, 2,3,4)4212//------------------------------------------------------------------------------4213 ld1 {v0.b}[0], [x0], #24214 ld2 {v15.h, v16.h}[0], [x15], #34215 ld3 {v31.s, v0.s, v1.d}[0], [sp], x94216 ld4 {v0.d, v1.d, v2.d, v3.d}[1], [x0], #244217// CHECK-ERROR: error: invalid operand for instruction4218// CHECK-ERROR: ld1 {v0.b}[0], [x0], #24219// CHECK-ERROR: ^4220// CHECK-ERROR: error: invalid operand for instruction4221// CHECK-ERROR: ld2 {v15.h, v16.h}[0], [x15], #34222// CHECK-ERROR: ^4223// CHECK-ERROR: error: mismatched register size suffix4224// CHECK-ERROR: ld3 {v31.s, v0.s, v1.d}[0], [sp], x94225// CHECK-ERROR: ^4226// CHECK-ERROR: error: invalid operand for instruction4227// CHECK-ERROR: ld4 {v0.d, v1.d, v2.d, v3.d}[1], [x0], #244228// CHECK-ERROR: ^4229 4230 st1 {v0.d}[0], [x0], #74231 st2 {v31.s, v0.s}[0], [sp], #64232 st3 {v15.h, v16.h, v17.h}[0], [x15], #84233 st4 {v0.b, v1.b, v2.b, v3.b}[1], [x0], #14234// CHECK-ERROR: error: invalid operand for instruction4235// CHECK-ERROR: st1 {v0.d}[0], [x0], #74236// CHECK-ERROR: ^4237// CHECK-ERROR: error: invalid operand for instruction4238// CHECK-ERROR: st2 {v31.s, v0.s}[0], [sp], #64239// CHECK-ERROR: ^4240// CHECK-ERROR: error: invalid operand for instruction4241// CHECK-ERROR: st3 {v15.h, v16.h, v17.h}[0], [x15], #84242// CHECK-ERROR: ^4243// CHECK-ERROR: error: invalid operand for instruction4244// CHECK-ERROR: st4 {v0.b, v1.b, v2.b, v3.b}[1], [x0], #14245// CHECK-ERROR: ^4246 4247 4248 ins v2.b[16], w14249 ins v7.h[8], w144250 ins v20.s[5], w304251 ins v1.d[2], x74252 ins v2.b[3], b14253 ins v7.h[2], h144254 ins v20.s[1], s304255 ins v1.d[0], d74256 4257// CHECK-ERROR: vector lane must be an integer in range4258// CHECK-ERROR: ins v2.b[16], w14259// CHECK-ERROR: ^4260// CHECK-ERROR: vector lane must be an integer in range4261// CHECK-ERROR: ins v7.h[8], w144262// CHECK-ERROR: ^4263// CHECK-ERROR: vector lane must be an integer in range4264// CHECK-ERROR: ins v20.s[5], w304265// CHECK-ERROR: ^4266// CHECK-ERROR: vector lane must be an integer in range4267// CHECK-ERROR: ins v1.d[2], x74268// CHECK-ERROR: ^4269// CHECK-ERROR: error: invalid operand for instruction4270// CHECK-ERROR: ins v2.b[3], b14271// CHECK-ERROR: ^4272// CHECK-ERROR: error: invalid operand for instruction4273// CHECK-ERROR: ins v7.h[2], h144274// CHECK-ERROR: ^4275// CHECK-ERROR: error: invalid operand for instruction4276// CHECK-ERROR: ins v20.s[1], s304277// CHECK-ERROR: ^4278// CHECK-ERROR: error: invalid operand for instruction4279// CHECK-ERROR: ins v1.d[0], d74280// CHECK-ERROR: ^4281 4282 smov w1, v0.b[16]4283 smov w14, v6.h[8]4284 smov x1, v0.b[16]4285 smov x14, v6.h[8]4286 smov x20, v9.s[5]4287 smov w1, v0.d[0]4288 smov w14, v6.d[1]4289 smov x1, v0.d[0]4290 smov x14, v6.d[1]4291 smov x20, v9.d[0]4292 4293// CHECK-ERROR: vector lane must be an integer in range4294// CHECK-ERROR: smov w1, v0.b[16]4295// CHECK-ERROR: ^4296// CHECK-ERROR: vector lane must be an integer in range4297// CHECK-ERROR: smov w14, v6.h[8]4298// CHECK-ERROR: ^4299// CHECK-ERROR: vector lane must be an integer in range4300// CHECK-ERROR: smov x1, v0.b[16]4301// CHECK-ERROR: ^4302// CHECK-ERROR: vector lane must be an integer in range4303// CHECK-ERROR: smov x14, v6.h[8]4304// CHECK-ERROR: ^4305// CHECK-ERROR: vector lane must be an integer in range4306// CHECK-ERROR: smov x20, v9.s[5]4307// CHECK-ERROR: ^4308// CHECK-ERROR: error: invalid operand for instruction4309// CHECK-ERROR: smov w1, v0.d[0]4310// CHECK-ERROR: ^4311// CHECK-ERROR: error: invalid operand for instruction4312// CHECK-ERROR: smov w14, v6.d[1]4313// CHECK-ERROR: ^4314// CHECK-ERROR: error: invalid operand for instruction4315// CHECK-ERROR: smov x1, v0.d[0]4316// CHECK-ERROR: ^4317// CHECK-ERROR: error: invalid operand for instruction4318// CHECK-ERROR: smov x14, v6.d[1]4319// CHECK-ERROR: ^4320// CHECK-ERROR: error: invalid operand for instruction4321// CHECK-ERROR: smov x20, v9.d[0]4322// CHECK-ERROR: ^4323 4324 umov w1, v0.b[16]4325 umov w14, v6.h[8]4326 umov w20, v9.s[5]4327 umov x7, v18.d[3]4328 umov w1, v0.d[0]4329 umov s20, v9.s[2]4330 umov d7, v18.d[1]4331 4332// CHECK-ERROR: vector lane must be an integer in range4333// CHECK-ERROR: umov w1, v0.b[16]4334// CHECK-ERROR: ^4335// CHECK-ERROR: vector lane must be an integer in range4336// CHECK-ERROR: umov w14, v6.h[8]4337// CHECK-ERROR: ^4338// CHECK-ERROR: vector lane must be an integer in range4339// CHECK-ERROR: umov w20, v9.s[5]4340// CHECK-ERROR: ^4341// CHECK-ERROR: vector lane must be an integer in range4342// CHECK-ERROR: umov x7, v18.d[3]4343// CHECK-ERROR: ^4344// CHECK-ERROR: error: invalid operand for instruction4345// CHECK-ERROR: umov w1, v0.d[0]4346// CHECK-ERROR: ^4347// CHECK-ERROR: error: invalid operand for instruction4348// CHECK-ERROR: umov s20, v9.s[2]4349// CHECK-ERROR: ^4350// CHECK-ERROR: error: invalid operand for instruction4351// CHECK-ERROR: umov d7, v18.d[1]4352// CHECK-ERROR: ^4353 4354 Ins v1.h[2], v3.b[6]4355 Ins v6.h[7], v7.s[2]4356 Ins v15.d[0], v22.s[2]4357 Ins v0.d[0], v4.b[1]4358 4359// CHECK-ERROR: error: invalid operand for instruction4360// CHECK-ERROR: Ins v1.h[2], v3.b[6]4361// CHECK-ERROR: ^4362// CHECK-ERROR: error: invalid operand for instruction4363// CHECK-ERROR: Ins v6.h[7], v7.s[2]4364// CHECK-ERROR: ^4365// CHECK-ERROR: error: invalid operand for instruction4366// CHECK-ERROR: Ins v15.d[0], v22.s[2]4367// CHECK-ERROR: ^4368// CHECK-ERROR: error: invalid operand for instruction4369// CHECK-ERROR: Ins v0.d[0], v4.b[1]4370// CHECK-ERROR: ^4371 4372 dup v1.8h, v2.b[2]4373 dup v11.4s, v7.h[7]4374 dup v17.2d, v20.s[0]4375 dup v1.16b, v2.h[2]4376 dup v11.8h, v7.s[3]4377 dup v17.4s, v20.d[0]4378 dup v5.2d, v1.b[1]4379 4380// CHECK-ERROR: error: invalid operand for instruction4381// CHECK-ERROR: dup v1.8h, v2.b[2]4382// CHECK-ERROR: ^4383// CHECK-ERROR: error: invalid operand for instruction4384// CHECK-ERROR: dup v11.4s, v7.h[7]4385// CHECK-ERROR: ^4386// CHECK-ERROR: error: invalid operand for instruction4387// CHECK-ERROR: dup v17.2d, v20.s[0]4388// CHECK-ERROR: ^4389// CHECK-ERROR: error: invalid operand for instruction4390// CHECK-ERROR: dup v1.16b, v2.h[2]4391// CHECK-ERROR: ^4392// CHECK-ERROR: invalid operand for instruction4393// CHECK-ERROR: dup v11.8h, v7.s[3]4394// CHECK-ERROR: ^4395// CHECK-ERROR: invalid operand for instruction4396// CHECK-ERROR: dup v17.4s, v20.d[0]4397// CHECK-ERROR: ^4398// CHECK-ERROR: invalid operand for instruction4399// CHECK-ERROR: dup v5.2d, v1.b[1]4400// CHECK-ERROR: ^4401 4402 dup v1.8b, b14403 dup v11.4h, h144404 dup v17.2s, s304405 dup v1.16b, d24406 dup v11.8s, w164407 dup v17.4d, w284408 dup v5.2d, w04409 4410// CHECK-ERROR: error: invalid operand for instruction4411// CHECK-ERROR: dup v1.8b, b14412// CHECK-ERROR: ^4413// CHECK-ERROR: error: invalid operand for instruction4414// CHECK-ERROR: dup v11.4h, h144415// CHECK-ERROR: ^4416// CHECK-ERROR: error: invalid operand for instruction4417// CHECK-ERROR: dup v17.2s, s304418// CHECK-ERROR: ^4419// CHECK-ERROR: error: invalid operand for instruction4420// CHECK-ERROR: dup v1.16b, d24421// CHECK-ERROR: ^4422// CHECK-ERROR: error: invalid vector kind qualifier4423// CHECK-ERROR: dup v11.8s, w164424// CHECK-ERROR: ^4425// CHECK-ERROR: error: invalid vector kind qualifier4426// CHECK-ERROR: dup v17.4d, w284427// CHECK-ERROR: ^4428// CHECK-ERROR: error: invalid operand for instruction4429// CHECK-ERROR: dup v5.2d, w04430// CHECK-ERROR: ^4431 4432//----------------------------------------------------------------------4433// Scalar Compare Bitwise Equal4434//----------------------------------------------------------------------4435 4436 cmeq b20, d21, d224437 4438// CHECK-ERROR: error: invalid operand for instruction4439// CHECK-ERROR: cmeq b20, d21, d224440// CHECK-ERROR: ^4441 4442//----------------------------------------------------------------------4443// Scalar Compare Bitwise Equal To Zero4444//----------------------------------------------------------------------4445 4446 cmeq d20, b21, #04447 4448// CHECK-ERROR: error: invalid operand for instruction4449// CHECK-ERROR: cmeq d20, b21, #04450// CHECK-ERROR: ^4451 4452//----------------------------------------------------------------------4453// Scalar Compare Unsigned Higher Or Same4454//----------------------------------------------------------------------4455 4456 cmhs b20, d21, d224457 4458// CHECK-ERROR: error: invalid operand for instruction4459// CHECK-ERROR: cmhs b20, d21, d224460// CHECK-ERROR: ^4461 4462 4463//----------------------------------------------------------------------4464// Scalar Compare Signed Greather Than Or Equal4465//----------------------------------------------------------------------4466 4467 cmge b20, d21, d224468 4469// CHECK-ERROR: error: invalid operand for instruction4470// CHECK-ERROR: cmge b20, d21, d224471// CHECK-ERROR: ^4472 4473//----------------------------------------------------------------------4474// Scalar Compare Signed Greather Than Or Equal To Zero4475//----------------------------------------------------------------------4476 4477 cmge d20, b21, #04478 4479// CHECK-ERROR: error: invalid operand for instruction4480// CHECK-ERROR: cmge d20, b21, #04481// CHECK-ERROR: ^4482 4483//----------------------------------------------------------------------4484// Scalar Compare Unsigned Higher4485//----------------------------------------------------------------------4486 4487 cmhi b20, d21, d224488 4489// CHECK-ERROR: error: invalid operand for instruction4490// CHECK-ERROR: cmhi b20, d21, d224491// CHECK-ERROR: ^4492 4493//----------------------------------------------------------------------4494// Scalar Compare Signed Greater Than4495//----------------------------------------------------------------------4496 4497 cmgt b20, d21, d224498 4499// CHECK-ERROR: error: invalid operand for instruction4500// CHECK-ERROR: cmgt b20, d21, d224501// CHECK-ERROR: ^4502 4503//----------------------------------------------------------------------4504// Scalar Compare Signed Greater Than Zero4505//----------------------------------------------------------------------4506 4507 cmgt d20, b21, #04508 4509// CHECK-ERROR: error: invalid operand for instruction4510// CHECK-ERROR: cmgt d20, b21, #04511// CHECK-ERROR: ^4512 4513//----------------------------------------------------------------------4514// Scalar Compare Signed Less Than Or Equal To Zero4515//----------------------------------------------------------------------4516 4517 cmle d20, b21, #04518 4519// CHECK-ERROR: error: invalid operand for instruction4520// CHECK-ERROR: cmle d20, b21, #04521// CHECK-ERROR: ^4522 4523//----------------------------------------------------------------------4524// Scalar Compare Less Than Zero4525//----------------------------------------------------------------------4526 4527 cmlt d20, b21, #04528 4529// CHECK-ERROR: error: invalid operand for instruction4530// CHECK-ERROR: cmlt d20, b21, #04531// CHECK-ERROR: ^4532 4533//----------------------------------------------------------------------4534// Scalar Compare Bitwise Test Bits4535//----------------------------------------------------------------------4536 4537 cmtst b20, d21, d224538 4539// CHECK-ERROR: error: invalid operand for instruction4540// CHECK-ERROR: cmtst b20, d21, d224541// CHECK-ERROR: ^4542 4543//----------------------------------------------------------------------4544// Scalar Floating-point Compare Mask Equal4545//----------------------------------------------------------------------4546 4547 fcmeq s10, h11, s124548 fcmeq d20, s21, d224549 4550// CHECK-ERROR: error: invalid operand for instruction4551// CHECK-ERROR: fcmeq s10, h11, s124552// CHECK-ERROR: ^4553// CHECK-ERROR: error: invalid operand for instruction4554// CHECK-ERROR: fcmeq d20, s21, d224555// CHECK-ERROR: ^4556 4557//----------------------------------------------------------------------4558// Scalar Floating-point Compare Mask Equal To Zero4559//----------------------------------------------------------------------4560 4561 fcmeq h10, s11, #0.04562 fcmeq d20, s21, #0.04563 4564// CHECK-ERROR: error: invalid operand for instruction4565// CHECK-ERROR: fcmeq h10, s11, #0.04566// CHECK-ERROR: ^4567// CHECK-ERROR: error: invalid operand for instruction4568// CHECK-ERROR: fcmeq d20, s21, #0.04569// CHECK-ERROR: ^4570 4571//----------------------------------------------------------------------4572// Scalar Floating-point Compare Mask Greater Than Or Equal4573//----------------------------------------------------------------------4574 4575 fcmge s10, h11, s124576 fcmge d20, s21, d224577 4578// CHECK-ERROR: error: invalid operand for instruction4579// CHECK-ERROR: fcmge s10, h11, s124580// CHECK-ERROR: ^4581// CHECK-ERROR: error: invalid operand for instruction4582// CHECK-ERROR: fcmge d20, s21, d224583// CHECK-ERROR: ^4584 4585//----------------------------------------------------------------------4586// Scalar Floating-point Compare Mask Greater Than Or Equal To Zero4587//----------------------------------------------------------------------4588 4589 fcmge h10, s11, #0.04590 fcmge d20, s21, #0.04591 4592// CHECK-ERROR: error: invalid operand for instruction4593// CHECK-ERROR: fcmge h10, s11, #0.04594// CHECK-ERROR: ^4595// CHECK-ERROR: error: invalid operand for instruction4596// CHECK-ERROR: fcmge d20, s21, #0.04597// CHECK-ERROR: ^4598 4599//----------------------------------------------------------------------4600// Scalar Floating-point Compare Mask Greather Than4601//----------------------------------------------------------------------4602 4603 fcmgt s10, h11, s124604 fcmgt d20, s21, d224605 4606// CHECK-ERROR: error: invalid operand for instruction4607// CHECK-ERROR: fcmgt s10, h11, s124608// CHECK-ERROR: ^4609// CHECK-ERROR: error: invalid operand for instruction4610// CHECK-ERROR: fcmgt d20, s21, d224611// CHECK-ERROR: ^4612 4613//----------------------------------------------------------------------4614// Scalar Floating-point Compare Mask Greather Than Zero4615//----------------------------------------------------------------------4616 4617 fcmgt h10, s11, #0.04618 fcmgt d20, s21, #0.04619 4620// CHECK-ERROR: error: invalid operand for instruction4621// CHECK-ERROR: fcmgt h10, s11, #0.04622// CHECK-ERROR: ^4623// CHECK-ERROR: error: invalid operand for instruction4624// CHECK-ERROR: fcmgt d20, s21, #0.04625// CHECK-ERROR: ^4626 4627//----------------------------------------------------------------------4628// Scalar Floating-point Compare Mask Less Than Or Equal To Zero4629//----------------------------------------------------------------------4630 4631 fcmle h10, s11, #0.04632 fcmle d20, s21, #0.04633 4634// CHECK-ERROR: error: invalid operand for instruction4635// CHECK-ERROR: fcmle h10, s11, #0.04636// CHECK-ERROR: ^4637// CHECK-ERROR: error: invalid operand for instruction4638// CHECK-ERROR: fcmle d20, s21, #0.04639// CHECK-ERROR: ^4640 4641//----------------------------------------------------------------------4642// Scalar Floating-point Compare Mask Less Than4643//----------------------------------------------------------------------4644 4645 fcmlt h10, s11, #0.04646 fcmlt d20, s21, #0.04647 4648// CHECK-ERROR: error: invalid operand for instruction4649// CHECK-ERROR: fcmlt h10, s11, #0.04650// CHECK-ERROR: ^4651// CHECK-ERROR: error: invalid operand for instruction4652// CHECK-ERROR: fcmlt d20, s21, #0.04653// CHECK-ERROR: ^4654 4655//----------------------------------------------------------------------4656// Scalar Floating-point Absolute Compare Mask Greater Than Or Equal4657//----------------------------------------------------------------------4658 4659 facge s10, h11, s124660 facge d20, s21, d224661 4662// CHECK-ERROR: error: invalid operand for instruction4663// CHECK-ERROR: facge s10, h11, s124664// CHECK-ERROR: ^4665// CHECK-ERROR: error: invalid operand for instruction4666// CHECK-ERROR: facge d20, s21, d224667// CHECK-ERROR: ^4668 4669//----------------------------------------------------------------------4670// Scalar Floating-point Absolute Compare Mask Greater Than4671//----------------------------------------------------------------------4672 4673 facgt s10, h11, s124674 facgt d20, d21, s224675 4676// CHECK-ERROR: error: invalid operand for instruction4677// CHECK-ERROR: facgt s10, h11, s124678// CHECK-ERROR: ^4679// CHECK-ERROR: error: invalid operand for instruction4680// CHECK-ERROR: facgt d20, d21, s224681// CHECK-ERROR: ^4682 4683//----------------------------------------------------------------------4684// Scalar Signed Saturating Accumulated of Unsigned Value4685//----------------------------------------------------------------------4686 4687 suqadd b0, h14688 suqadd h0, s14689 suqadd s0, d14690 suqadd d0, b04691 4692// CHECK-ERROR: error: invalid operand for instruction4693// CHECK-ERROR: suqadd b0, h14694// CHECK-ERROR: ^4695// CHECK-ERROR: error: invalid operand for instruction4696// CHECK-ERROR: suqadd h0, s14697// CHECK-ERROR: ^4698// CHECK-ERROR: error: invalid operand for instruction4699// CHECK-ERROR: suqadd s0, d14700// CHECK-ERROR: ^4701// CHECK-ERROR: error: invalid operand for instruction4702// CHECK-ERROR: suqadd d0, b04703// CHECK-ERROR: ^4704 4705//----------------------------------------------------------------------4706// Scalar Unsigned Saturating Accumulated of Signed Value4707//----------------------------------------------------------------------4708 4709 usqadd b0, h14710 usqadd h0, s14711 usqadd s0, d14712 usqadd d0, b14713 4714// CHECK-ERROR: error: invalid operand for instruction4715// CHECK-ERROR: usqadd b0, h14716// CHECK-ERROR: ^4717// CHECK-ERROR: error: invalid operand for instruction4718// CHECK-ERROR: usqadd h0, s14719// CHECK-ERROR: ^4720// CHECK-ERROR: error: invalid operand for instruction4721// CHECK-ERROR: usqadd s0, d14722// CHECK-ERROR: ^4723// CHECK-ERROR: error: invalid operand for instruction4724// CHECK-ERROR: usqadd d0, b14725// CHECK-ERROR: ^4726 4727//----------------------------------------------------------------------4728// Scalar Absolute Value4729//----------------------------------------------------------------------4730 4731 abs d29, s244732 4733// CHECK-ERROR: error: invalid operand for instruction4734// CHECK-ERROR: abs d29, s244735// CHECK-ERROR: ^4736 4737//----------------------------------------------------------------------4738// Scalar Negate4739//----------------------------------------------------------------------4740 4741 neg d29, s244742 4743// CHECK-ERROR: error: invalid operand for instruction4744// CHECK-ERROR: neg d29, s244745// CHECK-ERROR: ^4746 4747//----------------------------------------------------------------------4748// Signed Saturating Doubling Multiply-Add Long4749//----------------------------------------------------------------------4750 4751 sqdmlal s17, h27, s124752 sqdmlal d19, s24, d124753 4754// CHECK-ERROR: error: invalid operand for instruction4755// CHECK-ERROR: sqdmlal s17, h27, s124756// CHECK-ERROR: ^4757// CHECK-ERROR: error: invalid operand for instruction4758// CHECK-ERROR: sqdmlal d19, s24, d124759// CHECK-ERROR: ^4760 4761//----------------------------------------------------------------------4762// Signed Saturating Doubling Multiply-Subtract Long4763//----------------------------------------------------------------------4764 4765 sqdmlsl s14, h12, s254766 sqdmlsl d12, s23, d134767 4768// CHECK-ERROR: error: invalid operand for instruction4769// CHECK-ERROR: sqdmlsl s14, h12, s254770// CHECK-ERROR: ^4771// CHECK-ERROR: error: invalid operand for instruction4772// CHECK-ERROR: sqdmlsl d12, s23, d134773// CHECK-ERROR: ^4774 4775//----------------------------------------------------------------------4776// Signed Saturating Doubling Multiply Long4777//----------------------------------------------------------------------4778 4779 sqdmull s12, h22, s124780 sqdmull d15, s22, d124781 4782// CHECK-ERROR: error: invalid operand for instruction4783// CHECK-ERROR: sqdmull s12, h22, s124784// CHECK-ERROR: ^4785// CHECK-ERROR: error: invalid operand for instruction4786// CHECK-ERROR: sqdmull d15, s22, d124787// CHECK-ERROR: ^4788 4789//----------------------------------------------------------------------4790// Scalar Signed Saturating Extract Unsigned Narrow4791//----------------------------------------------------------------------4792 4793 sqxtun b19, b144794 sqxtun h21, h154795 sqxtun s20, s124796 4797// CHECK-ERROR: error: invalid operand for instruction4798// CHECK-ERROR: sqxtun b19, b144799// CHECK-ERROR: ^4800// CHECK-ERROR: error: invalid operand for instruction4801// CHECK-ERROR: sqxtun h21, h154802// CHECK-ERROR: ^4803// CHECK-ERROR: error: invalid operand for instruction4804// CHECK-ERROR: sqxtun s20, s124805// CHECK-ERROR: ^4806 4807//----------------------------------------------------------------------4808// Scalar Signed Saturating Extract Signed Narrow4809//----------------------------------------------------------------------4810 4811 sqxtn b18, b184812 sqxtn h20, h174813 sqxtn s19, s144814 4815// CHECK-ERROR: error: invalid operand for instruction4816// CHECK-ERROR: sqxtn b18, b184817// CHECK-ERROR: ^4818// CHECK-ERROR: error: invalid operand for instruction4819// CHECK-ERROR: sqxtn h20, h174820// CHECK-ERROR: ^4821// CHECK-ERROR: error: invalid operand for instruction4822// CHECK-ERROR: sqxtn s19, s144823// CHECK-ERROR: ^4824 4825 4826//----------------------------------------------------------------------4827// Scalar Unsigned Saturating Extract Narrow4828//----------------------------------------------------------------------4829 4830 uqxtn b18, b184831 uqxtn h20, h174832 uqxtn s19, s144833 4834// CHECK-ERROR: error: invalid operand for instruction4835// CHECK-ERROR: uqxtn b18, b184836// CHECK-ERROR: ^4837// CHECK-ERROR: error: invalid operand for instruction4838// CHECK-ERROR: uqxtn h20, h174839// CHECK-ERROR: ^4840// CHECK-ERROR: error: invalid operand for instruction4841// CHECK-ERROR: uqxtn s19, s144842// CHECK-ERROR: ^4843 4844//----------------------------------------------------------------------4845// Scalar Signed Shift Right (Immediate)4846//----------------------------------------------------------------------4847 sshr d15, d16, #994848 4849// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]4850// CHECK-ERROR: sshr d15, d16, #994851// CHECK-ERROR: ^4852 4853 sshr d15, s16, #314854 4855// CHECK-ERROR: error: invalid operand for instruction4856// CHECK-ERROR: sshr d15, s16, #314857// CHECK-ERROR: ^4858 4859//----------------------------------------------------------------------4860// Scalar Unsigned Shift Right (Immediate)4861//----------------------------------------------------------------------4862 4863 ushr d10, d17, #994864 4865// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]4866// CHECK-ERROR: ushr d10, d17, #994867// CHECK-ERROR: ^4868 4869//----------------------------------------------------------------------4870// Scalar Signed Rounding Shift Right (Immediate)4871//----------------------------------------------------------------------4872 4873 srshr d19, d18, #994874 4875// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]4876// CHECK-ERROR: srshr d19, d18, #994877// CHECK-ERROR: ^4878 4879//----------------------------------------------------------------------4880// Scalar Unsigned Rounding Shift Right (Immediate)4881//----------------------------------------------------------------------4882 4883 urshr d20, d23, #994884 4885// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]4886// CHECK-ERROR: urshr d20, d23, #994887// CHECK-ERROR: ^4888 4889//----------------------------------------------------------------------4890// Scalar Signed Shift Right and Accumulate (Immediate)4891//----------------------------------------------------------------------4892 4893 ssra d18, d12, #994894 4895// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]4896// CHECK-ERROR: ssra d18, d12, #994897// CHECK-ERROR: ^4898 4899//----------------------------------------------------------------------4900// Scalar Unsigned Shift Right and Accumulate (Immediate)4901//----------------------------------------------------------------------4902 4903 usra d20, d13, #994904 4905// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]4906// CHECK-ERROR: usra d20, d13, #994907// CHECK-ERROR: ^4908 4909//----------------------------------------------------------------------4910// Scalar Signed Rounding Shift Right and Accumulate (Immediate)4911//----------------------------------------------------------------------4912 4913 srsra d15, d11, #994914 4915// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]4916// CHECK-ERROR: srsra d15, d11, #994917// CHECK-ERROR: ^4918 4919//----------------------------------------------------------------------4920// Scalar Unsigned Rounding Shift Right and Accumulate (Immediate)4921//----------------------------------------------------------------------4922 4923 ursra d18, d10, #994924 4925// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]4926// CHECK-ERROR: ursra d18, d10, #994927// CHECK-ERROR: ^4928 4929//----------------------------------------------------------------------4930// Scalar Shift Left (Immediate)4931//----------------------------------------------------------------------4932 4933 shl d7, d10, #994934 4935// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]4936// CHECK-ERROR: shl d7, d10, #994937// CHECK-ERROR: ^4938 4939 shl d7, s16, #314940 4941// CHECK-ERROR: error: invalid operand for instruction4942// CHECK-ERROR: shl d7, s16, #314943// CHECK-ERROR: ^4944 4945//----------------------------------------------------------------------4946// Signed Saturating Shift Left (Immediate)4947//----------------------------------------------------------------------4948 4949 sqshl b11, b19, #994950 sqshl h13, h18, #994951 sqshl s14, s17, #994952 sqshl d15, d16, #994953 4954// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]4955// CHECK-ERROR: sqshl b11, b19, #994956// CHECK-ERROR: ^4957// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]4958// CHECK-ERROR: sqshl h13, h18, #994959// CHECK-ERROR: ^4960// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]4961// CHECK-ERROR: sqshl s14, s17, #994962// CHECK-ERROR: ^4963// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]4964// CHECK-ERROR: sqshl d15, d16, #994965// CHECK-ERROR: ^4966 4967//----------------------------------------------------------------------4968// Unsigned Saturating Shift Left (Immediate)4969//----------------------------------------------------------------------4970 4971 uqshl b18, b15, #994972 uqshl h11, h18, #994973 uqshl s14, s19, #994974 uqshl d15, d12, #994975 4976// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]4977// CHECK-ERROR: uqshl b18, b15, #994978// CHECK-ERROR: ^4979// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]4980// CHECK-ERROR: uqshl h11, h18, #994981// CHECK-ERROR: ^4982// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]4983// CHECK-ERROR: uqshl s14, s19, #994984// CHECK-ERROR: ^4985// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]4986// CHECK-ERROR: uqshl d15, d12, #994987// CHECK-ERROR: ^4988 4989//----------------------------------------------------------------------4990// Signed Saturating Shift Left Unsigned (Immediate)4991//----------------------------------------------------------------------4992 4993 sqshlu b15, b18, #994994 sqshlu h19, h17, #994995 sqshlu s16, s14, #994996 sqshlu d11, d13, #994997 4998// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 7]4999// CHECK-ERROR: sqshlu b15, b18, #995000// CHECK-ERROR: ^5001// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 15]5002// CHECK-ERROR: sqshlu h19, h17, #995003// CHECK-ERROR: ^5004// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]5005// CHECK-ERROR: sqshlu s16, s14, #995006// CHECK-ERROR: ^5007// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]5008// CHECK-ERROR: sqshlu d11, d13, #995009// CHECK-ERROR: ^5010 5011//----------------------------------------------------------------------5012// Shift Right And Insert (Immediate)5013//----------------------------------------------------------------------5014 5015 sri d10, d12, #995016 5017// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]5018// CHECK-ERROR: sri d10, d12, #995019// CHECK-ERROR: ^5020 5021//----------------------------------------------------------------------5022// Shift Left And Insert (Immediate)5023//----------------------------------------------------------------------5024 5025 sli d10, d14, #995026 5027// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 63]5028// CHECK-ERROR: sli d10, d14, #995029// CHECK-ERROR: ^5030 5031//----------------------------------------------------------------------5032// Signed Saturating Shift Right Narrow (Immediate)5033//----------------------------------------------------------------------5034 5035 sqshrn b10, h15, #995036 sqshrn h17, s10, #995037 sqshrn s18, d10, #995038 5039// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]5040// CHECK-ERROR: sqshrn b10, h15, #995041// CHECK-ERROR: ^5042// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]5043// CHECK-ERROR: sqshrn h17, s10, #995044// CHECK-ERROR: ^5045// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5046// CHECK-ERROR: sqshrn s18, d10, #995047// CHECK-ERROR: ^5048 5049//----------------------------------------------------------------------5050// Unsigned Saturating Shift Right Narrow (Immediate)5051//----------------------------------------------------------------------5052 5053 uqshrn b12, h10, #995054 uqshrn h10, s14, #995055 uqshrn s10, d12, #995056 5057// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]5058// CHECK-ERROR: uqshrn b12, h10, #995059// CHECK-ERROR: ^5060// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]5061// CHECK-ERROR: uqshrn h10, s14, #995062// CHECK-ERROR: ^5063// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5064// CHECK-ERROR: uqshrn s10, d12, #995065// CHECK-ERROR: ^5066 5067//----------------------------------------------------------------------5068// Signed Saturating Rounded Shift Right Narrow (Immediate)5069//----------------------------------------------------------------------5070 5071 sqrshrn b10, h13, #995072 sqrshrn h15, s10, #995073 sqrshrn s15, d12, #995074 5075// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]5076// CHECK-ERROR: sqrshrn b10, h13, #995077// CHECK-ERROR: ^5078// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]5079// CHECK-ERROR: sqrshrn h15, s10, #995080// CHECK-ERROR: ^5081// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5082// CHECK-ERROR: sqrshrn s15, d12, #995083// CHECK-ERROR: ^5084 5085//----------------------------------------------------------------------5086// Unsigned Saturating Rounded Shift Right Narrow (Immediate)5087//----------------------------------------------------------------------5088 5089 uqrshrn b10, h12, #995090 uqrshrn h12, s10, #995091 uqrshrn s10, d10, #995092 5093// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]5094// CHECK-ERROR: uqrshrn b10, h12, #995095// CHECK-ERROR: ^5096// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]5097// CHECK-ERROR: uqrshrn h12, s10, #995098// CHECK-ERROR: ^5099// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5100// CHECK-ERROR: uqrshrn s10, d10, #995101// CHECK-ERROR: ^5102 5103//----------------------------------------------------------------------5104// Signed Saturating Shift Right Unsigned Narrow (Immediate)5105//----------------------------------------------------------------------5106 5107 sqshrun b15, h10, #995108 sqshrun h20, s14, #995109 sqshrun s10, d15, #995110 5111// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]5112// CHECK-ERROR: sqshrun b15, h10, #995113// CHECK-ERROR: ^5114// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]5115// CHECK-ERROR: sqshrun h20, s14, #995116// CHECK-ERROR: ^5117// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5118// CHECK-ERROR: sqshrun s10, d15, #995119// CHECK-ERROR: ^5120 5121//----------------------------------------------------------------------5122// Signed Saturating Rounded Shift Right Unsigned Narrow (Immediate)5123//----------------------------------------------------------------------5124 5125 sqrshrun b17, h10, #995126 sqrshrun h10, s13, #995127 sqrshrun s22, d16, #995128 5129// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 8]5130// CHECK-ERROR: sqrshrun b17, h10, #995131// CHECK-ERROR: ^5132// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 16]5133// CHECK-ERROR: sqrshrun h10, s13, #995134// CHECK-ERROR: ^5135// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5136// CHECK-ERROR: sqrshrun s22, d16, #995137// CHECK-ERROR: ^5138 5139//----------------------------------------------------------------------5140// Scalar Signed Fixed-point Convert To Floating-Point (Immediate)5141//----------------------------------------------------------------------5142 5143 scvtf s22, s13, #05144 scvtf s22, s13, #335145 scvtf d21, d12, #655146 scvtf d21, s12, #315147 5148// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5149// CHECK-ERROR: scvtf s22, s13, #05150// CHECK-ERROR: ^5151// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5152// CHECK-ERROR: scvtf s22, s13, #335153// CHECK-ERROR: ^5154// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]5155// CHECK-ERROR: scvtf d21, d12, #655156// CHECK-ERROR: ^5157// CHECK-ERROR: error: invalid operand for instruction5158// CHECK-ERROR: scvtf d21, s12, #315159// CHECK-ERROR: ^5160 5161//----------------------------------------------------------------------5162// Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate)5163//----------------------------------------------------------------------5164 5165 ucvtf s22, s13, #345166 ucvtf d21, d14, #655167 ucvtf d21, s14, #645168 5169// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]5170// CHECK-ERROR: ucvtf s22, s13, #345171// CHECK-ERROR: ^5172// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]5173// CHECK-ERROR: ucvtf d21, d14, #655174// CHECK-ERROR: ^5175// CHECK-ERROR: error: invalid operand for instruction5176// CHECK-ERROR: ucvtf d21, s14, #645177// CHECK-ERROR: ^5178 5179//----------------------------------------------------------------------5180// Scalar Signed Integer Convert To Floating-Point5181//---------------------------------------------------------------------5182 5183 scvtf d0, h05184 scvtf s0, h05185// CHECK-ERROR: error: invalid operand for instruction5186// CHECK-ERROR: scvtf d0, h05187// CHECK-ERROR: ^5188// CHECK-ERROR: error: invalid operand for instruction5189// CHECK-ERROR: scvtf s0, h05190// CHECK-ERROR: ^5191 5192//----------------------------------------------------------------------5193// Scalar Unsigned Integer Convert To Floating-Point5194//---------------------------------------------------------------------5195 5196 ucvtf d0, h05197 ucvtf s0, h05198// CHECK-ERROR: error: invalid operand for instruction5199// CHECK-ERROR: ucvtf d0, h05200// CHECK-ERROR: ^5201// CHECK-ERROR: error: invalid operand for instruction5202// CHECK-ERROR: ucvtf s0, h05203// CHECK-ERROR: ^5204 5205//------------------------------------------------------------------------------5206// Element reverse5207//------------------------------------------------------------------------------5208 rev64 v6.2d, v8.2d5209 rev32 v30.2s, v31.2s5210 rev32 v30.4s, v31.4s5211 rev32 v30.2d, v31.2d5212 rev16 v21.4h, v1.4h5213 rev16 v21.8h, v1.8h5214 rev16 v21.2s, v1.2s5215 rev16 v21.4s, v1.4s5216 rev16 v21.2d, v1.2d5217 5218// CHECK-ERROR: error: invalid operand for instruction5219// CHECK-ERROR: rev64 v6.2d, v8.2d5220// CHECK-ERROR: ^5221// CHECK-ERROR: error: invalid operand for instruction5222// CHECK-ERROR: rev32 v30.2s, v31.2s5223// CHECK-ERROR: ^5224// CHECK-ERROR: error: invalid operand for instruction5225// CHECK-ERROR: rev32 v30.4s, v31.4s5226// CHECK-ERROR: ^5227// CHECK-ERROR: error: invalid operand for instruction5228// CHECK-ERROR: rev32 v30.2d, v31.2d5229// CHECK-ERROR: ^5230// CHECK-ERROR: error: invalid operand for instruction5231// CHECK-ERROR: rev16 v21.4h, v1.4h5232// CHECK-ERROR: ^5233// CHECK-ERROR: error: invalid operand for instruction5234// CHECK-ERROR: rev16 v21.8h, v1.8h5235// CHECK-ERROR: ^5236// CHECK-ERROR: error: invalid operand for instruction5237// CHECK-ERROR: rev16 v21.2s, v1.2s5238// CHECK-ERROR: ^5239// CHECK-ERROR: error: invalid operand for instruction5240// CHECK-ERROR: rev16 v21.4s, v1.4s5241// CHECK-ERROR: ^5242// CHECK-ERROR: error: invalid operand for instruction5243// CHECK-ERROR: rev16 v21.2d, v1.2d5244// CHECK-ERROR: ^5245 5246//------------------------------------------------------------------------------5247// Signed integer pairwise add long5248//------------------------------------------------------------------------------5249 5250 saddlp v3.8h, v21.8h5251 saddlp v8.8b, v5.8b5252 saddlp v9.8h, v1.4s5253 saddlp v0.4s, v1.2d5254 5255// CHECK-ERROR: error: invalid operand for instruction5256// CHECK-ERROR: saddlp v3.8h, v21.8h5257// CHECK-ERROR: ^5258// CHECK-ERROR: error: invalid operand for instruction5259// CHECK-ERROR: saddlp v8.8b, v5.8b5260// CHECK-ERROR: ^5261// CHECK-ERROR: error: invalid operand for instruction5262// CHECK-ERROR: saddlp v9.8h, v1.4s5263// CHECK-ERROR: ^5264// CHECK-ERROR: error: invalid operand for instruction5265// CHECK-ERROR: saddlp v0.4s, v1.2d5266// CHECK-ERROR: ^5267 5268//------------------------------------------------------------------------------5269// Unsigned integer pairwise add long5270//------------------------------------------------------------------------------5271 5272 uaddlp v3.8h, v21.8h5273 uaddlp v8.8b, v5.8b5274 uaddlp v9.8h, v1.4s5275 uaddlp v0.4s, v1.2d5276 5277// CHECK-ERROR: error: invalid operand for instruction5278// CHECK-ERROR: uaddlp v3.8h, v21.8h5279// CHECK-ERROR: ^5280// CHECK-ERROR: error: invalid operand for instruction5281// CHECK-ERROR: uaddlp v8.8b, v5.8b5282// CHECK-ERROR: ^5283// CHECK-ERROR: error: invalid operand for instruction5284// CHECK-ERROR: uaddlp v9.8h, v1.4s5285// CHECK-ERROR: ^5286// CHECK-ERROR: error: invalid operand for instruction5287// CHECK-ERROR: uaddlp v0.4s, v1.2d5288// CHECK-ERROR: ^5289 5290//------------------------------------------------------------------------------5291// Signed integer pairwise add and accumulate long5292//------------------------------------------------------------------------------5293 5294 sadalp v3.16b, v21.16b5295 sadalp v8.4h, v5.4h5296 sadalp v9.4s, v1.4s5297 sadalp v0.4h, v1.2s5298 sadalp v12.2d, v4.8h5299 5300// CHECK-ERROR: error: invalid operand for instruction5301// CHECK-ERROR: sadalp v3.16b, v21.16b5302// CHECK-ERROR: ^5303// CHECK-ERROR: error: invalid operand for instruction5304// CHECK-ERROR: sadalp v8.4h, v5.4h5305// CHECK-ERROR: ^5306// CHECK-ERROR: error: invalid operand for instruction5307// CHECK-ERROR: sadalp v9.4s, v1.4s5308// CHECK-ERROR: ^5309// CHECK-ERROR: error: invalid operand for instruction5310// CHECK-ERROR: sadalp v0.4h, v1.2s5311// CHECK-ERROR: ^5312// CHECK-ERROR: error: invalid operand for instruction5313// CHECK-ERROR: sadalp v12.2d, v4.8h5314// CHECK-ERROR: ^5315 5316//------------------------------------------------------------------------------5317// Unsigned integer pairwise add and accumulate long5318//------------------------------------------------------------------------------5319 5320 uadalp v3.16b, v21.16b5321 uadalp v8.4h, v5.4h5322 uadalp v9.4s, v1.4s5323 uadalp v0.4h, v1.2s5324 uadalp v12.2d, v4.8h5325 5326// CHECK-ERROR: error: invalid operand for instruction5327// CHECK-ERROR: uadalp v3.16b, v21.16b5328// CHECK-ERROR: ^5329// CHECK-ERROR: error: invalid operand for instruction5330// CHECK-ERROR: uadalp v8.4h, v5.4h5331// CHECK-ERROR: ^5332// CHECK-ERROR: error: invalid operand for instruction5333// CHECK-ERROR: uadalp v9.4s, v1.4s5334// CHECK-ERROR: ^5335// CHECK-ERROR: error: invalid operand for instruction5336// CHECK-ERROR: uadalp v0.4h, v1.2s5337// CHECK-ERROR: ^5338// CHECK-ERROR: error: invalid operand for instruction5339// CHECK-ERROR: uadalp v12.2d, v4.8h5340// CHECK-ERROR: ^5341 5342//------------------------------------------------------------------------------5343// Signed integer saturating accumulate of unsigned value5344//------------------------------------------------------------------------------5345 5346 suqadd v0.16b, v31.8b5347 suqadd v1.8b, v9.8h5348 suqadd v13.4h, v21.4s5349 suqadd v4.2s, v0.2d5350 5351// CHECK-ERROR: error: invalid operand for instruction5352// CHECK-ERROR: suqadd v0.16b, v31.8b5353// CHECK-ERROR: ^5354// CHECK-ERROR: error: invalid operand for instruction5355// CHECK-ERROR: suqadd v1.8b, v9.8h5356// CHECK-ERROR: ^5357// CHECK-ERROR: error: invalid operand for instruction5358// CHECK-ERROR: suqadd v13.4h, v21.4s5359// CHECK-ERROR: ^5360// CHECK-ERROR: error: invalid operand for instruction5361// CHECK-ERROR: suqadd v4.2s, v0.2d5362// CHECK-ERROR: ^5363 5364//------------------------------------------------------------------------------5365// Unsigned integer saturating accumulate of signed value5366//------------------------------------------------------------------------------5367 5368 usqadd v0.16b, v31.8b5369 usqadd v2.8h, v4.4h5370 usqadd v13.4h, v21.4s5371 usqadd v4.2s, v0.2d5372 5373// CHECK-ERROR: error: invalid operand for instruction5374// CHECK-ERROR: usqadd v0.16b, v31.8b5375// CHECK-ERROR: ^5376// CHECK-ERROR: error: invalid operand for instruction5377// CHECK-ERROR: usqadd v2.8h, v4.4h5378// CHECK-ERROR: ^5379// CHECK-ERROR: error: invalid operand for instruction5380// CHECK-ERROR: usqadd v13.4h, v21.4s5381// CHECK-ERROR: ^5382// CHECK-ERROR: error: invalid operand for instruction5383// CHECK-ERROR: usqadd v4.2s, v0.2d5384// CHECK-ERROR: ^5385 5386//------------------------------------------------------------------------------5387// Integer saturating absolute5388//------------------------------------------------------------------------------5389 5390 sqabs v0.16b, v31.8b5391 sqabs v2.8h, v4.4h5392 sqabs v6.4s, v8.2s5393 sqabs v6.2d, v8.2s5394 5395// CHECK-ERROR: error: invalid operand for instruction5396// CHECK-ERROR: sqabs v0.16b, v31.8b5397// CHECK-ERROR: ^5398// CHECK-ERROR: error: invalid operand for instruction5399// CHECK-ERROR: sqabs v2.8h, v4.4h5400// CHECK-ERROR: ^5401// CHECK-ERROR: error: invalid operand for instruction5402// CHECK-ERROR: sqabs v6.4s, v8.2s5403// CHECK-ERROR: ^5404// CHECK-ERROR: error: invalid operand for instruction5405// CHECK-ERROR: sqabs v6.2d, v8.2s5406// CHECK-ERROR: ^5407 5408//------------------------------------------------------------------------------5409// Signed integer saturating negate5410//------------------------------------------------------------------------------5411 5412 sqneg v0.16b, v31.8b5413 sqneg v2.8h, v4.4h5414 sqneg v6.4s, v8.2s5415 sqneg v6.2d, v8.2s5416 5417// CHECK-ERROR: error: invalid operand for instruction5418// CHECK-ERROR: sqneg v0.16b, v31.8b5419// CHECK-ERROR: ^5420// CHECK-ERROR: error: invalid operand for instruction5421// CHECK-ERROR: sqneg v2.8h, v4.4h5422// CHECK-ERROR: ^5423// CHECK-ERROR: error: invalid operand for instruction5424// CHECK-ERROR: sqneg v6.4s, v8.2s5425// CHECK-ERROR: ^5426// CHECK-ERROR: error: invalid operand for instruction5427// CHECK-ERROR: sqneg v6.2d, v8.2s5428// CHECK-ERROR: ^5429 5430//------------------------------------------------------------------------------5431// Integer absolute5432//------------------------------------------------------------------------------5433 5434 abs v0.16b, v31.8b5435 abs v2.8h, v4.4h5436 abs v6.4s, v8.2s5437 abs v6.2d, v8.2s5438 5439// CHECK-ERROR: error: invalid operand for instruction5440// CHECK-ERROR: abs v0.16b, v31.8b5441// CHECK-ERROR: ^5442// CHECK-ERROR: error: invalid operand for instruction5443// CHECK-ERROR: abs v2.8h, v4.4h5444// CHECK-ERROR: ^5445// CHECK-ERROR: error: invalid operand for instruction5446// CHECK-ERROR: abs v6.4s, v8.2s5447// CHECK-ERROR: ^5448// CHECK-ERROR: error: invalid operand for instruction5449// CHECK-ERROR: abs v6.2d, v8.2s5450// CHECK-ERROR: ^5451 5452//------------------------------------------------------------------------------5453// Integer count leading sign bits5454//------------------------------------------------------------------------------5455 5456 cls v0.2d, v31.2d5457 5458// CHECK-ERROR: error: invalid operand for instruction5459// CHECK-ERROR: cls v0.2d, v31.2d5460// CHECK-ERROR: ^5461 5462//------------------------------------------------------------------------------5463// Integer count leading zeros5464//------------------------------------------------------------------------------5465 5466 clz v0.2d, v31.2d5467 5468// CHECK-ERROR: error: invalid operand for instruction5469// CHECK-ERROR: clz v0.2d, v31.2d5470// CHECK-ERROR: ^5471 5472//------------------------------------------------------------------------------5473// Population count5474//------------------------------------------------------------------------------5475 5476 cnt v2.8h, v4.8h5477 cnt v6.4s, v8.4s5478 cnt v6.2d, v8.2d5479 cnt v13.4h, v21.4h5480 cnt v4.2s, v0.2s5481 5482// CHECK-ERROR: error: invalid operand for instruction5483// CHECK-ERROR: cnt v2.8h, v4.8h5484// CHECK-ERROR: ^5485// CHECK-ERROR: error: invalid operand for instruction5486// CHECK-ERROR: cnt v6.4s, v8.4s5487// CHECK-ERROR: ^5488// CHECK-ERROR: error: invalid operand for instruction5489// CHECK-ERROR: cnt v6.2d, v8.2d5490// CHECK-ERROR: ^5491// CHECK-ERROR: error: invalid operand for instruction5492// CHECK-ERROR: cnt v13.4h, v21.4h5493// CHECK-ERROR: ^5494// CHECK-ERROR: error: invalid operand for instruction5495// CHECK-ERROR: cnt v4.2s, v0.2s5496// CHECK-ERROR: ^5497 5498 5499//------------------------------------------------------------------------------5500// Bitwise NOT5501//------------------------------------------------------------------------------5502 5503 not v2.8h, v4.8h5504 not v6.4s, v8.4s5505 not v6.2d, v8.2d5506 not v13.4h, v21.4h5507 not v4.2s, v0.2s5508 5509// CHECK-ERROR: error: invalid operand for instruction5510// CHECK-ERROR: not v2.8h, v4.8h5511// CHECK-ERROR: ^5512// CHECK-ERROR: error: invalid operand for instruction5513// CHECK-ERROR: not v6.4s, v8.4s5514// CHECK-ERROR: ^5515// CHECK-ERROR: error: invalid operand for instruction5516// CHECK-ERROR: not v6.2d, v8.2d5517// CHECK-ERROR: ^5518// CHECK-ERROR: error: invalid operand for instruction5519// CHECK-ERROR: not v13.4h, v21.4h5520// CHECK-ERROR: ^5521// CHECK-ERROR: error: invalid operand for instruction5522// CHECK-ERROR: not v4.2s, v0.2s5523// CHECK-ERROR: ^5524 5525//------------------------------------------------------------------------------5526// Bitwise reverse5527//------------------------------------------------------------------------------5528 5529 rbit v2.8h, v4.8h5530 rbit v6.4s, v8.4s5531 rbit v6.2d, v8.2d5532 rbit v13.4h, v21.4h5533 rbit v4.2s, v0.2s5534 5535// CHECK-ERROR: error: invalid operand for instruction5536// CHECK-ERROR: rbit v2.8h, v4.8h5537// CHECK-ERROR: ^5538// CHECK-ERROR: error: invalid operand for instruction5539// CHECK-ERROR: rbit v6.4s, v8.4s5540// CHECK-ERROR: ^5541// CHECK-ERROR: error: invalid operand for instruction5542// CHECK-ERROR: rbit v6.2d, v8.2d5543// CHECK-ERROR: ^5544// CHECK-ERROR: error: invalid operand for instruction5545// CHECK-ERROR: rbit v13.4h, v21.4h5546// CHECK-ERROR: ^5547// CHECK-ERROR: error: invalid operand for instruction5548// CHECK-ERROR: rbit v4.2s, v0.2s5549// CHECK-ERROR: ^5550 5551//------------------------------------------------------------------------------5552// Floating-point absolute5553//------------------------------------------------------------------------------5554 5555 fabs v0.16b, v31.16b5556 fabs v2.8h, v4.8h5557 fabs v1.8b, v9.8b5558 fabs v13.4h, v21.4h5559 5560// CHECK-ERROR: error: invalid operand for instruction5561// CHECK-ERROR: fabs v0.16b, v31.16b5562// CHECK-ERROR: ^5563// CHECK-ERROR: error: instruction requires: fullfp165564// CHECK-ERROR: fabs v2.8h, v4.8h5565// CHECK-ERROR: ^5566// CHECK-ERROR: error: invalid operand for instruction5567// CHECK-ERROR: fabs v1.8b, v9.8b5568// CHECK-ERROR: ^5569// CHECK-ERROR: error: instruction requires: fullfp165570// CHECK-ERROR: fabs v13.4h, v21.4h5571// CHECK-ERROR: ^5572 5573//------------------------------------------------------------------------------5574// Floating-point negate5575//------------------------------------------------------------------------------5576 5577 fneg v0.16b, v31.16b5578 fneg v2.8h, v4.8h5579 fneg v1.8b, v9.8b5580 fneg v13.4h, v21.4h5581 5582// CHECK-ERROR: error: invalid operand for instruction5583// CHECK-ERROR: fneg v0.16b, v31.16b5584// CHECK-ERROR: ^5585// CHECK-ERROR: error: instruction requires: fullfp165586// CHECK-ERROR: fneg v2.8h, v4.8h5587// CHECK-ERROR: ^5588// CHECK-ERROR: error: invalid operand for instruction5589// CHECK-ERROR: fneg v1.8b, v9.8b5590// CHECK-ERROR: ^5591// CHECK-ERROR: error: instruction requires: fullfp165592// CHECK-ERROR: fneg v13.4h, v21.4h5593// CHECK-ERROR: ^5594 5595//------------------------------------------------------------------------------5596// Integer extract and narrow5597//------------------------------------------------------------------------------5598 5599 xtn v0.16b, v31.8h5600 xtn v2.8h, v4.4s5601 xtn v6.4s, v8.2d5602 xtn2 v1.8b, v9.8h5603 xtn2 v13.4h, v21.4s5604 xtn2 v4.2s, v0.2d5605 5606// CHECK-ERROR: error: invalid operand for instruction5607// CHECK-ERROR: xtn v0.16b, v31.8h5608// CHECK-ERROR: ^5609// CHECK-ERROR: error: invalid operand for instruction5610// CHECK-ERROR: xtn v2.8h, v4.4s5611// CHECK-ERROR: ^5612// CHECK-ERROR: error: invalid operand for instruction5613// CHECK-ERROR: xtn v6.4s, v8.2d5614// CHECK-ERROR: ^5615// CHECK-ERROR: error: invalid operand for instruction5616// CHECK-ERROR: xtn2 v1.8b, v9.8h5617// CHECK-ERROR: ^5618// CHECK-ERROR: error: invalid operand for instruction5619// CHECK-ERROR: xtn2 v13.4h, v21.4s5620// CHECK-ERROR: ^5621// CHECK-ERROR: error: invalid operand for instruction5622// CHECK-ERROR: xtn2 v4.2s, v0.2d5623// CHECK-ERROR: ^5624 5625//------------------------------------------------------------------------------5626// Signed integer saturating extract and unsigned narrow5627//------------------------------------------------------------------------------5628 5629 sqxtun v0.16b, v31.8h5630 sqxtun v2.8h, v4.4s5631 sqxtun v6.4s, v8.2d5632 sqxtun2 v1.8b, v9.8h5633 sqxtun2 v13.4h, v21.4s5634 sqxtun2 v4.2s, v0.2d5635 5636// CHECK-ERROR: error: invalid operand for instruction5637// CHECK-ERROR: sqxtun v0.16b, v31.8h5638// CHECK-ERROR: ^5639// CHECK-ERROR: error: invalid operand for instruction5640// CHECK-ERROR: sqxtun v2.8h, v4.4s5641// CHECK-ERROR: ^5642// CHECK-ERROR: error: invalid operand for instruction5643// CHECK-ERROR: sqxtun v6.4s, v8.2d5644// CHECK-ERROR: ^5645// CHECK-ERROR: error: invalid operand for instruction5646// CHECK-ERROR: sqxtun2 v1.8b, v9.8h5647// CHECK-ERROR: ^5648// CHECK-ERROR: error: invalid operand for instruction5649// CHECK-ERROR: sqxtun2 v13.4h, v21.4s5650// CHECK-ERROR: ^5651// CHECK-ERROR: error: invalid operand for instruction5652// CHECK-ERROR: sqxtun2 v4.2s, v0.2d5653// CHECK-ERROR: ^5654 5655//------------------------------------------------------------------------------5656// Signed integer saturating extract and narrow5657//------------------------------------------------------------------------------5658 5659 sqxtn v0.16b, v31.8h5660 sqxtn v2.8h, v4.4s5661 sqxtn v6.4s, v8.2d5662 sqxtn2 v1.8b, v9.8h5663 sqxtn2 v13.4h, v21.4s5664 sqxtn2 v4.2s, v0.2d5665 5666// CHECK-ERROR: error: invalid operand for instruction5667// CHECK-ERROR: sqxtn v0.16b, v31.8h5668// CHECK-ERROR: ^5669// CHECK-ERROR: error: invalid operand for instruction5670// CHECK-ERROR: sqxtn v2.8h, v4.4s5671// CHECK-ERROR: ^5672// CHECK-ERROR: error: invalid operand for instruction5673// CHECK-ERROR: sqxtn v6.4s, v8.2d5674// CHECK-ERROR: ^5675// CHECK-ERROR: error: invalid operand for instruction5676// CHECK-ERROR: sqxtn2 v1.8b, v9.8h5677// CHECK-ERROR: ^5678// CHECK-ERROR: error: invalid operand for instruction5679// CHECK-ERROR: sqxtn2 v13.4h, v21.4s5680// CHECK-ERROR: ^5681// CHECK-ERROR: error: invalid operand for instruction5682// CHECK-ERROR: sqxtn2 v4.2s, v0.2d5683// CHECK-ERROR: ^5684 5685//------------------------------------------------------------------------------5686// Unsigned integer saturating extract and narrow5687//------------------------------------------------------------------------------5688 5689 uqxtn v0.16b, v31.8h5690 uqxtn v2.8h, v4.4s5691 uqxtn v6.4s, v8.2d5692 uqxtn2 v1.8b, v9.8h5693 uqxtn2 v13.4h, v21.4s5694 uqxtn2 v4.2s, v0.2d5695 5696// CHECK-ERROR: error: invalid operand for instruction5697// CHECK-ERROR: uqxtn v0.16b, v31.8h5698// CHECK-ERROR: ^5699// CHECK-ERROR: error: invalid operand for instruction5700// CHECK-ERROR: uqxtn v2.8h, v4.4s5701// CHECK-ERROR: ^5702// CHECK-ERROR: error: invalid operand for instruction5703// CHECK-ERROR: uqxtn v6.4s, v8.2d5704// CHECK-ERROR: ^5705// CHECK-ERROR: error: invalid operand for instruction5706// CHECK-ERROR: uqxtn2 v1.8b, v9.8h5707// CHECK-ERROR: ^5708// CHECK-ERROR: error: invalid operand for instruction5709// CHECK-ERROR: uqxtn2 v13.4h, v21.4s5710// CHECK-ERROR: ^5711// CHECK-ERROR: error: invalid operand for instruction5712// CHECK-ERROR: uqxtn2 v4.2s, v0.2d5713// CHECK-ERROR: ^5714 5715//------------------------------------------------------------------------------5716// Integer shift left long5717//------------------------------------------------------------------------------5718 5719 shll2 v2.8h, v4.16b, #75720 shll2 v6.4s, v8.8h, #155721 shll2 v6.2d, v8.4s, #315722 shll v2.8h, v4.16b, #85723 shll v6.4s, v8.8h, #165724 shll v6.2d, v8.4s, #325725 shll v2.8h, v4.8b, #85726 shll v6.4s, v8.4h, #165727 shll v6.2d, v8.2s, #325728 shll2 v2.8h, v4.8b, #55729 shll2 v6.4s, v8.4h, #145730 shll2 v6.2d, v8.2s, #15731 5732// CHECK-ERROR: error: invalid operand for instruction5733// CHECK-ERROR: shll2 v2.8h, v4.16b, #75734// CHECK-ERROR: ^5735// CHECK-ERROR: error: invalid operand for instruction5736// CHECK-ERROR: shll2 v6.4s, v8.8h, #155737// CHECK-ERROR: ^5738// CHECK-ERROR: error: invalid operand for instruction5739// CHECK-ERROR: shll2 v6.2d, v8.4s, #315740// CHECK-ERROR: ^5741// CHECK-ERROR: error: invalid operand for instruction5742// CHECK-ERROR: shll v2.8h, v4.16b, #85743// CHECK-ERROR: ^5744// CHECK-ERROR: error: invalid operand for instruction5745// CHECK-ERROR: shll v6.4s, v8.8h, #165746// CHECK-ERROR: ^5747// CHECK-ERROR: error: invalid operand for instruction5748// CHECK-ERROR: shll v6.2d, v8.4s, #325749// CHECK-ERROR: ^5750// CHECK-ERROR: error: invalid operand for instruction5751// CHECK-ERROR: shll2 v2.8h, v4.8b, #55752// CHECK-ERROR: ^5753// CHECK-ERROR: error: invalid operand for instruction5754// CHECK-ERROR: shll2 v6.4s, v8.4h, #145755// CHECK-ERROR: ^5756// CHECK-ERROR: error: invalid operand for instruction5757// CHECK-ERROR: shll2 v6.2d, v8.2s, #15758// CHECK-ERROR: ^5759 5760//------------------------------------------------------------------------------5761// Floating-point convert downsize5762//------------------------------------------------------------------------------5763 5764 fcvtn v2.8h, v4.4s5765 fcvtn v6.4s, v8.2d5766 fcvtn2 v13.4h, v21.4s5767 fcvtn2 v4.2s, v0.2d5768 5769// CHECK-ERROR: error: invalid operand for instruction5770// CHECK-ERROR: fcvtn v2.8h, v4.4s5771// CHECK-ERROR: ^5772// CHECK-ERROR: error: invalid operand for instruction5773// CHECK-ERROR: fcvtn v6.4s, v8.2d5774// CHECK-ERROR: ^5775// CHECK-ERROR: error: invalid operand for instruction5776// CHECK-ERROR: fcvtn2 v13.4h, v21.4s5777// CHECK-ERROR: ^5778// CHECK-ERROR: error: invalid operand for instruction5779// CHECK-ERROR: fcvtn2 v4.2s, v0.2d5780// CHECK-ERROR: ^5781 5782//------------------------------------------------------------------------------5783// Floating-point convert downsize with inexact5784//------------------------------------------------------------------------------5785 5786 fcvtxn v6.4s, v8.2d5787 fcvtxn2 v4.2s, v0.2d5788 5789// CHECK-ERROR: error: invalid operand for instruction5790// CHECK-ERROR: fcvtxn v6.4s, v8.2d5791// CHECK-ERROR: ^5792// CHECK-ERROR: error: invalid operand for instruction5793// CHECK-ERROR: fcvtxn2 v4.2s, v0.2d5794// CHECK-ERROR: ^5795 5796//------------------------------------------------------------------------------5797// Floating-point convert upsize5798//------------------------------------------------------------------------------5799 5800 fcvtl2 v9.4s, v1.4h5801 fcvtl2 v0.2d, v1.2s5802 fcvtl v12.4s, v4.8h5803 fcvtl v17.2d, v28.4s5804 5805// CHECK-ERROR: error: invalid operand for instruction5806// CHECK-ERROR: fcvtl2 v9.4s, v1.4h5807// CHECK-ERROR: ^5808// CHECK-ERROR: error: invalid operand for instruction5809// CHECK-ERROR: fcvtl2 v0.2d, v1.2s5810// CHECK-ERROR: ^5811// CHECK-ERROR: error: invalid operand for instruction5812// CHECK-ERROR: fcvtl v12.4s, v4.8h5813// CHECK-ERROR: ^5814// CHECK-ERROR: error: invalid operand for instruction5815// CHECK-ERROR: fcvtl v17.2d, v28.4s5816// CHECK-ERROR: ^5817 5818//------------------------------------------------------------------------------5819// Floating-point round to integral5820//------------------------------------------------------------------------------5821 5822 frintn v0.16b, v31.16b5823 frintn v2.8h, v4.8h5824 frintn v1.8b, v9.8b5825 frintn v13.4h, v21.4h5826 5827 frinta v0.16b, v31.16b5828 frinta v2.8h, v4.8h5829 frinta v1.8b, v9.8b5830 frinta v13.4h, v21.4h5831 5832 frintp v0.16b, v31.16b5833 frintp v2.8h, v4.8h5834 frintp v1.8b, v9.8b5835 frintp v13.4h, v21.4h5836 5837 frintm v0.16b, v31.16b5838 frintm v2.8h, v4.8h5839 frintm v1.8b, v9.8b5840 frintm v13.4h, v21.4h5841 5842 frintx v0.16b, v31.16b5843 frintx v2.8h, v4.8h5844 frintx v1.8b, v9.8b5845 frintx v13.4h, v21.4h5846 5847 frintz v0.16b, v31.16b5848 frintz v2.8h, v4.8h5849 frintz v1.8b, v9.8b5850 frintz v13.4h, v21.4h5851 5852 frinti v0.16b, v31.16b5853 frinti v2.8h, v4.8h5854 frinti v1.8b, v9.8b5855 frinti v13.4h, v21.4h5856 5857 fcvtns v0.16b, v31.16b5858 fcvtns v2.8h, v4.8h5859 fcvtns v1.8b, v9.8b5860 fcvtns v13.4h, v21.4h5861 5862 fcvtnu v0.16b, v31.16b5863 fcvtnu v2.8h, v4.8h5864 fcvtnu v1.8b, v9.8b5865 fcvtnu v13.4h, v21.4h5866 5867 fcvtps v0.16b, v31.16b5868 fcvtps v2.8h, v4.8h5869 fcvtps v1.8b, v9.8b5870 fcvtps v13.4h, v21.4h5871 5872 fcvtpu v0.16b, v31.16b5873 fcvtpu v2.8h, v4.8h5874 fcvtpu v1.8b, v9.8b5875 fcvtpu v13.4h, v21.4h5876 5877 fcvtms v0.16b, v31.16b5878 fcvtms v2.8h, v4.8h5879 fcvtms v1.8b, v9.8b5880 fcvtms v13.4h, v21.4h5881 5882 fcvtmu v0.16b, v31.16b5883 fcvtmu v2.8h, v4.8h5884 fcvtmu v1.8b, v9.8b5885 fcvtmu v13.4h, v21.4h5886 5887 fcvtzs v0.16b, v31.16b5888 fcvtzs v2.8h, v4.8h5889 fcvtzs v1.8b, v9.8b5890 fcvtzs v13.4h, v21.4h5891 5892 fcvtzu v0.16b, v31.16b5893 fcvtzu v2.8h, v4.8h5894 fcvtzu v1.8b, v9.8b5895 fcvtzu v13.4h, v21.4h5896 5897 fcvtas v0.16b, v31.16b5898 fcvtas v2.8h, v4.8h5899 fcvtas v1.8b, v9.8b5900 fcvtas v13.4h, v21.4h5901 5902 fcvtau v0.16b, v31.16b5903 fcvtau v2.8h, v4.8h5904 fcvtau v1.8b, v9.8b5905 fcvtau v13.4h, v21.4h5906 5907 urecpe v0.16b, v31.16b5908 urecpe v2.8h, v4.8h5909 urecpe v1.8b, v9.8b5910 urecpe v13.4h, v21.4h5911 urecpe v1.2d, v9.2d5912 5913 ursqrte v0.16b, v31.16b5914 ursqrte v2.8h, v4.8h5915 ursqrte v1.8b, v9.8b5916 ursqrte v13.4h, v21.4h5917 ursqrte v1.2d, v9.2d5918 5919 scvtf v0.16b, v31.16b5920 scvtf v2.8h, v4.8h5921 scvtf v1.8b, v9.8b5922 scvtf v13.4h, v21.4h5923 5924 ucvtf v0.16b, v31.16b5925 ucvtf v2.8h, v4.8h5926 ucvtf v1.8b, v9.8b5927 ucvtf v13.4h, v21.4h5928 5929 frecpe v0.16b, v31.16b5930 frecpe v2.8h, v4.8h5931 frecpe v1.8b, v9.8b5932 frecpe v13.4h, v21.4h5933 5934 frsqrte v0.16b, v31.16b5935 frsqrte v2.8h, v4.8h5936 frsqrte v1.8b, v9.8b5937 frsqrte v13.4h, v21.4h5938 5939 fsqrt v0.16b, v31.16b5940 fsqrt v2.8h, v4.8h5941 fsqrt v1.8b, v9.8b5942 fsqrt v13.4h, v21.4h5943 5944// CHECK-ERROR: error: invalid operand for instruction5945// CHECK-ERROR: frintn v0.16b, v31.16b5946// CHECK-ERROR: ^5947// CHECK-ERROR: error: instruction requires: fullfp165948// CHECK-ERROR: frintn v2.8h, v4.8h5949// CHECK-ERROR: ^5950// CHECK-ERROR: error: invalid operand for instruction5951// CHECK-ERROR: frintn v1.8b, v9.8b5952// CHECK-ERROR: ^5953// CHECK-ERROR: error: instruction requires: fullfp165954// CHECK-ERROR: frintn v13.4h, v21.4h5955// CHECK-ERROR: ^5956// CHECK-ERROR: error: invalid operand for instruction5957// CHECK-ERROR: frinta v0.16b, v31.16b5958// CHECK-ERROR: ^5959// CHECK-ERROR: error: instruction requires: fullfp165960// CHECK-ERROR: frinta v2.8h, v4.8h5961// CHECK-ERROR: ^5962// CHECK-ERROR: error: invalid operand for instruction5963// CHECK-ERROR: frinta v1.8b, v9.8b5964// CHECK-ERROR: ^5965// CHECK-ERROR: error: instruction requires: fullfp165966// CHECK-ERROR: frinta v13.4h, v21.4h5967// CHECK-ERROR: ^5968// CHECK-ERROR: error: invalid operand for instruction5969// CHECK-ERROR: frintp v0.16b, v31.16b5970// CHECK-ERROR: ^5971// CHECK-ERROR: error: instruction requires: fullfp165972// CHECK-ERROR: frintp v2.8h, v4.8h5973// CHECK-ERROR: ^5974// CHECK-ERROR: error: invalid operand for instruction5975// CHECK-ERROR: frintp v1.8b, v9.8b5976// CHECK-ERROR: ^5977// CHECK-ERROR: error: instruction requires: fullfp165978// CHECK-ERROR: frintp v13.4h, v21.4h5979// CHECK-ERROR: ^5980// CHECK-ERROR: error: invalid operand for instruction5981// CHECK-ERROR: frintm v0.16b, v31.16b5982// CHECK-ERROR: ^5983// CHECK-ERROR: error: instruction requires: fullfp165984// CHECK-ERROR: frintm v2.8h, v4.8h5985// CHECK-ERROR: ^5986// CHECK-ERROR: error: invalid operand for instruction5987// CHECK-ERROR: frintm v1.8b, v9.8b5988// CHECK-ERROR: ^5989// CHECK-ERROR: error: instruction requires: fullfp165990// CHECK-ERROR: frintm v13.4h, v21.4h5991// CHECK-ERROR: ^5992// CHECK-ERROR: error: invalid operand for instruction5993// CHECK-ERROR: frintx v0.16b, v31.16b5994// CHECK-ERROR: ^5995// CHECK-ERROR: error: instruction requires: fullfp165996// CHECK-ERROR: frintx v2.8h, v4.8h5997// CHECK-ERROR: ^5998// CHECK-ERROR: error: invalid operand for instruction5999// CHECK-ERROR: frintx v1.8b, v9.8b6000// CHECK-ERROR: ^6001// CHECK-ERROR: error: instruction requires: fullfp166002// CHECK-ERROR: frintx v13.4h, v21.4h6003// CHECK-ERROR: ^6004// CHECK-ERROR: error: invalid operand for instruction6005// CHECK-ERROR: frintz v0.16b, v31.16b6006// CHECK-ERROR: ^6007// CHECK-ERROR: error: instruction requires: fullfp166008// CHECK-ERROR: frintz v2.8h, v4.8h6009// CHECK-ERROR: ^6010// CHECK-ERROR: error: invalid operand for instruction6011// CHECK-ERROR: frintz v1.8b, v9.8b6012// CHECK-ERROR: ^6013// CHECK-ERROR: error: instruction requires: fullfp166014// CHECK-ERROR: frintz v13.4h, v21.4h6015// CHECK-ERROR: ^6016// CHECK-ERROR: error: invalid operand for instruction6017// CHECK-ERROR: frinti v0.16b, v31.16b6018// CHECK-ERROR: ^6019// CHECK-ERROR: error: instruction requires: fullfp166020// CHECK-ERROR: frinti v2.8h, v4.8h6021// CHECK-ERROR: ^6022// CHECK-ERROR: error: invalid operand for instruction6023// CHECK-ERROR: frinti v1.8b, v9.8b6024// CHECK-ERROR: ^6025// CHECK-ERROR: error: instruction requires: fullfp166026// CHECK-ERROR: frinti v13.4h, v21.4h6027// CHECK-ERROR: ^6028// CHECK-ERROR: error: invalid operand for instruction6029// CHECK-ERROR: fcvtns v0.16b, v31.16b6030// CHECK-ERROR: ^6031// CHECK-ERROR: error: instruction requires: fullfp166032// CHECK-ERROR: fcvtns v2.8h, v4.8h6033// CHECK-ERROR: ^6034// CHECK-ERROR: error: invalid operand for instruction6035// CHECK-ERROR: fcvtns v1.8b, v9.8b6036// CHECK-ERROR: ^6037// CHECK-ERROR: error: instruction requires: fullfp166038// CHECK-ERROR: fcvtns v13.4h, v21.4h6039// CHECK-ERROR: ^6040// CHECK-ERROR: error: invalid operand for instruction6041// CHECK-ERROR: fcvtnu v0.16b, v31.16b6042// CHECK-ERROR: ^6043// CHECK-ERROR: error: instruction requires: fullfp166044// CHECK-ERROR: fcvtnu v2.8h, v4.8h6045// CHECK-ERROR: ^6046// CHECK-ERROR: error: invalid operand for instruction6047// CHECK-ERROR: fcvtnu v1.8b, v9.8b6048// CHECK-ERROR: ^6049// CHECK-ERROR: error: instruction requires: fullfp166050// CHECK-ERROR: fcvtnu v13.4h, v21.4h6051// CHECK-ERROR: ^6052// CHECK-ERROR: error: invalid operand for instruction6053// CHECK-ERROR: fcvtps v0.16b, v31.16b6054// CHECK-ERROR: ^6055// CHECK-ERROR: error: instruction requires: fullfp166056// CHECK-ERROR: fcvtps v2.8h, v4.8h6057// CHECK-ERROR: ^6058// CHECK-ERROR: error: invalid operand for instruction6059// CHECK-ERROR: fcvtps v1.8b, v9.8b6060// CHECK-ERROR: ^6061// CHECK-ERROR: error: instruction requires: fullfp166062// CHECK-ERROR: fcvtps v13.4h, v21.4h6063// CHECK-ERROR: ^6064// CHECK-ERROR: error: invalid operand for instruction6065// CHECK-ERROR: fcvtpu v0.16b, v31.16b6066// CHECK-ERROR: ^6067// CHECK-ERROR: error: instruction requires: fullfp166068// CHECK-ERROR: fcvtpu v2.8h, v4.8h6069// CHECK-ERROR: ^6070// CHECK-ERROR: error: invalid operand for instruction6071// CHECK-ERROR: fcvtpu v1.8b, v9.8b6072// CHECK-ERROR: ^6073// CHECK-ERROR: error: instruction requires: fullfp166074// CHECK-ERROR: fcvtpu v13.4h, v21.4h6075// CHECK-ERROR: ^6076// CHECK-ERROR: error: invalid operand for instruction6077// CHECK-ERROR: fcvtms v0.16b, v31.16b6078// CHECK-ERROR: ^6079// CHECK-ERROR: error: instruction requires: fullfp166080// CHECK-ERROR: fcvtms v2.8h, v4.8h6081// CHECK-ERROR: ^6082// CHECK-ERROR: error: invalid operand for instruction6083// CHECK-ERROR: fcvtms v1.8b, v9.8b6084// CHECK-ERROR: ^6085// CHECK-ERROR: error: instruction requires: fullfp166086// CHECK-ERROR: fcvtms v13.4h, v21.4h6087// CHECK-ERROR: ^6088// CHECK-ERROR: error: invalid operand for instruction6089// CHECK-ERROR: fcvtmu v0.16b, v31.16b6090// CHECK-ERROR: ^6091// CHECK-ERROR: error: instruction requires: fullfp166092// CHECK-ERROR: fcvtmu v2.8h, v4.8h6093// CHECK-ERROR: ^6094// CHECK-ERROR: error: invalid operand for instruction6095// CHECK-ERROR: fcvtmu v1.8b, v9.8b6096// CHECK-ERROR: ^6097// CHECK-ERROR: error: instruction requires: fullfp166098// CHECK-ERROR: fcvtmu v13.4h, v21.4h6099// CHECK-ERROR: ^6100// CHECK-ERROR: error: invalid operand for instruction6101// CHECK-ERROR: fcvtzs v0.16b, v31.16b6102// CHECK-ERROR: ^6103// CHECK-ERROR: error: instruction requires: fullfp166104// CHECK-ERROR: fcvtzs v2.8h, v4.8h6105// CHECK-ERROR: ^6106// CHECK-ERROR: error: invalid operand for instruction6107// CHECK-ERROR: fcvtzs v1.8b, v9.8b6108// CHECK-ERROR: ^6109// CHECK-ERROR: error: instruction requires: fullfp166110// CHECK-ERROR: fcvtzs v13.4h, v21.4h6111// CHECK-ERROR: ^6112// CHECK-ERROR: error: invalid operand for instruction6113// CHECK-ERROR: fcvtzu v0.16b, v31.16b6114// CHECK-ERROR: ^6115// CHECK-ERROR: error: instruction requires: fullfp166116// CHECK-ERROR: fcvtzu v2.8h, v4.8h6117// CHECK-ERROR: ^6118// CHECK-ERROR: error: invalid operand for instruction6119// CHECK-ERROR: fcvtzu v1.8b, v9.8b6120// CHECK-ERROR: ^6121// CHECK-ERROR: error: instruction requires: fullfp166122// CHECK-ERROR: fcvtzu v13.4h, v21.4h6123// CHECK-ERROR: ^6124// CHECK-ERROR: error: invalid operand for instruction6125// CHECK-ERROR: fcvtas v0.16b, v31.16b6126// CHECK-ERROR: ^6127// CHECK-ERROR: error: instruction requires: fullfp166128// CHECK-ERROR: fcvtas v2.8h, v4.8h6129// CHECK-ERROR: ^6130// CHECK-ERROR: error: invalid operand for instruction6131// CHECK-ERROR: fcvtas v1.8b, v9.8b6132// CHECK-ERROR: ^6133// CHECK-ERROR: error: instruction requires: fullfp166134// CHECK-ERROR: fcvtas v13.4h, v21.4h6135// CHECK-ERROR: ^6136// CHECK-ERROR: error: invalid operand for instruction6137// CHECK-ERROR: fcvtau v0.16b, v31.16b6138// CHECK-ERROR: ^6139// CHECK-ERROR: error: instruction requires: fullfp166140// CHECK-ERROR: fcvtau v2.8h, v4.8h6141// CHECK-ERROR: ^6142// CHECK-ERROR: error: invalid operand for instruction6143// CHECK-ERROR: fcvtau v1.8b, v9.8b6144// CHECK-ERROR: ^6145// CHECK-ERROR: error: instruction requires: fullfp166146// CHECK-ERROR: fcvtau v13.4h, v21.4h6147// CHECK-ERROR: ^6148// CHECK-ERROR: error: invalid operand for instruction6149// CHECK-ERROR: urecpe v0.16b, v31.16b6150// CHECK-ERROR: ^6151// CHECK-ERROR: error: invalid operand for instruction6152// CHECK-ERROR: urecpe v2.8h, v4.8h6153// CHECK-ERROR: ^6154// CHECK-ERROR: error: invalid operand for instruction6155// CHECK-ERROR: urecpe v1.8b, v9.8b6156// CHECK-ERROR: ^6157// CHECK-ERROR: error: invalid operand for instruction6158// CHECK-ERROR: urecpe v13.4h, v21.4h6159// CHECK-ERROR: ^6160// CHECK-ERROR: error: invalid operand for instruction6161// CHECK-ERROR: urecpe v1.2d, v9.2d6162// CHECK-ERROR: ^6163// CHECK-ERROR: error: invalid operand for instruction6164// CHECK-ERROR: ursqrte v0.16b, v31.16b6165// CHECK-ERROR: ^6166// CHECK-ERROR: error: invalid operand for instruction6167// CHECK-ERROR: ursqrte v2.8h, v4.8h6168// CHECK-ERROR: ^6169// CHECK-ERROR: error: invalid operand for instruction6170// CHECK-ERROR: ursqrte v1.8b, v9.8b6171// CHECK-ERROR: ^6172// CHECK-ERROR: error: invalid operand for instruction6173// CHECK-ERROR: ursqrte v13.4h, v21.4h6174// CHECK-ERROR: ^6175// CHECK-ERROR: error: invalid operand for instruction6176// CHECK-ERROR: ursqrte v1.2d, v9.2d6177// CHECK-ERROR: ^6178// CHECK-ERROR: error: invalid operand for instruction6179// CHECK-ERROR: scvtf v0.16b, v31.16b6180// CHECK-ERROR: ^6181// CHECK-ERROR: error: instruction requires: fullfp166182// CHECK-ERROR: scvtf v2.8h, v4.8h6183// CHECK-ERROR: ^6184// CHECK-ERROR: error: invalid operand for instruction6185// CHECK-ERROR: scvtf v1.8b, v9.8b6186// CHECK-ERROR: ^6187// CHECK-ERROR: error: instruction requires: fullfp166188// CHECK-ERROR: scvtf v13.4h, v21.4h6189// CHECK-ERROR: ^6190// CHECK-ERROR: error: invalid operand for instruction6191// CHECK-ERROR: ucvtf v0.16b, v31.16b6192// CHECK-ERROR: ^6193// CHECK-ERROR: error: instruction requires: fullfp166194// CHECK-ERROR: ucvtf v2.8h, v4.8h6195// CHECK-ERROR: ^6196// CHECK-ERROR: error: invalid operand for instruction6197// CHECK-ERROR: ucvtf v1.8b, v9.8b6198// CHECK-ERROR: ^6199// CHECK-ERROR: error: instruction requires: fullfp166200// CHECK-ERROR: ucvtf v13.4h, v21.4h6201// CHECK-ERROR: ^6202// CHECK-ERROR: error: invalid operand for instruction6203// CHECK-ERROR: frecpe v0.16b, v31.16b6204// CHECK-ERROR: ^6205// CHECK-ERROR: error: instruction requires: fullfp166206// CHECK-ERROR: frecpe v2.8h, v4.8h6207// CHECK-ERROR: ^6208// CHECK-ERROR: error: invalid operand for instruction6209// CHECK-ERROR: frecpe v1.8b, v9.8b6210// CHECK-ERROR: ^6211// CHECK-ERROR: error: instruction requires: fullfp166212// CHECK-ERROR: frecpe v13.4h, v21.4h6213// CHECK-ERROR: ^6214// CHECK-ERROR: error: invalid operand for instruction6215// CHECK-ERROR: frsqrte v0.16b, v31.16b6216// CHECK-ERROR: ^6217// CHECK-ERROR: error: instruction requires: fullfp166218// CHECK-ERROR: frsqrte v2.8h, v4.8h6219// CHECK-ERROR: ^6220// CHECK-ERROR: error: invalid operand for instruction6221// CHECK-ERROR: frsqrte v1.8b, v9.8b6222// CHECK-ERROR: ^6223// CHECK-ERROR: error: instruction requires: fullfp166224// CHECK-ERROR: frsqrte v13.4h, v21.4h6225// CHECK-ERROR: ^6226// CHECK-ERROR: error: invalid operand for instruction6227// CHECK-ERROR: fsqrt v0.16b, v31.16b6228// CHECK-ERROR: ^6229// CHECK-ERROR: error: instruction requires: fullfp166230// CHECK-ERROR: fsqrt v2.8h, v4.8h6231// CHECK-ERROR: ^6232// CHECK-ERROR: error: invalid operand for instruction6233// CHECK-ERROR: fsqrt v1.8b, v9.8b6234// CHECK-ERROR: ^6235// CHECK-ERROR: error: instruction requires: fullfp166236// CHECK-ERROR: fsqrt v13.4h, v21.4h6237// CHECK-ERROR: ^6238 6239//----------------------------------------------------------------------6240// Scalar Floating-point Convert To Signed Fixed-point (Immediate)6241//----------------------------------------------------------------------6242 6243 fcvtzs s21, s12, #06244 fcvtzs d21, d12, #656245 fcvtzs s21, d12, #16246 6247// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]6248// CHECK-ERROR: fcvtzs s21, s12, #06249// CHECK-ERROR: ^6250// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]6251// CHECK-ERROR: fcvtzs d21, d12, #656252// CHECK-ERROR: ^6253// CHECK-ERROR: error: invalid operand for instruction6254// CHECK-ERROR: fcvtzs s21, d12, #16255// CHECK-ERROR: ^6256 6257//----------------------------------------------------------------------6258// Scalar Floating-point Convert To Unsigned Fixed-point (Immediate)6259//----------------------------------------------------------------------6260 6261 fcvtzu s21, s12, #336262 fcvtzu d21, d12, #06263 fcvtzu s21, d12, #16264 6265// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 32]6266// CHECK-ERROR: fcvtzu s21, s12, #336267// CHECK-ERROR: ^6268// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [1, 64]6269// CHECK-ERROR: fcvtzu d21, d12, #06270// CHECK-ERROR: ^6271// CHECK-ERROR: error: invalid operand for instruction6272// CHECK-ERROR: fcvtzu s21, d12, #16273// CHECK-ERROR: ^6274 6275//----------------------------------------------------------------------6276// Scalar Unsigned Saturating Extract Narrow6277//----------------------------------------------------------------------6278 6279 aese v0.8h, v1.8h6280 aese v0.4s, v1.4s6281 aese v0.2d, v1.2d6282 aesd v0.8h, v1.8h6283 aesmc v0.8h, v1.8h6284 aesimc v0.8h, v1.8h6285 6286// CHECK: error: invalid operand for instruction6287// CHECK: aese v0.8h, v1.8h6288// CHECK: ^6289// CHECK: error: invalid operand for instruction6290// CHECK: aese v0.4s, v1.4s6291// CHECK: ^6292// CHECK: error: invalid operand for instruction6293// CHECK: aese v0.2d, v1.2d6294// CHECK: ^6295// CHECK: error: invalid operand for instruction6296// CHECK: aesd v0.8h, v1.8h6297// CHECK: ^6298// CHECK: error: invalid operand for instruction6299// CHECK: aesmc v0.8h, v1.8h6300// CHECK: ^6301// CHECK: error: invalid operand for instruction6302// CHECK: aesimc v0.8h, v1.8h6303// CHECK: ^6304 6305 sha1h b0, b16306 sha1h h0, h16307 sha1h d0, d16308 sha1h q0, q16309 sha1su1 v0.16b, v1.16b6310 sha1su1 v0.8h, v1.8h6311 sha1su1 v0.2d, v1.2d6312 sha256su0 v0.16b, v1.16b6313 6314// CHECK: error: invalid operand for instruction6315// CHECK: sha1h b0, b16316// CHECK: ^6317// CHECK: error: invalid operand for instruction6318// CHECK: sha1h h0, h16319// CHECK: ^6320// CHECK: error: invalid operand for instruction6321// CHECK: sha1h d0, d16322// CHECK: ^6323// CHECK: error: invalid operand for instruction6324// CHECK: sha1h q0, q16325// CHECK: ^6326// CHECK: error: invalid operand for instruction6327// CHECK: sha1su1 v0.16b, v1.16b6328// CHECK: ^6329// CHECK: error: invalid operand for instruction6330// CHECK: sha1su1 v0.8h, v1.8h6331// CHECK: ^6332// CHECK: error: invalid operand for instruction6333// CHECK: sha1su1 v0.2d, v1.2d6334// CHECK: ^6335// CHECK: error: invalid operand for instruction6336// CHECK: sha256su0 v0.16b, v1.16b6337// CHECK: ^6338 6339 sha1c q0, q1, v2.4s6340 sha1p q0, q1, v2.4s6341 sha1m q0, q1, v2.4s6342 sha1su0 v0.16b, v1.16b, v2.16b6343 sha1su0 v0.8h, v1.8h, v2.8h6344 sha1su0 v0.2d, v1.2d, v2.2d6345 sha256h q0, q1, q26346 sha256h v0.4s, v1.4s, v2.4s6347 sha256h2 q0, q1, q26348 sha256su1 v0.16b, v1.16b, v2.16b6349 6350// CHECK: error: invalid operand for instruction6351// CHECK: sha1c q0, q1, v2.4s6352// CHECK: ^6353// CHECK: error: invalid operand for instruction6354// CHECK: sha1p q0, q1, v2.4s6355// CHECK: ^6356// CHECK: error: invalid operand for instruction6357// CHECK: sha1m q0, q1, v2.4s6358// CHECK: ^6359// CHECK: error: invalid operand for instruction6360// CHECK: sha1su0 v0.16b, v1.16b, v2.16b6361// CHECK: ^6362// CHECK: error: invalid operand for instruction6363// CHECK: sha1su0 v0.8h, v1.8h, v2.8h6364// CHECK: ^6365// CHECK: error: invalid operand for instruction6366// CHECK: sha1su0 v0.2d, v1.2d, v2.2d6367// CHECK: ^6368// CHECK: error: too few operands for instruction6369// CHECK: sha256h q0, q1, q26370// CHECK: ^6371// CHECK: error: invalid operand for instruction6372// CHECK: sha256h v0.4s, v1.4s, v2.4s6373// CHECK: ^6374// CHECK: error: too few operands for instruction6375// CHECK: sha256h2 q0, q1, q26376// CHECK: ^6377// CHECK: error: invalid operand for instruction6378// CHECK: sha256su1 v0.16b, v1.16b, v2.16b6379// CHECK: ^6380 6381//----------------------------------------------------------------------6382// Bitwise extract6383//----------------------------------------------------------------------6384 6385 ext v0.8b, v1.8b, v2.4h, #0x36386 ext v0.4h, v1.4h, v2.4h, #0x36387 ext v0.2s, v1.2s, v2.2s, #0x16388 ext v0.1d, v1.1d, v2.1d, #0x06389 6390// CHECK-ERROR: error: invalid operand for instruction6391// CHECK-ERROR: ext v0.8b, v1.8b, v2.4h, #0x36392// CHECK-ERROR: ^6393// CHECK-ERROR: error: invalid operand for instruction6394// CHECK-ERROR: ext v0.4h, v1.4h, v2.4h, #0x36395// CHECK-ERROR: ^6396// CHECK-ERROR: error: invalid operand for instruction6397// CHECK-ERROR: ext v0.2s, v1.2s, v2.2s, #0x16398// CHECK-ERROR: ^6399// CHECK-ERROR: error: invalid operand for instruction6400// CHECK-ERROR: ext v0.1d, v1.1d, v2.1d, #0x06401// CHECK-ERROR: ^6402 6403 ext v0.16b, v1.16b, v2.8h, #0x36404 ext v0.8h, v1.8h, v2.8h, #0x36405 ext v0.4s, v1.4s, v2.4s, #0x16406 ext v0.2d, v1.2d, v2.2d, #0x06407 6408// CHECK-ERROR: error: invalid operand for instruction6409// CHECK-ERROR: ext v0.16b, v1.16b, v2.8h, #0x36410// CHECK-ERROR: ^6411// CHECK-ERROR: error: invalid operand for instruction6412// CHECK-ERROR: ext v0.8h, v1.8h, v2.8h, #0x36413// CHECK-ERROR: ^6414// CHECK-ERROR: error: invalid operand for instruction6415// CHECK-ERROR: ext v0.4s, v1.4s, v2.4s, #0x16416// CHECK-ERROR: ^6417// CHECK-ERROR: error: invalid operand for instruction6418// CHECK-ERROR: ext v0.2d, v1.2d, v2.2d, #0x06419// CHECK-ERROR: ^6420 6421 6422//----------------------------------------------------------------------6423// Permutation with 3 vectors6424//----------------------------------------------------------------------6425 6426 uzp1 v0.16b, v1.8b, v2.8b6427// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6428 uzp1 v0.8b, v1.4b, v2.4b6429// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6430 uzp1 v0.8h, v1.4h, v2.4h6431// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6432 uzp1 v0.4h, v1.2h, v2.2h6433// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6434 uzp1 v0.4s, v1.2s, v2.2s6435// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6436 uzp1 v0.2s, v1.1s, v2.1s6437// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6438// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6439 uzp1 v0.2d, v1.1d, v2.1d6440// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6441 uzp1 v0.1d, v1.1d, v2.1d6442// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6443 6444 6445 6446 uzp2 v0.16b, v1.8b, v2.8b6447// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6448 uzp2 v0.8b, v1.4b, v2.4b6449// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6450 uzp2 v0.8h, v1.4h, v2.4h6451// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6452 uzp2 v0.4h, v1.2h, v2.2h6453// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6454 uzp2 v0.4s, v1.2s, v2.2s6455// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6456 uzp2 v0.2s, v1.1s, v2.1s6457// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6458// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6459 uzp2 v0.2d, v1.1d, v2.1d6460// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6461 uzp2 v0.1d, v1.1d, v2.1d6462// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6463 6464 6465 6466 zip1 v0.16b, v1.8b, v2.8b6467// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6468 zip1 v0.8b, v1.4b, v2.4b6469// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6470 zip1 v0.8h, v1.4h, v2.4h6471// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6472 zip1 v0.4h, v1.2h, v2.2h6473// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6474 zip1 v0.4s, v1.2s, v2.2s6475// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6476 zip1 v0.2s, v1.1s, v2.1s6477// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6478// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6479 zip1 v0.2d, v1.1d, v2.1d6480// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6481 zip1 v0.1d, v1.1d, v2.1d6482// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6483 6484 6485 6486 zip2 v0.16b, v1.8b, v2.8b6487// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6488 zip2 v0.8b, v1.4b, v2.4b6489// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6490 zip2 v0.8h, v1.4h, v2.4h6491// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6492 zip2 v0.4h, v1.2h, v2.2h6493// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6494 zip2 v0.4s, v1.2s, v2.2s6495// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6496 zip2 v0.2s, v1.1s, v2.1s6497// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6498// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6499 zip2 v0.2d, v1.1d, v2.1d6500// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6501 zip2 v0.1d, v1.1d, v2.1d6502// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6503 6504 6505 6506 trn1 v0.16b, v1.8b, v2.8b6507// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6508 trn1 v0.8b, v1.4b, v2.4b6509// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6510 trn1 v0.8h, v1.4h, v2.4h6511// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6512 trn1 v0.4h, v1.2h, v2.2h6513// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6514 trn1 v0.4s, v1.2s, v2.2s6515// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6516 trn1 v0.2s, v1.1s, v2.1s6517// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6518// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6519 trn1 v0.2d, v1.1d, v2.1d6520// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6521 trn1 v0.1d, v1.1d, v2.1d6522// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6523 6524 6525 6526 trn2 v0.16b, v1.8b, v2.8b6527// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6528 trn2 v0.8b, v1.4b, v2.4b6529// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6530 trn2 v0.8h, v1.4h, v2.4h6531// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6532 trn2 v0.4h, v1.2h, v2.2h6533// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6534 trn2 v0.4s, v1.2s, v2.2s6535// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6536 trn2 v0.2s, v1.1s, v2.1s6537// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6538// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6539 trn2 v0.2d, v1.1d, v2.1d6540// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6541 trn2 v0.1d, v1.1d, v2.1d6542// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6543 6544//----------------------------------------------------------------------6545// Permutation with 3 vectors6546//----------------------------------------------------------------------6547 6548 uzp1 v0.16b, v1.8b, v2.8b6549// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6550 uzp1 v0.8b, v1.4b, v2.4b6551// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6552 uzp1 v0.8h, v1.4h, v2.4h6553// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6554 uzp1 v0.4h, v1.2h, v2.2h6555// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6556 uzp1 v0.4s, v1.2s, v2.2s6557// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6558 uzp1 v0.2s, v1.1s, v2.1s6559// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6560// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6561 uzp1 v0.2d, v1.1d, v2.1d6562// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6563 uzp1 v0.1d, v1.1d, v2.1d6564// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6565 6566 uzp2 v0.16b, v1.8b, v2.8b6567// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6568 uzp2 v0.8b, v1.4b, v2.4b6569// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6570 uzp2 v0.8h, v1.4h, v2.4h6571// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6572 uzp2 v0.4h, v1.2h, v2.2h6573// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6574 uzp2 v0.4s, v1.2s, v2.2s6575// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6576 uzp2 v0.2s, v1.1s, v2.1s6577// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6578// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6579 uzp2 v0.2d, v1.1d, v2.1d6580// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6581 uzp2 v0.1d, v1.1d, v2.1d6582// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6583 6584 zip1 v0.16b, v1.8b, v2.8b6585// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6586 zip1 v0.8b, v1.4b, v2.4b6587// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6588 zip1 v0.8h, v1.4h, v2.4h6589// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6590 zip1 v0.4h, v1.2h, v2.2h6591// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6592 zip1 v0.4s, v1.2s, v2.2s6593// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6594 zip1 v0.2s, v1.1s, v2.1s6595// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6596// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6597 zip1 v0.2d, v1.1d, v2.1d6598// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6599 zip1 v0.1d, v1.1d, v2.1d6600// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6601 6602 6603 6604 6605 6606 zip2 v0.16b, v1.8b, v2.8b6607// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6608 zip2 v0.8b, v1.4b, v2.4b6609// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6610 zip2 v0.8h, v1.4h, v2.4h6611// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6612 zip2 v0.4h, v1.2h, v2.2h6613// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6614 zip2 v0.4s, v1.2s, v2.2s6615// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6616 zip2 v0.2s, v1.1s, v2.1s6617// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6618// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6619 zip2 v0.2d, v1.1d, v2.1d6620// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6621 zip2 v0.1d, v1.1d, v2.1d6622// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6623 6624 6625 6626 6627 trn1 v0.16b, v1.8b, v2.8b6628// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6629 trn1 v0.8b, v1.4b, v2.4b6630// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6631 trn1 v0.8h, v1.4h, v2.4h6632// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6633 trn1 v0.4h, v1.2h, v2.2h6634// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6635 trn1 v0.4s, v1.2s, v2.2s6636// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6637 trn1 v0.2s, v1.1s, v2.1s6638// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6639// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6640 trn1 v0.2d, v1.1d, v2.1d6641// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6642 trn1 v0.1d, v1.1d, v2.1d6643// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6644 6645 6646 6647 trn2 v0.16b, v1.8b, v2.8b6648// CHECK-ERROR: [[@LINE-1]]:22: error: invalid operand for instruction6649 trn2 v0.8b, v1.4b, v2.4b6650// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6651 trn2 v0.8h, v1.4h, v2.4h6652// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6653 trn2 v0.4h, v1.2h, v2.2h6654// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6655 trn2 v0.4s, v1.2s, v2.2s6656// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6657 trn2 v0.2s, v1.1s, v2.1s6658// CHECK-ERROR: [[@LINE-1]]:21: error: invalid vector kind qualifier6659// CHECK-ERROR: [[@LINE-2]]:28: error: invalid vector kind qualifier6660 trn2 v0.2d, v1.1d, v2.1d6661// CHECK-ERROR: [[@LINE-1]]:21: error: invalid operand for instruction6662 trn2 v0.1d, v1.1d, v2.1d6663// CHECK-ERROR: [[@LINE-1]]:14: error: invalid operand for instruction6664 6665 6666 6667//----------------------------------------------------------------------6668// Floating Point multiply (scalar, by element)6669//----------------------------------------------------------------------6670 // mismatched and invalid vector types6671 fmul s0, s1, v1.h[0]6672 fmul h0, h1, v1.s[0]6673 // invalid lane6674 fmul s2, s29, v10.s[4]6675 6676// CHECK-ERROR: error: invalid operand for instruction6677// CHECK-ERROR: fmul s0, s1, v1.h[0]6678// CHECK-ERROR: ^6679// CHECK-ERROR: error: invalid operand for instruction6680// CHECK-ERROR: fmul h0, h1, v1.s[0]6681// CHECK-ERROR: ^6682// CHECK-ERROR: vector lane must be an integer in range6683// CHECK-ERROR: fmul s2, s29, v10.s[4]6684// CHECK-ERROR: ^6685 6686//----------------------------------------------------------------------6687// Floating Point multiply extended (scalar, by element)6688//----------------------------------------------------------------------6689 // mismatched and invalid vector types6690 fmulx d0, d1, v1.b[0]6691 fmulx h0, h1, v1.d[0]6692 // invalid lane6693 fmulx d2, d29, v10.d[3]6694 6695// CHECK-ERROR: error: invalid operand for instruction6696// CHECK-ERROR: fmulx d0, d1, v1.b[0]6697// CHECK-ERROR: ^6698// CHECK-ERROR: error: invalid operand for instruction6699// CHECK-ERROR: fmulx h0, h1, v1.d[0]6700// CHECK-ERROR: ^6701// CHECK-ERROR: vector lane must be an integer in range6702// CHECK-ERROR: fmulx d2, d29, v10.d[3]6703// CHECK-ERROR: ^6704 6705//----------------------------------------------------------------------6706// Floating Point fused multiply-add (scalar, by element)6707//----------------------------------------------------------------------6708 // mismatched and invalid vector types6709 fmla b0, b1, v1.b[0]6710 fmla d30, s11, v1.d[1]6711 // invalid lane6712 fmla s16, s22, v16.s[5]6713 6714// CHECK-ERROR: error: invalid operand for instruction6715// CHECK-ERROR: fmla b0, b1, v1.b[0]6716// CHECK-ERROR: ^6717// CHECK-ERROR: error: invalid operand for instruction6718// CHECK-ERROR: fmla d30, s11, v1.d[1]6719// CHECK-ERROR: ^6720// CHECK-ERROR: vector lane must be an integer in range6721// CHECK-ERROR: fmla s16, s22, v16.s[5]6722// CHECK-ERROR: ^6723 6724//----------------------------------------------------------------------6725// Floating Point fused multiply-subtract (scalar, by element)6726//----------------------------------------------------------------------6727 // mismatched and invalid vector types6728 fmls s29, h10, v28.s[1]6729 fmls h7, h17, v26.s[2]6730 // invalid lane6731 fmls d16, d22, v16.d[-1]6732 6733// CHECK-ERROR: error: invalid operand for instruction6734// CHECK-ERROR: fmls s29, h10, v28.s[1]6735// CHECK-ERROR: ^6736// CHECK-ERROR: error: invalid operand for instruction6737// CHECK-ERROR: fmls h7, h17, v26.s[2]6738// CHECK-ERROR: ^6739// CHECK-ERROR: error: vector lane must be an integer in range [0, 1]6740// CHECK-ERROR: fmls d16, d22, v16.d[-1]6741// CHECK-ERROR: ^6742 6743//----------------------------------------------------------------------6744// Scalar Signed saturating doubling multiply-add long6745// (scalar, by element)6746//----------------------------------------------------------------------6747 // mismatched and invalid vector types6748 sqdmlal s0, h0, v0.s[0]6749 sqdmlal s8, s9, v14.s[1]6750 // invalid lane6751 sqdmlal d4, s5, v1.s[5]6752 // invalid vector index6753 sqdmlal s0, h0, v17.h[0]6754 6755// CHECK-ERROR: error: invalid operand for instruction6756// CHECK-ERROR: sqdmlal s0, h0, v0.s[0]6757// CHECK-ERROR: ^6758// CHECK-ERROR: error: invalid operand for instruction6759// CHECK-ERROR: sqdmlal s8, s9, v14.s[1]6760// CHECK-ERROR: ^6761// CHECK-ERROR: vector lane must be an integer in range6762// CHECK-ERROR: sqdmlal d4, s5, v1.s[5]6763// CHECK-ERROR: ^6764// CHECK-ERROR: error: invalid operand for instruction6765// CHECK-ERROR: sqdmlal s0, h0, v17.h[0]6766// CHECK-ERROR: ^6767 6768//----------------------------------------------------------------------6769// Scalar Signed saturating doubling multiply-subtract long6770// (scalar, by element)6771//----------------------------------------------------------------------6772 // mismatched and invalid vector types6773 sqdmlsl s1, h1, v1.d[0]6774 sqdmlsl d1, h1, v13.s[0]6775 // invalid lane6776 sqdmlsl d1, s1, v13.s[4]6777 // invalid vector index6778 sqdmlsl s1, h1, v20.h[7]6779 6780// CHECK-ERROR: error: invalid operand for instruction6781// CHECK-ERROR: sqdmlsl s1, h1, v1.d[0]6782// CHECK-ERROR: ^6783// CHECK-ERROR: error: invalid operand for instruction6784// CHECK-ERROR: sqdmlsl d1, h1, v13.s[0]6785// CHECK-ERROR: ^6786// CHECK-ERROR: vector lane must be an integer in range6787// CHECK-ERROR: sqdmlsl d1, s1, v13.s[4]6788// CHECK-ERROR: ^6789// CHECK-ERROR: error: invalid operand for instruction6790// CHECK-ERROR: sqdmlsl s1, h1, v20.h[7]6791// CHECK-ERROR: ^6792 6793//----------------------------------------------------------------------6794// Scalar Signed saturating doubling multiply long (scalar, by element)6795//----------------------------------------------------------------------6796 // mismatched and invalid vector types6797 // invalid lane6798 // invalid vector index6799 // mismatched and invalid vector types6800 sqdmull s1, h1, v1.s[1]6801 sqdmull s1, s1, v4.s[0]6802 // invalid lane6803 sqdmull s12, h17, v9.h[9]6804 // invalid vector index6805 sqdmull s1, h1, v16.h[5]6806 6807// CHECK-ERROR: error: invalid operand for instruction6808// CHECK-ERROR: sqdmull s1, h1, v1.s[1]6809// CHECK-ERROR: ^6810// CHECK-ERROR: error: invalid operand for instruction6811// CHECK-ERROR: sqdmull s1, s1, v4.s[0]6812// CHECK-ERROR: ^6813// CHECK-ERROR: vector lane must be an integer in range6814// CHECK-ERROR: sqdmull s12, h17, v9.h[9]6815// CHECK-ERROR: ^6816// CHECK-ERROR: error: invalid operand for instruction6817// CHECK-ERROR: sqdmull s1, h1, v16.h[5]6818// CHECK-ERROR: ^6819 6820//----------------------------------------------------------------------6821// Scalar Signed saturating doubling multiply returning6822// high half (scalar, by element)6823//----------------------------------------------------------------------6824 // mismatched and invalid vector types6825 sqdmulh h0, s1, v0.h[0]6826 sqdmulh s25, s26, v27.h[3]6827 // invalid lane6828 sqdmulh s25, s26, v27.s[4]6829 // invalid vector index6830 sqdmulh s0, h1, v30.h[0]6831 6832// CHECK-ERROR: error: invalid operand for instruction6833// CHECK-ERROR: sqdmulh h0, s1, v0.h[0]6834// CHECK-ERROR: ^6835// CHECK-ERROR: error: invalid operand for instruction6836// CHECK-ERROR: sqdmulh s25, s26, v27.h[3]6837// CHECK-ERROR: ^6838// CHECK-ERROR: vector lane must be an integer in range6839// CHECK-ERROR: sqdmulh s25, s26, v27.s[4]6840// CHECK-ERROR: ^6841// CHECK-ERROR: error: invalid operand for instruction6842// CHECK-ERROR: sqdmulh s0, h1, v30.h[0]6843// CHECK-ERROR: ^6844 6845//----------------------------------------------------------------------6846// Scalar Signed saturating rounding doubling multiply6847// returning high half (scalar, by element)6848//----------------------------------------------------------------------6849 // mismatched and invalid vector types6850 sqrdmulh h31, h30, v14.s[2]6851 sqrdmulh s5, h6, v7.s[2]6852 // invalid lane6853 sqrdmulh h31, h30, v14.h[9]6854 // invalid vector index6855 sqrdmulh h31, h30, v20.h[4]6856 6857// CHECK-ERROR: error: invalid operand for instruction6858// CHECK-ERROR: sqrdmulh h31, h30, v14.s[2]6859// CHECK-ERROR: ^6860// CHECK-ERROR: error: invalid operand for instruction6861// CHECK-ERROR: sqrdmulh s5, h6, v7.s[2]6862// CHECK-ERROR: ^6863// CHECK-ERROR: vector lane must be an integer in range6864// CHECK-ERROR: sqrdmulh h31, h30, v14.h[9]6865// CHECK-ERROR: ^6866// CHECK-ERROR: error: invalid operand for instruction6867// CHECK-ERROR: sqrdmulh h31, h30, v20.h[4]6868// CHECK-ERROR: ^6869 6870//----------------------------------------------------------------------6871// Scalar Duplicate element (scalar)6872//----------------------------------------------------------------------6873 // mismatched and invalid vector types6874 dup b0, v1.d[0]6875 dup h0, v31.b[8]6876 dup s0, v2.h[4]6877 dup d0, v17.s[3]6878 // invalid lane6879 dup d0, v17.d[4]6880 dup s0, v1.s[7]6881 dup h0, v31.h[16]6882 dup b1, v3.b[16]6883// CHECK-ERROR: error: invalid operand for instruction6884// CHECK-ERROR: dup b0, v1.d[0]6885// CHECK-ERROR: ^6886// CHECK-ERROR: error: invalid operand for instruction6887// CHECK-ERROR: dup h0, v31.b[8]6888// CHECK-ERROR: ^6889// CHECK-ERROR: error: invalid operand for instruction6890// CHECK-ERROR: dup s0, v2.h[4]6891// CHECK-ERROR: ^6892// CHECK-ERROR: error: invalid operand for instruction6893// CHECK-ERROR: dup d0, v17.s[3]6894// CHECK-ERROR: ^6895// CHECK-ERROR: vector lane must be an integer in range6896// CHECK-ERROR: dup d0, v17.d[4]6897// CHECK-ERROR: ^6898// CHECK-ERROR: vector lane must be an integer in range6899// CHECK-ERROR: dup s0, v1.s[7]6900// CHECK-ERROR: ^6901// CHECK-ERROR: vector lane must be an integer in range6902// CHECK-ERROR: dup h0, v31.h[16]6903// CHECK-ERROR: ^6904// CHECK-ERROR: vector lane must be an integer in range6905// CHECK-ERROR: dup b1, v3.b[16]6906// CHECK-ERROR: ^6907 6908//----------------------------------------------------------------------6909// Table look up6910//----------------------------------------------------------------------6911 6912 tbl v0.8b, {v1.8b}, v2.8b6913 tbl v0.8b, {v1.8b, v2.8b}, v2.8b6914 tbl v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b6915 tbl v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b6916 tbl v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b6917 tbl v0.8b, {v2.16b, v4.16b, v6.16b, v8.16b}, v10.8b6918 tbl.8b v0, {v2, v4, v6, v8}, v106919 tbl.16b v0, {v2, v4, v6, v8}, v106920 6921// CHECK-ERROR: error: invalid operand for instruction6922// CHECK-ERROR: tbl v0.8b, {v1.8b}, v2.8b6923// CHECK-ERROR: ^6924// CHECK-ERROR: error: invalid operand for instruction6925// CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b}, v2.8b6926// CHECK-ERROR: ^6927// CHECK-ERROR: error: invalid operand for instruction6928// CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b6929// CHECK-ERROR: ^6930// CHECK-ERROR: error: invalid operand for instruction6931// CHECK-ERROR: tbl v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b6932// CHECK-ERROR: ^6933// CHECK-ERROR: error: invalid number of vectors6934// CHECK-ERROR: tbl v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b6935// CHECK-ERROR: ^6936// CHECK-ERROR: error: invalid operand for instruction6937// CHECK-ERROR: tbl v0.8b, {v2.16b, v4.16b, v6.16b, v8.16b}, v10.8b6938// CHECK-ERROR: ^6939// CHECK-ERROR: error: invalid operand for instruction6940// CHECK-ERROR: tbl.8b v0, {v2, v4, v6, v8}, v106941// CHECK-ERROR: ^6942// CHECK-ERROR: error: invalid operand for instruction6943// CHECK-ERROR: tbl.16b v0, {v2, v4, v6, v8}, v106944// CHECK-ERROR: ^6945 6946 tbx v0.8b, {v1.8b}, v2.8b6947 tbx v0.8b, {v1.8b, v2.8b}, v2.8b6948 tbx v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b6949 tbx v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b6950 tbx v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b6951 tbx v0.8b, {v2.16b, v4.16b, v6.16b, v8.16b}, v10.8b6952 tbx.8b v0, {v2, v4, v6, v8}, v106953 tbx.16b v0, {v2, v4, v6, v8}, v106954 6955// CHECK-ERROR: error: invalid operand for instruction6956// CHECK-ERROR: tbx v0.8b, {v1.8b}, v2.8b6957// CHECK-ERROR: ^6958// CHECK-ERROR: error: invalid operand for instruction6959// CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b}, v2.8b6960// CHECK-ERROR: ^6961// CHECK-ERROR: error: invalid operand for instruction6962// CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b, v3.8b}, v2.8b6963// CHECK-ERROR: ^6964// CHECK-ERROR: error: invalid operand for instruction6965// CHECK-ERROR: tbx v0.8b, {v1.8b, v2.8b, v3.8b, v4.8b}, v2.8b6966// CHECK-ERROR: ^6967// CHECK-ERROR: error: invalid number of vectors6968// CHECK-ERROR: tbx v0.8b, {v1.16b, v2.16b, v3.16b, v4.16b, v5.16b}, v2.8b6969// CHECK-ERROR: ^6970// CHECK-ERROR: error: invalid operand for instruction6971// CHECK-ERROR: tbx v0.8b, {v2.16b, v4.16b, v6.16b, v8.16b}, v10.8b6972// CHECK-ERROR: ^6973// CHECK-ERROR: error: invalid operand for instruction6974// CHECK-ERROR: tbx.8b v0, {v2, v4, v6, v8}, v106975// CHECK-ERROR: ^6976// CHECK-ERROR: error: invalid operand for instruction6977// CHECK-ERROR: tbx.16b v0, {v2, v4, v6, v8}, v106978// CHECK-ERROR: ^6979 6980//----------------------------------------------------------------------6981// Scalar Floating-point Convert To Lower Precision Narrow, Rounding To6982// Odd6983//----------------------------------------------------------------------6984 6985 fcvtxn s0, s16986 6987// CHECK-ERROR: error: invalid operand for instruction6988// CHECK-ERROR: fcvtxn s0, s16989// CHECK-ERROR: ^6990 6991//----------------------------------------------------------------------6992// Scalar Floating-point Convert To Signed Integer, Rounding To Nearest6993// With Ties To Away6994//----------------------------------------------------------------------6995 6996 fcvtas h0, d06997 fcvtas h0, s06998 6999// CHECK-ERROR: error: invalid operand for instruction7000// CHECK-ERROR: fcvtas h0, d07001// CHECK-ERROR: ^7002// CHECK-ERROR: error: invalid operand for instruction7003// CHECK-ERROR: fcvtas h0, s07004// CHECK-ERROR: ^7005 7006//----------------------------------------------------------------------7007// Scalar Floating-point Convert To Unsigned Integer, Rounding To7008// Nearest With Ties To Away7009//----------------------------------------------------------------------7010 7011 fcvtau h0, d07012 fcvtau h0, s07013 7014// CHECK-ERROR: error: invalid operand for instruction7015// CHECK-ERROR: fcvtau h0, d07016// CHECK-ERROR: ^7017// CHECK-ERROR: error: invalid operand for instruction7018// CHECK-ERROR: fcvtau h0, s07019// CHECK-ERROR: ^7020 7021//----------------------------------------------------------------------7022// Scalar Floating-point Convert To Signed Integer, Rounding Toward7023// Minus Infinity7024//----------------------------------------------------------------------7025 7026 fcvtms h0, d07027 fcvtms h0, s07028 7029// CHECK-ERROR: error: invalid operand for instruction7030// CHECK-ERROR: fcvtms h0, d07031// CHECK-ERROR: ^7032// CHECK-ERROR: error: invalid operand for instruction7033// CHECK-ERROR: fcvtms h0, s07034// CHECK-ERROR: ^7035 7036//----------------------------------------------------------------------7037// Scalar Floating-point Convert To Unsigned Integer, Rounding Toward7038// Minus Infinity7039//----------------------------------------------------------------------7040 7041 fcvtmu h0, d07042 fcvtmu h0, s07043 7044// CHECK-ERROR: error: invalid operand for instruction7045// CHECK-ERROR: fcvtmu h0, d07046// CHECK-ERROR: ^7047// CHECK-ERROR: error: invalid operand for instruction7048// CHECK-ERROR: fcvtmu h0, s07049// CHECK-ERROR: ^7050 7051//----------------------------------------------------------------------7052// Scalar Floating-point Convert To Signed Integer, Rounding To Nearest7053// With Ties To Even7054//----------------------------------------------------------------------7055 7056 fcvtns h0, d07057 fcvtns h0, s07058 7059// CHECK-ERROR: error: invalid operand for instruction7060// CHECK-ERROR: fcvtns h0, d07061// CHECK-ERROR: ^7062// CHECK-ERROR: error: invalid operand for instruction7063// CHECK-ERROR: fcvtns h0, s07064// CHECK-ERROR: ^7065 7066//----------------------------------------------------------------------7067// Scalar Floating-point Convert To Unsigned Integer, Rounding To7068// Nearest With Ties To Even7069//----------------------------------------------------------------------7070 7071 fcvtnu h0, d07072 fcvtnu h0, s07073 7074// CHECK-ERROR: error: invalid operand for instruction7075// CHECK-ERROR: fcvtnu h0, d07076// CHECK-ERROR: ^7077// CHECK-ERROR: error: invalid operand for instruction7078// CHECK-ERROR: fcvtnu h0, s07079// CHECK-ERROR: ^7080 7081//----------------------------------------------------------------------7082// Scalar Floating-point Convert To Signed Integer, Rounding Toward7083// Positive Infinity7084//----------------------------------------------------------------------7085 7086 fcvtps h0, d07087 fcvtps h0, s07088 7089// CHECK-ERROR: error: invalid operand for instruction7090// CHECK-ERROR: fcvtps h0, d07091// CHECK-ERROR: ^7092// CHECK-ERROR: error: invalid operand for instruction7093// CHECK-ERROR: fcvtps h0, s07094// CHECK-ERROR: ^7095 7096//----------------------------------------------------------------------7097// Scalar Floating-point Convert To Unsigned Integer, Rounding Toward7098// Positive Infinity7099//----------------------------------------------------------------------7100 7101 fcvtpu h0, d07102 fcvtpu h0, s07103 7104// CHECK-ERROR: error: invalid operand for instruction7105// CHECK-ERROR: fcvtpu h0, d07106// CHECK-ERROR: ^7107// CHECK-ERROR: error: invalid operand for instruction7108// CHECK-ERROR: fcvtpu h0, s07109// CHECK-ERROR: ^7110 7111//----------------------------------------------------------------------7112// Scalar Floating-point Convert To Signed Integer, Rounding Toward Zero7113//----------------------------------------------------------------------7114 7115 fcvtzs h0, d07116 fcvtzs h0, s07117 7118// CHECK-ERROR: error: invalid operand for instruction7119// CHECK-ERROR: fcvtzs h0, d07120// CHECK-ERROR: ^7121// CHECK-ERROR: error: invalid operand for instruction7122// CHECK-ERROR: fcvtzs h0, s07123// CHECK-ERROR: ^7124 7125//----------------------------------------------------------------------7126// Scalar Floating-point Convert To Unsigned Integer, Rounding Toward 7127// Zero7128//----------------------------------------------------------------------7129 7130 fcvtzu h0, d07131 fcvtzu h0, s07132 7133// CHECK-ERROR: error: invalid operand for instruction7134// CHECK-ERROR: fcvtzu h0, d07135// CHECK-ERROR: ^7136// CHECK-ERROR: error: invalid operand for instruction7137// CHECK-ERROR: fcvtzu h0, s07138// CHECK-ERROR: ^7139 7140//----------------------------------------------------------------------7141// Scalar Floating-point Absolute Difference7142//----------------------------------------------------------------------7143 7144 7145 fabd s29, d24, s207146 fabd d29, s24, d207147 7148// CHECK-ERROR: error: invalid operand for instruction7149// CHECK-ERROR: fabd s29, d24, s207150// CHECK-ERROR: ^7151// CHECK-ERROR: error: invalid operand for instruction7152// CHECK-ERROR: fabd d29, s24, d207153// CHECK-ERROR: ^7154