diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td --- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td +++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td @@ -1210,7 +1210,7 @@ def : InstRW<[N2Write_6cyc_8V], (instrs TBXv8i8Four, TBXv16i8Four)>; // ASIMD transfer, gen reg to element -def : InstRW<[N2Write_5cyc_1M0_1V], (instregex "^INSv")>; +def : InstRW<[N2Write_5cyc_1M0_1V], (instregex "^INSvi(8|16|32|64)gpr$")>; // ASIMD load instructions // ----------------------------------------------------------------------------- diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-neon-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-neon-instructions.s --- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-neon-instructions.s +++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-neon-instructions.s @@ -360,6 +360,14 @@ mov d6, v0.d[1] mov h2, v0.h[5] mov s17, v0.s[2] +mov v2.b[0], v0.b[0] +mov v2.h[1], v0.h[1] +mov v2.s[2], v0.s[2] +mov v2.d[1], v0.d[1] +mov v0.b[0], w8 +mov v0.h[1], w8 +mov v0.s[2], w8 +mov v0.d[1], x8 mov v0.16b, v0.16b mov v0.8b, v0.8b movi d15, #0xff00ff00ff00ff @@ -1429,6 +1437,14 @@ # CHECK-NEXT: 1 2 0.50 mov d6, v0.d[1] # CHECK-NEXT: 1 2 0.50 mov h2, v0.h[5] # CHECK-NEXT: 1 2 0.50 mov s17, v0.s[2] +# CHECK-NEXT: 1 2 0.50 mov v2.b[0], v0.b[0] +# CHECK-NEXT: 1 2 0.50 mov v2.h[1], v0.h[1] +# CHECK-NEXT: 1 2 0.50 mov v2.s[2], v0.s[2] +# CHECK-NEXT: 1 2 0.50 mov v2.d[1], v0.d[1] +# CHECK-NEXT: 2 5 1.00 mov v0.b[0], w8 +# CHECK-NEXT: 2 5 1.00 mov v0.h[1], w8 +# CHECK-NEXT: 2 5 1.00 mov v0.s[2], w8 +# CHECK-NEXT: 2 5 1.00 mov v0.d[1], x8 # CHECK-NEXT: 1 2 0.50 mov v0.16b, v0.16b # CHECK-NEXT: 1 2 0.50 mov v0.8b, v0.8b # CHECK-NEXT: 1 2 0.50 movi d15, #0xff00ff00ff00ff @@ -2147,7 +2163,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] -# CHECK-NEXT: - - - - 26.67 52.17 52.17 28.75 7.75 7.75 7.75 708.00 617.00 +# CHECK-NEXT: - - - - 26.67 52.17 52.17 32.75 7.75 7.75 7.75 712.00 621.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions: @@ -2510,6 +2526,14 @@ # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov d6, v0.d[1] # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov h2, v0.h[5] # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov s17, v0.s[2] +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov v2.b[0], v0.b[0] +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov v2.h[1], v0.h[1] +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov v2.s[2], v0.s[2] +# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov v2.d[1], v0.d[1] +# CHECK-NEXT: - - - - - - - 1.00 - - - 0.50 0.50 mov v0.b[0], w8 +# CHECK-NEXT: - - - - - - - 1.00 - - - 0.50 0.50 mov v0.h[1], w8 +# CHECK-NEXT: - - - - - - - 1.00 - - - 0.50 0.50 mov v0.s[2], w8 +# CHECK-NEXT: - - - - - - - 1.00 - - - 0.50 0.50 mov v0.d[1], x8 # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov v0.16b, v0.16b # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 mov v0.8b, v0.8b # CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 movi d15, #0xff00ff00ff00ff