diff --git a/llvm/lib/Target/AArch64/AArch64InstrFormats.td b/llvm/lib/Target/AArch64/AArch64InstrFormats.td index 4d2e740779961..6017f5b1abea0 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrFormats.td +++ b/llvm/lib/Target/AArch64/AArch64InstrFormats.td @@ -4384,6 +4384,7 @@ class BaseLoadStoreUnscale sz, bit V, bits<2> opc, dag oops, dag iops, // Armv8.4 LDAPR & STLR with Immediate Offset instruction multiclass BaseLoadUnscaleV84 sz, bits<2> opc, DAGOperand regtype > { + let mayLoad = 1 in def i : BaseLoadStoreUnscale, Sched<[WriteST]> { diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s index cd3d7e0bf1b57..fac107ddc5326 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s @@ -14,11 +14,11 @@ # CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] # CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] # CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] -# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] -# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] -# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] -# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] -# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 * U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 * U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 * U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 * U ldapursw x3, [x18] # CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] # CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] # CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s index 6faa5e1f4db1b..3442dd4eaff67 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s @@ -14,11 +14,11 @@ # CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] # CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] # CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] -# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] -# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] -# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] -# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] -# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 * U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 * U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 * U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 * U ldapursw x3, [x18] # CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] # CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] # CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s index 5c9b43a0e5121..76380b499c907 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s @@ -14,11 +14,11 @@ # CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] # CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] # CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] -# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] -# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] -# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] -# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] -# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 * U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 * U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 * U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 * U ldapursw x3, [x18] # CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] # CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] # CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s index 71fd689522215..a099fb965a7a0 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s @@ -14,11 +14,11 @@ # CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] # CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] # CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] -# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] -# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] -# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] -# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] -# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 * U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 * U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 * U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 * U ldapursw x3, [x18] # CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] # CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] # CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s index a48978ce8b94d..78542b8b93702 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s @@ -14,11 +14,11 @@ # CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] # CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] # CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] -# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] -# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] -# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] -# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] -# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 * U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 * U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 * U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 * U ldapursw x3, [x18] # CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] # CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] # CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17] diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s index f801a18bc7a06..1021f80306adb 100644 --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s @@ -14,11 +14,11 @@ # CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13] # CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17] # CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22] -# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8] -# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7] -# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19] -# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3] -# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18] +# CHECK-NEXT: 2 1 0.50 * U ldapursb w7, [x8] +# CHECK-NEXT: 2 1 0.50 * U ldapursb x29, [x7] +# CHECK-NEXT: 2 1 0.50 * U ldapursh w17, [x19] +# CHECK-NEXT: 2 1 0.50 * U ldapursh x3, [x3] +# CHECK-NEXT: 2 1 0.50 * U ldapursw x3, [x18] # CHECK-NEXT: 2 1 0.50 * stlur w3, [x27] # CHECK-NEXT: 2 1 0.50 * stlur x23, [x25] # CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]