diff --git a/llvm/lib/Target/AArch64/AArch64InstrFormats.td b/llvm/lib/Target/AArch64/AArch64InstrFormats.td index 4d3a62254c579..6a70d4b489ed9 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrFormats.td +++ b/llvm/lib/Target/AArch64/AArch64InstrFormats.td @@ -4400,6 +4400,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<[WriteLD]> { 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 d9943f342b827..736c84cb7a9be 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: 1 4 0.33 * ldapur x20, [x13] # CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17] # CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22] -# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8] -# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7] -# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19] -# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3] -# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18] +# CHECK-NEXT: 1 4 0.33 * U ldapursb w7, [x8] +# CHECK-NEXT: 1 4 0.33 * U ldapursb x29, [x7] +# CHECK-NEXT: 1 4 0.33 * U ldapursh w17, [x19] +# CHECK-NEXT: 1 4 0.33 * U ldapursh x3, [x3] +# CHECK-NEXT: 1 4 0.33 * 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 d5302e96edf4e..bf0ee9d4f51ad 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: 1 4 0.33 * ldapur x20, [x13] # CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17] # CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22] -# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8] -# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7] -# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19] -# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3] -# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18] +# CHECK-NEXT: 1 4 0.33 * U ldapursb w7, [x8] +# CHECK-NEXT: 1 4 0.33 * U ldapursb x29, [x7] +# CHECK-NEXT: 1 4 0.33 * U ldapursh w17, [x19] +# CHECK-NEXT: 1 4 0.33 * U ldapursh x3, [x3] +# CHECK-NEXT: 1 4 0.33 * 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 dcea382de5fa9..5a5603f166993 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: 1 4 0.33 * ldapur x20, [x13] # CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17] # CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22] -# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8] -# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7] -# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19] -# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3] -# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18] +# CHECK-NEXT: 1 4 0.33 * U ldapursb w7, [x8] +# CHECK-NEXT: 1 4 0.33 * U ldapursb x29, [x7] +# CHECK-NEXT: 1 4 0.33 * U ldapursh w17, [x19] +# CHECK-NEXT: 1 4 0.33 * U ldapursh x3, [x3] +# CHECK-NEXT: 1 4 0.33 * 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 dfcc202192392..00c24cec0a431 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: 1 4 0.33 * ldapur x20, [x13] # CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17] # CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22] -# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8] -# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7] -# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19] -# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3] -# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18] +# CHECK-NEXT: 1 4 0.33 * U ldapursb w7, [x8] +# CHECK-NEXT: 1 4 0.33 * U ldapursb x29, [x7] +# CHECK-NEXT: 1 4 0.33 * U ldapursh w17, [x19] +# CHECK-NEXT: 1 4 0.33 * U ldapursh x3, [x3] +# CHECK-NEXT: 1 4 0.33 * 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 4fff7670058bb..aee01b3e8bf8d 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: 1 4 0.33 * ldapur x20, [x13] # CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17] # CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22] -# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8] -# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7] -# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19] -# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3] -# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18] +# CHECK-NEXT: 1 4 0.33 * U ldapursb w7, [x8] +# CHECK-NEXT: 1 4 0.33 * U ldapursb x29, [x7] +# CHECK-NEXT: 1 4 0.33 * U ldapursh w17, [x19] +# CHECK-NEXT: 1 4 0.33 * U ldapursh x3, [x3] +# CHECK-NEXT: 1 4 0.33 * 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 dc064d6ea3f3f..0fcf3bd0993f8 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: 1 4 0.33 * ldapur x20, [x13] # CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17] # CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22] -# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8] -# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7] -# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19] -# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3] -# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18] +# CHECK-NEXT: 1 4 0.33 * U ldapursb w7, [x8] +# CHECK-NEXT: 1 4 0.33 * U ldapursb x29, [x7] +# CHECK-NEXT: 1 4 0.33 * U ldapursh w17, [x19] +# CHECK-NEXT: 1 4 0.33 * U ldapursh x3, [x3] +# CHECK-NEXT: 1 4 0.33 * 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]