2638 lines · plain
1# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -disassemble < %s | FileCheck %s2# RUN: llvm-mc -triple arm64-none-linux-gnu -mattr=+neon -disassemble < %s | FileCheck %s3 4#------------------------------------------------------------------------------5# Vector Integer Add/Sub6#------------------------------------------------------------------------------7# CHECK: add v31.8b, v31.8b, v31.8b8# CHECK: sub v0.2d, v0.2d, v0.2d90xff 0x87 0x3f 0x0e100x00 0x84 0xe0 0x6e11 12#------------------------------------------------------------------------------13# Vector Floating-Point Add/Sub14#------------------------------------------------------------------------------15 16# CHECK: fadd v0.4s, v0.4s, v0.4s17# CHECK: fsub v31.2s, v31.2s, v31.2s180x00 0xd4 0x20 0x4e190xff 0xd7 0xbf 0x0e20 21#------------------------------------------------------------------------------22# Vector Integer Mul23#------------------------------------------------------------------------------24# CHECK: mul v0.8b, v1.8b, v2.8b250x20 0x9c 0x22 0x0e26 27#------------------------------------------------------------------------------28# Vector Floating-Point Mul/Div29#------------------------------------------------------------------------------30# CHECK: fmul v0.2s, v1.2s, v2.2s31# CHECK: fdiv v31.2s, v31.2s, v31.2s320x20 0xdc 0x22 0x2e330xff 0xff 0x3f 0x2e34 35#----------------------------------------------------------------------36# Vector Polynomial Multiply37#----------------------------------------------------------------------38# CHECK: pmul v0.8b, v15.8b, v16.8b39# CHECK: pmul v31.16b, v7.16b, v8.16b400xe0 0x9d 0x30 0x2e410xff 0x9c 0x28 0x6e42 43#------------------------------------------------------------------------------44# Vector And, Orr, Eor, Orn, Bic45#------------------------------------------------------------------------------46# CHECK: and v2.8b, v2.8b, v2.8b47# CHECK: orr v31.16b, v31.16b, v30.16b48# CHECK: eor v0.16b, v1.16b, v2.16b49# CHECK: orn v9.16b, v10.16b, v11.16b50# CHECK: bic v31.8b, v30.8b, v29.8b510x42 0x1c 0x22 0x0e520xff 0x1f 0xbe 0x4e530x20 0x1c 0x22 0x6e540x49 0x1d 0xeb 0x4e550xdf 0x1f 0x7d 0x0e56 57#------------------------------------------------------------------------------58# Vector Bsl, Bit, Bif59#------------------------------------------------------------------------------60# CHECK: bsl v0.8b, v1.8b, v2.8b61# CHECK: bit v31.16b, v31.16b, v31.16b62# CHECK: bif v0.16b, v1.16b, v2.16b630x20 0x1c 0x62 0x2e640xff 0x1f 0xbf 0x6e650x20 0x1c 0xe2 0x6e66 67 68#------------------------------------------------------------------------------69# Vector Integer Multiply-accumulate and Multiply-subtract70#------------------------------------------------------------------------------71# CHECK: mla v0.8b, v1.8b, v2.8b72# CHECK: mls v31.4h, v31.4h, v31.4h730x20 0x94 0x22 0x0e740xff 0x97 0x7f 0x2e75 76#------------------------------------------------------------------------------77# Vector Floating-Point Multiply-accumulate and Multiply-subtract78#------------------------------------------------------------------------------79# CHECK: fmla v0.2s, v1.2s, v2.2s80# CHECK: fmls v31.2s, v31.2s, v31.2s810x20 0xcc 0x22 0x0e820xff 0xcf 0xbf 0x0e83 84#------------------------------------------------------------------------------85# Vector Move Immediate Shifted86# Vector Move Inverted Immediate Shifted87# Vector Bitwise Bit Clear (AND NOT) - immediate88# Vector Bitwise OR - immedidate89#------------------------------------------------------------------------------90# CHECK: movi v31.4s, #255, lsl #2491# CHECK: mvni v0.2s, #{{0x0|0}}92# CHECK: bic v15.4h, #15, lsl #893# CHECK: orr v16.8h, #31940xff 0x67 0x07 0x4f950x00 0x04 0x00 0x2f960xef 0xb5 0x00 0x2f970xf0 0x97 0x00 0x4f98 99#------------------------------------------------------------------------------100# Vector Move Immediate Masked101# Vector Move Inverted Immediate Masked102#------------------------------------------------------------------------------103# CHECK: movi v8.2s, #8, msl #8104# CHECK: mvni v16.4s, #16, msl #161050x08 0xc5 0x00 0x0f1060x10 0xd6 0x00 0x6f107 108#------------------------------------------------------------------------------109# Vector Immediate - per byte110# Vector Move Immediate - bytemask, per doubleword111# Vector Move Immediate - bytemask, one doubleword112#------------------------------------------------------------------------------113# CHECK: movi v16.8b, #255114# CHECK: movi v31.16b, #31115# CHECK: movi d15, #0xff00ff00ff00ff116# CHECK: movi v31.2d, #0xff0000ff0000ffff1170xf0 0xe7 0x07 0x0f1180xff 0xe7 0x00 0x4f1190xaf 0xe6 0x02 0x2f1200x7f 0xe6 0x04 0x6f121 122#------------------------------------------------------------------------------123# Vector Floating Point Move Immediate124#------------------------------------------------------------------------------125# CHECK: fmov v0.2s, #13.0126# CHECK: fmov v15.4s, #1.0127# CHECK: fmov v31.2d, #-1.251280x40 0xf5 0x01 0x0f1290x0f 0xf6 0x03 0x4f1300x9f 0xf6 0x07 0x6f131 132#------------------------------------------------------------------------------133# Vector Move - register134#------------------------------------------------------------------------------135 136# CHECK: mov v1.16b, v15.16b137# CHECK: mov v25.8b, v4.8b1380xe1 0x1d 0xaf 0x4e1390x99 0x1c 0xa4 0x0e140 141#----------------------------------------------------------------------142# Vector Absolute Difference and Accumulate (Signed, Unsigned)143# Vector Absolute Difference (Signed, Unsigned)144# Vector Absolute Difference (Floating Point)145#----------------------------------------------------------------------146 147# CHECK: uaba v0.8b, v1.8b, v2.8b148# CHECK: saba v31.16b, v30.16b, v29.16b149# CHECK: uabd v15.4h, v16.4h, v17.4h150# CHECK: sabd v5.4h, v4.4h, v6.4h151# CHECK: fabd v1.4s, v31.4s, v16.4s1520x20 0x7c 0x22 0x2e1530xdf 0x7f 0x3d 0x4e1540x0f 0x76 0x71 0x2e1550x85 0x74 0x66 0x0e1560xe1 0xd7 0xb0 0x6e157 158#----------------------------------------------------------------------159# Scalar Integer Add160# Scalar Integer Sub161#----------------------------------------------------------------------162 163# CHECK: add d17, d31, d29164# CHECK: sub d15, d5, d161650xf1 0x87 0xfd 0x5e1660xaf 0x84 0xf0 0x7e167 168#----------------------------------------------------------------------169# Vector Reciprocal Square Root Step (Floating Point)170#----------------------------------------------------------------------171# CHECK: frsqrts v31.2d, v15.2d, v8.2d1720xff 0xfd 0xe8 0x4e173 174#----------------------------------------------------------------------175# Vector Reciprocal Step (Floating Point)176#----------------------------------------------------------------------177# CHECK: frecps v5.4s, v7.4s, v16.4s1780xe5 0xfc 0x30 0x4e179 180#----------------------------------------------------------------------181# Vector Absolute Compare Mask Less Than Or Equal (Floating Point)182#----------------------------------------------------------------------183# CHECK: facge v0.4s, v31.4s, v16.4s1840xe0 0xef 0x30 0x6e185 186#----------------------------------------------------------------------187# Vector Absolute Compare Mask Less Than (Floating Point)188#----------------------------------------------------------------------189# CHECK: facgt v31.2d, v29.2d, v28.2d1900xbf 0xef 0xfc 0x6e191 192#----------------------------------------------------------------------193# Vector Compare Mask Equal (Integer)194#----------------------------------------------------------------------195# CHECK: cmeq v5.16b, v15.16b, v31.16b1960xe5 0x8d 0x3f 0x6e197 198#----------------------------------------------------------------------199# Vector Compare Mask Higher or Same (Unsigned Integer)200#----------------------------------------------------------------------201# CHECK: cmhs v1.8b, v16.8b, v30.8b2020x01 0x3e 0x3e 0x2e203 204#----------------------------------------------------------------------205# Vector Compare Mask Greater Than or Equal (Integer)206#----------------------------------------------------------------------207# CHECK: cmge v20.4h, v11.4h, v23.4h2080x74 0x3d 0x77 0x0e209 210#----------------------------------------------------------------------211# Vector Compare Mask Higher (Unsigned Integer)212# CHECK: cmhi v13.8h, v3.8h, v27.8h2130x6d 0x34 0x7b 0x6e214 215#----------------------------------------------------------------------216# Vector Compare Mask Greater Than (Integer)217#----------------------------------------------------------------------218# CHECK: cmgt v9.4s, v4.4s, v28.4s2190x89 0x34 0xbc 0x4e220 221#----------------------------------------------------------------------222# Vector Compare Mask Bitwise Test (Integer)223#----------------------------------------------------------------------224# CHECK: cmtst v21.2s, v19.2s, v18.2s2250x75 0x8e 0xb2 0x0e226 227#----------------------------------------------------------------------228# Vector Compare Mask Equal (Floating Point)229#----------------------------------------------------------------------230# CHECK: fcmeq v0.2s, v15.2s, v16.2s2310xe0 0xe5 0x30 0x0e232 233#----------------------------------------------------------------------234# Vector Compare Mask Greater Than Or Equal (Floating Point)235#----------------------------------------------------------------------236# CHECK: fcmge v31.4s, v7.4s, v29.4s2370xff 0xe4 0x3d 0x6e238 239#----------------------------------------------------------------------240# Vector Compare Mask Greater Than (Floating Point)241#----------------------------------------------------------------------242# CHECK: fcmgt v17.4s, v8.4s, v25.4s2430x11 0xe5 0xb9 0x6e244 245#----------------------------------------------------------------------246# Vector Compare Mask Equal to Zero (Integer)247#----------------------------------------------------------------------248# CHECK: cmeq v31.16b, v15.16b, #{{0x0|0}}2490xff 0x99 0x20 0x4e250 251#----------------------------------------------------------------------252# Vector Compare Mask Greater Than or Equal to Zero (Signed Integer)253#----------------------------------------------------------------------254# CHECK: cmge v3.8b, v15.8b, #{{0x0|0}}2550xe3 0x89 0x20 0x2e256 257#----------------------------------------------------------------------258# Vector Compare Mask Greater Than Zero (Signed Integer)259#----------------------------------------------------------------------260# CHECK: cmgt v22.2s, v9.2s, #{{0x0|0}}2610x36 0x89 0xa0 0x0e262 263#----------------------------------------------------------------------264# Vector Compare Mask Less Than or Equal To Zero (Signed Integer)265#----------------------------------------------------------------------266# CHECK: cmle v5.2d, v14.2d, #{{0x0|0}}2670xc5 0x99 0xe0 0x6e268 269#----------------------------------------------------------------------270# Vector Compare Mask Less Than Zero (Signed Integer)271#----------------------------------------------------------------------272# CHECK: cmlt v13.8h, v11.8h, #{{0x0|0}}2730x6d 0xa9 0x60 0x4e274 275#----------------------------------------------------------------------276# Vector Compare Mask Equal to Zero (Floating Point)277#----------------------------------------------------------------------278# CHECK: fcmeq v15.2s, v21.2s, #0.02790xaf 0xda 0xa0 0x0e280 281#----------------------------------------------------------------------282# Vector Compare Mask Greater Than or Equal to Zero (Floating Point)283#----------------------------------------------------------------------284# CHECK: fcmge v14.2d, v13.2d, #0.02850xae 0xc9 0xe0 0x6e286 287#----------------------------------------------------------------------288# Vector Compare Mask Greater Than Zero (Floating Point)289#----------------------------------------------------------------------290# CHECK: fcmgt v9.4s, v23.4s, #0.02910xe9 0xca 0xa0 0x4e292 293#----------------------------------------------------------------------294# Vector Compare Mask Less Than or Equal To Zero (Floating Point)295#----------------------------------------------------------------------296# CHECK: fcmle v11.2d, v6.2d, #0.02970xcb 0xd8 0xe0 0x6e298 299#----------------------------------------------------------------------300# Vector Compare Mask Less Than Zero (Floating Point)301#----------------------------------------------------------------------302# CHECK: fcmlt v12.4s, v25.4s, #0.03030x2c 0xeb 0xa0 0x4e304 305 306#------------------------------------------------------------------------------307# Vector Integer Halving Add (Signed)308# Vector Integer Halving Add (Unsigned)309# Vector Integer Halving Sub (Signed)310# Vector Integer Halving Sub (Unsigned)311#------------------------------------------------------------------------------312# CHECK: shadd v0.8b, v31.8b, v29.8b313# CHECK: uhadd v15.16b, v16.16b, v17.16b314# CHECK: shsub v0.4h, v1.4h, v2.4h315# CHECK: uhadd v5.8h, v7.8h, v8.8h316# CHECK: shsub v9.2s, v11.2s, v21.2s317# CHECK: uhsub v22.4s, v30.4s, v19.4s3180xe0 0x07 0x3d 0x0e3190x0f 0x06 0x31 0x6e3200x20 0x24 0x62 0x0e3210xe5 0x04 0x68 0x6e3220x69 0x25 0xb5 0x0e3230xd6 0x27 0xb3 0x6e324 325#------------------------------------------------------------------------------326# Vector Integer Rouding Halving Add (Signed)327# Vector Integer Rouding Halving Add (Unsigned)328#------------------------------------------------------------------------------329# CHECK: srhadd v3.8b, v5.8b, v7.8b330# CHECK: urhadd v7.16b, v17.16b, v27.16b331# CHECK: srhadd v10.4h, v11.4h, v13.4h332# CHECK: urhadd v1.8h, v2.8h, v3.8h333# CHECK: srhadd v4.2s, v5.2s, v6.2s334# CHECK: urhadd v7.4s, v7.4s, v7.4s3350xa3 0x14 0x27 0x0e3360x27 0x16 0x3b 0x6e3370x6a 0x15 0x6d 0x0e3380x41 0x14 0x63 0x6e3390xa4 0x14 0xa6 0x0e3400xe7 0x14 0xa7 0x6e341 342#------------------------------------------------------------------------------343# Vector Integer Saturating Add (Signed)344# Vector Integer Saturating Add (Unsigned)345# Vector Integer Saturating Sub (Signed)346# Vector Integer Saturating Sub (Unsigned)347#------------------------------------------------------------------------------348# CHECK: sqsub v0.8b, v1.8b, v2.8b349# CHECK: sqadd v0.16b, v1.16b, v2.16b350# CHECK: uqsub v0.4h, v1.4h, v2.4h351# CHECK: uqadd v0.8h, v1.8h, v2.8h352# CHECK: sqadd v0.2s, v1.2s, v2.2s353# CHECK: sqsub v0.4s, v1.4s, v2.4s354# CHECK: sqsub v0.2d, v1.2d, v2.2d3550x20 0x2c 0x22 0x0e3560x20 0x0c 0x22 0x4e3570x20 0x2c 0x62 0x2e3580x20 0x0c 0x62 0x6e3590x20 0x0c 0xa2 0x0e3600x20 0x2c 0xa2 0x4e3610x20 0x2c 0xe2 0x4e362 363#------------------------------------------------------------------------------364# Scalar Integer Saturating Add (Signed)365# Scalar Integer Saturating Add (Unsigned)366# Scalar Integer Saturating Sub (Signed)367# Scalar Integer Saturating Add (Unsigned)368#------------------------------------------------------------------------------369# CHECK: sqadd b20, b11, b15370# CHECK: uqadd h0, h1, h5371# CHECK: sqsub s20, s10, s7372# CHECK: uqsub d16, d16, d163730x74 0x0d 0x2f 0x5e3740x20 0x0c 0x65 0x7e3750x54 0x2d 0xa7 0x5e3760x10 0x2e 0xf0 0x7e377 378 379#----------------------------------------------------------------------380# Vector Shift Left (Signed and Unsigned Integer)381#----------------------------------------------------------------------382# CHECK: sshl v10.8b, v15.8b, v22.8b383# CHECK: ushl v10.16b, v5.16b, v2.16b384# CHECK: sshl v10.4h, v15.4h, v22.4h385# CHECK: ushl v10.8h, v5.8h, v2.8h386# CHECK: sshl v10.2s, v15.2s, v22.2s387# CHECK: ushl v10.4s, v5.4s, v2.4s388# CHECK: sshl v0.2d, v1.2d, v2.2d3890xea 0x45 0x36 0x0e3900xaa 0x44 0x22 0x6e3910xea 0x45 0x76 0x0e3920xaa 0x44 0x62 0x6e3930xea 0x45 0xb6 0x0e3940xaa 0x44 0xa2 0x6e3950x20 0x44 0xe2 0x4e396 397#----------------------------------------------------------------------398# Vector Saturating Shift Left (Signed and Unsigned Integer)399#----------------------------------------------------------------------400# CHECK: sqshl v1.8b, v15.8b, v22.8b401# CHECK: uqshl v2.16b, v14.16b, v23.16b402# CHECK: sqshl v3.4h, v13.4h, v24.4h403# CHECK: uqshl v4.8h, v12.8h, v25.8h404# CHECK: sqshl v5.2s, v11.2s, v26.2s405# CHECK: uqshl v6.4s, v10.4s, v27.4s406# CHECK: uqshl v0.2d, v1.2d, v2.2d4070xe1 0x4d 0x36 0x0e4080xc2 0x4d 0x37 0x6e4090xa3 0x4d 0x78 0x0e4100x84 0x4d 0x79 0x6e4110x65 0x4d 0xba 0x0e4120x46 0x4d 0xbb 0x6e4130x20 0x4c 0xe2 0x6e414 415#----------------------------------------------------------------------416# Vector Rouding Shift Left (Signed and Unsigned Integer)417#----------------------------------------------------------------------418# CHECK: srshl v10.8b, v5.8b, v22.8b419# CHECK: urshl v10.16b, v5.16b, v2.16b420# CHECK: srshl v1.4h, v5.4h, v31.4h421# CHECK: urshl v1.8h, v5.8h, v2.8h422# CHECK: srshl v10.2s, v15.2s, v2.2s423# CHECK: urshl v1.4s, v5.4s, v2.4s424# CHECK: urshl v0.2d, v1.2d, v2.2d4250xaa 0x54 0x36 0x0e4260xaa 0x54 0x22 0x6e4270xa1 0x54 0x7f 0x0e4280xa1 0x54 0x62 0x6e4290xea 0x55 0xa2 0x0e4300xa1 0x54 0xa2 0x6e4310x20 0x54 0xe2 0x6e432 433#----------------------------------------------------------------------434# Vector Saturating Rouding Shift Left (Signed and Unsigned Integer)435#----------------------------------------------------------------------436# CHECK: sqrshl v1.8b, v15.8b, v22.8b437# CHECK: uqrshl v2.16b, v14.16b, v23.16b438# CHECK: sqrshl v3.4h, v13.4h, v24.4h439# CHECK: uqrshl v4.8h, v12.8h, v25.8h440# CHECK: sqrshl v5.2s, v11.2s, v26.2s441# CHECK: uqrshl v6.4s, v10.4s, v27.4s442# CHECK: uqrshl v6.4s, v10.4s, v27.4s4430xe1 0x5d 0x36 0x0e4440xc2 0x5d 0x37 0x6e4450xa3 0x5d 0x78 0x0e4460x84 0x5d 0x79 0x6e4470x65 0x5d 0xba 0x0e4480x46 0x5d 0xbb 0x6e4490x46 0x5d 0xbb 0x6e450 451#----------------------------------------------------------------------452# Scalar Integer Shift Left (Signed, Unsigned)453#----------------------------------------------------------------------454# CHECK: sshl d31, d31, d31455# CHECK: ushl d0, d0, d04560xff 0x47 0xff 0x5e4570x00 0x44 0xe0 0x7e458 459#----------------------------------------------------------------------460# Scalar Integer Saturating Shift Left (Signed, Unsigned)461#----------------------------------------------------------------------462# CHECK: sqshl d31, d31, d31463# CHECK: uqshl s23, s20, s16464# CHECK: sqshl h3, h4, h15465# CHECK: uqshl b11, b20, b304660xff 0x4f 0xff 0x5e4670x97 0x4e 0xb0 0x7e4680x83 0x4c 0x6f 0x5e4690x8b 0x4e 0x3e 0x7e470 471#----------------------------------------------------------------------472# Scalar Integer Rouding Shift Left (Signed, Unsigned)473#----------------------------------------------------------------------474# CHECK: srshl d16, d16, d16475# CHECK: urshl d8, d7, d44760x10 0x56 0xf0 0x5e4770xe8 0x54 0xe4 0x7e478 479#----------------------------------------------------------------------480# Scalar Integer Saturating Rounding Shift Left (Signed, Unsigned)481#----------------------------------------------------------------------482# CHECK: sqrshl d31, d31, d31483# CHECK: uqrshl s23, s20, s16484# CHECK: sqrshl h3, h4, h15485# CHECK: uqrshl b11, b20, b304860xff 0x5f 0xff 0x5e4870x97 0x5e 0xb0 0x7e4880x83 0x5c 0x6f 0x5e4890x8b 0x5e 0x3e 0x7e490 491#----------------------------------------------------------------------492# Vector Maximum (Signed and Unsigned Integer)493#----------------------------------------------------------------------494# CHECK: smax v1.8b, v15.8b, v22.8b495# CHECK: umax v2.16b, v14.16b, v23.16b496# CHECK: smax v3.4h, v13.4h, v24.4h497# CHECK: umax v4.8h, v12.8h, v25.8h498# CHECK: smax v5.2s, v11.2s, v26.2s499# CHECK: umax v6.4s, v10.4s, v27.4s5000xe1 0x65 0x36 0x0e5010xc2 0x65 0x37 0x6e5020xa3 0x65 0x78 0x0e5030x84 0x65 0x79 0x6e5040x65 0x65 0xba 0x0e5050x46 0x65 0xbb 0x6e506 507#----------------------------------------------------------------------508# Vector Minimum (Signed and Unsigned Integer)509#----------------------------------------------------------------------510# CHECK: umin v1.8b, v15.8b, v22.8b511# CHECK: smin v2.16b, v14.16b, v23.16b512# CHECK: umin v3.4h, v13.4h, v24.4h513# CHECK: smin v4.8h, v12.8h, v25.8h514# CHECK: umin v5.2s, v11.2s, v26.2s515# CHECK: smin v6.4s, v10.4s, v27.4s5160xe1 0x6d 0x36 0x2e5170xc2 0x6d 0x37 0x4e5180xa3 0x6d 0x78 0x2e5190x84 0x6d 0x79 0x4e5200x65 0x6d 0xba 0x2e5210x46 0x6d 0xbb 0x4e522 523#----------------------------------------------------------------------524# Vector Maximum (Floating Point)525#----------------------------------------------------------------------526# CHECK: fmax v29.2s, v28.2s, v25.2s527# CHECK: fmax v9.4s, v8.4s, v5.4s528# CHECK: fmax v11.2d, v10.2d, v7.2d5290x9d 0xf7 0x39 0x0e5300x09 0xf5 0x25 0x4e5310x4b 0xf5 0x67 0x4e532 533#----------------------------------------------------------------------534# Vector Minimum (Floating Point)535#----------------------------------------------------------------------536# CHECK: fmin v29.2s, v28.2s, v25.2s537# CHECK: fmin v9.4s, v8.4s, v5.4s538# CHECK: fmin v11.2d, v10.2d, v7.2d5390x9d 0xf7 0xb9 0x0e5400x09 0xf5 0xa5 0x4e5410x4b 0xf5 0xe7 0x4e542 543#----------------------------------------------------------------------544# Vector maxNum (Floating Point)545#----------------------------------------------------------------------546# CHECK: fmaxnm v9.2s, v8.2s, v5.2s547# CHECK: fmaxnm v9.4s, v8.4s, v5.4s548# CHECK: fmaxnm v11.2d, v10.2d, v7.2d5490x09 0xc5 0x25 0x0e5500x09 0xc5 0x25 0x4e5510x4b 0xc5 0x67 0x4e552 553#----------------------------------------------------------------------554# Vector minNum (Floating Point)555#----------------------------------------------------------------------556# CHECK: fminnm v2.2s, v8.2s, v25.2s557# CHECK: fminnm v9.4s, v8.4s, v5.4s558# CHECK: fminnm v11.2d, v10.2d, v7.2d5590x02 0xc5 0xb9 0x0e5600x09 0xc5 0xa5 0x4e5610x4b 0xc5 0xe7 0x4e562 563 564#----------------------------------------------------------------------565# Vector Maximum Pairwise (Signed and Unsigned Integer)566#----------------------------------------------------------------------567# CHECK: smaxp v1.8b, v15.8b, v22.8b568# CHECK: umaxp v2.16b, v14.16b, v23.16b569# CHECK: smaxp v3.4h, v13.4h, v24.4h570# CHECK: umaxp v4.8h, v12.8h, v25.8h571# CHECK: smaxp v5.2s, v11.2s, v26.2s572# CHECK: umaxp v6.4s, v10.4s, v27.4s5730xe1 0xa5 0x36 0x0e5740xc2 0xa5 0x37 0x6e5750xa3 0xa5 0x78 0x0e5760x84 0xa5 0x79 0x6e5770x65 0xa5 0xba 0x0e5780x46 0xa5 0xbb 0x6e579 580#----------------------------------------------------------------------581# Vector Minimum Pairwise (Signed and Unsigned Integer)582#----------------------------------------------------------------------583# CHECK: uminp v1.8b, v15.8b, v22.8b584# CHECK: sminp v2.16b, v14.16b, v23.16b585# CHECK: uminp v3.4h, v13.4h, v24.4h586# CHECK: sminp v4.8h, v12.8h, v25.8h587# CHECK: uminp v5.2s, v11.2s, v26.2s588# CHECK: sminp v6.4s, v10.4s, v27.4s5890xe1 0xad 0x36 0x2e5900xc2 0xad 0x37 0x4e5910xa3 0xad 0x78 0x2e5920x84 0xad 0x79 0x4e5930x65 0xad 0xba 0x2e5940x46 0xad 0xbb 0x4e595 596#----------------------------------------------------------------------597# Vector Maximum Pairwise (Floating Point)598#----------------------------------------------------------------------599# CHECK: fmaxp v29.2s, v28.2s, v25.2s600# CHECK: fmaxp v9.4s, v8.4s, v5.4s601# CHECK: fmaxp v11.2d, v10.2d, v7.2d6020x9d 0xf7 0x39 0x2e6030x09 0xf5 0x25 0x6e6040x4b 0xf5 0x67 0x6e605 606#----------------------------------------------------------------------607# Vector Minimum Pairwise (Floating Point)608#----------------------------------------------------------------------609# CHECK: fminp v29.2s, v28.2s, v25.2s610# CHECK: fminp v9.4s, v8.4s, v5.4s611# CHECK: fminp v11.2d, v10.2d, v7.2d6120x9d 0xf7 0xb9 0x2e6130x09 0xf5 0xa5 0x6e6140x4b 0xf5 0xe7 0x6e615 616#----------------------------------------------------------------------617# Vector maxNum Pairwise (Floating Point)618#----------------------------------------------------------------------619# CHECK: fmaxnmp v9.2s, v8.2s, v5.2s620# CHECK: fmaxnmp v9.4s, v8.4s, v5.4s621# CHECK: fmaxnmp v11.2d, v10.2d, v7.2d6220x09 0xc5 0x25 0x2e6230x09 0xc5 0x25 0x6e6240x4b 0xc5 0x67 0x6e625 626#----------------------------------------------------------------------627# Vector minNum Pairwise (Floating Point)628#----------------------------------------------------------------------629# CHECK: fminnmp v2.2s, v8.2s, v25.2s630# CHECK: fminnmp v9.4s, v8.4s, v5.4s631# CHECK: fminnmp v11.2d, v10.2d, v7.2d6320x02 0xc5 0xb9 0x2e6330x09 0xc5 0xa5 0x6e6340x4b 0xc5 0xe7 0x6e635 636#------------------------------------------------------------------------------637# Vector Add Pairwise (Integer)638#------------------------------------------------------------------------------639# CHECK: addp v31.8b, v31.8b, v31.8b640# CHECK: addp v0.2d, v0.2d, v0.2d6410xff 0xbf 0x3f 0x0e6420x00 0xbc 0xe0 0x4e643 644#------------------------------------------------------------------------------645# Vector Add Pairwise (Floating Point)646#------------------------------------------------------------------------------647# CHECK: faddp v0.4s, v0.4s, v0.4s648# CHECK: faddp v31.2s, v31.2s, v31.2s6490x00 0xd4 0x20 0x6e6500xff 0xd7 0x3f 0x2e651 652 653#------------------------------------------------------------------------------654# Vector Saturating Doubling Multiply High655# Vector Saturating Rouding Doubling Multiply High656#------------------------------------------------------------------------------657# CHECK: sqdmulh v31.2s, v31.2s, v31.2s658# CHECK: sqdmulh v5.4s, v7.4s, v9.4s659# CHECK: sqrdmulh v31.4h, v3.4h, v13.4h660# CHECK: sqrdmulh v0.8h, v10.8h, v20.8h6610xff 0xb7 0xbf 0x0e6620xe5 0xb4 0xa9 0x4e6630x7f 0xb4 0x6d 0x2e6640x40 0xb5 0x74 0x6e665 666#------------------------------------------------------------------------------667# Vector Multiply Extended668#------------------------------------------------------------------------------669# CHECK: fmulx v1.2s, v22.2s, v2.2s670# CHECK: fmulx v21.4s, v15.4s, v3.4s671# CHECK: fmulx v11.2d, v5.2d, v23.2d6720xc1 0xde 0x22 0x0e6730xf5 0xdd 0x23 0x4e6740xab 0xdc 0x77 0x4e675 676#----------------------------------------------------------------------677# Vector Shift Left long 678#----------------------------------------------------------------------679# CHECK: shll2 v2.8h, v4.16b, #8680# CHECK: shll2 v6.4s, v8.8h, #16681# CHECK: shll2 v6.2d, v8.4s, #32682# CHECK: shll v2.8h, v4.8b, #8683# CHECK: shll v6.4s, v8.4h, #16684# CHECK: shll v6.2d, v8.2s, #32685 6860x82,0x38,0x21,0x6e6870x06,0x39,0x61,0x6e6880x06,0x39,0xa1,0x6e6890x82,0x38,0x21,0x2e6900x06,0x39,0x61,0x2e6910x06,0x39,0xa1,0x2e692 693#----------------------------------------------------------------------694# Vector Shift Left by Immediate695#----------------------------------------------------------------------696# CHECK: shl v0.4h, v1.4h, #3697# CHECK: shl v0.16b, v1.16b, #3698# CHECK: shl v0.4s, v1.4s, #3699# CHECK: shl v0.2d, v1.2d, #37000x20,0x54,0x13,0x0f7010x20,0x54,0x0b,0x4f7020x20,0x54,0x23,0x4f7030x20,0x54,0x43,0x4f704 705#----------------------------------------------------------------------706# Vector Shift Left Long (Signed, Unsigned) by Immediate707#----------------------------------------------------------------------708# CHECK: sshll v0.2d, v1.2s, #3709# CHECK: sshll2 v0.4s, v1.8h, #3710# CHECK: ushll v0.4s, v1.4h, #3711# CHECK: ushll2 v0.8h, v1.16b, #37120x20 0xa4 0x23 0x0f7130x20 0xa4 0x13 0x4f7140x20 0xa4 0x13 0x2f7150x20 0xa4 0x0b 0x6f716 717#-----------------------------------------------------------------------------718#Integer shift right (Signed)719#-----------------------------------------------------------------------------720# CHECK: sshr v0.8b, v1.8b, #3721# CHECK: sshr v0.4h, v1.4h, #3722# CHECK: sshr v0.2s, v1.2s, #3723# CHECK: sshr v0.16b, v1.16b, #3724# CHECK: sshr v0.8h, v1.8h, #3725# CHECK: sshr v0.4s, v1.4s, #3726# CHECK: sshr v0.2d, v1.2d, #37270x20,0x04,0x0d,0x0f7280x20,0x04,0x1d,0x0f7290x20,0x04,0x3d,0x0f7300x20,0x04,0x0d,0x4f7310x20,0x04,0x1d,0x4f7320x20,0x04,0x3d,0x4f7330x20,0x04,0x7d,0x4f734 735#-----------------------------------------------------------------------------736#Integer shift right (Unsigned)737#-----------------------------------------------------------------------------738# CHECK: ushr v0.8b, v1.8b, #3739# CHECK: ushr v0.4h, v1.4h, #3740# CHECK: ushr v0.2s, v1.2s, #3741# CHECK: ushr v0.16b, v1.16b, #3742# CHECK: ushr v0.8h, v1.8h, #3743# CHECK: ushr v0.4s, v1.4s, #3744# CHECK: ushr v0.2d, v1.2d, #37450x20,0x04,0x0d,0x2f7460x20,0x04,0x1d,0x2f7470x20,0x04,0x3d,0x2f7480x20,0x04,0x0d,0x6f7490x20,0x04,0x1d,0x6f7500x20,0x04,0x3d,0x6f7510x20,0x04,0x7d,0x6f752 753#-----------------------------------------------------------------------------754#Integer shift right and accumulate (Signed)755#-----------------------------------------------------------------------------756# CHECK: ssra v0.8b, v1.8b, #3757# CHECK: ssra v0.4h, v1.4h, #3758# CHECK: ssra v0.2s, v1.2s, #3759# CHECK: ssra v0.16b, v1.16b, #3760# CHECK: ssra v0.8h, v1.8h, #3761# CHECK: ssra v0.4s, v1.4s, #3762# CHECK: ssra v0.2d, v1.2d, #37630x20,0x14,0x0d,0x0f7640x20,0x14,0x1d,0x0f7650x20,0x14,0x3d,0x0f7660x20,0x14,0x0d,0x4f7670x20,0x14,0x1d,0x4f7680x20,0x14,0x3d,0x4f7690x20,0x14,0x7d,0x4f770 771#-----------------------------------------------------------------------------772#Integer shift right and accumulate (Unsigned)773#-----------------------------------------------------------------------------774# CHECK: usra v0.8b, v1.8b, #3775# CHECK: usra v0.4h, v1.4h, #3776# CHECK: usra v0.2s, v1.2s, #3777# CHECK: usra v0.16b, v1.16b, #3778# CHECK: usra v0.8h, v1.8h, #3779# CHECK: usra v0.4s, v1.4s, #3780# CHECK: usra v0.2d, v1.2d, #37810x20,0x14,0x0d,0x2f7820x20,0x14,0x1d,0x2f7830x20,0x14,0x3d,0x2f7840x20,0x14,0x0d,0x6f7850x20,0x14,0x1d,0x6f7860x20,0x14,0x3d,0x6f7870x20,0x14,0x7d,0x6f788 789#-----------------------------------------------------------------------------790#Integer rounding shift right (Signed)791#-----------------------------------------------------------------------------792# CHECK: srshr v0.8b, v1.8b, #3793# CHECK: srshr v0.4h, v1.4h, #3794# CHECK: srshr v0.2s, v1.2s, #3795# CHECK: srshr v0.16b, v1.16b, #3796# CHECK: srshr v0.8h, v1.8h, #3797# CHECK: srshr v0.4s, v1.4s, #3798# CHECK: srshr v0.2d, v1.2d, #37990x20,0x24,0x0d,0x0f8000x20,0x24,0x1d,0x0f8010x20,0x24,0x3d,0x0f8020x20,0x24,0x0d,0x4f8030x20,0x24,0x1d,0x4f8040x20,0x24,0x3d,0x4f8050x20,0x24,0x7d,0x4f806 807#-----------------------------------------------------------------------------808#Integer rounding shift right (Unsigned)809#-----------------------------------------------------------------------------810# CHECK: urshr v0.8b, v1.8b, #3811# CHECK: urshr v0.4h, v1.4h, #3812# CHECK: urshr v0.2s, v1.2s, #3813# CHECK: urshr v0.16b, v1.16b, #3814# CHECK: urshr v0.8h, v1.8h, #3815# CHECK: urshr v0.4s, v1.4s, #3816# CHECK: urshr v0.2d, v1.2d, #38170x20,0x24,0x0d,0x2f8180x20,0x24,0x1d,0x2f8190x20,0x24,0x3d,0x2f8200x20,0x24,0x0d,0x6f8210x20,0x24,0x1d,0x6f8220x20,0x24,0x3d,0x6f8230x20,0x24,0x7d,0x6f824 825#-----------------------------------------------------------------------------826#Integer rounding shift right and accumulate (Signed)827#-----------------------------------------------------------------------------828# CHECK: srsra v0.8b, v1.8b, #3829# CHECK: srsra v0.4h, v1.4h, #3830# CHECK: srsra v0.2s, v1.2s, #3831# CHECK: srsra v0.16b, v1.16b, #3832# CHECK: srsra v0.8h, v1.8h, #3833# CHECK: srsra v0.4s, v1.4s, #3834# CHECK: srsra v0.2d, v1.2d, #38350x20,0x34,0x0d,0x0f8360x20,0x34,0x1d,0x0f8370x20,0x34,0x3d,0x0f8380x20,0x34,0x0d,0x4f8390x20,0x34,0x1d,0x4f8400x20,0x34,0x3d,0x4f8410x20,0x34,0x7d,0x4f842 843#-----------------------------------------------------------------------------844#Integer rounding shift right and accumulate (Unsigned)845#-----------------------------------------------------------------------------846# CHECK: ursra v0.8b, v1.8b, #3847# CHECK: ursra v0.4h, v1.4h, #3848# CHECK: ursra v0.2s, v1.2s, #3849# CHECK: ursra v0.16b, v1.16b, #3850# CHECK: ursra v0.8h, v1.8h, #3851# CHECK: ursra v0.4s, v1.4s, #3852# CHECK: ursra v0.2d, v1.2d, #38530x20,0x34,0x0d,0x2f8540x20,0x34,0x1d,0x2f8550x20,0x34,0x3d,0x2f8560x20,0x34,0x0d,0x6f8570x20,0x34,0x1d,0x6f8580x20,0x34,0x3d,0x6f8590x20,0x34,0x7d,0x6f860 861#-----------------------------------------------------------------------------862#Integer shift right and insert863#-----------------------------------------------------------------------------864# CHECK: sri v0.8b, v1.8b, #3865# CHECK: sri v0.4h, v1.4h, #3866# CHECK: sri v0.2s, v1.2s, #3867# CHECK: sri v0.16b, v1.16b, #3868# CHECK: sri v0.8h, v1.8h, #3869# CHECK: sri v0.4s, v1.4s, #3870# CHECK: sri v0.2d, v1.2d, #38710x20,0x44,0x0d,0x2f8720x20,0x44,0x1d,0x2f8730x20,0x44,0x3d,0x2f8740x20,0x44,0x0d,0x6f8750x20,0x44,0x1d,0x6f8760x20,0x44,0x3d,0x6f8770x20,0x44,0x7d,0x6f878 879#-----------------------------------------------------------------------------880#Integer shift left and insert881#-----------------------------------------------------------------------------882# CHECK: sli v0.8b, v1.8b, #3883# CHECK: sli v0.4h, v1.4h, #3884# CHECK: sli v0.2s, v1.2s, #3885# CHECK: sli v0.16b, v1.16b, #3886# CHECK: sli v0.8h, v1.8h, #3887# CHECK: sli v0.4s, v1.4s, #3888# CHECK: sli v0.2d, v1.2d, #38890x20,0x54,0x0b,0x2f8900x20,0x54,0x13,0x2f8910x20,0x54,0x23,0x2f8920x20,0x54,0x0b,0x6f8930x20,0x54,0x13,0x6f8940x20,0x54,0x23,0x6f8950x20,0x54,0x43,0x6f896 897#-----------------------------------------------------------------------------898#Integer saturating shift left unsigned899#-----------------------------------------------------------------------------900# CHECK: sqshlu v0.8b, v1.8b, #3901# CHECK: sqshlu v0.4h, v1.4h, #3902# CHECK: sqshlu v0.2s, v1.2s, #3903# CHECK: sqshlu v0.16b, v1.16b, #3904# CHECK: sqshlu v0.8h, v1.8h, #3905# CHECK: sqshlu v0.4s, v1.4s, #3906# CHECK: sqshlu v0.2d, v1.2d, #39070x20,0x64,0x0b,0x2f9080x20,0x64,0x13,0x2f9090x20,0x64,0x23,0x2f9100x20,0x64,0x0b,0x6f9110x20,0x64,0x13,0x6f9120x20,0x64,0x23,0x6f9130x20,0x64,0x43,0x6f914 915#-----------------------------------------------------------------------------916#Integer saturating shift left (Signed)917#-----------------------------------------------------------------------------918# CHECK: sqshl v0.8b, v1.8b, #3919# CHECK: sqshl v0.4h, v1.4h, #3920# CHECK: sqshl v0.2s, v1.2s, #3921# CHECK: sqshl v0.16b, v1.16b, #3922# CHECK: sqshl v0.8h, v1.8h, #3923# CHECK: sqshl v0.4s, v1.4s, #3924# CHECK: sqshl v0.2d, v1.2d, #39250x20,0x74,0x0b,0x0f9260x20,0x74,0x13,0x0f9270x20,0x74,0x23,0x0f9280x20,0x74,0x0b,0x4f9290x20,0x74,0x13,0x4f9300x20,0x74,0x23,0x4f9310x20,0x74,0x43,0x4f932 933#-----------------------------------------------------------------------------934#Integer saturating shift left (Unsigned)935#-----------------------------------------------------------------------------936# CHECK: uqshl v0.8b, v1.8b, #3937# CHECK: uqshl v0.4h, v1.4h, #3938# CHECK: uqshl v0.2s, v1.2s, #3939# CHECK: uqshl v0.16b, v1.16b, #3940# CHECK: uqshl v0.8h, v1.8h, #3941# CHECK: uqshl v0.4s, v1.4s, #3942# CHECK: uqshl v0.2d, v1.2d, #39430x20,0x74,0x0b,0x2f9440x20,0x74,0x13,0x2f9450x20,0x74,0x23,0x2f9460x20,0x74,0x0b,0x6f9470x20,0x74,0x13,0x6f9480x20,0x74,0x23,0x6f9490x20,0x74,0x43,0x6f950 951#-----------------------------------------------------------------------------952#Integer shift right narrow953#-----------------------------------------------------------------------------954# CHECK: shrn v0.8b, v1.8h, #3955# CHECK: shrn v0.4h, v1.4s, #3956# CHECK: shrn v0.2s, v1.2d, #3957# CHECK: shrn2 v0.16b, v1.8h, #3958# CHECK: shrn2 v0.8h, v1.4s, #3959# CHECK: shrn2 v0.4s, v1.2d, #39600x20,0x84,0x0d,0x0f9610x20,0x84,0x1d,0x0f9620x20,0x84,0x3d,0x0f9630x20,0x84,0x0d,0x4f9640x20,0x84,0x1d,0x4f9650x20,0x84,0x3d,0x4f966 967#-----------------------------------------------------------------------------968#Integer saturating shift right unsigned narrow (Signed)969#-----------------------------------------------------------------------------970# CHECK: sqshrun v0.8b, v1.8h, #3971# CHECK: sqshrun v0.4h, v1.4s, #3972# CHECK: sqshrun v0.2s, v1.2d, #3973# CHECK: sqshrun2 v0.16b, v1.8h, #3974# CHECK: sqshrun2 v0.8h, v1.4s, #3975# CHECK: sqshrun2 v0.4s, v1.2d, #39760x20,0x84,0x0d,0x2f9770x20,0x84,0x1d,0x2f9780x20,0x84,0x3d,0x2f9790x20,0x84,0x0d,0x6f9800x20,0x84,0x1d,0x6f9810x20,0x84,0x3d,0x6f982 983#-----------------------------------------------------------------------------984#Integer rounding shift right narrow985#-----------------------------------------------------------------------------986# CHECK: rshrn v0.8b, v1.8h, #3987# CHECK: rshrn v0.4h, v1.4s, #3988# CHECK: rshrn v0.2s, v1.2d, #3989# CHECK: rshrn2 v0.16b, v1.8h, #3990# CHECK: rshrn2 v0.8h, v1.4s, #3991# CHECK: rshrn2 v0.4s, v1.2d, #39920x20,0x8c,0x0d,0x0f9930x20,0x8c,0x1d,0x0f9940x20,0x8c,0x3d,0x0f9950x20,0x8c,0x0d,0x4f9960x20,0x8c,0x1d,0x4f9970x20,0x8c,0x3d,0x4f998 999#-----------------------------------------------------------------------------1000#Integer saturating shift right rounded unsigned narrow (Signed)1001#-----------------------------------------------------------------------------1002# CHECK: sqrshrun v0.8b, v1.8h, #31003# CHECK: sqrshrun v0.4h, v1.4s, #31004# CHECK: sqrshrun v0.2s, v1.2d, #31005# CHECK: sqrshrun2 v0.16b, v1.8h, #31006# CHECK: sqrshrun2 v0.8h, v1.4s, #31007# CHECK: sqrshrun2 v0.4s, v1.2d, #310080x20,0x8c,0x0d,0x2f10090x20,0x8c,0x1d,0x2f10100x20,0x8c,0x3d,0x2f10110x20,0x8c,0x0d,0x6f10120x20,0x8c,0x1d,0x6f10130x20,0x8c,0x3d,0x6f1014 1015#-----------------------------------------------------------------------------1016#Integer saturating shift right narrow (Signed)1017#-----------------------------------------------------------------------------1018# CHECK: sqshrn v0.8b, v1.8h, #31019# CHECK: sqshrn v0.4h, v1.4s, #31020# CHECK: sqshrn v0.2s, v1.2d, #31021# CHECK: sqshrn2 v0.16b, v1.8h, #31022# CHECK: sqshrn2 v0.8h, v1.4s, #31023# CHECK: sqshrn2 v0.4s, v1.2d, #310240x20,0x94,0x0d,0x0f10250x20,0x94,0x1d,0x0f10260x20,0x94,0x3d,0x0f10270x20,0x94,0x0d,0x4f10280x20,0x94,0x1d,0x4f10290x20,0x94,0x3d,0x4f1030 1031#-----------------------------------------------------------------------------1032#Integer saturating shift right narrow (Unsigned)1033#-----------------------------------------------------------------------------1034# CHECK: uqshrn v0.8b, v1.8h, #31035# CHECK: uqshrn v0.4h, v1.4s, #31036# CHECK: uqshrn v0.2s, v1.2d, #31037# CHECK: uqshrn2 v0.16b, v1.8h, #31038# CHECK: uqshrn2 v0.8h, v1.4s, #31039# CHECK: uqshrn2 v0.4s, v1.2d, #310400x20,0x94,0x0d,0x2f10410x20,0x94,0x1d,0x2f10420x20,0x94,0x3d,0x2f10430x20,0x94,0x0d,0x6f10440x20,0x94,0x1d,0x6f10450x20,0x94,0x3d,0x6f1046 1047#-----------------------------------------------------------------------------1048#Integer saturating shift right rounded narrow (Signed)1049#-----------------------------------------------------------------------------1050# CHECK: sqrshrn v0.8b, v1.8h, #31051# CHECK: sqrshrn v0.4h, v1.4s, #31052# CHECK: sqrshrn v0.2s, v1.2d, #31053# CHECK: sqrshrn2 v0.16b, v1.8h, #31054# CHECK: sqrshrn2 v0.8h, v1.4s, #31055# CHECK: sqrshrn2 v0.4s, v1.2d, #310560x20,0x9c,0x0d,0x0f10570x20,0x9c,0x1d,0x0f10580x20,0x9c,0x3d,0x0f10590x20,0x9c,0x0d,0x4f10600x20,0x9c,0x1d,0x4f10610x20,0x9c,0x3d,0x4f1062 1063#-----------------------------------------------------------------------------1064#Integer saturating shift right rounded narrow (Unsigned)1065#-----------------------------------------------------------------------------1066# CHECK: uqrshrn v0.8b, v1.8h, #31067# CHECK: uqrshrn v0.4h, v1.4s, #31068# CHECK: uqrshrn v0.2s, v1.2d, #31069# CHECK: uqrshrn2 v0.16b, v1.8h, #31070# CHECK: uqrshrn2 v0.8h, v1.4s, #31071# CHECK: uqrshrn2 v0.4s, v1.2d, #310720x20,0x9c,0x0d,0x2f10730x20,0x9c,0x1d,0x2f10740x20,0x9c,0x3d,0x2f10750x20,0x9c,0x0d,0x6f10760x20,0x9c,0x1d,0x6f10770x20,0x9c,0x3d,0x6f1078 1079#-----------------------------------------------------------------------------1080#Fixed-point convert to floating-point1081#-----------------------------------------------------------------------------1082# CHECK: scvtf v0.2s, v1.2s, #31083# CHECK: scvtf v0.4s, v1.4s, #31084# CHECK: scvtf v0.2d, v1.2d, #31085# CHECK: ucvtf v0.2s, v1.2s, #31086# CHECK: ucvtf v0.4s, v1.4s, #31087# CHECK: ucvtf v0.2d, v1.2d, #31088 10890x20,0xe4,0x3d,0x0f10900x20,0xe4,0x3d,0x4f10910x20,0xe4,0x7d,0x4f10920x20,0xe4,0x3d,0x2f10930x20,0xe4,0x3d,0x6f10940x20,0xe4,0x7d,0x6f1095 1096#-----------------------------------------------------------------------------1097#Floating-point convert to fixed-point1098#-----------------------------------------------------------------------------1099# CHECK: fcvtzs v0.2s, v1.2s, #31100# CHECK: fcvtzs v0.4s, v1.4s, #31101# CHECK: fcvtzs v0.2d, v1.2d, #31102# CHECK: fcvtzu v0.2s, v1.2s, #31103# CHECK: fcvtzu v0.4s, v1.4s, #31104# CHECK: fcvtzu v0.2d, v1.2d, #311050x20,0xfc,0x3d,0x0f11060x20,0xfc,0x3d,0x4f11070x20,0xfc,0x7d,0x4f11080x20,0xfc,0x3d,0x2f11090x20,0xfc,0x3d,0x6f11100x20,0xfc,0x7d,0x6f1111 1112 1113#------------------------------------------------------------------------------1114# Vector with 3 operands having different data types1115#------------------------------------------------------------------------------1116 1117#------------------------------------------------------------------------------1118# Long1119#------------------------------------------------------------------------------1120 1121#------------------------------------------------------------------------------1122# Long - Variant 11123#------------------------------------------------------------------------------1124 1125# CHECK: saddl v0.8h, v1.8b, v2.8b1126# CHECK: saddl v0.4s, v1.4h, v2.4h1127# CHECK: saddl v0.2d, v1.2s, v2.2s11280x20 0x00 0x22 0x0e11290x20 0x00 0x62 0x0e11300x20 0x00 0xa2 0x0e1131 1132# CHECK: saddl2 v0.4s, v1.8h, v2.8h1133# CHECK: saddl2 v0.8h, v1.16b, v2.16b1134# CHECK: saddl2 v0.2d, v1.4s, v2.4s11350x20 0x00 0x62 0x4e11360x20 0x00 0x22 0x4e11370x20 0x00 0xa2 0x4e1138 1139# CHECK: uaddl v0.8h, v1.8b, v2.8b1140# CHECK: uaddl v0.4s, v1.4h, v2.4h1141# CHECK: uaddl v0.2d, v1.2s, v2.2s11420x20 0x00 0x22 0x2e11430x20 0x00 0x62 0x2e11440x20 0x00 0xa2 0x2e1145 1146# CHECK: uaddl2 v0.8h, v1.16b, v2.16b1147# CHECK: uaddl2 v0.4s, v1.8h, v2.8h1148# CHECK: uaddl2 v0.2d, v1.4s, v2.4s11490x20 0x00 0x22 0x6e11500x20 0x00 0x62 0x6e11510x20 0x00 0xa2 0x6e1152 1153# CHECK: ssubl v0.8h, v1.8b, v2.8b1154# CHECK: ssubl v0.4s, v1.4h, v2.4h1155# CHECK: ssubl v0.2d, v1.2s, v2.2s11560x20 0x20 0x22 0x0e11570x20 0x20 0x62 0x0e11580x20 0x20 0xa2 0x0e1159 1160# CHECK: ssubl2 v0.8h, v1.16b, v2.16b1161# CHECK: ssubl2 v0.4s, v1.8h, v2.8h1162# CHECK: ssubl2 v0.2d, v1.4s, v2.4s11630x20 0x20 0x22 0x4e11640x20 0x20 0x62 0x4e11650x20 0x20 0xa2 0x4e1166 1167# CHECK: usubl v0.8h, v1.8b, v2.8b1168# CHECK: usubl v0.4s, v1.4h, v2.4h1169# CHECK: usubl v0.2d, v1.2s, v2.2s11700x20 0x20 0x22 0x2e11710x20 0x20 0x62 0x2e11720x20 0x20 0xa2 0x2e1173 1174# CHECK: usubl2 v0.8h, v1.16b, v2.16b1175# CHECK: usubl2 v0.4s, v1.8h, v2.8h1176# CHECK: usubl2 v0.2d, v1.4s, v2.4s11770x20 0x20 0x22 0x6e11780x20 0x20 0x62 0x6e11790x20 0x20 0xa2 0x6e1180 1181# CHECK: sabal v0.8h, v1.8b, v2.8b1182# CHECK: sabal v0.4s, v1.4h, v2.4h1183# CHECK: sabal v0.2d, v1.2s, v2.2s11840x20 0x50 0x22 0x0e11850x20 0x50 0x62 0x0e11860x20 0x50 0xa2 0x0e1187 1188# CHECK: sabal2 v0.8h, v1.16b, v2.16b1189# CHECK: sabal2 v0.4s, v1.8h, v2.8h1190# CHECK: sabal2 v0.2d, v1.4s, v2.4s11910x20 0x50 0x22 0x4e11920x20 0x50 0x62 0x4e11930x20 0x50 0xa2 0x4e1194 1195# CHECK: uabal v0.8h, v1.8b, v2.8b1196# CHECK: uabal v0.4s, v1.4h, v2.4h1197# CHECK: uabal v0.2d, v1.2s, v2.2s11980x20 0x50 0x22 0x2e11990x20 0x50 0x62 0x2e12000x20 0x50 0xa2 0x2e1201 1202# CHECK: uabal2 v0.8h, v1.16b, v2.16b1203# CHECK: uabal2 v0.4s, v1.8h, v2.8h1204# CHECK: uabal2 v0.2d, v1.4s, v2.4s12050x20 0x50 0x22 0x6e12060x20 0x50 0x62 0x6e12070x20 0x50 0xa2 0x6e1208 1209# CHECK: sabdl v0.8h, v1.8b, v2.8b1210# CHECK: sabdl v0.4s, v1.4h, v2.4h1211# CHECK: sabdl v0.2d, v1.2s, v2.2s12120x20 0x70 0x22 0x0e12130x20 0x70 0x62 0x0e12140x20 0x70 0xa2 0x0e1215 1216# CHECK: sabdl2 v0.8h, v1.16b, v2.16b1217# CHECK: sabdl2 v0.4s, v1.8h, v2.8h1218# CHECK: sabdl2 v0.2d, v1.4s, v2.4s12190x20 0x70 0x22 0x4e12200x20 0x70 0x62 0x4e12210x20 0x70 0xa2 0x4e1222 1223# CHECK: uabdl v0.8h, v1.8b, v2.8b1224# CHECK: uabdl v0.4s, v1.4h, v2.4h1225# CHECK: uabdl v0.2d, v1.2s, v2.2s12260x20 0x70 0x22 0x2e12270x20 0x70 0x62 0x2e12280x20 0x70 0xa2 0x2e1229 1230# CHECK: uabdl2 v0.8h, v1.16b, v2.16b1231# CHECK: uabdl2 v0.4s, v1.8h, v2.8h1232# CHECK: uabdl2 v0.2d, v1.4s, v2.4s12330x20 0x70 0x22 0x6e12340x20 0x70 0x62 0x6e12350x20 0x70 0xa2 0x6e1236 1237# CHECK: smlal v0.8h, v1.8b, v2.8b1238# CHECK: smlal v0.4s, v1.4h, v2.4h1239# CHECK: smlal v0.2d, v1.2s, v2.2s12400x20 0x80 0x22 0x0e12410x20 0x80 0x62 0x0e12420x20 0x80 0xa2 0x0e1243 1244# CHECK: smlal2 v0.8h, v1.16b, v2.16b1245# CHECK: smlal2 v0.4s, v1.8h, v2.8h1246# CHECK: smlal2 v0.2d, v1.4s, v2.4s12470x20 0x80 0x22 0x4e12480x20 0x80 0x62 0x4e12490x20 0x80 0xa2 0x4e1250 1251# CHECK: umlal v0.8h, v1.8b, v2.8b1252# CHECK: umlal v0.4s, v1.4h, v2.4h1253# CHECK: umlal v0.2d, v1.2s, v2.2s1254 12550x20 0x80 0x22 0x2e12560x20 0x80 0x62 0x2e12570x20 0x80 0xa2 0x2e1258 1259# CHECK: umlal2 v0.8h, v1.16b, v2.16b1260# CHECK: umlal2 v0.4s, v1.8h, v2.8h1261# CHECK: umlal2 v0.2d, v1.4s, v2.4s12620x20 0x80 0x22 0x6e12630x20 0x80 0x62 0x6e12640x20 0x80 0xa2 0x6e1265 1266# CHECK: smlsl v0.8h, v1.8b, v2.8b1267# CHECK: smlsl v0.4s, v1.4h, v2.4h1268# CHECK: smlsl v0.2d, v1.2s, v2.2s12690x20 0xa0 0x22 0x0e12700x20 0xa0 0x62 0x0e12710x20 0xa0 0xa2 0x0e1272 1273# CHECK: smlsl2 v0.8h, v1.16b, v2.16b1274# CHECK: smlsl2 v0.4s, v1.8h, v2.8h1275# CHECK: smlsl2 v0.2d, v1.4s, v2.4s12760x20 0xa0 0x22 0x4e12770x20 0xa0 0x62 0x4e12780x20 0xa0 0xa2 0x4e1279 1280# CHECK: umlsl v0.8h, v1.8b, v2.8b1281# CHECK: umlsl v0.4s, v1.4h, v2.4h1282# CHECK: umlsl v0.2d, v1.2s, v2.2s12830x20 0xa0 0x22 0x2e12840x20 0xa0 0x62 0x2e12850x20 0xa0 0xa2 0x2e1286 1287# CHECK: umlsl2 v0.8h, v1.16b, v2.16b1288# CHECK: umlsl2 v0.4s, v1.8h, v2.8h1289# CHECK: umlsl2 v0.2d, v1.4s, v2.4s12900x20 0xa0 0x22 0x6e12910x20 0xa0 0x62 0x6e12920x20 0xa0 0xa2 0x6e1293 1294# CHECK: smull v0.8h, v1.8b, v2.8b1295# CHECK: smull v0.4s, v1.4h, v2.4h1296# CHECK: smull v0.2d, v1.2s, v2.2s12970x20 0xc0 0x22 0x0e12980x20 0xc0 0x62 0x0e12990x20 0xc0 0xa2 0x0e1300 1301# CHECK: smull2 v0.8h, v1.16b, v2.16b1302# CHECK: smull2 v0.4s, v1.8h, v2.8h1303# CHECK: smull2 v0.2d, v1.4s, v2.4s13040x20 0xc0 0x22 0x4e13050x20 0xc0 0x62 0x4e13060x20 0xc0 0xa2 0x4e1307 1308# CHECK: umull v0.8h, v1.8b, v2.8b1309# CHECK: umull v0.4s, v1.4h, v2.4h1310# CHECK: umull v0.2d, v1.2s, v2.2s13110x20 0xc0 0x22 0x2e13120x20 0xc0 0x62 0x2e13130x20 0xc0 0xa2 0x2e1314 1315# CHECK: umull2 v0.8h, v1.16b, v2.16b1316# CHECK: umull2 v0.4s, v1.8h, v2.8h1317# CHECK: umull2 v0.2d, v1.4s, v2.4s13180x20 0xc0 0x22 0x6e13190x20 0xc0 0x62 0x6e13200x20 0xc0 0xa2 0x6e1321 1322#------------------------------------------------------------------------------1323# Long - Variant 21324#------------------------------------------------------------------------------1325 1326# CHECK: sqdmlal v0.4s, v1.4h, v2.4h1327# CHECK: sqdmlal v0.2d, v1.2s, v2.2s13280x20 0x90 0x62 0x0e13290x20 0x90 0xa2 0x0e1330 1331# CHECK: sqdmlal2 v0.4s, v1.8h, v2.8h1332# CHECK: sqdmlal2 v0.2d, v1.4s, v2.4s13330x20 0x90 0x62 0x4e13340x20 0x90 0xa2 0x4e1335 1336# CHECK: sqdmlsl v0.4s, v1.4h, v2.4h1337# CHECK: sqdmlsl v0.2d, v1.2s, v2.2s13380x20 0xb0 0x62 0x0e13390x20 0xb0 0xa2 0x0e1340 1341# CHECK: sqdmlsl2 v0.4s, v1.8h, v2.8h1342# CHECK: sqdmlsl2 v0.2d, v1.4s, v2.4s13430x20 0xb0 0x62 0x4e13440x20 0xb0 0xa2 0x4e1345 1346# CHECK: sqdmull v0.4s, v1.4h, v2.4h1347# CHECK: sqdmull v0.2d, v1.2s, v2.2s13480x20 0xd0 0x62 0x0e13490x20 0xd0 0xa2 0x0e1350 1351# CHECK: sqdmull2 v0.4s, v1.8h, v2.8h1352# CHECK: sqdmull2 v0.2d, v1.4s, v2.4s13530x20 0xd0 0x62 0x4e13540x20 0xd0 0xa2 0x4e1355 1356#------------------------------------------------------------------------------1357# Long - Variant 31358#------------------------------------------------------------------------------1359 1360# CHECK: pmull v0.8h, v1.8b, v2.8b13610x20 0xe0 0x22 0x0e1362 1363# CHECK: pmull2 v0.8h, v1.16b, v2.16b13640x20 0xe0 0x22 0x4e1365 1366#------------------------------------------------------------------------------1367# Widen1368#------------------------------------------------------------------------------1369 1370# CHECK: saddw v0.8h, v1.8h, v2.8b1371# CHECK: saddw v0.4s, v1.4s, v2.4h1372# CHECK: saddw v0.2d, v1.2d, v2.2s13730x20 0x10 0x22 0x0e13740x20 0x10 0x62 0x0e13750x20 0x10 0xa2 0x0e1376 1377# CHECK: saddw2 v0.8h, v1.8h, v2.16b1378# CHECK: saddw2 v0.4s, v1.4s, v2.8h1379# CHECK: saddw2 v0.2d, v1.2d, v2.4s13800x20 0x10 0x22 0x4e13810x20 0x10 0x62 0x4e13820x20 0x10 0xa2 0x4e1383 1384# CHECK: uaddw v0.8h, v1.8h, v2.8b1385# CHECK: uaddw v0.4s, v1.4s, v2.4h1386# CHECK: uaddw v0.2d, v1.2d, v2.2s13870x20 0x10 0x22 0x2e13880x20 0x10 0x62 0x2e13890x20 0x10 0xa2 0x2e1390 1391# CHECK: uaddw2 v0.8h, v1.8h, v2.16b1392# CHECK: uaddw2 v0.4s, v1.4s, v2.8h1393# CHECK: uaddw2 v0.2d, v1.2d, v2.4s13940x20 0x10 0x22 0x6e13950x20 0x10 0x62 0x6e13960x20 0x10 0xa2 0x6e1397 1398# CHECK: ssubw v0.8h, v1.8h, v2.8b1399# CHECK: ssubw v0.4s, v1.4s, v2.4h1400# CHECK: ssubw v0.2d, v1.2d, v2.2s14010x20 0x30 0x22 0x0e14020x20 0x30 0x62 0x0e14030x20 0x30 0xa2 0x0e1404 1405# CHECK: ssubw2 v0.8h, v1.8h, v2.16b1406# CHECK: ssubw2 v0.4s, v1.4s, v2.8h1407# CHECK: ssubw2 v0.2d, v1.2d, v2.4s14080x20 0x30 0x22 0x4e14090x20 0x30 0x62 0x4e14100x20 0x30 0xa2 0x4e1411 1412# CHECK: usubw v0.8h, v1.8h, v2.8b1413# CHECK: usubw v0.4s, v1.4s, v2.4h1414# CHECK: usubw v0.2d, v1.2d, v2.2s14150x20 0x30 0x22 0x2e14160x20 0x30 0x62 0x2e14170x20 0x30 0xa2 0x2e1418 1419# CHECK: usubw2 v0.8h, v1.8h, v2.16b1420# CHECK: usubw2 v0.4s, v1.4s, v2.8h1421# CHECK: usubw2 v0.2d, v1.2d, v2.4s14220x20 0x30 0x22 0x6e14230x20 0x30 0x62 0x6e14240x20 0x30 0xa2 0x6e1425 1426#------------------------------------------------------------------------------1427# Narrow1428#------------------------------------------------------------------------------1429 1430# CHECK: addhn v0.8b, v1.8h, v2.8h1431# CHECK: addhn v0.4h, v1.4s, v2.4s1432# CHECK: addhn v0.2s, v1.2d, v2.2d14330x20 0x40 0x22 0x0e14340x20 0x40 0x62 0x0e14350x20 0x40 0xa2 0x0e1436 1437# CHECK: addhn2 v0.16b, v1.8h, v2.8h1438# CHECK: addhn2 v0.8h, v1.4s, v2.4s1439# CHECK: addhn2 v0.4s, v1.2d, v2.2d14400x20 0x40 0x22 0x4e14410x20 0x40 0x62 0x4e14420x20 0x40 0xa2 0x4e1443 1444# CHECK: raddhn v0.8b, v1.8h, v2.8h1445# CHECK: raddhn v0.4h, v1.4s, v2.4s1446# CHECK: raddhn v0.2s, v1.2d, v2.2d14470x20 0x40 0x22 0x2e14480x20 0x40 0x62 0x2e14490x20 0x40 0xa2 0x2e1450 1451# CHECK: raddhn2 v0.16b, v1.8h, v2.8h1452# CHECK: raddhn2 v0.8h, v1.4s, v2.4s1453# CHECK: raddhn2 v0.4s, v1.2d, v2.2d14540x20 0x40 0x22 0x6e14550x20 0x40 0x62 0x6e14560x20 0x40 0xa2 0x6e1457 1458# CHECK: rsubhn v0.8b, v1.8h, v2.8h1459# CHECK: rsubhn v0.4h, v1.4s, v2.4s1460# CHECK: rsubhn v0.2s, v1.2d, v2.2d14610x20 0x60 0x22 0x2e14620x20 0x60 0x62 0x2e14630x20 0x60 0xa2 0x2e1464 1465# CHECK: rsubhn2 v0.16b, v1.8h, v2.8h1466# CHECK: rsubhn2 v0.8h, v1.4s, v2.4s1467# CHECK: rsubhn2 v0.4s, v1.2d, v2.2d14680x20 0x60 0x22 0x6e14690x20 0x60 0x62 0x6e14700x20 0x60 0xa2 0x6e1471 1472#----------------------------------------------------------------------1473# Scalar Integer Saturating Doubling Multiply Half High1474#----------------------------------------------------------------------1475# CHECK: sqdmulh h10, h11, h121476# CHECK: sqdmulh s20, s21, s214770x6a,0xb5,0x6c,0x5e14780xb4,0xb6,0xa2,0x5e1479 1480#----------------------------------------------------------------------1481# Scalar Integer Saturating Rounding Doubling Multiply Half High1482#----------------------------------------------------------------------1483# CHECK: sqrdmulh h10, h11, h121484# CHECK: sqrdmulh s20, s21, s214850x6a,0xb5,0x6c,0x7e14860xb4,0xb6,0xa2,0x7e1487 1488#----------------------------------------------------------------------1489# Floating-point multiply extended1490#----------------------------------------------------------------------1491# CHECK: fmulx s20, s22, s151492# CHECK: fmulx d23, d11, d114930xd4,0xde,0x2f,0x5e14940x77,0xdd,0x61,0x5e1495 1496#----------------------------------------------------------------------1497# Floating-point Reciprocal Step1498#----------------------------------------------------------------------1499# CHECK: frecps s21, s16, s131500# CHECK: frecps d22, d30, d2115010x15,0xfe,0x2d,0x5e15020xd6,0xff,0x75,0x5e1503 1504#----------------------------------------------------------------------1505# Floating-point Reciprocal Square Root Step1506#----------------------------------------------------------------------1507# CHECK: frsqrts s21, s5, s121508# CHECK: frsqrts d8, d22, d1815090xb5,0xfc,0xac,0x5e15100xc8,0xfe,0xf2,0x5e1511 1512#----------------------------------------------------------------------1513# Scalar Signed Integer Convert To Floating-point1514#----------------------------------------------------------------------1515# CHECK: scvtf s22, s131516# CHECK: scvtf d21, d1215170xb6,0xd9,0x21,0x5e15180x95,0xd9,0x61,0x5e1519 1520#----------------------------------------------------------------------1521# Scalar Unsigned Integer Convert To Floating-point1522#----------------------------------------------------------------------1523# CHECK: ucvtf s22, s131524# CHECK: ucvtf d21, d1415250xb6,0xd9,0x21,0x7e15260xd5,0xd9,0x61,0x7e1527 1528#----------------------------------------------------------------------1529# Scalar Floating-point Reciprocal Estimate1530#----------------------------------------------------------------------1531# CHECK: frecpe s19, s141532# CHECK: frecpe d13, d1315330xd3,0xd9,0xa1,0x5e15340xad,0xd9,0xe1,0x5e1535 1536#----------------------------------------------------------------------1537# Scalar Floating-point Reciprocal Exponent1538#----------------------------------------------------------------------1539# CHECK: frecpx s18, s101540# CHECK: frecpx d16, d1915410x52,0xf9,0xa1,0x5e15420x70,0xfa,0xe1,0x5e1543 1544#----------------------------------------------------------------------1545# Scalar Floating-point Reciprocal Square Root Estimate1546#----------------------------------------------------------------------1547# CHECK: frsqrte s22, s131548# CHECK: frsqrte d21, d1215490xb6,0xd9,0xa1,0x7e15500x95,0xd9,0xe1,0x7e1551 1552#----------------------------------------------------------------------1553# Scalar Compare Bitwise Equal1554#----------------------------------------------------------------------1555# CHECK: cmeq d20, d21, d2215560xb4,0x8e,0xf6,0x7e1557 1558#----------------------------------------------------------------------1559# Scalar Compare Bitwise Equal To Zero1560#----------------------------------------------------------------------1561# CHECK: cmeq d20, d21, #{{0x0|0}}15620xb4,0x9a,0xe0,0x5e1563 1564#----------------------------------------------------------------------1565# Scalar Compare Unsigned Higher Or Same1566#----------------------------------------------------------------------1567# CHECK: cmhs d20, d21, d2215680xb4,0x3e,0xf6,0x7e1569 1570 1571#----------------------------------------------------------------------1572# Scalar Compare Signed Greather Than Or Equal1573#----------------------------------------------------------------------1574# CHECK: cmge d20, d21, d2215750xb4,0x3e,0xf6,0x5e1576 1577#----------------------------------------------------------------------1578# Scalar Compare Signed Greather Than Or Equal To Zero1579#----------------------------------------------------------------------1580# CHECK: cmge d20, d21, #{{0x0|0}}15810xb4,0x8a,0xe0,0x7e1582 1583#----------------------------------------------------------------------1584# Scalar Compare Unsigned Higher1585#----------------------------------------------------------------------1586# CHECK: cmhi d20, d21, d2215870xb4,0x36,0xf6,0x7e1588 1589#----------------------------------------------------------------------1590# Scalar Compare Signed Greater Than1591#----------------------------------------------------------------------1592# CHECK: cmgt d20, d21, d2215930xb4,0x36,0xf6,0x5e1594 1595#----------------------------------------------------------------------1596# Scalar Compare Signed Greater Than Zero1597#----------------------------------------------------------------------1598# CHECK: cmgt d20, d21, #{{0x0|0}}15990xb4,0x8a,0xe0,0x5e1600 1601#----------------------------------------------------------------------1602# Scalar Compare Signed Less Than Or Equal To Zero1603#----------------------------------------------------------------------1604# CHECK: cmle d20, d21, #{{0x0|0}}16050xb4,0x9a,0xe0,0x7e1606 1607#----------------------------------------------------------------------1608# Scalar Compare Less Than Zero1609#----------------------------------------------------------------------1610# CHECK: cmlt d20, d21, #{{0x0|0}}16110xb4,0xaa,0xe0,0x5e1612 1613#----------------------------------------------------------------------1614# Scalar Compare Bitwise Test Bits1615#----------------------------------------------------------------------1616# CHECK: cmtst d20, d21, d2216170xb4,0x8e,0xf6,0x5e1618 1619#----------------------------------------------------------------------1620# Scalar Floating-point Compare Mask Equal1621#----------------------------------------------------------------------1622# CHECK: fcmeq s10, s11, s121623# CHECK: fcmeq d20, d21, d2216240x6a,0xe5,0x2c,0x5e16250xb4,0xe6,0x76,0x5e1626 1627#----------------------------------------------------------------------1628# Scalar Floating-point Compare Mask Equal To Zero1629#----------------------------------------------------------------------1630# CHECK: fcmeq s10, s11, #0.01631# CHECK: fcmeq d20, d21, #0.016320x6a,0xd9,0xa0,0x5e16330xb4,0xda,0xe0,0x5e1634 1635#----------------------------------------------------------------------1636# Scalar Floating-point Compare Mask Greater Than Or Equal1637#----------------------------------------------------------------------1638# CHECK: fcmge s10, s11, s121639# CHECK: fcmge d20, d21, d2216400x6a,0xe5,0x2c,0x7e16410xb4,0xe6,0x76,0x7e1642 1643#----------------------------------------------------------------------1644# Scalar Floating-point Compare Mask Greater Than Or Equal To Zero1645#----------------------------------------------------------------------1646# CHECK: fcmge s10, s11, #0.01647# CHECK: fcmge d20, d21, #0.016480x6a,0xc9,0xa0,0x7e16490xb4,0xca,0xe0,0x7e1650 1651#----------------------------------------------------------------------1652# Scalar Floating-point Compare Mask Greather Than1653#----------------------------------------------------------------------1654# CHECK: fcmgt s10, s11, s121655# CHECK: fcmgt d20, d21, d2216560x6a,0xe5,0xac,0x7e16570xb4,0xe6,0xf6,0x7e1658 1659#----------------------------------------------------------------------1660# Scalar Floating-point Compare Mask Greather Than Zero1661#----------------------------------------------------------------------1662# CHECK: fcmgt s10, s11, #0.01663# CHECK: fcmgt d20, d21, #0.016640x6a,0xc9,0xa0,0x5e16650xb4,0xca,0xe0,0x5e1666 1667#----------------------------------------------------------------------1668# Scalar Floating-point Compare Mask Less Than Or Equal To Zero1669#----------------------------------------------------------------------1670# CHECK: fcmle s10, s11, #0.01671# CHECK: fcmle d20, d21, #0.016720x6a,0xd9,0xa0,0x7e16730xb4,0xda,0xe0,0x7e1674 1675#----------------------------------------------------------------------1676# Scalar Floating-point Compare Mask Less Than1677#----------------------------------------------------------------------1678# CHECK: fcmlt s10, s11, #0.01679# CHECK: fcmlt d20, d21, #0.016800x6a,0xe9,0xa0,0x5e16810xb4,0xea,0xe0,0x5e1682 1683#----------------------------------------------------------------------1684# Scalar Floating-point Absolute Compare Mask Greater Than Or Equal1685#----------------------------------------------------------------------1686# CHECK: facge s10, s11, s121687# CHECK: facge d20, d21, d2216880x6a,0xed,0x2c,0x7e16890xb4,0xee,0x76,0x7e1690 1691#----------------------------------------------------------------------1692# Scalar Floating-point Absolute Compare Mask Greater Than1693#----------------------------------------------------------------------1694# CHECK: facgt s10, s11, s12 1695# CHECK: facgt d20, d21, d22 16960x6a,0xed,0xac,0x7e16970xb4,0xee,0xf6,0x7e1698 1699#----------------------------------------------------------------------1700# Scalar Absolute Value1701#----------------------------------------------------------------------1702# CHECK: abs d29, d2417030x1d,0xbb,0xe0,0x5e1704 1705#----------------------------------------------------------------------1706# Scalar Signed Saturating Absolute Value1707#----------------------------------------------------------------------1708# CHECK: sqabs b19, b141709# CHECK: sqabs h21, h151710# CHECK: sqabs s20, s121711# CHECK: sqabs d18, d1217120xd3,0x79,0x20,0x5e17130xf5,0x79,0x60,0x5e17140x94,0x79,0xa0,0x5e17150x92,0x79,0xe0,0x5e1716 1717#----------------------------------------------------------------------1718# Scalar Negate1719#----------------------------------------------------------------------1720# CHECK: neg d29, d2417210x1d,0xbb,0xe0,0x7e1722 1723#----------------------------------------------------------------------1724# Scalar Signed Saturating Negate1725#----------------------------------------------------------------------1726# CHECK: sqneg b19, b141727# CHECK: sqneg h21, h151728# CHECK: sqneg s20, s121729# CHECK: sqneg d18, d1217300xd3,0x79,0x20,0x7e17310xf5,0x79,0x60,0x7e17320x94,0x79,0xa0,0x7e17330x92,0x79,0xe0,0x7e1734 1735#----------------------------------------------------------------------1736# Signed Saturating Accumulated of Unsigned Value1737#----------------------------------------------------------------------1738# CHECK: suqadd b19, b141739# CHECK: suqadd h20, h151740# CHECK: suqadd s21, s121741# CHECK: suqadd d18, d2217420xd3,0x39,0x20,0x5e17430xf4,0x39,0x60,0x5e17440x95,0x39,0xa0,0x5e17450xd2,0x3a,0xe0,0x5e1746 1747#----------------------------------------------------------------------1748# Unsigned Saturating Accumulated of Signed Value1749#----------------------------------------------------------------------1750# CHECK: usqadd b19, b141751# CHECK: usqadd h20, h151752# CHECK: usqadd s21, s121753# CHECK: usqadd d18, d2217540xd3,0x39,0x20,0x7e17550xf4,0x39,0x60,0x7e17560x95,0x39,0xa0,0x7e17570xd2,0x3a,0xe0,0x7e1758 1759#----------------------------------------------------------------------1760# Signed Saturating Doubling Multiply-Add Long1761#----------------------------------------------------------------------1762# CHECK: sqdmlal s17, h27, h121763# CHECK: sqdmlal d19, s24, s1217640x71,0x93,0x6c,0x5e17650x13,0x93,0xac,0x5e1766 1767#----------------------------------------------------------------------1768# Signed Saturating Doubling Multiply-Subtract Long1769#----------------------------------------------------------------------1770# CHECK: sqdmlsl s14, h12, h251771# CHECK: sqdmlsl d12, s23, s1317720x8e,0xb1,0x79,0x5e17730xec,0xb2,0xad,0x5e1774 1775#----------------------------------------------------------------------1776# Signed Saturating Doubling Multiply Long1777#----------------------------------------------------------------------1778# CHECK: sqdmull s12, h22, h121779# CHECK: sqdmull d15, s22, s1217800xcc,0xd2,0x6c,0x5e17810xcf,0xd2,0xac,0x5e1782 1783#----------------------------------------------------------------------1784# Scalar Signed Saturating Extract Unsigned Narrow1785#----------------------------------------------------------------------1786# CHECK: sqxtun b19, h141787# CHECK: sqxtun h21, s151788# CHECK: sqxtun s20, d1217890xd3,0x29,0x21,0x7e17900xf5,0x29,0x61,0x7e17910x94,0x29,0xa1,0x7e1792 1793#----------------------------------------------------------------------1794# Scalar Signed Saturating Extract Signed Narrow1795#----------------------------------------------------------------------1796# CHECK: sqxtn b18, h181797# CHECK: sqxtn h20, s171798# CHECK: sqxtn s19, d1417990x52,0x4a,0x21,0x5e18000x34,0x4a,0x61,0x5e18010xd3,0x49,0xa1,0x5e1802 1803#----------------------------------------------------------------------1804# Scalar Unsigned Saturating Extract Narrow1805#----------------------------------------------------------------------1806# CHECK: uqxtn b18, h181807# CHECK: uqxtn h20, s171808# CHECK: uqxtn s19, d1418090x52,0x4a,0x21,0x7e18100x34,0x4a,0x61,0x7e18110xd3,0x49,0xa1,0x7e1812 1813#----------------------------------------------------------------------1814# Scalar Signed Shift Right (Immediate)1815#----------------------------------------------------------------------1816# CHECK: sshr d15, d16, #1218170x0f,0x06,0x74,0x5f1818 1819#----------------------------------------------------------------------1820# Scalar Unsigned Shift Right (Immediate)1821#----------------------------------------------------------------------1822# CHECK: ushr d10, d17, #1818230x2a,0x06,0x6e,0x7f1824 1825#----------------------------------------------------------------------1826# Scalar Signed Rounding Shift Right (Immediate)1827#----------------------------------------------------------------------1828# CHECK: srshr d19, d18, #718290x53,0x26,0x79,0x5f1830 1831#----------------------------------------------------------------------1832# Scalar Unsigned Rounding Shift Right (Immediate)1833#----------------------------------------------------------------------1834# CHECK: urshr d20, d23, #3118350xf4,0x26,0x61,0x7f1836 1837#----------------------------------------------------------------------1838# Scalar Signed Shift Right and Accumulate (Immediate)1839#----------------------------------------------------------------------1840# CHECK: ssra d18, d12, #2118410x92,0x15,0x6b,0x5f1842 1843#----------------------------------------------------------------------1844# Scalar Unsigned Shift Right and Accumulate (Immediate)1845#----------------------------------------------------------------------1846# CHECK: usra d20, d13, #6118470xb4,0x15,0x43,0x7f1848 1849#----------------------------------------------------------------------1850# Scalar Signed Rounding Shift Right and Accumulate (Immediate)1851#----------------------------------------------------------------------1852# CHECK: srsra d15, d11, #1918530x6f,0x35,0x6d,0x5f1854 1855#----------------------------------------------------------------------1856# Scalar Unsigned Rounding Shift Right and Accumulate (Immediate)1857#----------------------------------------------------------------------1858# CHECK: ursra d18, d10, #1318590x52,0x35,0x73,0x7f1860 1861#----------------------------------------------------------------------1862# Scalar Shift Left (Immediate)1863#----------------------------------------------------------------------1864# CHECK: shl d7, d10, #1218650x47,0x55,0x4c,0x5f1866 1867#----------------------------------------------------------------------1868# Signed Saturating Shift Left (Immediate)1869#----------------------------------------------------------------------1870# CHECK: sqshl b11, b19, #71871# CHECK: sqshl h13, h18, #111872# CHECK: sqshl s14, s17, #221873# CHECK: sqshl d15, d16, #5118740x6b,0x76,0x0f,0x5f18750x4d,0x76,0x1b,0x5f18760x2e,0x76,0x36,0x5f18770x0f,0x76,0x73,0x5f1878 1879#----------------------------------------------------------------------1880# Unsigned Saturating Shift Left (Immediate)1881#----------------------------------------------------------------------1882# CHECK: uqshl b18, b15, #61883# CHECK: uqshl h11, h18, #71884# CHECK: uqshl s14, s19, #181885# CHECK: uqshl d15, d12, #1918860xf2,0x75,0x0e,0x7f18870x4b,0x76,0x17,0x7f18880x6e,0x76,0x32,0x7f18890x8f,0x75,0x53,0x7f1890 1891#----------------------------------------------------------------------1892# Signed Saturating Shift Left Unsigned (Immediate)1893#----------------------------------------------------------------------1894# CHECK: sqshlu b15, b18, #61895# CHECK: sqshlu h19, h17, #61896# CHECK: sqshlu s16, s14, #251897# CHECK: sqshlu d11, d13, #3218980x4f,0x66,0x0e,0x7f18990x33,0x66,0x16,0x7f19000xd0,0x65,0x39,0x7f19010xab,0x65,0x60,0x7f1902 1903#----------------------------------------------------------------------1904# Shift Right And Insert (Immediate)1905#----------------------------------------------------------------------1906# CHECK: sri d10, d12, #1419070x8a,0x45,0x72,0x7f1908 1909#----------------------------------------------------------------------1910# Shift Left And Insert (Immediate)1911#----------------------------------------------------------------------1912# CHECK: sli d10, d14, #1219130xca,0x55,0x4c,0x7f1914 1915#----------------------------------------------------------------------1916# Signed Saturating Shift Right Narrow (Immediate)1917#----------------------------------------------------------------------1918# CHECK: sqshrn b10, h15, #51919# CHECK: sqshrn h17, s10, #41920# CHECK: sqshrn s18, d10, #3119210xea,0x95,0x0b,0x5f19220x51,0x95,0x1c,0x5f19230x52,0x95,0x21,0x5f1924 1925#----------------------------------------------------------------------1926# Unsigned Saturating Shift Right Narrow (Immediate)1927#----------------------------------------------------------------------1928# CHECK: uqshrn b12, h10, #71929# CHECK: uqshrn h10, s14, #51930# CHECK: uqshrn s10, d12, #1319310x4c,0x95,0x09,0x7f19320xca,0x95,0x1b,0x7f19330x8a,0x95,0x33,0x7f1934 1935#----------------------------------------------------------------------1936# Signed Saturating Rounded Shift Right Narrow (Immediate)1937#----------------------------------------------------------------------1938# CHECK: sqrshrn b10, h13, #21939# CHECK: sqrshrn h15, s10, #61940# CHECK: sqrshrn s15, d12, #919410xaa,0x9d,0x0e,0x5f19420x4f,0x9d,0x1a,0x5f19430x8f,0x9d,0x37,0x5f1944 1945#----------------------------------------------------------------------1946# Unsigned Saturating Rounded Shift Right Narrow (Immediate)1947#----------------------------------------------------------------------1948# CHECK: uqrshrn b10, h12, #51949# CHECK: uqrshrn h12, s10, #141950# CHECK: uqrshrn s10, d10, #2519510x8a,0x9d,0x0b,0x7f19520x4c,0x9d,0x12,0x7f19530x4a,0x9d,0x27,0x7f1954 1955#----------------------------------------------------------------------1956# Signed Saturating Shift Right Unsigned Narrow (Immediate)1957#----------------------------------------------------------------------1958# CHECK: sqshrun b15, h10, #71959# CHECK: sqshrun h20, s14, #31960# CHECK: sqshrun s10, d15, #1519610x4f,0x85,0x09,0x7f19620xd4,0x85,0x1d,0x7f19630xea,0x85,0x31,0x7f1964 1965#----------------------------------------------------------------------1966# Signed Saturating Rounded Shift Right Unsigned Narrow (Immediate)1967#----------------------------------------------------------------------1968# CHECK: sqrshrun b17, h10, #61969# CHECK: sqrshrun h10, s13, #151970# CHECK: sqrshrun s22, d16, #3119710x51,0x8d,0x0a,0x7f19720xaa,0x8d,0x11,0x7f19730x16,0x8e,0x21,0x7f1974 1975#----------------------------------------------------------------------1976# Scalar Signed Fixed-point Convert To Floating-Point (Immediate)1977#----------------------------------------------------------------------1978# CHECK: scvtf s22, s13, #321979# CHECK: scvtf d21, d12, #6419800xb6,0xe5,0x20,0x5f19810x95,0xe5,0x40,0x5f1982 1983#----------------------------------------------------------------------1984# Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate)1985#----------------------------------------------------------------------1986# CHECK: ucvtf s22, s13, #321987# CHECK: ucvtf d21, d14, #6419880xb6,0xe5,0x20,0x7f19890xd5,0xe5,0x40,0x7f1990 1991#----------------------------------------------------------------------1992# Scalar Floating-point Convert To Signed Fixed-point (Immediate)1993#----------------------------------------------------------------------1994# CHECK: fcvtzs s21, s12, #11995# CHECK: fcvtzs d21, d12, #119960x95,0xfd,0x3f,0x5f19970x95,0xfd,0x7f,0x5f1998 1999#----------------------------------------------------------------------2000# Scalar Floating-point Convert To Unsigned Fixed-point (Immediate)2001#----------------------------------------------------------------------2002# CHECK: fcvtzu s21, s12, #12003# CHECK: fcvtzu d21, d12, #120040x95,0xfd,0x3f,0x7f20050x95,0xfd,0x7f,0x7f2006 2007#----------------------------------------------------------------------2008# Vector load/store multiple N-element structure2009#----------------------------------------------------------------------2010# CHECK: ld1 { v0.16b }, [x0]2011# CHECK: ld1 { v15.8h, v16.8h }, [x15]2012# CHECK: ld1 { v31.4s, v0.4s, v1.4s }, [sp]2013# CHECK: ld1 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0]20140x00,0x70,0x40,0x4c20150xef,0xa5,0x40,0x4c20160xff,0x6b,0x40,0x4c20170x00,0x2c,0x40,0x4c2018 2019# CHECK: ld2 { v0.8b, v1.8b }, [x0]2020# CHECK: ld3 { v15.4h, v16.4h, v17.4h }, [x15]2021# CHECK: ld4 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp]20220x00,0x80,0x40,0x0c20230xef,0x45,0x40,0x0c20240xff,0x0b,0x40,0x0c2025 2026# CHECK: st1 { v0.16b }, [x0]2027# CHECK: st1 { v15.8h, v16.8h }, [x15]2028# CHECK: st1 { v31.4s, v0.4s, v1.4s }, [sp]2029# CHECK: st1 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0]20300x00,0x70,0x00,0x4c20310xef,0xa5,0x00,0x4c20320xff,0x6b,0x00,0x4c20330x00,0x2c,0x00,0x4c2034 2035# CHECK: st2 { v0.8b, v1.8b }, [x0]2036# CHECK: st3 { v15.4h, v16.4h, v17.4h }, [x15]2037# CHECK: st4 { v31.2s, v0.2s, v1.2s, v2.2s }, [sp]20380x00,0x80,0x00,0x0c20390xef,0x45,0x00,0x0c20400xff,0x0b,0x00,0x0c2041 2042#----------------------------------------------------------------------2043# Vector load/store multiple N-element structure (post-index)2044#----------------------------------------------------------------------2045# CHECK: ld1 { v15.8h }, [x15], x22046# CHECK: ld1 { v31.4s, v0.4s }, [sp], #322047# CHECK: ld1 { v0.2d, v1.2d, v2.2d }, [x0], #482048# CHECK: ld1 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x320490xef,0x75,0xc2,0x4c20500xff,0xab,0xdf,0x4c20510x00,0x6c,0xdf,0x4c20520x00,0x20,0xc3,0x0c2053 2054# CHECK: ld2 { v0.16b, v1.16b }, [x0], x12055# CHECK: ld3 { v15.8h, v16.8h, v17.8h }, [x15], x22056# CHECK: ld4 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #6420570x00,0x80,0xc1,0x4c20580xef,0x45,0xc2,0x4c20590xff,0x0b,0xdf,0x4c2060 2061 2062# CHECK: st1 { v15.8h }, [x15], x22063# CHECK: st1 { v31.4s, v0.4s }, [sp], #322064# CHECK: st1 { v0.2d, v1.2d, v2.2d }, [x0], #482065# CHECK: st1 { v0.8b, v1.8b, v2.8b, v3.8b }, [x0], x320660xef,0x75,0x82,0x4c20670xff,0xab,0x9f,0x4c20680x00,0x6c,0x9f,0x4c20690x00,0x20,0x83,0x0c2070 2071# CHECK: st2 { v0.16b, v1.16b }, [x0], x12072# CHECK: st3 { v15.8h, v16.8h, v17.8h }, [x15], x22073# CHECK: st4 { v31.4s, v0.4s, v1.4s, v2.4s }, [sp], #6420740x00,0x80,0x81,0x4c20750xef,0x45,0x82,0x4c20760xff,0x0b,0x9f,0x4c2077 2078#----------------------------------------------------------------------2079# Vector load single N-element structure to all lane of N2080# consecutive registers (N = 1,2,3,4)2081#----------------------------------------------------------------------2082# CHECK: ld1r { v0.16b }, [x0]2083# CHECK: ld1r { v15.8h }, [x15]2084# CHECK: ld2r { v31.4s, v0.4s }, [sp]2085# CHECK: ld2r { v0.2d, v1.2d }, [x0]2086# CHECK: ld3r { v0.8b, v1.8b, v2.8b }, [x0]2087# CHECK: ld3r { v15.4h, v16.4h, v17.4h }, [x15]2088# CHECK: ld4r { v31.2s, v0.2s, v1.2s, v2.2s }, [sp]2089# CHECK: ld4r { v31.1d, v0.1d, v1.1d, v2.1d }, [sp]20900x00,0xc0,0x40,0x4d20910xef,0xc5,0x40,0x4d20920xff,0xcb,0x60,0x4d20930x00,0xcc,0x60,0x4d20940x00,0xe0,0x40,0x0d20950xef,0xe5,0x40,0x0d20960xff,0xeb,0x60,0x0d20970xff,0xef,0x60,0x0d2098 2099#----------------------------------------------------------------------2100# Vector load/store single N-element structure to/from one lane of N2101# consecutive registers (N = 1,2,3,4)2102#----------------------------------------------------------------------2103# CHECK: ld1 { v0.b }[9], [x0]2104# CHECK: ld2 { v15.h, v16.h }[7], [x15]2105# CHECK: ld3 { v31.s, v0.s, v1.s }[3], [sp]2106# CHECK: ld4 { v0.d, v1.d, v2.d, v3.d }[1], [x0]2107# CHECK: st1 { v0.d }[1], [x0]2108# CHECK: st2 { v31.s, v0.s }[3], [sp]2109# CHECK: st3 { v15.h, v16.h, v17.h }[7], [x15]2110# CHECK: st4 { v0.b, v1.b, v2.b, v3.b }[9], [x0]21110x00,0x04,0x40,0x4d21120xef,0x59,0x60,0x4d21130xff,0xb3,0x40,0x4d21140x00,0xa4,0x60,0x4d21150x00,0x84,0x00,0x4d21160xff,0x93,0x20,0x4d21170xef,0x79,0x00,0x4d21180x00,0x24,0x20,0x4d2119 2120#----------------------------------------------------------------------2121# Post-index of vector load single N-element structure to all lane of N2122# consecutive registers (N = 1,2,3,4)2123#----------------------------------------------------------------------2124# CHECK: ld1r { v0.16b }, [x0], #12125# CHECK: ld1r { v15.8h }, [x15], #22126# CHECK: ld2r { v31.4s, v0.4s }, [sp], #82127# CHECK: ld2r { v0.2d, v1.2d }, [x0], #162128# CHECK: ld3r { v0.8b, v1.8b, v2.8b }, [x0], #32129# CHECK: ld3r { v15.4h, v16.4h, v17.4h }, [x15], #62130# CHECK: ld4r { v31.2s, v0.2s, v1.2s, v2.2s }, [sp], x302131# CHECK: ld4r { v31.1d, v0.1d, v1.1d, v2.1d }, [sp], x721320x00,0xc0,0xdf,0x4d21330xef,0xc5,0xdf,0x4d21340xff,0xcb,0xff,0x4d21350x00,0xcc,0xff,0x4d21360x00,0xe0,0xdf,0x0d21370xef,0xe5,0xdf,0x0d21380xff,0xeb,0xfe,0x0d21390xff,0xef,0xe7,0x0d2140 2141#----------------------------------------------------------------------2142# Post-index of vector load/store single N-element structure to/from2143# one lane of N consecutive registers (N = 1,2,3,4)2144#----------------------------------------------------------------------2145# CHECK: ld1 { v0.b }[9], [x0], #12146# CHECK: ld2 { v15.h, v16.h }[7], [x15], #42147# CHECK: ld3 { v31.s, v0.s, v1.s }[3], [sp], x32148# CHECK: ld4 { v0.d, v1.d, v2.d, v3.d }[1], [x0], #322149# CHECK: ld4 { v0.h, v1.h, v2.h, v3.h }[7], [x0], x02150# CHECK: st1 { v0.d }[1], [x0], #82151# CHECK: st2 { v31.s, v0.s }[3], [sp], #82152# CHECK: st3 { v15.h, v16.h, v17.h }[7], [x15], #62153# CHECK: st4 { v0.b, v1.b, v2.b, v3.b }[9], [x0], x521540x00,0x04,0xdf,0x4d21550xef,0x59,0xff,0x4d21560xff,0xb3,0xc3,0x4d21570x00,0xa4,0xff,0x4d21580x00,0x78,0xe0,0x4d21590x00,0x84,0x9f,0x4d21600xff,0x93,0xbf,0x4d21610xef,0x79,0x9f,0x4d21620x00,0x24,0xa5,0x4d2163 2164#----------------------------------------------------------------------2165# Bitwise extract2166#----------------------------------------------------------------------21670x20,0x18,0x02,0x2e21680x20,0x18,0x02,0x6e2169# CHECK: ext v0.8b, v1.8b, v2.8b, #{{0x3|3}}2170# CHECK: ext v0.16b, v1.16b, v2.16b, #{{0x3|3}}2171 2172#----------------------------------------------------------------------2173# unzip with 3 same vectors to get primary result2174#----------------------------------------------------------------------2175# CHECK: uzp1 v1.8b, v1.8b, v2.8b2176# CHECK: uzp1 v2.16b, v1.16b, v2.16b2177# CHECK: uzp1 v3.4h, v1.4h, v2.4h2178# CHECK: uzp1 v4.8h, v1.8h, v2.8h2179# CHECK: uzp1 v5.2s, v1.2s, v2.2s2180# CHECK: uzp1 v6.4s, v1.4s, v2.4s2181# CHECK: uzp1 v7.2d, v1.2d, v2.2d21820x21,0x18,0x02,0x0e21830x22,0x18,0x02,0x4e21840x23,0x18,0x42,0x0e21850x24,0x18,0x42,0x4e21860x25,0x18,0x82,0x0e21870x26,0x18,0x82,0x4e21880x27,0x18,0xc2,0x4e2189 2190#----------------------------------------------------------------------2191# transpose with 3 same vectors to get primary result2192#----------------------------------------------------------------------2193# CHECK: trn1 v8.8b, v1.8b, v2.8b2194# CHECK: trn1 v9.16b, v1.16b, v2.16b2195# CHECK: trn1 v10.4h, v1.4h, v2.4h2196# CHECK: trn1 v27.8h, v7.8h, v2.8h2197# CHECK: trn1 v12.2s, v7.2s, v2.2s2198# CHECK: trn1 v29.4s, v6.4s, v2.4s2199# CHECK: trn1 v14.2d, v6.2d, v2.2d22000x28,0x28,0x02,0x0e22010x29,0x28,0x02,0x4e22020x2a,0x28,0x42,0x0e22030xfb,0x28,0x42,0x4e22040xec,0x28,0x82,0x0e22050xdd,0x28,0x82,0x4e22060xce,0x28,0xc2,0x4e2207 2208#----------------------------------------------------------------------2209# zip with 3 same vectors to get primary result2210#----------------------------------------------------------------------2211# CHECK: zip1 v31.8b, v5.8b, v2.8b2212# CHECK: zip1 v0.16b, v5.16b, v2.16b2213# CHECK: zip1 v17.4h, v4.4h, v2.4h2214# CHECK: zip1 v2.8h, v4.8h, v2.8h2215# CHECK: zip1 v19.2s, v3.2s, v2.2s2216# CHECK: zip1 v4.4s, v3.4s, v2.4s2217# CHECK: zip1 v21.2d, v2.2d, v2.2d22180xbf,0x38,0x02,0x0e22190xa0,0x38,0x02,0x4e22200x91,0x38,0x42,0x0e22210x82,0x38,0x42,0x4e22220x73,0x38,0x82,0x0e22230x64,0x38,0x82,0x4e22240x55,0x38,0xc2,0x4e2225 2226#----------------------------------------------------------------------2227# unzip with 3 same vectors to get secondary result2228#----------------------------------------------------------------------2229# CHECK: uzp2 v6.8b, v2.8b, v2.8b2230# CHECK: uzp2 v23.16b, v1.16b, v2.16b2231# CHECK: uzp2 v8.4h, v1.4h, v2.4h2232# CHECK: uzp2 v25.8h, v0.8h, v2.8h2233# CHECK: uzp2 v10.2s, v0.2s, v2.2s2234# CHECK: uzp2 v27.4s, v7.4s, v2.4s2235# CHECK: uzp2 v12.2d, v7.2d, v2.2d22360x46,0x58,0x02,0x0e22370x37,0x58,0x02,0x4e22380x28,0x58,0x42,0x0e22390x19,0x58,0x42,0x4e22400x0a,0x58,0x82,0x0e22410xfb,0x58,0x82,0x4e22420xec,0x58,0xc2,0x4e2243 2244#----------------------------------------------------------------------2245# transpose with 3 same vectors to get secondary result2246#----------------------------------------------------------------------2247# CHECK: trn2 v29.8b, v6.8b, v2.8b2248# CHECK: trn2 v14.16b, v6.16b, v2.16b2249# CHECK: trn2 v31.4h, v5.4h, v2.4h2250# CHECK: trn2 v0.8h, v5.8h, v2.8h2251# CHECK: trn2 v17.2s, v4.2s, v2.2s2252# CHECK: trn2 v2.4s, v4.4s, v2.4s2253# CHECK: trn2 v19.2d, v3.2d, v2.2d22540xdd,0x68,0x02,0x0e22550xce,0x68,0x02,0x4e22560xbf,0x68,0x42,0x0e22570xa0,0x68,0x42,0x4e22580x91,0x68,0x82,0x0e22590x82,0x68,0x82,0x4e22600x73,0x68,0xc2,0x4e2261 2262#----------------------------------------------------------------------2263# zip with 3 same vectors to get secondary result2264#----------------------------------------------------------------------2265# CHECK: zip2 v4.8b, v3.8b, v2.8b2266# CHECK: zip2 v21.16b, v2.16b, v2.16b2267# CHECK: zip2 v6.4h, v2.4h, v2.4h2268# CHECK: zip2 v23.8h, v1.8h, v2.8h2269# CHECK: zip2 v8.2s, v1.2s, v2.2s2270# CHECK: zip2 v25.4s, v0.4s, v2.4s2271# CHECK: zip2 v10.2d, v0.2d, v2.2d22720x64,0x78,0x02,0x0e22730x55,0x78,0x02,0x4e22740x46,0x78,0x42,0x0e22750x37,0x78,0x42,0x4e22760x28,0x78,0x82,0x0e22770x19,0x78,0x82,0x4e22780x0a,0x78,0xc2,0x4e2279 2280#----------------------------------------------------------------------2281# Scalar Floating Point multiply (scalar, by element)2282#----------------------------------------------------------------------2283# CHECK: fmul s0, s1, v1.s[0]2284# CHECK: fmul s0, s1, v1.s[3]2285# CHECK: fmul d0, d1, v1.d[0]2286# CHECK: fmul d0, d1, v1.d[1]2287# CHECK: fmul d15, d15, v15.d[1]22880x20 0x90 0x81 0x5f22890x20 0x98 0xa1 0x5f22900x20 0x90 0xc1 0x5f22910x20 0x98 0xc1 0x5f22920xef 0x99 0xcf 0x5f2293 2294#----------------------------------------------------------------------2295# Scalar Floating Point multiply extended (scalar, by element)2296#----------------------------------------------------------------------2297# CHECK: fmulx s3, s5, v7.s[0]2298# CHECK: fmulx s3, s5, v7.s[3]2299# CHECK: fmulx s3, s5, v15.s[3]2300# CHECK: fmulx d0, d4, v8.d[0]2301# CHECK: fmulx d0, d4, v8.d[1]23020xa3 0x90 0x87 0x7f23030xa3 0x98 0xa7 0x7f23040xa3 0x98 0xaf 0x7f23050x80 0x90 0xc8 0x7f23060x80 0x98 0xc8 0x7f2307 2308#----------------------------------------------------------------------2309# Scalar Floating Point fused multiply-add (scalar, by element)2310#----------------------------------------------------------------------2311# CHECK: fmla s0, s1, v1.s[0]2312# CHECK: fmla s0, s1, v1.s[3]2313# CHECK: fmla d0, d1, v1.d[0]2314# CHECK: fmla d0, d1, v1.d[1]2315# CHECK: fmla d15, d15, v15.d[1]23160x20 0x10 0x81 0x5f23170x20 0x18 0xa1 0x5f23180x20 0x10 0xc1 0x5f23190x20 0x18 0xc1 0x5f23200xef 0x19 0xcf 0x5f2321 2322#----------------------------------------------------------------------2323# Scalar Floating Point fused multiply-sub (scalar, by element)2324#----------------------------------------------------------------------2325# CHECK: fmls s3, s5, v7.s[0]2326# CHECK: fmls s3, s5, v7.s[3]2327# CHECK: fmls s3, s5, v15.s[3]2328# CHECK: fmls d0, d4, v8.d[0]2329# CHECK: fmls d0, d4, v8.d[1]23300xa3 0x50 0x87 0x5f23310xa3 0x58 0xa7 0x5f23320xa3 0x58 0xaf 0x5f23330x80 0x50 0xc8 0x5f23340x80 0x58 0xc8 0x5f2335 2336#----------------------------------------------------------------------2337# Scalar Signed saturating doubling2338# multiply-add long (scalar, by element)2339#----------------------------------------------------------------------2340# CHECK: sqdmlal s0, h0, v0.h[0]2341# CHECK: sqdmlal s0, h0, v0.h[1]2342# CHECK: sqdmlal s0, h0, v0.h[2]2343# CHECK: sqdmlal s0, h0, v0.h[3]2344# CHECK: sqdmlal s0, h0, v0.h[4]2345# CHECK: sqdmlal s0, h0, v0.h[5]2346# CHECK: sqdmlal s0, h0, v0.h[6]2347# CHECK: sqdmlal s0, h0, v0.h[7]2348# CHECK: sqdmlal d8, s9, v15.s[0]2349# CHECK: sqdmlal d8, s9, v15.s[1]2350# CHECK: sqdmlal d8, s9, v15.s[2]2351# CHECK: sqdmlal d8, s9, v15.s[3]23520x00 0x30 0x40 0x5f23530x00 0x30 0x50 0x5f23540x00 0x30 0x60 0x5f23550x00 0x30 0x70 0x5f23560x00 0x38 0x40 0x5f23570x00 0x38 0x50 0x5f23580x00 0x38 0x60 0x5f23590x00 0x38 0x70 0x5f23600x28 0x31 0x8f 0x5f23610x28 0x31 0xaf 0x5f23620x28 0x39 0x8f 0x5f23630x28 0x39 0xaf 0x5f2364 2365#----------------------------------------------------------------------2366# Scalar Signed saturating doubling2367# multiply-sub long (scalar, by element)2368#----------------------------------------------------------------------2369# CHECK: sqdmlsl s0, h0, v0.h[0]2370# CHECK: sqdmlsl s0, h0, v0.h[1]2371# CHECK: sqdmlsl s0, h0, v0.h[2]2372# CHECK: sqdmlsl s0, h0, v0.h[3]2373# CHECK: sqdmlsl s0, h0, v0.h[4]2374# CHECK: sqdmlsl s0, h0, v0.h[5]2375# CHECK: sqdmlsl s0, h0, v0.h[6]2376# CHECK: sqdmlsl s0, h0, v0.h[7]2377# CHECK: sqdmlsl d8, s9, v15.s[0]2378# CHECK: sqdmlsl d8, s9, v15.s[1]2379# CHECK: sqdmlsl d8, s9, v15.s[2]2380# CHECK: sqdmlsl d8, s9, v15.s[3]23810x00 0x70 0x40 0x5f23820x00 0x70 0x50 0x5f23830x00 0x70 0x60 0x5f23840x00 0x70 0x70 0x5f23850x00 0x78 0x40 0x5f23860x00 0x78 0x50 0x5f23870x00 0x78 0x60 0x5f23880x00 0x78 0x70 0x5f23890x28 0x71 0x8f 0x5f23900x28 0x71 0xaf 0x5f23910x28 0x79 0x8f 0x5f23920x28 0x79 0xaf 0x5f2393 2394#----------------------------------------------------------------------2395# Scalar Signed saturating doubling multiply long (scalar, by element)2396#----------------------------------------------------------------------2397# CHECK: sqdmull s1, h1, v1.h[0]2398# CHECK: sqdmull s1, h1, v1.h[1]2399# CHECK: sqdmull s1, h1, v1.h[2]2400# CHECK: sqdmull s1, h1, v1.h[3]2401# CHECK: sqdmull s1, h1, v1.h[4]2402# CHECK: sqdmull s1, h1, v1.h[5]2403# CHECK: sqdmull s1, h1, v1.h[6]2404# CHECK: sqdmull s1, h1, v1.h[7]2405# CHECK: sqdmull d1, s1, v4.s[0]2406# CHECK: sqdmull d1, s1, v4.s[1]2407# CHECK: sqdmull d1, s1, v4.s[2]2408# CHECK: sqdmull d1, s1, v4.s[3]24090x21 0xb0 0x41 0x5f24100x21 0xb0 0x51 0x5f24110x21 0xb0 0x61 0x5f24120x21 0xb0 0x71 0x5f24130x21 0xb8 0x41 0x5f24140x21 0xb8 0x51 0x5f24150x21 0xb8 0x61 0x5f24160x21 0xb8 0x71 0x5f24170x21 0xb0 0x84 0x5f24180x21 0xb0 0xa4 0x5f24190x21 0xb8 0x84 0x5f24200x21 0xb8 0xa4 0x5f2421 2422#----------------------------------------------------------------------2423# Scalar Signed saturating doubling multiply returning2424# high half (scalar, by element)2425#----------------------------------------------------------------------2426# CHECK: sqdmulh h7, h1, v14.h[0]2427# CHECK: sqdmulh h7, h15, v8.h[1]2428# CHECK: sqdmulh h7, h15, v8.h[2]2429# CHECK: sqdmulh h7, h15, v8.h[3]2430# CHECK: sqdmulh h7, h15, v8.h[4]2431# CHECK: sqdmulh h7, h15, v8.h[5]2432# CHECK: sqdmulh h7, h15, v8.h[6]2433# CHECK: sqdmulh h7, h15, v8.h[7]2434# CHECK: sqdmulh s15, s3, v4.s[0]2435# CHECK: sqdmulh s15, s14, v16.s[1]2436# CHECK: sqdmulh s15, s15, v16.s[2]2437# CHECK: sqdmulh s15, s16, v17.s[3]24380x27 0xc0 0x4e 0x5f24390xe7 0xc1 0x58 0x5f24400xe7 0xc1 0x68 0x5f24410xe7 0xc1 0x78 0x5f24420xe7 0xc9 0x48 0x5f24430xe7 0xc9 0x58 0x5f24440xe7 0xc9 0x68 0x5f24450xe7 0xc9 0x78 0x5f24460x6f 0xc0 0x84 0x5f24470xcf 0xc1 0xb0 0x5f24480xef 0xc9 0x90 0x5f24490x0f 0xca 0xb1 0x5f2450 2451#----------------------------------------------------------------------2452# Scalar Signed saturating rounding doubling multiply2453# returning high half (scalar, by element)2454#----------------------------------------------------------------------2455# CHECK: sqrdmulh h7, h1, v14.h[0]2456# CHECK: sqrdmulh h7, h15, v8.h[1]2457# CHECK: sqrdmulh h7, h15, v8.h[2]2458# CHECK: sqrdmulh h7, h15, v8.h[3]2459# CHECK: sqrdmulh h7, h15, v8.h[4]2460# CHECK: sqrdmulh h7, h15, v8.h[5]2461# CHECK: sqrdmulh h7, h15, v8.h[6]2462# CHECK: sqrdmulh h7, h15, v8.h[7]2463# CHECK: sqrdmulh s15, s3, v4.s[0]2464# CHECK: sqrdmulh s15, s14, v16.s[1]2465# CHECK: sqrdmulh s15, s15, v16.s[2]2466# CHECK: sqrdmulh s15, s16, v17.s[3]24670x27 0xd0 0x4e 0x5f24680xe7 0xd1 0x58 0x5f24690xe7 0xd1 0x68 0x5f24700xe7 0xd1 0x78 0x5f24710xe7 0xd9 0x48 0x5f24720xe7 0xd9 0x58 0x5f24730xe7 0xd9 0x68 0x5f24740xe7 0xd9 0x78 0x5f24750x6f 0xd0 0x84 0x5f24760xcf 0xd1 0xb0 0x5f24770xef 0xd9 0x90 0x5f24780x0f 0xda 0xb1 0x5f2479 2480#----------------------------------------------------------------------2481#Duplicate element (scalar)2482#----------------------------------------------------------------------2483# CHECK: {{dup|mov}} b0, v0.b[15]2484# CHECK: {{dup|mov}} h2, v31.h[5]2485# CHECK: {{dup|mov}} s17, v2.s[2]2486# CHECK: {{dup|mov}} d6, v12.d[1]24870x00 0x04 0x1f 0x5e24880xe2 0x07 0x16 0x5e24890x51 0x04 0x14 0x5e24900x86 0x05 0x18 0x5e2491 2492#----------------------------------------------------------------------2493# Table look up2494#----------------------------------------------------------------------24950x20,0x00,0x02,0x0e24960xf0,0x23,0x02,0x0e24970x20,0x40,0x02,0x0e24980xf0,0x62,0x02,0x0e2499# CHECK: tbl v0.8b, { v1.16b }, v2.8b2500# CHECK: tbl v16.8b, { v31.16b, v0.16b }, v2.8b2501# CHECK: tbl v0.8b, { v1.16b, v2.16b, v3.16b }, v2.8b2502# CHECK: tbl v16.8b, { v23.16b, v24.16b, v25.16b, v26.16b }, v2.8b2503 25040x20,0x00,0x02,0x4e25050xf0,0x23,0x02,0x4e25060x20,0x40,0x02,0x4e25070xe0,0x63,0x02,0x4e2508# CHECK: tbl v0.16b, { v1.16b }, v2.16b2509# CHECK: tbl v16.16b, { v31.16b, v0.16b }, v2.16b2510# CHECK: tbl v0.16b, { v1.16b, v2.16b, v3.16b }, v2.16b2511# CHECK: tbl v0.16b, { v31.16b, v0.16b, v1.16b, v2.16b }, v2.16b2512 25130x20,0x10,0x02,0x0e25140xf0,0x33,0x02,0x0e25150x20,0x50,0x02,0x0e25160xf0,0x72,0x02,0x0e2517# CHECK: tbx v0.8b, { v1.16b }, v2.8b2518# CHECK: tbx v16.8b, { v31.16b, v0.16b }, v2.8b2519# CHECK: tbx v0.8b, { v1.16b, v2.16b, v3.16b }, v2.8b2520# CHECK: tbx v16.8b, { v23.16b, v24.16b, v25.16b, v26.16b }, v2.8b2521 25220x20,0x10,0x02,0x4e25230xf0,0x33,0x02,0x4e25240x20,0x50,0x02,0x4e25250xf0,0x73,0x02,0x4e2526# CHECK: tbx v0.16b, { v1.16b }, v2.16b2527# CHECK: tbx v16.16b, { v31.16b, v0.16b }, v2.16b2528# CHECK: tbx v0.16b, { v1.16b, v2.16b, v3.16b }, v2.16b2529# CHECK: tbx v16.16b, { v31.16b, v0.16b, v1.16b, v2.16b }, v2.16b2530 2531#----------------------------------------------------------------------2532# Scalar Floating-point Convert To Lower Precision Narrow, Rounding To2533# Odd2534#----------------------------------------------------------------------2535# CHECK: fcvtxn s22, d1325360xb6,0x69,0x61,0x7e2537 2538#----------------------------------------------------------------------2539# Scalar Floating-point Convert To Signed Integer, Rounding To Nearest2540# With Ties To Away2541#----------------------------------------------------------------------2542# CHECK: fcvtas s12, s132543# CHECK: fcvtas d21, d142544 25450xac,0xc9,0x21,0x5e25460xd5,0xc9,0x61,0x5e2547 2548#----------------------------------------------------------------------2549# Scalar Floating-point Convert To Unsigned Integer, Rounding To2550# Nearest With Ties To Away2551#----------------------------------------------------------------------2552# CHECK: fcvtau s12, s132553# CHECK: fcvtau d21, d1425540xac,0xc9,0x21,0x7e25550xd5,0xc9,0x61,0x7e2556 2557#----------------------------------------------------------------------2558# Scalar Floating-point Convert To Signed Integer, Rounding Toward2559# Minus Infinity2560#----------------------------------------------------------------------2561# CHECK: fcvtms s22, s132562# CHECK: fcvtms d21, d1425630xb6,0xb9,0x21,0x5e25640xd5,0xb9,0x61,0x5e2565 2566#----------------------------------------------------------------------2567# Scalar Floating-point Convert To Unsigned Integer, Rounding Toward2568# Minus Infinity2569#----------------------------------------------------------------------2570# CHECK: fcvtmu s12, s132571# CHECK: fcvtmu d21, d1425720xac,0xb9,0x21,0x7e25730xd5,0xb9,0x61,0x7e2574 2575#----------------------------------------------------------------------2576# Scalar Floating-point Convert To Signed Integer, Rounding To Nearest2577# With Ties To Even2578#----------------------------------------------------------------------2579 2580# CHECK: fcvtns s22, s132581# CHECK: fcvtns d21, d142582 25830xb6,0xa9,0x21,0x5e25840xd5,0xa9,0x61,0x5e2585 2586#----------------------------------------------------------------------2587# Scalar Floating-point Convert To Unsigned Integer, Rounding To2588# Nearest With Ties To Even2589#----------------------------------------------------------------------2590 2591# CHECK: fcvtnu s12, s132592# CHECK: fcvtnu d21, d1425930xac,0xa9,0x21,0x7e25940xd5,0xa9,0x61,0x7e2595 2596#----------------------------------------------------------------------2597# Scalar Floating-point Convert To Signed Integer, Rounding Toward2598# Positive Infinity2599#----------------------------------------------------------------------2600# CHECK: fcvtps s22, s132601# CHECK: fcvtps d21, d1426020xb6,0xa9,0xa1,0x5e26030xd5,0xa9,0xe1,0x5e2604 2605#----------------------------------------------------------------------2606# Scalar Floating-point Convert To Unsigned Integer, Rounding Toward2607# Positive Infinity2608#----------------------------------------------------------------------2609# CHECK: fcvtpu s12, s132610# CHECK: fcvtpu d21, d1426110xac,0xa9,0xa1,0x7e26120xd5,0xa9,0xe1,0x7e2613 2614#----------------------------------------------------------------------2615# Scalar Floating-point Convert To Signed Integer, Rounding Toward Zero2616#----------------------------------------------------------------------2617# CHECK: fcvtzs s12, s132618# CHECK: fcvtzs d21, d1426190xac,0xb9,0xa1,0x5e26200xd5,0xb9,0xe1,0x5e2621 2622#----------------------------------------------------------------------2623# Scalar Floating-point Convert To Unsigned Integer, Rounding Toward 2624# Zero2625#----------------------------------------------------------------------2626# CHECK: fcvtzu s12, s132627# CHECK: fcvtzu d21, d1426280xac,0xb9,0xa1,0x7e26290xd5,0xb9,0xe1,0x7e2630 2631#----------------------------------------------------------------------2632# Scalar Floating-point Absolute Difference2633#----------------------------------------------------------------------2634# CHECK: fabd s29, s24, s202635# CHECK: fabd d29, d24, d2026360x1d,0xd7,0xb4,0x7e26370x1d,0xd7,0xf4,0x7e2638