[llvm] [AArch64][NeoverseV1/V2] Fix ASIMD FP convert and round scheduling (PR #224046)
Julien Villette via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 28 04:52:11 PDT 2026
https://github.com/jvillette38 updated https://github.com/llvm/llvm-project/pull/224046
>From 49fe222af04eb8b8b4b4f23b8aa98ef49fccfc6c Mon Sep 17 00:00:00 2001
From: Julien Villette <julien.villette at sipearl.com>
Date: Wed, 16 Sep 2026 16:14:32 +0200
Subject: [PATCH 1/3] [AArch64][NeoverseV1/V2] Fix ASIMD FP convert and round
scheduling
Measured on Neoverse V1 and V2 hardware with unrolled loops of
independent instances, using perf inst_spec/op_spec counters for the
micro-op counts. Both cores measure identically on every test below.
| Instruction | uop | Latency | RThroughput | was |
|----------------------|-----|---------|-------------|-----------|
| fcvtas h0, h1 | 1 | 3 | 0.50 | 4/6/1.00 |
| fcvtas s0, s1 | 1 | 3 | 0.50 | 2/4/1.00 |
| fcvtzs w0, s1, #1 | 1 | 3 | 1.00 | 1/3/0.50 |
| fcvtas v0.4s, v1.4s | 1 | 4 | 1.00 | 2 uops |
| fcvtas v0.8h, v1.8h | 1 | 6 | 2.00 | 4/6/1.00 |
| frinta v0.8h, v1.8h | 1 | 6 | 2.00 | 4/6/1.00 |
| bfcvtn v0.4h, v0.4s | 1 | 4 | 1.00 | 1/4/0.50 |
Scalar H and S conversions were grouped with wider vector forms; they
measure the same as the D-form F32 row, so they move there.
Fixed-point conversions to a general register were missed by the
InstRW regex on V1, which now covers the "ri" suffix as V2 already
did.
On V2 the reworked classes are new definitions, since the originals
are shared with the SVE and reciprocal-estimate rules; on V1 they had
no other user and are updated in place.
---
.../Target/AArch64/AArch64SchedNeoverseV1.td | 29 +-
.../Target/AArch64/AArch64SchedNeoverseV2.td | 46 +--
.../AArch64/Neoverse/V1-basic-instructions.s | 146 ++++----
.../AArch64/Neoverse/V1-bf16-instructions.s | 10 +-
.../AArch64/Neoverse/V1-neon-instructions.s | 318 +++++++++---------
.../AArch64/Neoverse/V2-bf16-instructions.s | 4 +-
.../Neoverse/V2-fptoint-instructions.s | 8 +-
.../AArch64/Neoverse/V2-neon-instructions.s | 276 +++++++--------
8 files changed, 420 insertions(+), 417 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
index b8bab7ece3a2b..8ffa1aae7c38f 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
@@ -145,6 +145,9 @@ def V1Write_4c_1V01 : SchedWriteRes<[V1UnitV01]> { let Latency = 4; }
def V1Write_5c_1V01 : SchedWriteRes<[V1UnitV01]> { let Latency = 5; }
def V1Write_3c_1V02 : SchedWriteRes<[V1UnitV02]> { let Latency = 3; }
def V1Write_4c_1V02 : SchedWriteRes<[V1UnitV02]> { let Latency = 4; }
+def V1Write_4c_2V02 : SchedWriteRes<[V1UnitV02, V1UnitV02]> { let Latency = 4; }
+def V1Write_6c_4V02 : SchedWriteRes<[V1UnitV02, V1UnitV02,
+ V1UnitV02, V1UnitV02]> { let Latency = 6; }
def V1Write_7c7_1V02 : SchedWriteRes<[V1UnitV02]> { let Latency = 7;
let ReleaseAtCycles = [7]; }
def V1Write_10c7_1V02 : SchedWriteRes<[V1UnitV02]> { let Latency = 10;
@@ -232,8 +235,6 @@ let Latency = 2, NumMicroOps = 2 in
def V1Write_2c_2V01 : SchedWriteRes<[V1UnitV01, V1UnitV01]>;
let Latency = 4, NumMicroOps = 2 in
def V1Write_4c_2V01 : SchedWriteRes<[V1UnitV01, V1UnitV01]>;
-let Latency = 4, NumMicroOps = 2 in
-def V1Write_4c_2V02 : SchedWriteRes<[V1UnitV02, V1UnitV02]>;
let Latency = 6, NumMicroOps = 2 in
def V1Write_6c_2V02 : SchedWriteRes<[V1UnitV02, V1UnitV02]>;
let Latency = 4, NumMicroOps = 2 in
@@ -314,8 +315,6 @@ def V1Write_6c_4V0 : SchedWriteRes<[V1UnitV0, V1UnitV0,
let Latency = 12, NumMicroOps = 4 in
def V1Write_12c_4V01 : SchedWriteRes<[V1UnitV01, V1UnitV01,
V1UnitV01, V1UnitV01]>;
-let Latency = 6, NumMicroOps = 4 in
-def V1Write_6c_4V02 : SchedWriteRes<[V1UnitV02, V1UnitV02]>;
//===----------------------------------------------------------------------===//
// Define generic 5 micro-op types
@@ -801,7 +800,7 @@ def : InstRW<[V1Write_2c_1V01], (instregex "^FCSEL[HSD]rrr$")>;
def : InstRW<[V1Write_3c_1M0], (instregex "^[SU]CVTF[SU][WX][HSD]ri$")>;
// FP convert, from vec to gen reg
-def : InstRW<[V1Write_3c_1V0], (instregex "^FCVT[AMNPZ][SU][SU][WX][HSD]r$")>;
+def : InstRW<[V1Write_3c_1V0], (instregex "^FCVT[AMNPZ][SU][SU][WX][HSD]ri?$")>;
// FP convert, Javascript from vec to gen reg
def : InstRW<[V1Write_3c_1V0], (instrs FJCVTZS)>;
@@ -1030,33 +1029,33 @@ def : InstRW<[V1Write_3c_1V02], (instregex "^FCVTNv[24]i32$",
// ASIMD FP convert, other, D-form F32 and Q-form F64
def : InstRW<[V1Write_3c_1V02], (instregex "^FCVT[AMNPZ][SU]v2f(32|64)$",
+ "^FCVT[AMNPZ][SU]v1f16$",
"^FCVT[AMNPZ][SU]v2i(32|64)_shift$",
"^FCVT[AMNPZ][SU]v1i64$",
+ "^FCVT[AMNPZ][SU]v1i32$",
+ "^FCVTZ[SU]h$",
+ "^FCVTZ[SU]s$",
"^FCVTZ[SU]d$",
"^[SU]CVTFv2f(32|64)$",
"^[SU]CVTFv2i(32|64)_shift$",
+ "^[SU]CVTFv1i16$",
"^[SU]CVTFv1i64$",
+ "^[SU]CVTFh$",
+ "^[SU]CVTFs$",
"^[SU]CVTFd$")>;
// ASIMD FP convert, other, D-form F16 and Q-form F32
def : InstRW<[V1Write_4c_2V02], (instregex "^FCVT[AMNPZ][SU]v4f(16|32)$",
"^FCVT[AMNPZ][SU]v4i(16|32)_shift$",
- "^FCVT[AMNPZ][SU]v1i32$",
- "^FCVTZ[SU]s$",
"^[SU]CVTFv4f(16|32)$",
"^[SU]CVTFv4i(16|32)_shift$",
- "^[SU]CVTFv1i32$",
- "^[SU]CVTFs$")>;
+ "^[SU]CVTFv1i32$")>;
// ASIMD FP convert, other, Q-form F16
def : InstRW<[V1Write_6c_4V02], (instregex "^FCVT[AMNPZ][SU]v8f16$",
"^FCVT[AMNPZ][SU]v8i16_shift$",
- "^FCVT[AMNPZ][SU]v1f16$",
- "^FCVTZ[SU]h$",
"^[SU]CVTFv8f16$",
- "^[SU]CVTFv8i16_shift$",
- "^[SU]CVTFv1i16$",
- "^[SU]CVTFh$")>;
+ "^[SU]CVTFv8i16_shift$")>;
// ASIMD FP divide, D-form, F16
// ASIMD FP square root, D-form, F16
@@ -1099,7 +1098,7 @@ def : InstRW<[V1Write_6c_4V02], (instregex "^FRINT[AIMNPXZ]v8f16$")>;
// -----------------------------------------------------------------------------
// ASIMD convert, F32 to BF16
-def : InstRW<[V1Write_4c_1V02], (instrs BFCVTN, BFCVTN2)>;
+def : InstRW<[V1Write_4c_2V02], (instrs BFCVTN, BFCVTN2)>;
// ASIMD dot product
def : InstRW<[V1Wr_BFD, V1Rd_BFD], (instregex "^BF(DOT|16DOTlane)v[48]bf16$")>;
diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
index aeca6253a0bdb..83ab5b20780f0 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
@@ -135,6 +135,10 @@ def V2Write_3c_1V0 : SchedWriteRes<[V2UnitV0]> { let Latency = 3; }
def V2Write_3c_1V02 : SchedWriteRes<[V2UnitV02]> { let Latency = 3; }
def V2Write_4c_1V0 : SchedWriteRes<[V2UnitV0]> { let Latency = 4; }
def V2Write_4c_1V02 : SchedWriteRes<[V2UnitV02]> { let Latency = 4; }
+def V2Write_4c_2V02_1uop : SchedWriteRes<[V2UnitV02,
+ V2UnitV02]> { let Latency = 4; }
+def V2Write_6c_4V02_1uop : SchedWriteRes<[V2UnitV02, V2UnitV02, V2UnitV02,
+ V2UnitV02]> { let Latency = 6; }
def V2Write_7c_1V0 : SchedWriteRes<[V2UnitV0]> { let Latency = 7;
let ReleaseAtCycles = [7]; }
def V2Write_7c_1V02 : SchedWriteRes<[V2UnitV02]> { let Latency = 7;
@@ -1566,13 +1570,13 @@ def : InstRW<[V2Write_4c_1V13],
def : InstRW<[V2Wr_VFCMA, V2Rd_VFCMA], (instregex "^FCMLAv")>;
// ASIMD FP convert, long (F16 to F32)
-def : InstRW<[V2Write_4c_2V02], (instregex "^FCVTL(v4|v8)i16")>;
+def : InstRW<[V2Write_4c_2V02_1uop], (instregex "^FCVTL(v4|v8)i16")>;
// ASIMD FP convert, long (F32 to F64)
def : InstRW<[V2Write_3c_1V02], (instregex "^FCVTL(v2|v4)i32")>;
// ASIMD FP convert, narrow (F32 to F16)
-def : InstRW<[V2Write_4c_2V02], (instregex "^FCVTN(v4|v8)i16")>;
+def : InstRW<[V2Write_4c_2V02_1uop], (instregex "^FCVTN(v4|v8)i16")>;
// ASIMD FP convert, narrow (F64 to F32)
def : InstRW<[V2Write_3c_1V02], (instregex "^FCVTN(v2|v4)i32",
@@ -1581,32 +1585,32 @@ def : InstRW<[V2Write_3c_1V02], (instregex "^FCVTN(v2|v4)i32",
// ASIMD FP convert, other, D-form F32 and Q-form F64
def : InstRW<[V2Write_3c_1V02], (instregex "^FCVT[AMNPZ][SU]v2f(32|64)$",
"^FCVT[AMNPZ][SU]v2i(32|64)_shift$",
+ "^FCVT[AMNPZ][SU]v1i32$",
"^FCVT[AMNPZ][SU]v1i64$",
+ "^FCVT[AMNPZ][SU]v1f16$",
+ "^FCVTZ[SU]h$",
+ "^FCVTZ[SU]s$",
"^FCVTZ[SU]d$",
"^[SU]CVTFv2f(32|64)$",
"^[SU]CVTFv2i(32|64)_shift$",
+ "^[SU]CVTFv1i16$",
+ "^[SU]CVTFv1i32$",
"^[SU]CVTFv1i64$",
+ "^[SU]CVTFh$",
+ "^[SU]CVTFs$",
"^[SU]CVTFd$")>;
// ASIMD FP convert, other, D-form F16 and Q-form F32
-def : InstRW<[V2Write_4c_2V02], (instregex "^FCVT[AMNPZ][SU]v4f(16|32)$",
- "^FCVT[AMNPZ][SU]v4i(16|32)_shift$",
- "^FCVT[AMNPZ][SU]v1i32$",
- "^FCVTZ[SU]s$",
- "^[SU]CVTFv4f(16|32)$",
- "^[SU]CVTFv4i(16|32)_shift$",
- "^[SU]CVTFv1i32$",
- "^[SU]CVTFs$")>;
+def : InstRW<[V2Write_4c_2V02_1uop], (instregex "^FCVT[AMNPZ][SU]v4f(16|32)$",
+ "^FCVT[AMNPZ][SU]v4i(16|32)_shift$",
+ "^[SU]CVTFv4f(16|32)$",
+ "^[SU]CVTFv4i(16|32)_shift$")>;
// ASIMD FP convert, other, Q-form F16
-def : InstRW<[V2Write_6c_4V02], (instregex "^FCVT[AMNPZ][SU]v8f16$",
- "^FCVT[AMNPZ][SU]v8i16_shift$",
- "^FCVT[AMNPZ][SU]v1f16$",
- "^FCVTZ[SU]h$",
- "^[SU]CVTFv8f16$",
- "^[SU]CVTFv8i16_shift$",
- "^[SU]CVTFv1i16$",
- "^[SU]CVTFh$")>;
+def : InstRW<[V2Write_6c_4V02_1uop], (instregex "^FCVT[AMNPZ][SU]v8f16$",
+ "^FCVT[AMNPZ][SU]v8i16_shift$",
+ "^[SU]CVTFv8f16$",
+ "^[SU]CVTFv8i16_shift$")>;
// ASIMD FP divide, D-form, F16
def : InstRW<[V2Write_7c_1V02_7rc], (instrs FDIVv4f16)>;
@@ -1644,12 +1648,12 @@ def : InstRW<[V2Write_3c_1V02],
"^FRINT(32|64)[XZ]v2f(32|64)$")>;
// ASIMD FP round, D-form F16 and Q-form F32
-def : InstRW<[V2Write_4c_2V02],
+def : InstRW<[V2Write_4c_2V02_1uop],
(instregex "^FRINT[AIMNPXZ]v4f(16|32)$",
"^FRINT(32|64)[XZ]v4f32$")>;
// ASIMD FP round, Q-form F16
-def : InstRW<[V2Write_6c_4V02], (instregex "^FRINT[AIMNPXZ]v8f16$")>;
+def : InstRW<[V2Write_6c_4V02_1uop], (instregex "^FRINT[AIMNPXZ]v8f16$")>;
// ASIMD FP square root, D-form, F16
def : InstRW<[V2Write_7c_1V02_7rc], (instrs FSQRTv4f16)>;
@@ -1670,7 +1674,7 @@ def : InstRW<[V2Write_16c_1V02_15rc], (instrs FSQRTv2f64)>;
// -----------------------------------------------------------------------------
// ASIMD convert, F32 to BF16
-def : InstRW<[V2Write_4c_2V02], (instrs BFCVTN, BFCVTN2)>;
+def : InstRW<[V2Write_4c_2V02_1uop], (instrs BFCVTN, BFCVTN2)>;
// ASIMD dot product
def : InstRW<[V2Wr_VBFDOT, V2Rd_VBFDOT], (instrs BFDOTv4bf16, BFDOTv8bf16)>;
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
index da6a36c654ee8..2b9b8eca67887 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-basic-instructions.s
@@ -610,42 +610,42 @@
# CHECK-NEXT: 1 4 0.25 fnmsub s3, s5, s6, s31
# CHECK-NEXT: 1 4 0.25 fnmsub d3, d13, d0, d23
# CHECK-NEXT: 1 4 0.25 fnmsub h3, h29, h24, h17
-# CHECK-NEXT: 1 3 0.50 fcvtzs w3, h5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzs wzr, h20, #13
-# CHECK-NEXT: 1 3 0.50 fcvtzs w19, h0, #32
-# CHECK-NEXT: 1 3 0.50 fcvtzs x3, h5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzs x12, h30, #45
-# CHECK-NEXT: 1 3 0.50 fcvtzs x19, h0, #64
-# CHECK-NEXT: 1 3 0.50 fcvtzs w3, s5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzs wzr, s20, #13
-# CHECK-NEXT: 1 3 0.50 fcvtzs w19, s0, #32
-# CHECK-NEXT: 1 3 0.50 fcvtzs x3, s5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzs x12, s30, #45
-# CHECK-NEXT: 1 3 0.50 fcvtzs x19, s0, #64
-# CHECK-NEXT: 1 3 0.50 fcvtzs w3, d5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzs wzr, d20, #13
-# CHECK-NEXT: 1 3 0.50 fcvtzs w19, d0, #32
-# CHECK-NEXT: 1 3 0.50 fcvtzs x3, d5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzs x12, d30, #45
-# CHECK-NEXT: 1 3 0.50 fcvtzs x19, d0, #64
-# CHECK-NEXT: 1 3 0.50 fcvtzu w3, h5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzu wzr, h20, #13
-# CHECK-NEXT: 1 3 0.50 fcvtzu w19, h0, #32
-# CHECK-NEXT: 1 3 0.50 fcvtzu x3, h5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzu x12, h30, #45
-# CHECK-NEXT: 1 3 0.50 fcvtzu x19, h0, #64
-# CHECK-NEXT: 1 3 0.50 fcvtzu w3, s5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzu wzr, s20, #13
-# CHECK-NEXT: 1 3 0.50 fcvtzu w19, s0, #32
-# CHECK-NEXT: 1 3 0.50 fcvtzu x3, s5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzu x12, s30, #45
-# CHECK-NEXT: 1 3 0.50 fcvtzu x19, s0, #64
-# CHECK-NEXT: 1 3 0.50 fcvtzu w3, d5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzu wzr, d20, #13
-# CHECK-NEXT: 1 3 0.50 fcvtzu w19, d0, #32
-# CHECK-NEXT: 1 3 0.50 fcvtzu x3, d5, #1
-# CHECK-NEXT: 1 3 0.50 fcvtzu x12, d30, #45
-# CHECK-NEXT: 1 3 0.50 fcvtzu x19, d0, #64
+# CHECK-NEXT: 1 3 1.00 fcvtzs w3, h5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzs wzr, h20, #13
+# CHECK-NEXT: 1 3 1.00 fcvtzs w19, h0, #32
+# CHECK-NEXT: 1 3 1.00 fcvtzs x3, h5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzs x12, h30, #45
+# CHECK-NEXT: 1 3 1.00 fcvtzs x19, h0, #64
+# CHECK-NEXT: 1 3 1.00 fcvtzs w3, s5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzs wzr, s20, #13
+# CHECK-NEXT: 1 3 1.00 fcvtzs w19, s0, #32
+# CHECK-NEXT: 1 3 1.00 fcvtzs x3, s5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzs x12, s30, #45
+# CHECK-NEXT: 1 3 1.00 fcvtzs x19, s0, #64
+# CHECK-NEXT: 1 3 1.00 fcvtzs w3, d5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzs wzr, d20, #13
+# CHECK-NEXT: 1 3 1.00 fcvtzs w19, d0, #32
+# CHECK-NEXT: 1 3 1.00 fcvtzs x3, d5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzs x12, d30, #45
+# CHECK-NEXT: 1 3 1.00 fcvtzs x19, d0, #64
+# CHECK-NEXT: 1 3 1.00 fcvtzu w3, h5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzu wzr, h20, #13
+# CHECK-NEXT: 1 3 1.00 fcvtzu w19, h0, #32
+# CHECK-NEXT: 1 3 1.00 fcvtzu x3, h5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzu x12, h30, #45
+# CHECK-NEXT: 1 3 1.00 fcvtzu x19, h0, #64
+# CHECK-NEXT: 1 3 1.00 fcvtzu w3, s5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzu wzr, s20, #13
+# CHECK-NEXT: 1 3 1.00 fcvtzu w19, s0, #32
+# CHECK-NEXT: 1 3 1.00 fcvtzu x3, s5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzu x12, s30, #45
+# CHECK-NEXT: 1 3 1.00 fcvtzu x19, s0, #64
+# CHECK-NEXT: 1 3 1.00 fcvtzu w3, d5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzu wzr, d20, #13
+# CHECK-NEXT: 1 3 1.00 fcvtzu w19, d0, #32
+# CHECK-NEXT: 1 3 1.00 fcvtzu x3, d5, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzu x12, d30, #45
+# CHECK-NEXT: 1 3 1.00 fcvtzu x19, d0, #64
# CHECK-NEXT: 1 3 1.00 scvtf h23, w19, #1
# CHECK-NEXT: 1 3 1.00 scvtf h31, wzr, #20
# CHECK-NEXT: 1 3 1.00 scvtf h14, w0, #32
@@ -1273,7 +1273,7 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
-# CHECK-NEXT: 13.00 13.00 34.00 34.00 48.00 48.00 48.00 98.67 171.67 171.67 323.50 210.50 143.00 143.00 190.00 56.50 65.50 13.00
+# CHECK-NEXT: 13.00 13.00 34.00 34.00 48.00 48.00 48.00 98.67 171.67 171.67 323.50 210.50 143.00 143.00 208.00 56.50 47.50 13.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
@@ -1877,42 +1877,42 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub s3, s5, s6, s31
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub d3, d13, d0, d23
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fnmsub h3, h29, h24, h17
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs w3, h5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs wzr, h20, #13
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs w19, h0, #32
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x3, h5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x12, h30, #45
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x19, h0, #64
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs w3, s5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs wzr, s20, #13
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs w19, s0, #32
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x3, s5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x12, s30, #45
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x19, s0, #64
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs w3, d5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs wzr, d20, #13
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs w19, d0, #32
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x3, d5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x12, d30, #45
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs x19, d0, #64
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu w3, h5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu wzr, h20, #13
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu w19, h0, #32
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x3, h5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x12, h30, #45
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x19, h0, #64
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu w3, s5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu wzr, s20, #13
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu w19, s0, #32
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x3, s5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x12, s30, #45
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x19, s0, #64
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu w3, d5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu wzr, d20, #13
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu w19, d0, #32
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x3, d5, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x12, d30, #45
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu x19, d0, #64
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs w3, h5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs wzr, h20, #13
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs w19, h0, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x3, h5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x12, h30, #45
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x19, h0, #64
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs w3, s5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs wzr, s20, #13
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs w19, s0, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x3, s5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x12, s30, #45
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x19, s0, #64
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs w3, d5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs wzr, d20, #13
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs w19, d0, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x3, d5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x12, d30, #45
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzs x19, d0, #64
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu w3, h5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu wzr, h20, #13
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu w19, h0, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x3, h5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x12, h30, #45
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x19, h0, #64
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu w3, s5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu wzr, s20, #13
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu w19, s0, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x3, s5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x12, s30, #45
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x19, s0, #64
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu w3, d5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu wzr, d20, #13
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu w19, d0, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x3, d5, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x12, d30, #45
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - - - fcvtzu x19, d0, #64
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - scvtf h23, w19, #1
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - scvtf h31, wzr, #20
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - scvtf h14, w0, #32
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-bf16-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-bf16-instructions.s
index fa8a5b7b3e2f5..bcc7084709b46 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-bf16-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-bf16-instructions.s
@@ -11,8 +11,8 @@
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 bfcvt h0, s0
-# CHECK-NEXT: 1 4 0.50 bfcvtn v0.4h, v0.4s
-# CHECK-NEXT: 1 4 0.50 bfcvtn2 v0.8h, v0.4s
+# CHECK-NEXT: 1 4 1.00 bfcvtn v0.4h, v0.4s
+# CHECK-NEXT: 1 4 1.00 bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 4 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: 1 4 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.25 bfdot v0.4s, v0.8h, v0.8h
@@ -44,13 +44,13 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
-# CHECK-NEXT: - - - - - - - - - - - - - - 3.50 2.00 3.50 2.00
+# CHECK-NEXT: - - - - - - - - - - - - - - 4.50 2.00 4.50 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - bfcvt h0, s0
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - bfcvtn v0.4h, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - bfcvtn2 v0.8h, v0.4s
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - bfcvtn v0.4h, v0.4s
+# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.4s, v0.8h, v0.8h
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s
index 64c5f3f594c69..b5691c1a52b4b 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s
@@ -192,112 +192,112 @@
# CHECK-NEXT: 1 2 0.25 fcmlt v8.4h, v2.4h, #0.0
# CHECK-NEXT: 1 2 0.25 fcmlt v7.2d, v16.2d, #0.0
# CHECK-NEXT: 1 3 0.50 fcvtas d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtas s12, s13
-# CHECK-NEXT: 4 6 1.00 fcvtas h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtas s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtas h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtas v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtas v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtas v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtas v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 fcvtas v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtas v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtas v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtas v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtau d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtau s12, s13
-# CHECK-NEXT: 4 6 1.00 fcvtau h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtau s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtau h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtau v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtau v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtau v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtau v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 fcvtau v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtau v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtau v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtau v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtl v0.2d, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtl v0.4s, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtl v0.4s, v0.4h
# CHECK-NEXT: 1 3 0.50 fcvtl2 v0.2d, v0.4s
-# CHECK-NEXT: 2 4 1.00 fcvtl2 v0.4s, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtl2 v0.4s, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtms d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtms s22, s13
-# CHECK-NEXT: 4 6 1.00 fcvtms h22, h13
+# CHECK-NEXT: 1 3 0.50 fcvtms s22, s13
+# CHECK-NEXT: 1 3 0.50 fcvtms h22, h13
# CHECK-NEXT: 1 3 0.50 fcvtms v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtms v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtms v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtms v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 fcvtms v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtms v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtms v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtms v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtmu d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtmu s12, s13
-# CHECK-NEXT: 4 6 1.00 fcvtmu h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtmu s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtmu h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtmu v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtmu v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtmu v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtmu v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 fcvtmu v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtmu v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtmu v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtmu v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtn v0.2s, v0.2d
-# CHECK-NEXT: 2 4 1.00 fcvtn v0.4h, v0.4s
+# CHECK-NEXT: 1 4 1.00 fcvtn v0.4h, v0.4s
# CHECK-NEXT: 1 3 0.50 fcvtn2 v0.4s, v0.2d
-# CHECK-NEXT: 2 4 1.00 fcvtn2 v0.8h, v0.4s
+# CHECK-NEXT: 1 4 1.00 fcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 3 0.50 fcvtns d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtns s22, s13
-# CHECK-NEXT: 4 6 1.00 fcvtns h22, h13
+# CHECK-NEXT: 1 3 0.50 fcvtns s22, s13
+# CHECK-NEXT: 1 3 0.50 fcvtns h22, h13
# CHECK-NEXT: 1 3 0.50 fcvtns v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtns v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtns v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtns v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 fcvtns v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtns v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtns v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtns v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtnu d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtnu s12, s13
-# CHECK-NEXT: 4 6 1.00 fcvtnu h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtnu s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtnu h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtnu v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtnu v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtnu v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtnu v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 fcvtnu v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtnu v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtnu v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtnu v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtps d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtps s22, s13
-# CHECK-NEXT: 4 6 1.00 fcvtps h22, h13
+# CHECK-NEXT: 1 3 0.50 fcvtps s22, s13
+# CHECK-NEXT: 1 3 0.50 fcvtps h22, h13
# CHECK-NEXT: 1 3 0.50 fcvtps v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtps v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtps v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtps v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 fcvtps v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtps v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtps v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtps v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtpu d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtpu s12, s13
-# CHECK-NEXT: 4 6 1.00 fcvtpu h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtpu s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtpu h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtpu v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtpu v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtpu v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtpu v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 fcvtpu v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtpu v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtpu v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtpu v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtxn s22, d13
# CHECK-NEXT: 1 3 0.50 fcvtxn v0.2s, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtxn2 v0.4s, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtzs d21, d12, #1
# CHECK-NEXT: 1 3 0.50 fcvtzs d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtzs s12, s13
-# CHECK-NEXT: 2 4 1.00 fcvtzs s21, s12, #1
-# CHECK-NEXT: 4 6 1.00 fcvtzs h21, h14
-# CHECK-NEXT: 4 6 1.00 fcvtzs h21, h12, #1
+# CHECK-NEXT: 1 3 0.50 fcvtzs s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtzs s21, s12, #1
+# CHECK-NEXT: 1 3 0.50 fcvtzs h21, h14
+# CHECK-NEXT: 1 3 0.50 fcvtzs h21, h12, #1
# CHECK-NEXT: 1 3 0.50 fcvtzs v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtzs v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 0.50 fcvtzs v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 fcvtzs v0.2s, v0.2s, #3
-# CHECK-NEXT: 2 4 1.00 fcvtzs v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtzs v20.4h, v24.4h, #11
-# CHECK-NEXT: 2 4 1.00 fcvtzs v0.4s, v0.4s
-# CHECK-NEXT: 2 4 1.00 fcvtzs v0.4s, v0.4s, #3
-# CHECK-NEXT: 4 6 1.00 fcvtzs v0.8h, v0.8h
-# CHECK-NEXT: 4 6 1.00 fcvtzs v18.8h, v10.8h, #7
+# CHECK-NEXT: 1 4 1.00 fcvtzs v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtzs v20.4h, v24.4h, #11
+# CHECK-NEXT: 1 4 1.00 fcvtzs v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 fcvtzs v0.4s, v0.4s, #3
+# CHECK-NEXT: 1 6 2.00 fcvtzs v0.8h, v0.8h
+# CHECK-NEXT: 1 6 2.00 fcvtzs v18.8h, v10.8h, #7
# CHECK-NEXT: 1 3 0.50 fcvtzu d21, d12, #1
# CHECK-NEXT: 1 3 0.50 fcvtzu d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtzu s12, s13
-# CHECK-NEXT: 2 4 1.00 fcvtzu s21, s12, #1
-# CHECK-NEXT: 4 6 1.00 fcvtzu h12, h13
-# CHECK-NEXT: 4 6 1.00 fcvtzu h21, h12, #1
+# CHECK-NEXT: 1 3 0.50 fcvtzu s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtzu s21, s12, #1
+# CHECK-NEXT: 1 3 0.50 fcvtzu h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtzu h21, h12, #1
# CHECK-NEXT: 1 3 0.50 fcvtzu v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtzu v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 0.50 fcvtzu v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 fcvtzu v0.2s, v0.2s, #3
-# CHECK-NEXT: 2 4 1.00 fcvtzu v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtzu v19.4h, v26.4h, #9
-# CHECK-NEXT: 2 4 1.00 fcvtzu v0.4s, v0.4s
-# CHECK-NEXT: 2 4 1.00 fcvtzu v0.4s, v0.4s, #3
-# CHECK-NEXT: 4 6 1.00 fcvtzu v0.8h, v0.8h
-# CHECK-NEXT: 4 6 1.00 fcvtzu v27.8h, v6.8h, #11
+# CHECK-NEXT: 1 4 1.00 fcvtzu v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtzu v19.4h, v26.4h, #9
+# CHECK-NEXT: 1 4 1.00 fcvtzu v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 fcvtzu v0.4s, v0.4s, #3
+# CHECK-NEXT: 1 6 2.00 fcvtzu v0.8h, v0.8h
+# CHECK-NEXT: 1 6 2.00 fcvtzu v27.8h, v6.8h, #11
# CHECK-NEXT: 1 15 3.50 fdiv v0.2d, v0.2d, v0.2d
# CHECK-NEXT: 1 10 3.50 fdiv v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 7 3.50 fdiv v0.4h, v0.4h, v0.4h
@@ -414,39 +414,39 @@
# CHECK-NEXT: 1 3 0.50 frecpx s18, s10
# CHECK-NEXT: 1 3 0.50 frinta v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frinta v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frinta v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frinta v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 frinta v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frinta v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frinta v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frinta v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frinti v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frinti v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frinti v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frinti v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 frinti v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frinti v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frinti v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frinti v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintm v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintm v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintm v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintm v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 frintm v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintm v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintm v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintm v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintn v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintn v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintn v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintn v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 frintn v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintn v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintn v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintn v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintp v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintp v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintp v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintp v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 frintp v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintp v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintp v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintp v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintx v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintx v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintx v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintx v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 frintx v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintx v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintx v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintx v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintz v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintz v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintz v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintz v0.4s, v0.4s
-# CHECK-NEXT: 4 6 1.00 frintz v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintz v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintz v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintz v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.50 frsqrte h23, h26
# CHECK-NEXT: 1 3 0.50 frsqrte d21, d12
# CHECK-NEXT: 1 3 0.50 frsqrte s22, s13
@@ -751,22 +751,22 @@
# CHECK-NEXT: 1 2 0.25 saddw2 v0.2d, v0.2d, v0.4s
# CHECK-NEXT: 1 2 0.25 saddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: 1 2 0.25 saddw2 v0.8h, v0.8h, v0.16b
-# CHECK-NEXT: 4 6 1.00 scvtf h4, h8, #9
-# CHECK-NEXT: 4 6 1.00 scvtf h5, h14
+# CHECK-NEXT: 1 3 0.50 scvtf h4, h8, #9
+# CHECK-NEXT: 1 3 0.50 scvtf h5, h14
# CHECK-NEXT: 1 3 0.50 scvtf d21, d12
# CHECK-NEXT: 1 3 0.50 scvtf d21, d12, #64
-# CHECK-NEXT: 2 4 1.00 scvtf s22, s13
-# CHECK-NEXT: 2 4 1.00 scvtf s22, s13, #32
+# CHECK-NEXT: 1 4 1.00 scvtf s22, s13
+# CHECK-NEXT: 1 3 0.50 scvtf s22, s13, #32
# CHECK-NEXT: 1 3 0.50 scvtf v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 scvtf v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 0.50 scvtf v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 scvtf v0.2s, v0.2s, #3
-# CHECK-NEXT: 2 4 1.00 scvtf v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 scvtf v0.4s, v0.4s
-# CHECK-NEXT: 2 4 1.00 scvtf v0.4s, v0.4s, #3
-# CHECK-NEXT: 2 4 1.00 scvtf v25.4h, v13.4h, #8
-# CHECK-NEXT: 4 6 1.00 scvtf v0.8h, v0.8h
-# CHECK-NEXT: 4 6 1.00 scvtf v4.8h, v8.8h, #10
+# CHECK-NEXT: 1 4 1.00 scvtf v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 scvtf v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 scvtf v0.4s, v0.4s, #3
+# CHECK-NEXT: 1 4 1.00 scvtf v25.4h, v13.4h, #8
+# CHECK-NEXT: 1 6 2.00 scvtf v0.8h, v0.8h
+# CHECK-NEXT: 1 6 2.00 scvtf v4.8h, v8.8h, #10
# CHECK-NEXT: 1 3 0.25 sdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 sdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.25 sdot v0.4s, v0.16b, v0.16b
@@ -1302,23 +1302,23 @@
# CHECK-NEXT: 1 2 0.25 uaddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: 1 2 0.25 uaddw2 v0.8h, v0.8h, v0.16b
# CHECK-NEXT: 1 3 1.00 ucvtf h17, x12
-# CHECK-NEXT: 4 6 1.00 ucvtf h22, h16, #11
-# CHECK-NEXT: 4 6 1.00 ucvtf h7, h21
+# CHECK-NEXT: 1 3 0.50 ucvtf h22, h16, #11
+# CHECK-NEXT: 1 3 0.50 ucvtf h7, h21
# CHECK-NEXT: 1 3 0.50 ucvtf d21, d14
# CHECK-NEXT: 1 3 0.50 ucvtf d21, d14, #64
# CHECK-NEXT: 1 3 1.00 ucvtf s8, x0
-# CHECK-NEXT: 2 4 1.00 ucvtf s22, s13
-# CHECK-NEXT: 2 4 1.00 ucvtf s22, s13, #32
+# CHECK-NEXT: 1 4 1.00 ucvtf s22, s13
+# CHECK-NEXT: 1 3 0.50 ucvtf s22, s13, #32
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2s, v0.2s, #3
-# CHECK-NEXT: 2 4 1.00 ucvtf v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 ucvtf v0.4s, v0.4s
-# CHECK-NEXT: 2 4 1.00 ucvtf v0.4s, v0.4s, #3
-# CHECK-NEXT: 2 4 1.00 ucvtf v18.4h, v11.4h, #7
-# CHECK-NEXT: 4 6 1.00 ucvtf v0.8h, v0.8h
-# CHECK-NEXT: 4 6 1.00 ucvtf v22.8h, v20.8h, #10
+# CHECK-NEXT: 1 4 1.00 ucvtf v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 ucvtf v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 ucvtf v0.4s, v0.4s, #3
+# CHECK-NEXT: 1 4 1.00 ucvtf v18.4h, v11.4h, #7
+# CHECK-NEXT: 1 6 2.00 ucvtf v0.8h, v0.8h
+# CHECK-NEXT: 1 6 2.00 ucvtf v22.8h, v20.8h, #10
# CHECK-NEXT: 1 3 0.25 udot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 udot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.25 udot v0.4s, v0.16b, v0.16b
@@ -1594,7 +1594,7 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
-# CHECK-NEXT: - - - - - - - 101.33 187.33 187.33 25.25 12.25 12.25 12.25 611.25 504.75 502.25 395.75
+# CHECK-NEXT: - - - - - - - 101.33 187.33 187.33 25.25 12.25 12.25 12.25 619.25 504.75 510.25 395.75
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
@@ -1780,86 +1780,86 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmlt v8.4h, v2.4h, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmlt v7.2d, v16.2d, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtas s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtas h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtas v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtas v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtas v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtas v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtau s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtau h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtau v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtau v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtau v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtau v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtl v0.2d, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtl v0.4s, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtl2 v0.2d, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtl2 v0.4s, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtms s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtms h22, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms h22, h13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtms v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtms v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtms v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtms v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtmu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtmu h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtmu v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtmu v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtmu v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtmu v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtn v0.2s, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtn v0.4h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtn2 v0.4s, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtns s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtns h22, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns h22, h13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtns v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtns v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtns v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtns v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtnu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtnu h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtnu v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtnu v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtnu v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtnu v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtps s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtps h22, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps h22, h13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtps v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtps v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtps v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtps v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtpu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtpu h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtpu v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtpu v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtpu v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtpu v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtxn s22, d13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtxn v0.2s, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtxn2 v0.4s, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs d21, d12, #1
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs s21, s12, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs h21, h14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs h21, h12, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs s21, s12, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs h21, h14
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs h21, h12, #1
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs v0.2s, v0.2s
@@ -1868,14 +1868,14 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs v20.4h, v24.4h, #11
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs v0.4s, v0.4s, #3
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs v18.8h, v10.8h, #7
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzs v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzs v18.8h, v10.8h, #7
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu d21, d12, #1
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu s21, s12, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu h12, h13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu h21, h12, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu s21, s12, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu h21, h12, #1
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu v0.2s, v0.2s
@@ -1884,8 +1884,8 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu v19.4h, v26.4h, #9
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu v0.4s, v0.4s, #3
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu v27.8h, v6.8h, #11
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzu v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzu v27.8h, v6.8h, #11
# CHECK-NEXT: - - - - - - - - - - - - - - 3.50 - 3.50 - fdiv v0.2d, v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 3.50 - 3.50 - fdiv v0.2s, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 3.50 - 3.50 - fdiv v0.4h, v0.4h, v0.4h
@@ -2004,37 +2004,37 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frinta v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frinta v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frinta v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frinta v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - frinta v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frinti v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frinti v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frinti v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frinti v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frinti v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - frinti v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintm v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintm v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintm v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintm v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintm v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - frintm v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintn v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintn v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintn v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintn v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintn v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - frintn v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintp v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintp v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintp v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintp v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintp v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - frintp v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintx v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintx v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintx v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintx v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintx v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - frintx v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintz v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frintz v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintz v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintz v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - frintz v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - frintz v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frsqrte h23, h26
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frsqrte d21, d12
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - frsqrte s22, s13
@@ -2339,12 +2339,12 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 saddw2 v0.2d, v0.2d, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 saddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 saddw2 v0.8h, v0.8h, v0.16b
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf h4, h8, #9
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf h5, h14
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf h4, h8, #9
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf h5, h14
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf d21, d12
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf d21, d12, #64
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf s22, s13, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf s22, s13, #32
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf v0.2s, v0.2s
@@ -2353,8 +2353,8 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf v25.4h, v13.4h, #8
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf v4.8h, v8.8h, #10
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - scvtf v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - scvtf v4.8h, v8.8h, #10
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sdot v0.4s, v0.16b, v0.16b
@@ -2890,13 +2890,13 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 uaddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 uaddw2 v0.8h, v0.8h, v0.16b
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - ucvtf h17, x12
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf h22, h16, #11
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf h7, h21
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf h22, h16, #11
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf h7, h21
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf d21, d14
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf d21, d14, #64
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - ucvtf s8, x0
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf s22, s13, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf s22, s13, #32
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf v0.2s, v0.2s
@@ -2905,8 +2905,8 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf v18.4h, v11.4h, #7
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf v22.8h, v20.8h, #10
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - ucvtf v0.8h, v0.8h
+# CHECK-NEXT: - - - - - - - - - - - - - - 2.00 - 2.00 - ucvtf v22.8h, v20.8h, #10
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 udot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 udot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 udot v0.4s, v0.16b, v0.16b
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-bf16-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-bf16-instructions.s
index 81964d84ac041..21caf817c5808 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-bf16-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-bf16-instructions.s
@@ -11,8 +11,8 @@
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 bfcvt h0, s0
-# CHECK-NEXT: 2 4 1.00 bfcvtn v0.4h, v0.4s
-# CHECK-NEXT: 2 4 1.00 bfcvtn2 v0.8h, v0.4s
+# CHECK-NEXT: 1 4 1.00 bfcvtn v0.4h, v0.4s
+# CHECK-NEXT: 1 4 1.00 bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 2 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: 1 5 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: 1 5 0.25 bfdot v0.4s, v0.8h, v0.8h
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-fptoint-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-fptoint-instructions.s
index d3864abbe9b9a..8903b043975d1 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-fptoint-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-fptoint-instructions.s
@@ -12,16 +12,16 @@
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 frint32x v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint32x v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frint32x v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 frint32x v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint32z v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint32z v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frint32z v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 frint32z v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint64x v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint64x v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frint64x v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 frint64x v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint64z v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint64z v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frint64z v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 frint64z v0.4s, v0.4s
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V2UnitB
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-neon-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-neon-instructions.s
index ac25e6b79defc..2076ac1ba7581 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-neon-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-neon-instructions.s
@@ -192,112 +192,112 @@
# CHECK-NEXT: 1 2 0.25 fcmlt v8.4h, v2.4h, #0.0
# CHECK-NEXT: 1 2 0.25 fcmlt v7.2d, v16.2d, #0.0
# CHECK-NEXT: 1 3 0.50 fcvtas d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtas s12, s13
-# CHECK-NEXT: 4 6 2.00 fcvtas h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtas s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtas h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtas v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtas v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtas v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtas v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 fcvtas v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtas v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtas v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtas v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtau d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtau s12, s13
-# CHECK-NEXT: 4 6 2.00 fcvtau h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtau s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtau h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtau v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtau v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtau v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtau v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 fcvtau v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtau v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtau v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtau v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtl v0.2d, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtl v0.4s, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtl v0.4s, v0.4h
# CHECK-NEXT: 1 3 0.50 fcvtl2 v0.2d, v0.4s
-# CHECK-NEXT: 2 4 1.00 fcvtl2 v0.4s, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtl2 v0.4s, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtms d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtms s22, s13
-# CHECK-NEXT: 4 6 2.00 fcvtms h22, h13
+# CHECK-NEXT: 1 3 0.50 fcvtms s22, s13
+# CHECK-NEXT: 1 3 0.50 fcvtms h22, h13
# CHECK-NEXT: 1 3 0.50 fcvtms v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtms v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtms v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtms v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 fcvtms v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtms v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtms v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtms v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtmu d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtmu s12, s13
-# CHECK-NEXT: 4 6 2.00 fcvtmu h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtmu s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtmu h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtmu v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtmu v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtmu v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtmu v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 fcvtmu v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtmu v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtmu v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtmu v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtn v0.2s, v0.2d
-# CHECK-NEXT: 2 4 1.00 fcvtn v0.4h, v0.4s
+# CHECK-NEXT: 1 4 1.00 fcvtn v0.4h, v0.4s
# CHECK-NEXT: 1 3 0.50 fcvtn2 v0.4s, v0.2d
-# CHECK-NEXT: 2 4 1.00 fcvtn2 v0.8h, v0.4s
+# CHECK-NEXT: 1 4 1.00 fcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 3 0.50 fcvtns d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtns s22, s13
-# CHECK-NEXT: 4 6 2.00 fcvtns h22, h13
+# CHECK-NEXT: 1 3 0.50 fcvtns s22, s13
+# CHECK-NEXT: 1 3 0.50 fcvtns h22, h13
# CHECK-NEXT: 1 3 0.50 fcvtns v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtns v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtns v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtns v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 fcvtns v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtns v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtns v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtns v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtnu d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtnu s12, s13
-# CHECK-NEXT: 4 6 2.00 fcvtnu h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtnu s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtnu h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtnu v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtnu v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtnu v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtnu v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 fcvtnu v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtnu v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtnu v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtnu v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtps d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtps s22, s13
-# CHECK-NEXT: 4 6 2.00 fcvtps h22, h13
+# CHECK-NEXT: 1 3 0.50 fcvtps s22, s13
+# CHECK-NEXT: 1 3 0.50 fcvtps h22, h13
# CHECK-NEXT: 1 3 0.50 fcvtps v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtps v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtps v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtps v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 fcvtps v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtps v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtps v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtps v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtpu d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtpu s12, s13
-# CHECK-NEXT: 4 6 2.00 fcvtpu h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtpu s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtpu h12, h13
# CHECK-NEXT: 1 3 0.50 fcvtpu v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtpu v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 fcvtpu v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtpu v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 fcvtpu v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 fcvtpu v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtpu v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 fcvtpu v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fcvtxn s22, d13
# CHECK-NEXT: 1 3 0.50 fcvtxn v0.2s, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtxn2 v0.4s, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtzs d21, d12, #1
# CHECK-NEXT: 1 3 0.50 fcvtzs d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtzs s12, s13
-# CHECK-NEXT: 2 4 1.00 fcvtzs s21, s12, #1
-# CHECK-NEXT: 4 6 2.00 fcvtzs h21, h14
-# CHECK-NEXT: 4 6 2.00 fcvtzs h21, h12, #1
+# CHECK-NEXT: 1 3 0.50 fcvtzs s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtzs s21, s12, #1
+# CHECK-NEXT: 1 3 0.50 fcvtzs h21, h14
+# CHECK-NEXT: 1 3 0.50 fcvtzs h21, h12, #1
# CHECK-NEXT: 1 3 0.50 fcvtzs v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtzs v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 0.50 fcvtzs v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 fcvtzs v0.2s, v0.2s, #3
-# CHECK-NEXT: 2 4 1.00 fcvtzs v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtzs v20.4h, v24.4h, #11
-# CHECK-NEXT: 2 4 1.00 fcvtzs v0.4s, v0.4s
-# CHECK-NEXT: 2 4 1.00 fcvtzs v0.4s, v0.4s, #3
-# CHECK-NEXT: 4 6 2.00 fcvtzs v0.8h, v0.8h
-# CHECK-NEXT: 4 6 2.00 fcvtzs v18.8h, v10.8h, #7
+# CHECK-NEXT: 1 4 1.00 fcvtzs v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtzs v20.4h, v24.4h, #11
+# CHECK-NEXT: 1 4 1.00 fcvtzs v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 fcvtzs v0.4s, v0.4s, #3
+# CHECK-NEXT: 1 6 2.00 fcvtzs v0.8h, v0.8h
+# CHECK-NEXT: 1 6 2.00 fcvtzs v18.8h, v10.8h, #7
# CHECK-NEXT: 1 3 0.50 fcvtzu d21, d12, #1
# CHECK-NEXT: 1 3 0.50 fcvtzu d21, d14
-# CHECK-NEXT: 2 4 1.00 fcvtzu s12, s13
-# CHECK-NEXT: 2 4 1.00 fcvtzu s21, s12, #1
-# CHECK-NEXT: 4 6 2.00 fcvtzu h12, h13
-# CHECK-NEXT: 4 6 2.00 fcvtzu h21, h12, #1
+# CHECK-NEXT: 1 3 0.50 fcvtzu s12, s13
+# CHECK-NEXT: 1 3 0.50 fcvtzu s21, s12, #1
+# CHECK-NEXT: 1 3 0.50 fcvtzu h12, h13
+# CHECK-NEXT: 1 3 0.50 fcvtzu h21, h12, #1
# CHECK-NEXT: 1 3 0.50 fcvtzu v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fcvtzu v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 0.50 fcvtzu v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 fcvtzu v0.2s, v0.2s, #3
-# CHECK-NEXT: 2 4 1.00 fcvtzu v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 fcvtzu v19.4h, v26.4h, #9
-# CHECK-NEXT: 2 4 1.00 fcvtzu v0.4s, v0.4s
-# CHECK-NEXT: 2 4 1.00 fcvtzu v0.4s, v0.4s, #3
-# CHECK-NEXT: 4 6 2.00 fcvtzu v0.8h, v0.8h
-# CHECK-NEXT: 4 6 2.00 fcvtzu v27.8h, v6.8h, #11
+# CHECK-NEXT: 1 4 1.00 fcvtzu v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 fcvtzu v19.4h, v26.4h, #9
+# CHECK-NEXT: 1 4 1.00 fcvtzu v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 fcvtzu v0.4s, v0.4s, #3
+# CHECK-NEXT: 1 6 2.00 fcvtzu v0.8h, v0.8h
+# CHECK-NEXT: 1 6 2.00 fcvtzu v27.8h, v6.8h, #11
# CHECK-NEXT: 1 15 7.00 fdiv v0.2d, v0.2d, v0.2d
# CHECK-NEXT: 1 10 2.50 fdiv v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 7 3.50 fdiv v0.4h, v0.4h, v0.4h
@@ -414,39 +414,39 @@
# CHECK-NEXT: 1 3 0.50 frecpx s18, s10
# CHECK-NEXT: 1 3 0.50 frinta v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frinta v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frinta v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frinta v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 frinta v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frinta v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frinta v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frinta v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frinti v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frinti v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frinti v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frinti v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 frinti v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frinti v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frinti v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frinti v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintm v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintm v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintm v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintm v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 frintm v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintm v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintm v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintm v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintn v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintn v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintn v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintn v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 frintn v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintn v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintn v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintn v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintp v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintp v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintp v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintp v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 frintp v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintp v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintp v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintp v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintx v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintx v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintx v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintx v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 frintx v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintx v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintx v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintx v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frintz v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frintz v0.2s, v0.2s
-# CHECK-NEXT: 2 4 1.00 frintz v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 frintz v0.4s, v0.4s
-# CHECK-NEXT: 4 6 2.00 frintz v0.8h, v0.8h
+# CHECK-NEXT: 1 4 1.00 frintz v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 frintz v0.4s, v0.4s
+# CHECK-NEXT: 1 6 2.00 frintz v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 frsqrte h23, h26
# CHECK-NEXT: 1 3 0.50 frsqrte d21, d12
# CHECK-NEXT: 1 3 0.50 frsqrte s22, s13
@@ -751,22 +751,22 @@
# CHECK-NEXT: 1 2 0.25 saddw2 v0.2d, v0.2d, v0.4s
# CHECK-NEXT: 1 2 0.25 saddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: 1 2 0.25 saddw2 v0.8h, v0.8h, v0.16b
-# CHECK-NEXT: 4 6 2.00 scvtf h4, h8, #9
-# CHECK-NEXT: 4 6 2.00 scvtf h5, h14
+# CHECK-NEXT: 1 3 0.50 scvtf h4, h8, #9
+# CHECK-NEXT: 1 3 0.50 scvtf h5, h14
# CHECK-NEXT: 1 3 0.50 scvtf d21, d12
# CHECK-NEXT: 1 3 0.50 scvtf d21, d12, #64
-# CHECK-NEXT: 2 4 1.00 scvtf s22, s13
-# CHECK-NEXT: 2 4 1.00 scvtf s22, s13, #32
+# CHECK-NEXT: 1 3 0.50 scvtf s22, s13
+# CHECK-NEXT: 1 3 0.50 scvtf s22, s13, #32
# CHECK-NEXT: 1 3 0.50 scvtf v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 scvtf v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 0.50 scvtf v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 scvtf v0.2s, v0.2s, #3
-# CHECK-NEXT: 2 4 1.00 scvtf v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 scvtf v0.4s, v0.4s
-# CHECK-NEXT: 2 4 1.00 scvtf v0.4s, v0.4s, #3
-# CHECK-NEXT: 2 4 1.00 scvtf v25.4h, v13.4h, #8
-# CHECK-NEXT: 4 6 2.00 scvtf v0.8h, v0.8h
-# CHECK-NEXT: 4 6 2.00 scvtf v4.8h, v8.8h, #10
+# CHECK-NEXT: 1 4 1.00 scvtf v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 scvtf v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 scvtf v0.4s, v0.4s, #3
+# CHECK-NEXT: 1 4 1.00 scvtf v25.4h, v13.4h, #8
+# CHECK-NEXT: 1 6 2.00 scvtf v0.8h, v0.8h
+# CHECK-NEXT: 1 6 2.00 scvtf v4.8h, v8.8h, #10
# CHECK-NEXT: 1 3 0.25 sdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 sdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.25 sdot v0.4s, v0.16b, v0.16b
@@ -1302,23 +1302,23 @@
# CHECK-NEXT: 1 2 0.25 uaddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: 1 2 0.25 uaddw2 v0.8h, v0.8h, v0.16b
# CHECK-NEXT: 1 3 1.00 ucvtf h17, x12
-# CHECK-NEXT: 4 6 2.00 ucvtf h22, h16, #11
-# CHECK-NEXT: 4 6 2.00 ucvtf h7, h21
+# CHECK-NEXT: 1 3 0.50 ucvtf h22, h16, #11
+# CHECK-NEXT: 1 3 0.50 ucvtf h7, h21
# CHECK-NEXT: 1 3 0.50 ucvtf d21, d14
# CHECK-NEXT: 1 3 0.50 ucvtf d21, d14, #64
# CHECK-NEXT: 1 3 1.00 ucvtf s8, x0
-# CHECK-NEXT: 2 4 1.00 ucvtf s22, s13
-# CHECK-NEXT: 2 4 1.00 ucvtf s22, s13, #32
+# CHECK-NEXT: 1 3 0.50 ucvtf s22, s13
+# CHECK-NEXT: 1 3 0.50 ucvtf s22, s13, #32
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2s, v0.2s, #3
-# CHECK-NEXT: 2 4 1.00 ucvtf v0.4h, v0.4h
-# CHECK-NEXT: 2 4 1.00 ucvtf v0.4s, v0.4s
-# CHECK-NEXT: 2 4 1.00 ucvtf v0.4s, v0.4s, #3
-# CHECK-NEXT: 2 4 1.00 ucvtf v18.4h, v11.4h, #7
-# CHECK-NEXT: 4 6 2.00 ucvtf v0.8h, v0.8h
-# CHECK-NEXT: 4 6 2.00 ucvtf v22.8h, v20.8h, #10
+# CHECK-NEXT: 1 4 1.00 ucvtf v0.4h, v0.4h
+# CHECK-NEXT: 1 4 1.00 ucvtf v0.4s, v0.4s
+# CHECK-NEXT: 1 4 1.00 ucvtf v0.4s, v0.4s, #3
+# CHECK-NEXT: 1 4 1.00 ucvtf v18.4h, v11.4h, #7
+# CHECK-NEXT: 1 6 2.00 ucvtf v0.8h, v0.8h
+# CHECK-NEXT: 1 6 2.00 ucvtf v22.8h, v20.8h, #10
# CHECK-NEXT: 1 3 0.25 udot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 udot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.25 udot v0.4s, v0.16b, v0.16b
@@ -1596,7 +1596,7 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
-# CHECK-NEXT: - - - - - - - 106.00 189.00 189.00 21.17 8.17 8.17 8.17 8.17 8.17 725.75 567.75 561.75 403.75
+# CHECK-NEXT: - - - - - - - 106.00 189.00 189.00 21.17 8.17 8.17 8.17 8.17 8.17 693.75 567.75 529.75 403.75
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
@@ -1782,16 +1782,16 @@
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmlt v8.4h, v2.4h, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmlt v7.2d, v16.2d, #0.0
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtas s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtas h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtas v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtas v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtas v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtas v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtau s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtau h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtau v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtau v0.4h, v0.4h
@@ -1802,16 +1802,16 @@
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtl2 v0.2d, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtl2 v0.4s, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtms s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtms h22, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms h22, h13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtms v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtms v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtms v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtms v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtmu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtmu h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtmu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtmu v0.4h, v0.4h
@@ -1822,32 +1822,32 @@
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtn2 v0.4s, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtns s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtns h22, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns h22, h13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtns v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtns v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtns v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtns v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtnu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtnu h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtnu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtnu v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtnu v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtnu v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtps s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtps h22, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps h22, h13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtps v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtps v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtps v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtps v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtpu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtpu h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu h12, h13
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtpu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtpu v0.4h, v0.4h
@@ -1858,10 +1858,10 @@
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtxn2 v0.4s, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs d21, d12, #1
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzs s21, s12, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzs h21, h14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzs h21, h12, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs s21, s12, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs h21, h14
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs h21, h12, #1
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzs v0.2s, v0.2s
@@ -1874,10 +1874,10 @@
# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzs v18.8h, v10.8h, #7
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu d21, d12, #1
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - fcvtzu s21, s12, #1
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzu h12, h13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - fcvtzu h21, h12, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu s21, s12, #1
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu h12, h13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu h21, h12, #1
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - fcvtzu v0.2s, v0.2s
@@ -2341,12 +2341,12 @@
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 saddw2 v0.2d, v0.2d, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 saddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 saddw2 v0.8h, v0.8h, v0.16b
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - scvtf h4, h8, #9
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - scvtf h5, h14
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf h4, h8, #9
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf h5, h14
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf d21, d12
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf d21, d12, #64
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf s22, s13, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf s22, s13, #32
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf v0.2s, v0.2s
@@ -2892,13 +2892,13 @@
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 uaddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 uaddw2 v0.8h, v0.8h, v0.16b
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - ucvtf h17, x12
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - ucvtf h22, h16, #11
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.00 - 2.00 - ucvtf h7, h21
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf h22, h16, #11
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf h7, h21
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf d21, d14
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf d21, d14, #64
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - ucvtf s8, x0
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf s22, s13
-# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf s22, s13, #32
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf s22, s13, #32
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf v0.2s, v0.2s
>From 6eb90dc7dc68395109f38bb7f206cb49d6c41e48 Mon Sep 17 00:00:00 2001
From: Julien Villette <julien.villette at sipearl.com>
Date: Thu, 17 Sep 2026 16:28:37 +0200
Subject: [PATCH 2/3] [AArch64][NeoverseV1] Fix [SU]CVTFv1i32
Align it with measurement and Neoverse V2.
---
llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td | 4 ++--
.../llvm-mca/AArch64/Neoverse/V1-neon-instructions.s | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
index 8ffa1aae7c38f..acdd29f53f76f 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
@@ -1039,6 +1039,7 @@ def : InstRW<[V1Write_3c_1V02], (instregex "^FCVT[AMNPZ][SU]v2f(32|64)$",
"^[SU]CVTFv2f(32|64)$",
"^[SU]CVTFv2i(32|64)_shift$",
"^[SU]CVTFv1i16$",
+ "^[SU]CVTFv1i32$",
"^[SU]CVTFv1i64$",
"^[SU]CVTFh$",
"^[SU]CVTFs$",
@@ -1048,8 +1049,7 @@ def : InstRW<[V1Write_3c_1V02], (instregex "^FCVT[AMNPZ][SU]v2f(32|64)$",
def : InstRW<[V1Write_4c_2V02], (instregex "^FCVT[AMNPZ][SU]v4f(16|32)$",
"^FCVT[AMNPZ][SU]v4i(16|32)_shift$",
"^[SU]CVTFv4f(16|32)$",
- "^[SU]CVTFv4i(16|32)_shift$",
- "^[SU]CVTFv1i32$")>;
+ "^[SU]CVTFv4i(16|32)_shift$")>;
// ASIMD FP convert, other, Q-form F16
def : InstRW<[V1Write_6c_4V02], (instregex "^FCVT[AMNPZ][SU]v8f16$",
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s
index b5691c1a52b4b..11712dec26341 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s
@@ -755,7 +755,7 @@
# CHECK-NEXT: 1 3 0.50 scvtf h5, h14
# CHECK-NEXT: 1 3 0.50 scvtf d21, d12
# CHECK-NEXT: 1 3 0.50 scvtf d21, d12, #64
-# CHECK-NEXT: 1 4 1.00 scvtf s22, s13
+# CHECK-NEXT: 1 3 0.50 scvtf s22, s13
# CHECK-NEXT: 1 3 0.50 scvtf s22, s13, #32
# CHECK-NEXT: 1 3 0.50 scvtf v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 scvtf v0.2d, v0.2d, #3
@@ -1307,7 +1307,7 @@
# CHECK-NEXT: 1 3 0.50 ucvtf d21, d14
# CHECK-NEXT: 1 3 0.50 ucvtf d21, d14, #64
# CHECK-NEXT: 1 3 1.00 ucvtf s8, x0
-# CHECK-NEXT: 1 4 1.00 ucvtf s22, s13
+# CHECK-NEXT: 1 3 0.50 ucvtf s22, s13
# CHECK-NEXT: 1 3 0.50 ucvtf s22, s13, #32
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 ucvtf v0.2d, v0.2d, #3
@@ -1594,7 +1594,7 @@
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
-# CHECK-NEXT: - - - - - - - 101.33 187.33 187.33 25.25 12.25 12.25 12.25 619.25 504.75 510.25 395.75
+# CHECK-NEXT: - - - - - - - 101.33 187.33 187.33 25.25 12.25 12.25 12.25 618.25 504.75 509.25 395.75
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
@@ -2343,7 +2343,7 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf h5, h14
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf d21, d12
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf d21, d12, #64
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - scvtf s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf s22, s13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf s22, s13, #32
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - scvtf v0.2d, v0.2d, #3
@@ -2895,7 +2895,7 @@
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf d21, d14
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf d21, d14, #64
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - ucvtf s8, x0
-# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 - 1.00 - ucvtf s22, s13
+# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf s22, s13
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf s22, s13, #32
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - ucvtf v0.2d, v0.2d, #3
>From 3b6f599f0bbb0d60d7256a996ac9446ddf979952 Mon Sep 17 00:00:00 2001
From: Julien Villette <julien.villette at sipearl.com>
Date: Wed, 23 Sep 2026 16:52:07 +0200
Subject: [PATCH 3/3] [AArch64][Neoverse V1/V2] Adding comment on H, S and D
forms of SCVTFh, FCVTZSs, ...
---
llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td | 9 +++------
llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td | 9 +++------
2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
index acdd29f53f76f..1c52eb9ebe9e4 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
@@ -1028,22 +1028,19 @@ def : InstRW<[V1Write_3c_1V02], (instregex "^FCVTNv[24]i32$",
"^FCVTXN(v[24]f32|v1i64)$")>;
// ASIMD FP convert, other, D-form F32 and Q-form F64
+// Includes the scalar H, S and D forms (SCVTFh, FCVTZSs, ...)
def : InstRW<[V1Write_3c_1V02], (instregex "^FCVT[AMNPZ][SU]v2f(32|64)$",
"^FCVT[AMNPZ][SU]v1f16$",
"^FCVT[AMNPZ][SU]v2i(32|64)_shift$",
"^FCVT[AMNPZ][SU]v1i64$",
"^FCVT[AMNPZ][SU]v1i32$",
- "^FCVTZ[SU]h$",
- "^FCVTZ[SU]s$",
- "^FCVTZ[SU]d$",
"^[SU]CVTFv2f(32|64)$",
"^[SU]CVTFv2i(32|64)_shift$",
"^[SU]CVTFv1i16$",
"^[SU]CVTFv1i32$",
"^[SU]CVTFv1i64$",
- "^[SU]CVTFh$",
- "^[SU]CVTFs$",
- "^[SU]CVTFd$")>;
+ "^FCVTZ[SU][hsd]$",
+ "^[SU]CVTF[hsd]$")>;
// ASIMD FP convert, other, D-form F16 and Q-form F32
def : InstRW<[V1Write_4c_2V02], (instregex "^FCVT[AMNPZ][SU]v4f(16|32)$",
diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
index 83ab5b20780f0..2f032674a6ba9 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
@@ -1583,22 +1583,19 @@ def : InstRW<[V2Write_3c_1V02], (instregex "^FCVTN(v2|v4)i32",
"^FCVTXN(v2|v4)f32")>;
// ASIMD FP convert, other, D-form F32 and Q-form F64
+// Includes the scalar H, S and D forms (SCVTFh, FCVTZSs, ...)
def : InstRW<[V2Write_3c_1V02], (instregex "^FCVT[AMNPZ][SU]v2f(32|64)$",
"^FCVT[AMNPZ][SU]v2i(32|64)_shift$",
"^FCVT[AMNPZ][SU]v1i32$",
"^FCVT[AMNPZ][SU]v1i64$",
"^FCVT[AMNPZ][SU]v1f16$",
- "^FCVTZ[SU]h$",
- "^FCVTZ[SU]s$",
- "^FCVTZ[SU]d$",
"^[SU]CVTFv2f(32|64)$",
"^[SU]CVTFv2i(32|64)_shift$",
"^[SU]CVTFv1i16$",
"^[SU]CVTFv1i32$",
"^[SU]CVTFv1i64$",
- "^[SU]CVTFh$",
- "^[SU]CVTFs$",
- "^[SU]CVTFd$")>;
+ "^FCVTZ[SU][hsd]$",
+ "^[SU]CVTF[hsd]$")>;
// ASIMD FP convert, other, D-form F16 and Q-form F32
def : InstRW<[V2Write_4c_2V02_1uop], (instregex "^FCVT[AMNPZ][SU]v4f(16|32)$",
More information about the llvm-commits
mailing list