1# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -disassemble < %s | FileCheck %s 2 3#------------------------------------------------------------------------------ 4# Vector Integer Add/Sub 5#------------------------------------------------------------------------------ 6# CHECK: add v31.8b, v31.8b, v31.8b 7# CHECK: sub v0.2d, v0.2d, v0.2d 80xff 0x87 0x3f 0x0e 90x00 0x84 0xe0 0x6e 10 11#------------------------------------------------------------------------------ 12# Vector Floating-Point Add/Sub 13#------------------------------------------------------------------------------ 14 15# CHECK: fadd v0.4s, v0.4s, v0.4s 16# CHECK: fsub v31.2s, v31.2s, v31.2s 170x00 0xd4 0x20 0x4e 180xff 0xd7 0xbf 0x0e 19 20#------------------------------------------------------------------------------ 21# Vector Integer Mul 22#------------------------------------------------------------------------------ 23# CHECK: mul v0.8b, v1.8b, v2.8b 240x20 0x9c 0x22 0x0e 25 26#------------------------------------------------------------------------------ 27# Vector Floating-Point Mul/Div 28#------------------------------------------------------------------------------ 29# CHECK: fmul v0.2s, v1.2s, v2.2s 30# CHECK: fdiv v31.2s, v31.2s, v31.2s 310x20 0xdc 0x22 0x2e 320xff 0xff 0x3f 0x2e 33 34#---------------------------------------------------------------------- 35# Vector Polynomial Multiply 36#---------------------------------------------------------------------- 37# CHECK: pmul v0.8b, v15.8b, v16.8b 38# CHECK: pmul v31.16b, v7.16b, v8.16b 390xe0 0x9d 0x30 0x2e 400xff 0x9c 0x28 0x6e 41 42#------------------------------------------------------------------------------ 43# Vector And, Orr, Eor, Orn, Bic 44#------------------------------------------------------------------------------ 45# CHECK: and v2.8b, v2.8b, v2.8b 46# CHECK: orr v31.16b, v31.16b, v30.16b 47# CHECK: eor v0.16b, v1.16b, v2.16b 48# CHECK: orn v9.16b, v10.16b, v11.16b 49# CHECK: bic v31.8b, v30.8b, v29.8b 500x42 0x1c 0x22 0x0e 510xff 0x1f 0xbe 0x4e 520x20 0x1c 0x22 0x6e 530x49 0x1d 0xeb 0x4e 540xdf 0x1f 0x7d 0x0e 55 56#------------------------------------------------------------------------------ 57# Vector Bsl, Bit, Bif 58#------------------------------------------------------------------------------ 59# CHECK: bsl v0.8b, v1.8b, v2.8b 60# CHECK: bit v31.16b, v31.16b, v31.16b 61# CHECK: bif v0.16b, v1.16b, v2.16b 620x20 0x1c 0x62 0x2e 630xff 0x1f 0xbf 0x6e 640x20 0x1c 0xe2 0x6e 65 66 67#------------------------------------------------------------------------------ 68# Vector Integer Multiply-accumulate and Multiply-subtract 69#------------------------------------------------------------------------------ 70# CHECK: mla v0.8b, v1.8b, v2.8b 71# CHECK: mls v31.4h, v31.4h, v31.4h 720x20 0x94 0x22 0x0e 730xff 0x97 0x7f 0x2e 74 75#------------------------------------------------------------------------------ 76# Vector Floating-Point Multiply-accumulate and Multiply-subtract 77#------------------------------------------------------------------------------ 78# CHECK: fmla v0.2s, v1.2s, v2.2s 79# CHECK: fmls v31.2s, v31.2s, v31.2s 800x20 0xcc 0x22 0x0e 810xff 0xcf 0xbf 0x0e 82 83#------------------------------------------------------------------------------ 84# Vector Move Immediate Shifted 85# Vector Move Inverted Immediate Shifted 86# Vector Bitwise Bit Clear (AND NOT) - immediate 87# Vector Bitwise OR - immedidate 88#------------------------------------------------------------------------------ 89# CHECK: movi v31.4s, #0xff, lsl #24 90# CHECK: mvni v0.2s, #0x0 91# CHECK: bic v15.4h, #0xf, lsl #8 92# CHECK: orr v16.8h, #0x1f 930xff 0x67 0x07 0x4f 940x00 0x04 0x00 0x2f 950xef 0xb5 0x00 0x2f 960xf0 0x97 0x00 0x4f 97 98#------------------------------------------------------------------------------ 99# Vector Move Immediate Masked 100# Vector Move Inverted Immediate Masked 101#------------------------------------------------------------------------------ 102# CHECK: movi v8.2s, #0x8, msl #8 103# CHECK: mvni v16.4s, #0x10, msl #16 1040x08 0xc5 0x00 0x0f 1050x10 0xd6 0x00 0x6f 106 107#------------------------------------------------------------------------------ 108# Vector Immediate - per byte 109# Vector Move Immediate - bytemask, per doubleword 110# Vector Move Immediate - bytemask, one doubleword 111#------------------------------------------------------------------------------ 112# CHECK: movi v16.8b, #0xff 113# CHECK: movi v31.16b, #0x1f 114# CHECK: movi d15, #0xff00ff00ff00ff 115# CHECK: movi v31.2d, #0xff0000ff0000ffff 1160xf0 0xe7 0x07 0x0f 1170xff 0xe7 0x00 0x4f 1180xaf 0xe6 0x02 0x2f 1190x7f 0xe6 0x04 0x6f 120 121#------------------------------------------------------------------------------ 122# Vector Floating Point Move Immediate 123#------------------------------------------------------------------------------ 124# CHECK: fmov v0.2s, #13.0 125# CHECK: fmov v15.4s, #1.0 126# CHECK: fmov v31.2d, #-1.25 1270x40 0xf5 0x01 0x0f 1280x0f 0xf6 0x03 0x4f 1290x9f 0xf6 0x07 0x6f 130 131#------------------------------------------------------------------------------ 132# Vector Move - register 133#------------------------------------------------------------------------------ 134# CHECK: mov v1.16b, v15.16b 135# CHECK: mov v25.8b, v4.8b 1360xe1 0x1d 0xaf 0x4e 1370x99 0x1c 0xa4 0x0e 138 139#---------------------------------------------------------------------- 140# Vector Absolute Difference and Accumulate (Signed, Unsigned) 141# Vector Absolute Difference (Signed, Unsigned) 142# Vector Absolute Difference (Floating Point) 143#---------------------------------------------------------------------- 144 145# CHECK: uaba v0.8b, v1.8b, v2.8b 146# CHECK: saba v31.16b, v30.16b, v29.16b 147# CHECK: uabd v15.4h, v16.4h, v17.4h 148# CHECK: sabd v5.4h, v4.4h, v6.4h 149# CHECK: fabd v1.4s, v31.4s, v16.4s 1500x20 0x7c 0x22 0x2e 1510xdf 0x7f 0x3d 0x4e 1520x0f 0x76 0x71 0x2e 1530x85 0x74 0x66 0x0e 1540xe1 0xd7 0xb0 0x6e 155 156#---------------------------------------------------------------------- 157# Scalar Integer Add 158# Scalar Integer Sub 159#---------------------------------------------------------------------- 160 161# CHECK: add d17, d31, d29 162# CHECK: sub d15, d5, d16 1630xf1 0x87 0xfd 0x5e 1640xaf 0x84 0xf0 0x7e 165 166#---------------------------------------------------------------------- 167# Vector Reciprocal Square Root Step (Floating Point) 168#---------------------------------------------------------------------- 169# CHECK: frsqrts v31.2d, v15.2d, v8.2d 1700xff 0xfd 0xe8 0x4e 171 172#---------------------------------------------------------------------- 173# Vector Reciprocal Step (Floating Point) 174#---------------------------------------------------------------------- 175# CHECK: frecps v5.4s, v7.4s, v16.4s 1760xe5 0xfc 0x30 0x4e 177 178#---------------------------------------------------------------------- 179# Vector Absolute Compare Mask Less Than Or Equal (Floating Point) 180#---------------------------------------------------------------------- 181# CHECK: facge v0.4s, v31.4s, v16.4s 1820xe0 0xef 0x30 0x6e 183 184#---------------------------------------------------------------------- 185# Vector Absolute Compare Mask Less Than (Floating Point) 186#---------------------------------------------------------------------- 187# CHECK: facgt v31.2d, v29.2d, v28.2d 1880xbf 0xef 0xfc 0x6e 189 190#---------------------------------------------------------------------- 191# Vector Compare Mask Equal (Integer) 192#---------------------------------------------------------------------- 193# CHECK: cmeq v5.16b, v15.16b, v31.16b 1940xe5 0x8d 0x3f 0x6e 195 196#---------------------------------------------------------------------- 197# Vector Compare Mask Higher or Same (Unsigned Integer) 198#---------------------------------------------------------------------- 199# CHECK: cmhs v1.8b, v16.8b, v30.8b 2000x01 0x3e 0x3e 0x2e 201 202#---------------------------------------------------------------------- 203# Vector Compare Mask Greater Than or Equal (Integer) 204#---------------------------------------------------------------------- 205# CHECK: cmge v20.4h, v11.4h, v23.4h 2060x74 0x3d 0x77 0x0e 207 208#---------------------------------------------------------------------- 209# Vector Compare Mask Higher (Unsigned Integer) 210# CHECK: cmhi v13.8h, v3.8h, v27.8h 2110x6d 0x34 0x7b 0x6e 212 213#---------------------------------------------------------------------- 214# Vector Compare Mask Greater Than (Integer) 215#---------------------------------------------------------------------- 216# CHECK: cmgt v9.4s, v4.4s, v28.4s 2170x89 0x34 0xbc 0x4e 218 219#---------------------------------------------------------------------- 220# Vector Compare Mask Bitwise Test (Integer) 221#---------------------------------------------------------------------- 222# CHECK: cmtst v21.2s, v19.2s, v18.2s 2230x75 0x8e 0xb2 0x0e 224 225#---------------------------------------------------------------------- 226# Vector Compare Mask Equal (Floating Point) 227#---------------------------------------------------------------------- 228# CHECK: fcmeq v0.2s, v15.2s, v16.2s 2290xe0 0xe5 0x30 0x0e 230 231#---------------------------------------------------------------------- 232# Vector Compare Mask Greater Than Or Equal (Floating Point) 233#---------------------------------------------------------------------- 234# CHECK: fcmge v31.4s, v7.4s, v29.4s 2350xff 0xe4 0x3d 0x6e 236 237#---------------------------------------------------------------------- 238# Vector Compare Mask Greater Than (Floating Point) 239#---------------------------------------------------------------------- 240# CHECK: fcmgt v17.4s, v8.4s, v25.4s 2410x11 0xe5 0xb9 0x6e 242 243#---------------------------------------------------------------------- 244# Vector Compare Mask Equal to Zero (Integer) 245#---------------------------------------------------------------------- 246# CHECK: cmeq v31.16b, v15.16b, #0x0 2470xff 0x99 0x20 0x4e 248 249#---------------------------------------------------------------------- 250# Vector Compare Mask Greater Than or Equal to Zero (Signed Integer) 251#---------------------------------------------------------------------- 252# CHECK: cmge v3.8b, v15.8b, #0x0 2530xe3 0x89 0x20 0x2e 254 255#---------------------------------------------------------------------- 256# Vector Compare Mask Greater Than Zero (Signed Integer) 257#---------------------------------------------------------------------- 258# CHECK: cmgt v22.2s, v9.2s, #0x0 2590x36 0x89 0xa0 0x0e 260 261#---------------------------------------------------------------------- 262# Vector Compare Mask Less Than or Equal To Zero (Signed Integer) 263#---------------------------------------------------------------------- 264# CHECK: cmle v5.2d, v14.2d, #0x0 2650xc5 0x99 0xe0 0x6e 266 267#---------------------------------------------------------------------- 268# Vector Compare Mask Less Than Zero (Signed Integer) 269#---------------------------------------------------------------------- 270# CHECK: cmlt v13.8h, v11.8h, #0x0 2710x6d 0xa9 0x60 0x4e 272 273#---------------------------------------------------------------------- 274# Vector Compare Mask Equal to Zero (Floating Point) 275#---------------------------------------------------------------------- 276# CHECK: fcmeq v15.2s, v21.2s, #0.0 2770xaf 0xda 0xa0 0x0e 278 279#---------------------------------------------------------------------- 280# Vector Compare Mask Greater Than or Equal to Zero (Floating Point) 281#---------------------------------------------------------------------- 282# CHECK: fcmge v14.2d, v13.2d, #0.0 2830xae 0xc9 0xe0 0x6e 284 285#---------------------------------------------------------------------- 286# Vector Compare Mask Greater Than Zero (Floating Point) 287#---------------------------------------------------------------------- 288# CHECK: fcmgt v9.4s, v23.4s, #0.0 2890xe9 0xca 0xa0 0x4e 290 291#---------------------------------------------------------------------- 292# Vector Compare Mask Less Than or Equal To Zero (Floating Point) 293#---------------------------------------------------------------------- 294# CHECK: fcmle v11.2d, v6.2d, #0.0 2950xcb 0xd8 0xe0 0x6e 296 297#---------------------------------------------------------------------- 298# Vector Compare Mask Less Than Zero (Floating Point) 299#---------------------------------------------------------------------- 300# CHECK: fcmlt v12.4s, v25.4s, #0.0 3010x2c 0xeb 0xa0 0x4e 302 303 304#------------------------------------------------------------------------------ 305# Vector Integer Halving Add (Signed) 306# Vector Integer Halving Add (Unsigned) 307# Vector Integer Halving Sub (Signed) 308# Vector Integer Halving Sub (Unsigned) 309#------------------------------------------------------------------------------ 310# CHECK: shadd v0.8b, v31.8b, v29.8b 311# CHECK: uhadd v15.16b, v16.16b, v17.16b 312# CHECK: shsub v0.4h, v1.4h, v2.4h 313# CHECK: uhadd v5.8h, v7.8h, v8.8h 314# CHECK: shsub v9.2s, v11.2s, v21.2s 315# CHECK: uhsub v22.4s, v30.4s, v19.4s 3160xe0 0x07 0x3d 0x0e 3170x0f 0x06 0x31 0x6e 3180x20 0x24 0x62 0x0e 3190xe5 0x04 0x68 0x6e 3200x69 0x25 0xb5 0x0e 3210xd6 0x27 0xb3 0x6e 322 323#------------------------------------------------------------------------------ 324# Vector Integer Rouding Halving Add (Signed) 325# Vector Integer Rouding Halving Add (Unsigned) 326#------------------------------------------------------------------------------ 327# CHECK: srhadd v3.8b, v5.8b, v7.8b 328# CHECK: urhadd v7.16b, v17.16b, v27.16b 329# CHECK: srhadd v10.4h, v11.4h, v13.4h 330# CHECK: urhadd v1.8h, v2.8h, v3.8h 331# CHECK: srhadd v4.2s, v5.2s, v6.2s 332# CHECK: urhadd v7.4s, v7.4s, v7.4s 3330xa3 0x14 0x27 0x0e 3340x27 0x16 0x3b 0x6e 3350x6a 0x15 0x6d 0x0e 3360x41 0x14 0x63 0x6e 3370xa4 0x14 0xa6 0x0e 3380xe7 0x14 0xa7 0x6e 339 340#------------------------------------------------------------------------------ 341# Vector Integer Saturating Add (Signed) 342# Vector Integer Saturating Add (Unsigned) 343# Vector Integer Saturating Sub (Signed) 344# Vector Integer Saturating Sub (Unsigned) 345#------------------------------------------------------------------------------ 346# CHECK: sqsub v0.8b, v1.8b, v2.8b 347# CHECK: sqadd v0.16b, v1.16b, v2.16b 348# CHECK: uqsub v0.4h, v1.4h, v2.4h 349# CHECK: uqadd v0.8h, v1.8h, v2.8h 350# CHECK: sqadd v0.2s, v1.2s, v2.2s 351# CHECK: sqsub v0.4s, v1.4s, v2.4s 352# CHECK: sqsub v0.2d, v1.2d, v2.2d 3530x20 0x2c 0x22 0x0e 3540x20 0x0c 0x22 0x4e 3550x20 0x2c 0x62 0x2e 3560x20 0x0c 0x62 0x6e 3570x20 0x0c 0xa2 0x0e 3580x20 0x2c 0xa2 0x4e 3590x20 0x2c 0xe2 0x4e 360 361#------------------------------------------------------------------------------ 362# Scalar Integer Saturating Add (Signed) 363# Scalar Integer Saturating Add (Unsigned) 364# Scalar Integer Saturating Sub (Signed) 365# Scalar Integer Saturating Add (Unsigned) 366#------------------------------------------------------------------------------ 367# CHECK: sqadd b20, b11, b15 368# CHECK: uqadd h0, h1, h5 369# CHECK: sqsub s20, s10, s7 370# CHECK: uqsub d16, d16, d16 3710x74 0x0d 0x2f 0x5e 3720x20 0x0c 0x65 0x7e 3730x54 0x2d 0xa7 0x5e 3740x10 0x2e 0xf0 0x7e 375 376 377#---------------------------------------------------------------------- 378# Vector Shift Left (Signed and Unsigned Integer) 379#---------------------------------------------------------------------- 380# CHECK: sshl v10.8b, v15.8b, v22.8b 381# CHECK: ushl v10.16b, v5.16b, v2.16b 382# CHECK: sshl v10.4h, v15.4h, v22.4h 383# CHECK: ushl v10.8h, v5.8h, v2.8h 384# CHECK: sshl v10.2s, v15.2s, v22.2s 385# CHECK: ushl v10.4s, v5.4s, v2.4s 386# CHECK: sshl v0.2d, v1.2d, v2.2d 3870xea 0x45 0x36 0x0e 3880xaa 0x44 0x22 0x6e 3890xea 0x45 0x76 0x0e 3900xaa 0x44 0x62 0x6e 3910xea 0x45 0xb6 0x0e 3920xaa 0x44 0xa2 0x6e 3930x20 0x44 0xe2 0x4e 394 395#---------------------------------------------------------------------- 396# Vector Saturating Shift Left (Signed and Unsigned Integer) 397#---------------------------------------------------------------------- 398# CHECK: sqshl v1.8b, v15.8b, v22.8b 399# CHECK: uqshl v2.16b, v14.16b, v23.16b 400# CHECK: sqshl v3.4h, v13.4h, v24.4h 401# CHECK: uqshl v4.8h, v12.8h, v25.8h 402# CHECK: sqshl v5.2s, v11.2s, v26.2s 403# CHECK: uqshl v6.4s, v10.4s, v27.4s 404# CHECK: uqshl v0.2d, v1.2d, v2.2d 4050xe1 0x4d 0x36 0x0e 4060xc2 0x4d 0x37 0x6e 4070xa3 0x4d 0x78 0x0e 4080x84 0x4d 0x79 0x6e 4090x65 0x4d 0xba 0x0e 4100x46 0x4d 0xbb 0x6e 4110x20 0x4c 0xe2 0x6e 412 413#---------------------------------------------------------------------- 414# Vector Rouding Shift Left (Signed and Unsigned Integer) 415#---------------------------------------------------------------------- 416# CHECK: srshl v10.8b, v5.8b, v22.8b 417# CHECK: urshl v10.16b, v5.16b, v2.16b 418# CHECK: srshl v1.4h, v5.4h, v31.4h 419# CHECK: urshl v1.8h, v5.8h, v2.8h 420# CHECK: srshl v10.2s, v15.2s, v2.2s 421# CHECK: urshl v1.4s, v5.4s, v2.4s 422# CHECK: urshl v0.2d, v1.2d, v2.2d 4230xaa 0x54 0x36 0x0e 4240xaa 0x54 0x22 0x6e 4250xa1 0x54 0x7f 0x0e 4260xa1 0x54 0x62 0x6e 4270xea 0x55 0xa2 0x0e 4280xa1 0x54 0xa2 0x6e 4290x20 0x54 0xe2 0x6e 430 431#---------------------------------------------------------------------- 432# Vector Saturating Rouding Shift Left (Signed and Unsigned Integer) 433#---------------------------------------------------------------------- 434# CHECK: sqrshl v1.8b, v15.8b, v22.8b 435# CHECK: uqrshl v2.16b, v14.16b, v23.16b 436# CHECK: sqrshl v3.4h, v13.4h, v24.4h 437# CHECK: uqrshl v4.8h, v12.8h, v25.8h 438# CHECK: sqrshl v5.2s, v11.2s, v26.2s 439# CHECK: uqrshl v6.4s, v10.4s, v27.4s 440# CHECK: uqrshl v6.4s, v10.4s, v27.4s 4410xe1 0x5d 0x36 0x0e 4420xc2 0x5d 0x37 0x6e 4430xa3 0x5d 0x78 0x0e 4440x84 0x5d 0x79 0x6e 4450x65 0x5d 0xba 0x0e 4460x46 0x5d 0xbb 0x6e 4470x46 0x5d 0xbb 0x6e 448 449#---------------------------------------------------------------------- 450# Scalar Integer Shift Left (Signed, Unsigned) 451#---------------------------------------------------------------------- 452# CHECK: sshl d31, d31, d31 453# CHECK: ushl d0, d0, d0 4540xff 0x47 0xff 0x5e 4550x00 0x44 0xe0 0x7e 456 457#---------------------------------------------------------------------- 458# Scalar Integer Saturating Shift Left (Signed, Unsigned) 459#---------------------------------------------------------------------- 460# CHECK: sqshl d31, d31, d31 461# CHECK: uqshl s23, s20, s16 462# CHECK: sqshl h3, h4, h15 463# CHECK: uqshl b11, b20, b30 4640xff 0x4f 0xff 0x5e 4650x97 0x4e 0xb0 0x7e 4660x83 0x4c 0x6f 0x5e 4670x8b 0x4e 0x3e 0x7e 468 469#---------------------------------------------------------------------- 470# Scalar Integer Rouding Shift Left (Signed, Unsigned) 471#---------------------------------------------------------------------- 472# CHECK: srshl d16, d16, d16 473# CHECK: urshl d8, d7, d4 4740x10 0x56 0xf0 0x5e 4750xe8 0x54 0xe4 0x7e 476 477#---------------------------------------------------------------------- 478# Scalar Integer Saturating Rounding Shift Left (Signed, Unsigned) 479#---------------------------------------------------------------------- 480# CHECK: sqrshl d31, d31, d31 481# CHECK: uqrshl s23, s20, s16 482# CHECK: sqrshl h3, h4, h15 483# CHECK: uqrshl b11, b20, b30 4840xff 0x5f 0xff 0x5e 4850x97 0x5e 0xb0 0x7e 4860x83 0x5c 0x6f 0x5e 4870x8b 0x5e 0x3e 0x7e 488 489#---------------------------------------------------------------------- 490# Vector Maximum (Signed and Unsigned Integer) 491#---------------------------------------------------------------------- 492# CHECK: smax v1.8b, v15.8b, v22.8b 493# CHECK: umax v2.16b, v14.16b, v23.16b 494# CHECK: smax v3.4h, v13.4h, v24.4h 495# CHECK: umax v4.8h, v12.8h, v25.8h 496# CHECK: smax v5.2s, v11.2s, v26.2s 497# CHECK: umax v6.4s, v10.4s, v27.4s 4980xe1 0x65 0x36 0x0e 4990xc2 0x65 0x37 0x6e 5000xa3 0x65 0x78 0x0e 5010x84 0x65 0x79 0x6e 5020x65 0x65 0xba 0x0e 5030x46 0x65 0xbb 0x6e 504 505#---------------------------------------------------------------------- 506# Vector Minimum (Signed and Unsigned Integer) 507#---------------------------------------------------------------------- 508# CHECK: umin v1.8b, v15.8b, v22.8b 509# CHECK: smin v2.16b, v14.16b, v23.16b 510# CHECK: umin v3.4h, v13.4h, v24.4h 511# CHECK: smin v4.8h, v12.8h, v25.8h 512# CHECK: umin v5.2s, v11.2s, v26.2s 513# CHECK: smin v6.4s, v10.4s, v27.4s 5140xe1 0x6d 0x36 0x2e 5150xc2 0x6d 0x37 0x4e 5160xa3 0x6d 0x78 0x2e 5170x84 0x6d 0x79 0x4e 5180x65 0x6d 0xba 0x2e 5190x46 0x6d 0xbb 0x4e 520 521#---------------------------------------------------------------------- 522# Vector Maximum (Floating Point) 523#---------------------------------------------------------------------- 524# CHECK: fmax v29.2s, v28.2s, v25.2s 525# CHECK: fmax v9.4s, v8.4s, v5.4s 526# CHECK: fmax v11.2d, v10.2d, v7.2d 5270x9d 0xf7 0x39 0x0e 5280x09 0xf5 0x25 0x4e 5290x4b 0xf5 0x67 0x4e 530 531#---------------------------------------------------------------------- 532# Vector Minimum (Floating Point) 533#---------------------------------------------------------------------- 534# CHECK: fmin v29.2s, v28.2s, v25.2s 535# CHECK: fmin v9.4s, v8.4s, v5.4s 536# CHECK: fmin v11.2d, v10.2d, v7.2d 5370x9d 0xf7 0xb9 0x0e 5380x09 0xf5 0xa5 0x4e 5390x4b 0xf5 0xe7 0x4e 540 541#---------------------------------------------------------------------- 542# Vector maxNum (Floating Point) 543#---------------------------------------------------------------------- 544# CHECK: fmaxnm v9.2s, v8.2s, v5.2s 545# CHECK: fmaxnm v9.4s, v8.4s, v5.4s 546# CHECK: fmaxnm v11.2d, v10.2d, v7.2d 5470x09 0xc5 0x25 0x0e 5480x09 0xc5 0x25 0x4e 5490x4b 0xc5 0x67 0x4e 550 551#---------------------------------------------------------------------- 552# Vector minNum (Floating Point) 553#---------------------------------------------------------------------- 554# CHECK: fminnm v2.2s, v8.2s, v25.2s 555# CHECK: fminnm v9.4s, v8.4s, v5.4s 556# CHECK: fminnm v11.2d, v10.2d, v7.2d 5570x02 0xc5 0xb9 0x0e 5580x09 0xc5 0xa5 0x4e 5590x4b 0xc5 0xe7 0x4e 560 561 562#---------------------------------------------------------------------- 563# Vector Maximum Pairwise (Signed and Unsigned Integer) 564#---------------------------------------------------------------------- 565# CHECK: smaxp v1.8b, v15.8b, v22.8b 566# CHECK: umaxp v2.16b, v14.16b, v23.16b 567# CHECK: smaxp v3.4h, v13.4h, v24.4h 568# CHECK: umaxp v4.8h, v12.8h, v25.8h 569# CHECK: smaxp v5.2s, v11.2s, v26.2s 570# CHECK: umaxp v6.4s, v10.4s, v27.4s 5710xe1 0xa5 0x36 0x0e 5720xc2 0xa5 0x37 0x6e 5730xa3 0xa5 0x78 0x0e 5740x84 0xa5 0x79 0x6e 5750x65 0xa5 0xba 0x0e 5760x46 0xa5 0xbb 0x6e 577 578#---------------------------------------------------------------------- 579# Vector Minimum Pairwise (Signed and Unsigned Integer) 580#---------------------------------------------------------------------- 581# CHECK: uminp v1.8b, v15.8b, v22.8b 582# CHECK: sminp v2.16b, v14.16b, v23.16b 583# CHECK: uminp v3.4h, v13.4h, v24.4h 584# CHECK: sminp v4.8h, v12.8h, v25.8h 585# CHECK: uminp v5.2s, v11.2s, v26.2s 586# CHECK: sminp v6.4s, v10.4s, v27.4s 5870xe1 0xad 0x36 0x2e 5880xc2 0xad 0x37 0x4e 5890xa3 0xad 0x78 0x2e 5900x84 0xad 0x79 0x4e 5910x65 0xad 0xba 0x2e 5920x46 0xad 0xbb 0x4e 593 594#---------------------------------------------------------------------- 595# Vector Maximum Pairwise (Floating Point) 596#---------------------------------------------------------------------- 597# CHECK: fmaxp v29.2s, v28.2s, v25.2s 598# CHECK: fmaxp v9.4s, v8.4s, v5.4s 599# CHECK: fmaxp v11.2d, v10.2d, v7.2d 6000x9d 0xf7 0x39 0x2e 6010x09 0xf5 0x25 0x6e 6020x4b 0xf5 0x67 0x6e 603 604#---------------------------------------------------------------------- 605# Vector Minimum Pairwise (Floating Point) 606#---------------------------------------------------------------------- 607# CHECK: fminp v29.2s, v28.2s, v25.2s 608# CHECK: fminp v9.4s, v8.4s, v5.4s 609# CHECK: fminp v11.2d, v10.2d, v7.2d 6100x9d 0xf7 0xb9 0x2e 6110x09 0xf5 0xa5 0x6e 6120x4b 0xf5 0xe7 0x6e 613 614#---------------------------------------------------------------------- 615# Vector maxNum Pairwise (Floating Point) 616#---------------------------------------------------------------------- 617# CHECK: fmaxnmp v9.2s, v8.2s, v5.2s 618# CHECK: fmaxnmp v9.4s, v8.4s, v5.4s 619# CHECK: fmaxnmp v11.2d, v10.2d, v7.2d 6200x09 0xc5 0x25 0x2e 6210x09 0xc5 0x25 0x6e 6220x4b 0xc5 0x67 0x6e 623 624#---------------------------------------------------------------------- 625# Vector minNum Pairwise (Floating Point) 626#---------------------------------------------------------------------- 627# CHECK: fminnmp v2.2s, v8.2s, v25.2s 628# CHECK: fminnmp v9.4s, v8.4s, v5.4s 629# CHECK: fminnmp v11.2d, v10.2d, v7.2d 6300x02 0xc5 0xb9 0x2e 6310x09 0xc5 0xa5 0x6e 6320x4b 0xc5 0xe7 0x6e 633 634#------------------------------------------------------------------------------ 635# Vector Add Pairwise (Integer) 636#------------------------------------------------------------------------------ 637# CHECK: addp v31.8b, v31.8b, v31.8b 638# CHECK: addp v0.2d, v0.2d, v0.2d 6390xff 0xbf 0x3f 0x0e 6400x00 0xbc 0xe0 0x4e 641 642#------------------------------------------------------------------------------ 643# Vector Add Pairwise (Floating Point) 644#------------------------------------------------------------------------------ 645# CHECK: faddp v0.4s, v0.4s, v0.4s 646# CHECK: faddp v31.2s, v31.2s, v31.2s 6470x00 0xd4 0x20 0x6e 6480xff 0xd7 0x3f 0x2e 649 650 651#------------------------------------------------------------------------------ 652# Vector Saturating Doubling Multiply High 653# Vector Saturating Rouding Doubling Multiply High 654#------------------------------------------------------------------------------ 655# CHECK: sqdmulh v31.2s, v31.2s, v31.2s 656# CHECK: sqdmulh v5.4s, v7.4s, v9.4s 657# CHECK: sqrdmulh v31.4h, v3.4h, v13.4h 658# CHECK: sqrdmulh v0.8h, v10.8h, v20.8h 6590xff 0xb7 0xbf 0x0e 6600xe5 0xb4 0xa9 0x4e 6610x7f 0xb4 0x6d 0x2e 6620x40 0xb5 0x74 0x6e 663 664#------------------------------------------------------------------------------ 665# Vector Multiply Extended 666#------------------------------------------------------------------------------ 667# CHECK: fmulx v1.2s, v22.2s, v2.2s 668# CHECK: fmulx v21.4s, v15.4s, v3.4s 669# CHECK: fmulx v11.2d, v5.2d, v23.2d 6700xc1 0xde 0x22 0x0e 6710xf5 0xdd 0x23 0x4e 6720xab 0xdc 0x77 0x4e 673 674