brintos

brintos / llvm-project-archived public Read only

0
0
Text · 24.0 KiB · ae157c6 Raw
851 lines · plain
1; RUN: llvm-mc -triple arm64-apple-darwin -mattr=neon -output-asm-variant=1 -show-encoding -print-imm-hex < %s | FileCheck %s2 3foo:4;-----------------------------------------------------------------------------5; ADD #0 to/from SP/WSP is a MOV6;-----------------------------------------------------------------------------7  add x1, sp, #08; CHECK: mov x1, sp9  add sp, x2, #010; CHECK: mov sp, x211  add w3, wsp, #012; CHECK: mov w3, wsp13  add wsp, w4, #014; CHECK: mov wsp, w415  mov x5, sp16; CHECK: mov x5, sp17  mov sp, x618; CHECK: mov sp, x619  mov w7, wsp20; CHECK: mov w7, wsp21  mov wsp, w822; CHECK: mov wsp, w823 24;-----------------------------------------------------------------------------25; ORR Rd, Rn, Rn is a MOV26;-----------------------------------------------------------------------------27  orr x2, xzr, x928; CHECK: mov x2, x929  orr w2, wzr, w930; CHECK: mov w2, w931  mov x3, x432; CHECK: mov x3, x433  mov w5, w634; CHECK: mov w5, w635 36;-----------------------------------------------------------------------------37; TST Xn, #<imm>38;-----------------------------------------------------------------------------39        tst w1, #340        tst x1, #341        tst w1, w242        tst x1, x243        ands wzr, w1, w2, lsl #244        ands xzr, x1, x2, lsl #345        tst w3, w7, lsl #3146        tst x2, x20, asr #047 48; CHECK: tst	w1, #0x3                ; encoding: [0x3f,0x04,0x00,0x72]49; CHECK: tst	x1, #0x3                ; encoding: [0x3f,0x04,0x40,0xf2]50; CHECK: tst	w1, w2                  ; encoding: [0x3f,0x00,0x02,0x6a]51; CHECK: tst	x1, x2                  ; encoding: [0x3f,0x00,0x02,0xea]52; CHECK: tst	w1, w2, lsl #2          ; encoding: [0x3f,0x08,0x02,0x6a]53; CHECK: tst	x1, x2, lsl #3          ; encoding: [0x3f,0x0c,0x02,0xea]54; CHECK: tst	w3, w7, lsl #31         ; encoding: [0x7f,0x7c,0x07,0x6a]55; CHECK: tst	x2, x20, asr #0         ; encoding: [0x5f,0x00,0x94,0xea]56 57;-----------------------------------------------------------------------------58; ADDS to WZR/XZR is a CMN59;-----------------------------------------------------------------------------60  cmn w1, #3, lsl #061  cmn x2, #419430462  cmn w4, w563  cmn x6, x764  cmn w8, w9, asr #365  cmn x2, x3, lsr #466  cmn x2, w3, uxtb #167  cmn x4, x5, uxtx #168 69; CHECK: cmn	w1, #0x3                  ; encoding: [0x3f,0x0c,0x00,0x31]70; CHECK: cmn	x2, #0x400, lsl #12      ; encoding: [0x5f,0x00,0x50,0xb1]71; CHECK: cmn	w4, w5                  ; encoding: [0x9f,0x00,0x05,0x2b]72; CHECK: cmn	x6, x7                  ; encoding: [0xdf,0x00,0x07,0xab]73; CHECK: cmn	w8, w9, asr #3          ; encoding: [0x1f,0x0d,0x89,0x2b]74; CHECK: cmn	x2, x3, lsr #4          ; encoding: [0x5f,0x10,0x43,0xab]75; CHECK: cmn	x2, w3, uxtb #1         ; encoding: [0x5f,0x04,0x23,0xab]76; CHECK: cmn	x4, x5, uxtx #1         ; encoding: [0x9f,0x64,0x25,0xab]77 78 79;-----------------------------------------------------------------------------80; SUBS to WZR/XZR is a CMP81;-----------------------------------------------------------------------------82  cmp w1, #1024, lsl #1283  cmp x2, #102484  cmp w4, w585  cmp x6, x786  cmp w8, w9, asr #387  cmp x2, x3, lsr #488  cmp x2, w3, uxth #289  cmp x4, x5, uxtx90  cmp wzr, w191  cmp x8, w8, uxtw92  cmp w9, w8, uxtw93  cmp wsp, w9, lsl #094 95; CHECK: cmp	w1, #0x400, lsl #12      ; encoding: [0x3f,0x00,0x50,0x71]96; CHECK: cmp	x2, #0x400               ; encoding: [0x5f,0x00,0x10,0xf1]97; CHECK: cmp	w4, w5                  ; encoding: [0x9f,0x00,0x05,0x6b]98; CHECK: cmp	x6, x7                  ; encoding: [0xdf,0x00,0x07,0xeb]99; CHECK: cmp	w8, w9, asr #3          ; encoding: [0x1f,0x0d,0x89,0x6b]100; CHECK: cmp	x2, x3, lsr #4          ; encoding: [0x5f,0x10,0x43,0xeb]101; CHECK: cmp	x2, w3, uxth #2         ; encoding: [0x5f,0x28,0x23,0xeb]102; CHECK: cmp	x4, x5, uxtx            ; encoding: [0x9f,0x60,0x25,0xeb]103; CHECK: cmp	wzr, w1                 ; encoding: [0xff,0x03,0x01,0x6b]104; CHECK: cmp	x8, w8, uxtw            ; encoding: [0x1f,0x41,0x28,0xeb]105; CHECK: cmp	w9, w8, uxtw            ; encoding: [0x3f,0x41,0x28,0x6b]106; CHECK: cmp	wsp, w9                 ; encoding: [0xff,0x43,0x29,0x6b]107 108 109;-----------------------------------------------------------------------------110; SUB/SUBS from WZR/XZR is a NEG111;-----------------------------------------------------------------------------112 113  neg w0, w1114; CHECK: neg w0, w1115  neg w0, w1, lsl #1116; CHECK: neg w0, w1, lsl #1117  neg x0, x1118; CHECK: neg x0, x1119  neg x0, x1, asr #1120; CHECK: neg x0, x1, asr #1121  negs w0, w1122; CHECK: negs w0, w1123  negs w0, w1, lsl #1124; CHECK: negs w0, w1, lsl #1125  negs x0, x1126; CHECK: negs x0, x1127  negs x0, x1, asr #1128; CHECK: negs x0, x1, asr #1129 130;-----------------------------------------------------------------------------131; MOV aliases132;-----------------------------------------------------------------------------133 134  mov x0, #281470681743360135  mov x0, #18446744073709486080136 137; CHECK: mov x0, #0xffff00000000138; CHECK: mov x0, #-0x10000139 140  mov w0, #0xffffffff141  mov w0, #0xffffff00142  mov wzr, #0xffffffff143  mov wzr, #0xffffff00144 145; CHECK: mov   w0, #-0x1146; CHECK: mov   w0, #-0x100147; CHECK: mov   wzr, #-0x1148; CHECK: mov   wzr, #-0x100149 150  ; 0 can be encoded by MOVZ in multiple ways, only "lsl #0" is a MOV alias.151  movz x0, #0152  movz x0, #0, lsl #16153  movz x0, #0, lsl #32154  movz x0, #0, lsl #48155  movz w0, #0156  movz w0, #0, lsl #16157; CHECK: mov x0, #0x0158; CHECK: movz x0, #0x0, lsl #16159; CHECK: movz x0, #0x0, lsl #32160; CHECK: movz x0, #0x0, lsl #48161; CHECK: mov w0, #0x0162; CHECK: movz w0, #0x0, lsl #16163 164  ; Similarly to MOVZ, -1 can be encoded in multiple ways, only one of which is165  ; "MOV".166  movn x0, #0167  movn x0, #0, lsl #16168  movn x0, #0, lsl #32169  movn x0, #0, lsl #48170  movn w0, #0171  movn w0, #0, lsl #16172; CHECK: mov x0, #-0x1173; CHECK: movn x0, #0x0, lsl #16174; CHECK: movn x0, #0x0, lsl #32175; CHECK: movn x0, #0x0, lsl #48176; CHECK: mov w0, #-0x1177; CHECK: movn w0, #0x0, lsl #16178 179  ; Two 32-bit immediates are encodable by both MOVN and MOVZ, make sure the MOV180  ; corresponds to the MOVZ version.181  movz w0, #0xffff182  movz w0, #0xffff, lsl #16183  movn w0, #0xffff184  movn w0, #0xffff, lsl #16185; CHECK: mov w0, #0xffff186; CHECK: mov w0, #-0x10000187; CHECK: movn w0, #0xffff188; CHECK: movn w0, #0xffff, lsl #16189 190  orr x20, xzr, #0xaaaaaaaaaaaaaaaa191  orr w15, wzr, #0xaaaaaaaa192; CHECK: mov x20, #-0x5555555555555556193; CHECK: mov w15, #-0x55555556194 195  ; ORR is mostly repeating bit sequences and cannot encode -1, so it only196  ; overlaps with MOVZ or MOVN if the repeat-width is the whole register. In197  ; both cases MOVZ/MOVN are preferred.198  orr x3, xzr, #0x1199  orr w3, wzr, #0x1200  orr x3, xzr, #0x10000201  orr w3, wzr, #0x10000202  orr x3, xzr, #0x700000000203  orr x3, xzr, #0x3000000000000204; CHECK: orr x3, xzr, #0x1205; CHECK: orr w3, wzr, #0x1206; CHECK: orr x3, xzr, #0x10000207; CHECK: orr w3, wzr, #0x10000208; CHECK: orr x3, xzr, #0x700000000209; CHECK: orr x3, xzr, #0x3000000000000210 211 212  orr x5, xzr, #0xfffffffffffffff0213  orr w2, wzr, #0xfffffffe214  orr x5, xzr, #0xfffffffffcffffff215  orr w2, wzr, #0xf0ffffff216  orr x5, xzr, #0xffffff00ffffffff217  orr x5, xzr, #0x8000ffffffffffff218; CHECK: orr x5, xzr, #0xfffffffffffffff0219; CHECK: orr w2, wzr, #0xfffffffe220; CHECK: orr x5, xzr, #0x8000ffffffffffff221 222  ; 0xffff is interesting because there are exceptions in the MOVN rules for223  ; it. Make sure we don't accidentally fall down any of those holes.224  orr w3, wzr, #0xffff0000225  orr w3, wzr, #0xffff226  orr x3, xzr, #0xffff000000000000227  orr x5, xzr, #0x0000ffffffffffff228; CHECK: orr w3, wzr, #0xffff0000229; CHECK: orr w3, wzr, #0xffff230; CHECK: orr x3, xzr, #0xffff000000000000231; CHECK: orr x5, xzr, #0xffffffffffff232 233;-----------------------------------------------------------------------------234; MVN aliases235;-----------------------------------------------------------------------------236 237        mvn w4, w9238        mvn x2, x3239        orn w4, wzr, w9240 241; CHECK: mvn	w4, w9             ; encoding: [0xe4,0x03,0x29,0x2a]242; CHECK: mvn	x2, x3             ; encoding: [0xe2,0x03,0x23,0xaa]243; CHECK: mvn	w4, w9             ; encoding: [0xe4,0x03,0x29,0x2a]244 245        mvn w4, w9, lsl #1246        mvn x2, x3, lsl #1247        orn w4, wzr, w9, lsl #1248 249; CHECK: mvn	w4, w9, lsl #1     ; encoding: [0xe4,0x07,0x29,0x2a]250; CHECK: mvn	x2, x3, lsl #1     ; encoding: [0xe2,0x07,0x23,0xaa]251; CHECK: mvn	w4, w9, lsl #1     ; encoding: [0xe4,0x07,0x29,0x2a]252 253;-----------------------------------------------------------------------------254; Bitfield aliases255;-----------------------------------------------------------------------------256 257  bfi   w0, w0, #1, #4258  bfi   x0, x0, #1, #4259  bfi   w0, w0, #0, #2260  bfi   x0, x0, #0, #2261  bfxil w0, w0, #2, #3262  bfxil x0, x0, #2, #3263  sbfiz w0, w0, #1, #4264  sbfiz x0, x0, #1, #4265  sbfx  w0, w0, #2, #3266  sbfx  x0, x0, #2, #3267  ubfiz w0, w0, #1, #4268  ubfiz x0, x0, #1, #4269  ubfx  w0, w0, #2, #3270  ubfx  x0, x0, #2, #3271 272; CHECK: bfi   w0, w0, #1, #4273; CHECK: bfi   x0, x0, #1, #4274; CHECK: bfxil w0, w0, #0, #2275; CHECK: bfxil x0, x0, #0, #2276; CHECK: bfxil w0, w0, #2, #3277; CHECK: bfxil x0, x0, #2, #3278; CHECK: sbfiz w0, w0, #1, #4279; CHECK: sbfiz x0, x0, #1, #4280; CHECK: sbfx  w0, w0, #2, #3281; CHECK: sbfx  x0, x0, #2, #3282; CHECK: ubfiz w0, w0, #1, #4283; CHECK: ubfiz x0, x0, #1, #4284; CHECK: ubfx  w0, w0, #2, #3285; CHECK: ubfx  x0, x0, #2, #3286 287;-----------------------------------------------------------------------------288; Shift (immediate) aliases289;-----------------------------------------------------------------------------290 291; CHECK: asr w1, w3, #13292; CHECK: asr x1, x3, #13293; CHECK: lsl w0, w0, #1294; CHECK: lsl x0, x0, #1295; CHECK: lsr w0, w0, #4296; CHECK: lsr x0, x0, #4297 298   sbfm w1, w3, #13, #31299   sbfm x1, x3, #13, #63300   ubfm w0, w0, #31, #30301   ubfm x0, x0, #63, #62302   ubfm w0, w0, #4, #31303   ubfm x0, x0, #4, #63304; CHECK: ror w1, w3, #0x5305; CHECK: ror x1, x3, #0x5306   ror w1, w3, #5307   ror x1, x3, #5308; CHECK: lsl w1, wzr, #3309   lsl w1, wzr, #3310 311;-----------------------------------------------------------------------------312; Sign/Zero extend aliases313;-----------------------------------------------------------------------------314 315  sxtb  w1, w2316  sxth  w1, w2317  uxtb  w1, w2318  uxth  w1, w2319 320; CHECK: sxtb w1, w2321; CHECK: sxth w1, w2322; CHECK: uxtb w1, w2323; CHECK: uxth w1, w2324 325  sxtb  x1, w2326  sxth  x1, w2327  sxtw  x1, w2328  uxtb  x1, w2329  uxth  x1, w2330  uxtw  x1, w2331 332; CHECK: sxtb x1, w2333; CHECK: sxth x1, w2334; CHECK: sxtw x1, w2335; CHECK: uxtb w1, w2336; CHECK: uxth w1, w2337; CHECK: ubfx x1, x2, #0, #32338 339;-----------------------------------------------------------------------------340; Negate with carry341;-----------------------------------------------------------------------------342 343  ngc   w1, w2344  ngc   x1, x2345  ngcs  w1, w2346  ngcs  x1, x2347 348; CHECK: ngc  w1, w2349; CHECK: ngc  x1, x2350; CHECK: ngcs w1, w2351; CHECK: ngcs x1, x2352 353;-----------------------------------------------------------------------------354; 6.6.1 Multiply aliases355;-----------------------------------------------------------------------------356 357  mneg   w1, w2, w3358  mneg   x1, x2, x3359  mul    w1, w2, w3360  mul    x1, x2, x3361  smnegl x1, w2, w3362  umnegl x1, w2, w3363  smull   x1, w2, w3364  umull   x1, w2, w3365 366; CHECK: mneg w1, w2, w3367; CHECK: mneg x1, x2, x3368; CHECK: mul w1, w2, w3369; CHECK: mul x1, x2, x3370; CHECK: smnegl x1, w2, w3371; CHECK: umnegl x1, w2, w3372; CHECK: smull x1, w2, w3373; CHECK: umull x1, w2, w3374 375;-----------------------------------------------------------------------------376; Conditional select aliases377;-----------------------------------------------------------------------------378 379  cset   w1, eq380  cset   x1, eq381  csetm  w1, ne382  csetm  x1, ne383  cinc   w1, w2, lt384  cinc   x1, x2, lt385  cinv   w1, w2, mi386  cinv   x1, x2, mi387 388; CHECK: cset  w1, eq389; CHECK: cset  x1, eq390; CHECK: csetm  w1, ne391; CHECK: csetm  x1, ne392; CHECK: cinc  w1, w2, lt393; CHECK: cinc  x1, x2, lt394; CHECK: cinv  w1, w2, mi395; CHECK: cinv  x1, x2, mi396 397;-----------------------------------------------------------------------------398; SYS aliases399;-----------------------------------------------------------------------------400 401  sys #0, c7, c1, #0402; CHECK: ic ialluis403  sys #0, c7, c5, #0404; CHECK: ic iallu405  sys #3, c7, c5, #1406; CHECK: ic ivau407 408  sys #3, c7, c4, #1409; CHECK: dc zva410  sys #0, c7, c6, #1411; CHECK: dc ivac412  sys #0, c7, c6, #2413; CHECK: dc isw414  sys #3, c7, c10, #1415; CHECK: dc cvac416  sys #0, c7, c10, #2417; CHECK: dc csw418  sys #3, c7, c11, #1419; CHECK: dc cvau420  sys #3, c7, c14, #1421; CHECK: dc civac422  sys #0, c7, c14, #2423; CHECK: dc cisw424 425  sys #0, c7, c8, #0426; CHECK: at s1e1r427  sys #4, c7, c8, #0428; CHECK: at s1e2r429  sys #6, c7, c8, #0430; CHECK: at s1e3r431  sys #0, c7, c8, #1432; CHECK: at s1e1w433  sys #4, c7, c8, #1434; CHECK: at s1e2w435  sys #6, c7, c8, #1436; CHECK: at s1e3w437  sys #0, c7, c8, #2438; CHECK: at s1e0r439  sys #0, c7, c8, #3440; CHECK: at s1e0w441  sys #4, c7, c8, #4442; CHECK: at s12e1r443  sys #4, c7, c8, #5444; CHECK: at s12e1w445  sys #4, c7, c8, #6446; CHECK: at s12e0r447  sys #4, c7, c8, #7448; CHECK: at s12e0w449 450  sys #0, c8, c3, #0451; CHECK: tlbi vmalle1is452  sys #4, c8, c3, #0453; CHECK: tlbi alle2is454  sys #6, c8, c3, #0455; CHECK: tlbi alle3is456  sys #0, c8, c3, #1457; CHECK: tlbi vae1is458  sys #4, c8, c3, #1459; CHECK: tlbi vae2is460  sys #6, c8, c3, #1461; CHECK: tlbi vae3is462  sys #0, c8, c3, #2463; CHECK: tlbi aside1is464  sys #0, c8, c3, #3465; CHECK: tlbi vaae1is466  sys #4, c8, c3, #4467; CHECK: tlbi alle1is468  sys #0, c8, c3, #5469; CHECK: tlbi vale1is470  sys #0, c8, c3, #7471; CHECK: tlbi vaale1is472  sys #0, c8, c7, #0473; CHECK: tlbi vmalle1474  sys #4, c8, c7, #0475; CHECK: tlbi alle2476  sys #4, c8, c3, #5477; CHECK: tlbi vale2is478  sys #6, c8, c3, #5479; CHECK: tlbi vale3is480  sys #6, c8, c7, #0481; CHECK: tlbi alle3482  sys #0, c8, c7, #1483; CHECK: tlbi vae1484  sys #4, c8, c7, #1485; CHECK: tlbi vae2486  sys #6, c8, c7, #1487; CHECK: tlbi vae3488  sys #0, c8, c7, #2489; CHECK: tlbi aside1490  sys #0, c8, c7, #3491; CHECK: tlbi vaae1492  sys #4, c8, c7, #4493; CHECK: tlbi alle1494  sys #0, c8, c7, #5495; CHECK: tlbi vale1496  sys #4, c8, c7, #5497; CHECK: tlbi vale2498  sys #6, c8, c7, #5499; CHECK: tlbi vale3500  sys #0, c8, c7, #7501; CHECK: tlbi vaale1502  sys #4, c8, c4, #1503; CHECK: tlbi ipas2e1504  sys #4, c8, c4, #5505; CHECK: tlbi ipas2le1506  sys #4, c8, c0, #1507; CHECK: tlbi ipas2e1is508  sys #4, c8, c0, #5509; CHECK: tlbi ipas2le1is510  sys #4, c8, c7, #6511; CHECK: tlbi vmalls12e1512  sys #4, c8, c3, #6513; CHECK: tlbi vmalls12e1is514 515; Check that all 5 register bits are set (0x31):516;    (from Arm ARM regarding TLBI instructions without operands)517;    "Rt should be encoded as 0b11111. If the Rt field is not set to 0b11111,518;     it is CONSTRAINED UNPREDICTABLE whether:519;       * The instruction is UNDEFINED.520;       * The instruction behaves as if the Rt field is set to 0b11111."521;522; Do not disassemble this to `tlbi` but a SYS alias instead523;524  sys #4, c8, c7, #6, x30525; CHECK: sys #0x4, c8, c7, #0x6, x30526  sys #4, c8, c7, #6, x31527; CHECK: tlbi vmalls12e1528 529  ic ialluis530; CHECK: ic ialluis                 ; encoding: [0x1f,0x71,0x08,0xd5]531  ic iallu532; CHECK: ic iallu                   ; encoding: [0x1f,0x75,0x08,0xd5]533  ic ivau, x0534; CHECK: ic ivau, x0                ; encoding: [0x20,0x75,0x0b,0xd5]535 536  dc zva, x0537; CHECK: dc zva, x0                 ; encoding: [0x20,0x74,0x0b,0xd5]538  dc ivac, x0539; CHECK: dc ivac, x0                ; encoding: [0x20,0x76,0x08,0xd5]540  dc isw, x0541; CHECK: dc isw, x0                 ; encoding: [0x40,0x76,0x08,0xd5]542  dc cvac, x0543; CHECK: dc cvac, x0                ; encoding: [0x20,0x7a,0x0b,0xd5]544  dc csw, x0545; CHECK: dc csw, x0                 ; encoding: [0x40,0x7a,0x08,0xd5]546  dc cvau, x0547; CHECK: dc cvau, x0                ; encoding: [0x20,0x7b,0x0b,0xd5]548  dc civac, x0549; CHECK: dc civac, x0               ; encoding: [0x20,0x7e,0x0b,0xd5]550  dc cisw, x0551; CHECK: dc cisw, x0                ; encoding: [0x40,0x7e,0x08,0xd5]552 553  at s1e1r, x0554; CHECK: at s1e1r, x0               ; encoding: [0x00,0x78,0x08,0xd5]555  at s1e2r, x0556; CHECK: at s1e2r, x0               ; encoding: [0x00,0x78,0x0c,0xd5]557  at s1e3r, x0558; CHECK: at s1e3r, x0               ; encoding: [0x00,0x78,0x0e,0xd5]559  at s1e1w, x0560; CHECK: at s1e1w, x0               ; encoding: [0x20,0x78,0x08,0xd5]561  at s1e2w, x0562; CHECK: at s1e2w, x0               ; encoding: [0x20,0x78,0x0c,0xd5]563  at s1e3w, x0564; CHECK: at s1e3w, x0               ; encoding: [0x20,0x78,0x0e,0xd5]565  at s1e0r, x0566; CHECK: at s1e0r, x0               ; encoding: [0x40,0x78,0x08,0xd5]567  at s1e0w, x0568; CHECK: at s1e0w, x0               ; encoding: [0x60,0x78,0x08,0xd5]569  at s12e1r, x0570; CHECK: at s12e1r, x0              ; encoding: [0x80,0x78,0x0c,0xd5]571  at s12e1w, x0572; CHECK: at s12e1w, x0              ; encoding: [0xa0,0x78,0x0c,0xd5]573  at s12e0r, x0574; CHECK: at s12e0r, x0              ; encoding: [0xc0,0x78,0x0c,0xd5]575  at s12e0w, x0576; CHECK: at s12e0w, x0              ; encoding: [0xe0,0x78,0x0c,0xd5]577 578  tlbi vmalle1is579; CHECK: tlbi vmalle1is             ; encoding: [0x1f,0x83,0x08,0xd5]580  tlbi alle2is581; CHECK: tlbi alle2is               ; encoding: [0x1f,0x83,0x0c,0xd5]582  tlbi alle3is583; CHECK: tlbi alle3is               ; encoding: [0x1f,0x83,0x0e,0xd5]584  tlbi vae1is, x0585; CHECK: tlbi vae1is, x0            ; encoding: [0x20,0x83,0x08,0xd5]586  tlbi vae2is, x0587; CHECK: tlbi vae2is, x0            ; encoding: [0x20,0x83,0x0c,0xd5]588  tlbi vae3is, x0589; CHECK: tlbi vae3is, x0            ; encoding: [0x20,0x83,0x0e,0xd5]590  tlbi aside1is, x0591; CHECK: tlbi aside1is, x0          ; encoding: [0x40,0x83,0x08,0xd5]592  tlbi vaae1is, x0593; CHECK: tlbi vaae1is, x0           ; encoding: [0x60,0x83,0x08,0xd5]594  tlbi alle1is595; CHECK: tlbi alle1is               ; encoding: [0x9f,0x83,0x0c,0xd5]596  tlbi vale1is, x0597; CHECK: tlbi vale1is, x0           ; encoding: [0xa0,0x83,0x08,0xd5]598  tlbi vaale1is, x0599; CHECK: tlbi vaale1is, x0          ; encoding: [0xe0,0x83,0x08,0xd5]600  tlbi vmalle1601; CHECK: tlbi vmalle1               ; encoding: [0x1f,0x87,0x08,0xd5]602  tlbi alle2603; CHECK: tlbi alle2                 ; encoding: [0x1f,0x87,0x0c,0xd5]604  tlbi vale2is, x0605; CHECK: tlbi vale2is, x0           ; encoding: [0xa0,0x83,0x0c,0xd5]606  tlbi vale3is, x0607; CHECK: tlbi vale3is, x0           ; encoding: [0xa0,0x83,0x0e,0xd5]608  tlbi alle3609; CHECK: tlbi alle3                 ; encoding: [0x1f,0x87,0x0e,0xd5]610  tlbi vae1, x0611; CHECK: tlbi vae1, x0              ; encoding: [0x20,0x87,0x08,0xd5]612  tlbi vae2, x0613; CHECK: tlbi vae2, x0              ; encoding: [0x20,0x87,0x0c,0xd5]614  tlbi vae3, x0615; CHECK: tlbi vae3, x0              ; encoding: [0x20,0x87,0x0e,0xd5]616  tlbi aside1, x0617; CHECK: tlbi aside1, x0            ; encoding: [0x40,0x87,0x08,0xd5]618  tlbi vaae1, x0619; CHECK: tlbi vaae1, x0             ; encoding: [0x60,0x87,0x08,0xd5]620  tlbi alle1621; CHECK: tlbi alle1                 ; encoding: [0x9f,0x87,0x0c,0xd5622  tlbi vale1, x0623; CHECK: tlbi vale1, x0             ; encoding: [0xa0,0x87,0x08,0xd5]624  tlbi vale2, x0625; CHECK: tlbi vale2, x0             ; encoding: [0xa0,0x87,0x0c,0xd5]626  tlbi vale3, x0627; CHECK: tlbi vale3, x0             ; encoding: [0xa0,0x87,0x0e,0xd5]628  tlbi vaale1, x0629; CHECK: tlbi vaale1, x0            ; encoding: [0xe0,0x87,0x08,0xd5]630  tlbi ipas2e1, x0631; CHECK: tlbi ipas2e1, x0           ; encoding: [0x20,0x84,0x0c,0xd5]632  tlbi ipas2le1, x0633; CHECK: tlbi ipas2le1, x0          ; encoding: [0xa0,0x84,0x0c,0xd5]634  tlbi ipas2e1is, x0635; CHECK: tlbi ipas2e1is, x0         ; encoding: [0x20,0x80,0x0c,0xd5]636  tlbi ipas2le1is, x0637; CHECK: tlbi ipas2le1is, x0        ; encoding: [0xa0,0x80,0x0c,0xd5]638  tlbi vmalls12e1639; CHECK: tlbi vmalls12e1            ; encoding: [0xdf,0x87,0x0c,0xd5]640  tlbi vmalls12e1is641; CHECK: tlbi vmalls12e1is          ; encoding: [0xdf,0x83,0x0c,0xd5]642 643;-----------------------------------------------------------------------------644; 5.8.5 Vector Arithmetic aliases645;-----------------------------------------------------------------------------646 647  cmls.8b v0, v2, v1648  cmls.16b v0, v2, v1649  cmls.4h v0, v2, v1650  cmls.8h v0, v2, v1651  cmls.2s v0, v2, v1652  cmls.4s v0, v2, v1653  cmls.2d v0, v2, v1654; CHECK: cmhs.8b v0, v1, v2655; CHECK: cmhs.16b v0, v1, v2656; CHECK: cmhs.4h v0, v1, v2657; CHECK: cmhs.8h v0, v1, v2658; CHECK: cmhs.2s v0, v1, v2659; CHECK: cmhs.4s v0, v1, v2660; CHECK: cmhs.2d v0, v1, v2661 662  cmlo.8b v0, v2, v1663  cmlo.16b v0, v2, v1664  cmlo.4h v0, v2, v1665  cmlo.8h v0, v2, v1666  cmlo.2s v0, v2, v1667  cmlo.4s v0, v2, v1668  cmlo.2d v0, v2, v1669; CHECK: cmhi.8b v0, v1, v2670; CHECK: cmhi.16b v0, v1, v2671; CHECK: cmhi.4h v0, v1, v2672; CHECK: cmhi.8h v0, v1, v2673; CHECK: cmhi.2s v0, v1, v2674; CHECK: cmhi.4s v0, v1, v2675; CHECK: cmhi.2d v0, v1, v2676 677  cmle.8b v0, v2, v1678  cmle.16b v0, v2, v1679  cmle.4h v0, v2, v1680  cmle.8h  v0, v2, v1681  cmle.2s v0, v2, v1682  cmle.4s v0, v2, v1683  cmle.2d v0, v2, v1684; CHECK: cmge.8b v0, v1, v2685; CHECK: cmge.16b v0, v1, v2686; CHECK: cmge.4h v0, v1, v2687; CHECK: cmge.8h v0, v1, v2688; CHECK: cmge.2s v0, v1, v2689; CHECK: cmge.4s v0, v1, v2690; CHECK: cmge.2d v0, v1, v2691 692  cmlt.8b v0, v2, v1693  cmlt.16b v0, v2, v1694  cmlt.4h v0, v2, v1695  cmlt.8h  v0, v2, v1696  cmlt.2s v0, v2, v1697  cmlt.4s v0, v2, v1698  cmlt.2d v0, v2, v1699; CHECK: cmgt.8b v0, v1, v2700; CHECK: cmgt.16b v0, v1, v2701; CHECK: cmgt.4h v0, v1, v2702; CHECK: cmgt.8h v0, v1, v2703; CHECK: cmgt.2s v0, v1, v2704; CHECK: cmgt.4s v0, v1, v2705; CHECK: cmgt.2d v0, v1, v2706 707  fcmle.2s v0, v2, v1708  fcmle.4s v0, v2, v1709  fcmle.2d v0, v2, v1710; CHECK: fcmge.2s v0, v1, v2711; CHECK: fcmge.4s v0, v1, v2712; CHECK: fcmge.2d v0, v1, v2713 714  fcmlt.2s v0, v2, v1715  fcmlt.4s v0, v2, v1716  fcmlt.2d v0, v2, v1717; CHECK: fcmgt.2s v0, v1, v2718; CHECK: fcmgt.4s v0, v1, v2719; CHECK: fcmgt.2d v0, v1, v2720 721  facle.2s v0, v2, v1722  facle.4s v0, v2, v1723  facle.2d v0, v2, v1724; CHECK: facge.2s v0, v1, v2725; CHECK: facge.4s v0, v1, v2726; CHECK: facge.2d v0, v1, v2727 728  faclt.2s v0, v2, v1729  faclt.4s v0, v2, v1730  faclt.2d v0, v2, v1731; CHECK: facgt.2s v0, v1, v2732; CHECK: facgt.4s v0, v1, v2733; CHECK: facgt.2d v0, v1, v2734 735;-----------------------------------------------------------------------------736; 5.8.6 Scalar Arithmetic aliases737;-----------------------------------------------------------------------------738 739  cmls d0, d2, d1740; CHECK: cmhs d0, d1, d2741 742  cmle d0, d2, d1743; CHECK: cmge d0, d1, d2744 745  cmlo d0, d2, d1746; CHECK: cmhi d0, d1, d2747 748  cmlt d0, d2, d1749; CHECK: cmgt d0, d1, d2750 751  fcmle s0, s2, s1752  fcmle d0, d2, d1753; CHECK: fcmge s0, s1, s2754; CHECK: fcmge d0, d1, d2755 756  fcmlt s0, s2, s1757  fcmlt d0, d2, d1758; CHECK: fcmgt s0, s1, s2759; CHECK: fcmgt d0, d1, d2760 761  facle s0, s2, s1762  facle d0, d2, d1763; CHECK: facge s0, s1, s2764; CHECK: facge d0, d1, d2765 766  faclt s0, s2, s1767  faclt d0, d2, d1768; CHECK: facgt s0, s1, s2769; CHECK: facgt d0, d1, d2770 771;-----------------------------------------------------------------------------772; 5.8.14 Vector Shift (immediate)773;-----------------------------------------------------------------------------774  sxtl v1.8h, v2.8b775; CHECK: sshll.8h v1, v2, #0776  sxtl.8h v1, v2777; CHECK: sshll.8h v1, v2, #0778 779  sxtl v1.4s, v2.4h780; CHECK: sshll.4s v1, v2, #0781  sxtl.4s v1, v2782; CHECK: sshll.4s v1, v2, #0783 784  sxtl v1.2d, v2.2s785; CHECK: sshll.2d v1, v2, #0786  sxtl.2d v1, v2787; CHECK: sshll.2d v1, v2, #0788 789  sxtl2 v1.8h, v2.16b790; CHECK: sshll2.8h v1, v2, #0791  sxtl2.8h v1, v2792; CHECK: sshll2.8h v1, v2, #0793 794  sxtl2 v1.4s, v2.8h795; CHECK: sshll2.4s v1, v2, #0796  sxtl2.4s v1, v2797; CHECK: sshll2.4s v1, v2, #0798 799  sxtl2 v1.2d, v2.4s800; CHECK: sshll2.2d v1, v2, #0801  sxtl2.2d v1, v2802; CHECK: sshll2.2d v1, v2, #0803 804  uxtl v1.8h, v2.8b805; CHECK: ushll.8h v1, v2, #0806  uxtl.8h v1, v2807; CHECK: ushll.8h v1, v2, #0808 809  uxtl v1.4s, v2.4h810; CHECK: ushll.4s v1, v2, #0811  uxtl.4s v1, v2812; CHECK: ushll.4s v1, v2, #0813 814  uxtl v1.2d, v2.2s815; CHECK: ushll.2d v1, v2, #0816  uxtl.2d v1, v2817; CHECK: ushll.2d v1, v2, #0818 819  uxtl2 v1.8h, v2.16b820; CHECK: ushll2.8h v1, v2, #0821  uxtl2.8h v1, v2822; CHECK: ushll2.8h v1, v2, #0823 824  uxtl2 v1.4s, v2.8h825; CHECK: ushll2.4s v1, v2, #0826  uxtl2.4s v1, v2827; CHECK: ushll2.4s v1, v2, #0828 829  uxtl2 v1.2d, v2.4s830; CHECK: ushll2.2d v1, v2, #0831  uxtl2.2d v1, v2832; CHECK: ushll2.2d v1, v2, #0833 834 835;-----------------------------------------------------------------------------836; MOVI verbose syntax with shift operand omitted.837;-----------------------------------------------------------------------------838  movi v4.16b, #0x00839  movi v4.16B, #0x01840  movi v4.8b, #0x02841  movi v4.8B, #0x03842  movi v1.2d, #0x000000000000ff843  movi v2.2D, #0x000000000000ff844 845; CHECK: movi.16b	v4, #0x0              ; encoding: [0x04,0xe4,0x00,0x4f]846; CHECK: movi.16b	v4, #0x1              ; encoding: [0x24,0xe4,0x00,0x4f]847; CHECK: movi.8b	v4, #0x2               ; encoding: [0x44,0xe4,0x00,0x0f]848; CHECK: movi.8b	v4, #0x3               ; encoding: [0x64,0xe4,0x00,0x0f]849; CHECK: movi.2d	v1, #0x000000000000ff ; encoding: [0x21,0xe4,0x00,0x6f]850; CHECK: movi.2d	v2, #0x000000000000ff ; encoding: [0x22,0xe4,0x00,0x6f]851