118 lines · plain
1# REQUIRES: aarch642 3# This checks that lldb's disassembler enables every extension that an AArch644# target could have.5 6# RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnueabihf %s -o %t --mattr=+all7# RUN: %lldb %t -o "disassemble -n fn" -o exit 2>&1 | FileCheck %s8 9.globl fn10.type fn, @function11fn:12 // These are in alphabetical order by extension name13 aesd v0.16b, v0.16b // AEK_AES14 bfadd z23.h, p3/m, z23.h, z13.h // AEK_B16B1615 bfdot v2.2s, v3.4h, v4.4h // AEK_BF1616 brb iall // AEK_BRBE17 crc32b w0, w0, w0 // AEK_CRC18 // AEK_CRYPTO enables a combination of other features19 smin x0, x0, #0 // AEK_CSSC20 sysp #0, c2, c0, #0, x0, x1 // AEK_D12821 sdot v0.2s, v1.8b, v2.8b // AEK_DOTPROD22 fmmla z0.s, z1.s, z2.s // AEK_F32MM23 fmmla z0.d, z1.d, z2.d // AEK_F64MM24 cfinv // AEK_FLAGM25 fcvt d0, s0 // AEK_FP26 fabs h1, h2 // AEK_FP1627 fmlal v0.2s, v1.2h, v2.2h // AEK_FP16FML28 bc.eq lbl // AEK_HBC29 smmla v1.4s, v16.16b, v31.16b // AEK_I8MM30 ld64b x0, [x13] // AEK_LS6431 ldaddab w0, w0, [sp] // AEK_LSE32 ldclrp x1, x2, [x11] // AEK_LSE12833 irg x0, x0 // AEK_MTE34 cpyfp [x0]!, [x1]!, x2! // AEK_MOPS35 pacia x0, x1 // AEK_PAUTH36 mrs x0, pmccntr_el0 // AEK_PERFMON37 cfp rctx, x0 // AEK_PREDRES38 psb csync // AEK_PROFILE/SPE39 msr erxpfgctl_el1, x0 // AEK_RAS40 ldaprb w0, [x0, #0] // AEK_RCPC41 stilp w26, w2, [x18] // AEK_RCPC342 sqrdmlah v0.4h, v1.4h, v2.4h // AEK_RDM43 mrs x0, rndr // AEK_RAND44 sb // AEK_SB45 sha256h q0, q0, v0.4s // AEK_SHA246 bcax v0.16b, v0.16b, v0.16b, v0.16b // AEK_SHA347 addp v0.4s, v0.4s, v0.4s // AEK_SIMD (neon)48 sm4e v0.4s, v0.4s // AEK_SM449 addha za0.s, p0/m, p0/m, z0.s // AEK_SME50 fadd za.h[w11, 7], {z12.h - z13.h} // AEK_SMEF16F1651 fmopa za0.d, p0/m, p0/m, z0.d, z0.d // AEK_SMEF64F6452 addha za0.d, p0/m, p0/m, z0.d // AEK_SMEI16I6453 add {z0.h, z1.h}, {z0.h, z1.h}, z0.h // AEK_SME254 // AEK_SME2P1: see AEK_SVE2P155 mrs x2, ssbs // AEK_SSBS56 abs z31.h, p7/m, z31.h // AEK_SVE57 sqdmlslbt z0.d, z1.s, z31.s // AEK_SVE258 aesd z0.b, z0.b, z31.b // AEK_SVE2AES59 bdep z0.b, z1.b, z31.b // AEK_SVE2BITPERM60 rax1 z0.d, z0.d, z0.d // AEK_SVE2SHA361 sm4e z0.s, z0.s, z0.s // AEK_SVE2SM462 addqv v0.8h, p0, z0.h // AEK_SVE2P1 / AEK_SME2P163 rcwswp x0, x1, [x2] // AEK_THE64lbl:65.fn_end:66 .size fn, .fn_end-fn67 68# CHECK: command-disassemble-aarch64-extensions.s.tmp`fn:69# CHECK-NEXT: aesd v0.16b, v0.16b70# CHECK-NEXT: bfadd z23.h, p3/m, z23.h, z13.h71# CHECK-NEXT: bfdot v2.2s, v3.4h, v4.4h72# CHECK-NEXT: brb iall73# CHECK-NEXT: crc32b w0, w0, w074# CHECK-NEXT: smin x0, x0, #075# CHECK-NEXT: sysp #0x0, c2, c0, #0x0, x0, x176# CHECK-NEXT: sdot v0.2s, v1.8b, v2.8b77# CHECK-NEXT: fmmla z0.s, z1.s, z2.s78# CHECK-NEXT: fmmla z0.d, z1.d, z2.d79# CHECK-NEXT: cfinv80# CHECK-NEXT: fcvt d0, s081# CHECK-NEXT: fabs h1, h282# CHECK-NEXT: fmlal v0.2s, v1.2h, v2.2h83# CHECK-NEXT: bc.eq 0xc484# CHECK-NEXT: smmla v1.4s, v16.16b, v31.16b85# CHECK-NEXT: ld64b x0, [x13]86# CHECK-NEXT: ldaddab w0, w0, [sp]87# CHECK-NEXT: ldclrp x1, x2, [x11]88# CHECK-NEXT: irg x0, x089# CHECK-NEXT: cpyfp [x0]!, [x1]!, x2!90# CHECK-NEXT: pacia x0, x191# CHECK-NEXT: mrs x0, PMCCNTR_EL092# CHECK-NEXT: cfp rctx, x093# CHECK-NEXT: psb csync94# CHECK-NEXT: msr ERXPFGCTL_EL1, x095# CHECK-NEXT: ldaprb w0, [x0]96# CHECK-NEXT: stilp w26, w2, [x18]97# CHECK-NEXT: sqrdmlah v0.4h, v1.4h, v2.4h98# CHECK-NEXT: mrs x0, RNDR99# CHECK-NEXT: sb100# CHECK-NEXT: sha256h q0, q0, v0.4s101# CHECK-NEXT: bcax v0.16b, v0.16b, v0.16b, v0.16b102# CHECK-NEXT: addp v0.4s, v0.4s, v0.4s103# CHECK-NEXT: sm4e v0.4s, v0.4s104# CHECK-NEXT: addha za0.s, p0/m, p0/m, z0.s105# CHECK-NEXT: fadd za.h[w11, 7, vgx2], { z12.h, z13.h }106# CHECK-NEXT: fmopa za0.d, p0/m, p0/m, z0.d, z0.d107# CHECK-NEXT: addha za0.d, p0/m, p0/m, z0.d108# CHECK-NEXT: add { z0.h, z1.h }, { z0.h, z1.h }, z0.h109# CHECK-NEXT: mrs x2, SSBS110# CHECK-NEXT: abs z31.h, p7/m, z31.h111# CHECK-NEXT: sqdmlslbt z0.d, z1.s, z31.s112# CHECK-NEXT: aesd z0.b, z0.b, z31.b113# CHECK-NEXT: bdep z0.b, z1.b, z31.b114# CHECK-NEXT: rax1 z0.d, z0.d, z0.d115# CHECK-NEXT: sm4e z0.s, z0.s, z0.s116# CHECK-NEXT: addqv v0.8h, p0, z0.h117# CHECK-NEXT: rcwswp x0, x1, [x2]118