[llvm] [AArch64] Fix metrics of ASIMD instructions in Neoverse N3 (PR #169790)
Asher Dobrescu via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 28 03:03:01 PST 2025
https://github.com/Asher8118 updated https://github.com/llvm/llvm-project/pull/169790
>From effe3123093f41c050a728d859dbf3fd6522c120 Mon Sep 17 00:00:00 2001
From: Ash Dobrescu <ash.dobrescu at arm.com>
Date: Wed, 26 Nov 2025 16:24:06 +0000
Subject: [PATCH 1/2] [AArch64] Fix scalar instructions in Neoverse N3
---
.../Target/AArch64/AArch64SchedNeoverseN3.td | 38 +-
.../AArch64/Neoverse/N3-neon-instructions.s | 342 +++++++++---------
2 files changed, 190 insertions(+), 190 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
index c73f60a1a7741..beeadd4403605 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
@@ -1073,7 +1073,7 @@ def : SchedAlias<WriteVq, N3Write_2c_1V>;
// ASIMD shift accumulate
def : InstRW<[N3Wr_ADA, N3Rd_ADA], (instregex "^[SU]ABAL?v",
"^[SU]ADALPv",
- "^[SU]R?SRAv")>;
+ "^[SU]R?SRA(v|d)")>;
// ASIMD arith, reduce, 4H/4S
def : InstRW<[N3Write_3c_1V1], (instregex "^[SU]?ADDL?Vv4i(16|32)v$")>;
@@ -1114,30 +1114,30 @@ def : InstRW<[N3Wr_VMAH, N3Rd_VMAH], (instregex "^SQRDMLAHv", "^SQRDMLSHv")>;
def : InstRW<[N3Wr_VMAL, N3Rd_VMAL], (instregex "^[SU]MLALv", "^[SU]MLSLv")>;
// ASIMD multiply accumulate saturating long
-def : InstRW<[N3Wr_VMASL, N3Rd_VMASL], (instregex "^SQDMLALv", "^SQDMLSLv")>;
+def : InstRW<[N3Wr_VMASL, N3Rd_VMASL], (instregex "^SQDMLAL(v|i16|i32)", "^SQDMLSL(v|i16|i32)")>;
// ASIMD multiply/multiply long (8x8) polynomial, D-form
// ASIMD multiply/multiply long (8x8) polynomial, Q-form
def : InstRW<[N3Write_2c_1V0], (instregex "^PMULL?(v8i8|v16i8)$")>;
// ASIMD multiply long
-def : InstRW<[N3Write_4c_1V0], (instregex "^[SU]MULLv", "^SQDMULLv")>;
+def : InstRW<[N3Write_4c_1V0], (instregex "^[SU]MULLv", "^SQDMULL(v|i16|i32)")>;
// ASIMD shift by immed, basic
-def : InstRW<[N3Write_2c_1V1], (instregex "^SHLv", "^SHLLv", "^SHRNv",
- "^SSHLLv", "^SSHRv", "^USHLLv",
- "^USHRv")>;
+def : InstRW<[N3Write_2c_1V1], (instregex "^SHL(v|d)", "^SHLLv", "^SHRNv",
+ "^SSHLLv", "^SSHR(v|d)", "^USHLLv",
+ "^USHR(v|d)")>;
// ASIMD shift by immed and insert, basic
-def : InstRW<[N3Write_2c_1V1], (instregex "^SLIv", "^SRIv")>;
+def : InstRW<[N3Write_2c_1V1], (instregex "^SLI(v|d)", "^SRI(v|d)")>;
// ASIMD shift by immed, complex
def : InstRW<[N3Write_4c_1V1],
- (instregex "^RSHRNv", "^SQRSHRNv", "^SQRSHRUNv",
+ (instregex "^RSHRNv", "^SQRSHRN(v|b|h|s)", "^SQRSHRUN(v|b|h|s)",
"^(SQSHLU?|UQSHL)[bhsd]$",
"^(SQSHLU?|UQSHL)(v8i8|v16i8|v4i16|v8i16|v2i32|v4i32|v2i64)_shift$",
- "^SQSHRNv", "^SQSHRUNv", "^SRSHRv", "^UQRSHRNv",
- "^UQSHRNv", "^URSHRv")>;
+ "^SQSHRN(v|b|h|s)", "^SQSHRUN(v|b|h|s)", "^SRSHR(v|d)",
+ "^UQRSHRN(v|b|h|s)", "^UQSHRN(v|b|h|s)","^URSHR(v|d)")>;
// ASIMD shift by register, basic
def : InstRW<[N3Write_2c_1V1], (instregex "^[SU]SHLv")>;
@@ -1173,16 +1173,16 @@ def : InstRW<[N3Write_3c_1V0], (instregex "^FCVTL(v2|v4)i32")>;
def : InstRW<[N3Write_4c_2V0], (instregex "^FCVTN(v4|v8)i16")>;
// ASIMD FP convert, narrow (F64 to F32)
-def : InstRW<[N3Write_3c_1V0], (instregex "^FCVTN(v2|v4)i32",
+def : InstRW<[N3Write_3c_1V0], (instregex "^FCVTN(v2|v4)i32", "^FCVTXNv1i64",
"^FCVTXN(v2|v4)f32")>;
// ASIMD FP convert, other, D-form F32 and Q-form F64
-def : InstRW<[N3Write_3c_1V0], (instregex "^[FSU]CVT[AMNPZ][SU]v2f(32|64)$",
- "^[SU]CVTFv2f(32|64)$")>;
+def : InstRW<[N3Write_3c_1V0], (instregex "^[FSU]CVT[AMNPZ][SU](v2f(32|64)|s|d|v1i32|v1i64|v2i32_shift|v2i64_shift)$",
+ "^[SU]CVTF(v2f(32|64)|s|d|v1i32|v1i64|v2i32_shift|v2i64_shift)$")>;
// ASIMD FP convert, other, D-form F16 and Q-form F32
-def : InstRW<[N3Write_4c_2V0], (instregex "^[FSU]CVT[AMNPZ][SU]v4f(16|32)$",
- "^[SU]CVTFv4f(16|32)$")>;
+def : InstRW<[N3Write_4c_2V0], (instregex "^[FSU]CVT[AMNPZ][SU](v4f(16|32)|v4i(16|32)_shift)$",
+ "^[SU]CVTF(v4f(16|32)|v4i(16|32)_shift)$")>;
// ASIMD FP convert, other, Q-form F16
def : InstRW<[N3Write_6c_4V0], (instregex "^[FSU]CVT[AMNPZ][SU]v8f16$",
@@ -1217,7 +1217,7 @@ def : InstRW<[N3Write_4c_2V], (instregex "^(FMAX|FMIN)(NM)?Vv4(i16|i32)v$")>;
def : InstRW<[N3Write_6c_3V], (instregex "^(FMAX|FMIN)(NM)?Vv8i16v$")>;
// ASIMD FP multiply
-def : InstRW<[N3Wr_FPM], (instregex "^FMULv", "^FMULXv")>;
+def : InstRW<[N3Wr_FPM], (instregex "^FMULv", "^FMULX(v|32|64)")>;
// ASIMD FP multiply accumulate
def : InstRW<[N3Wr_FPMA, N3Rd_FPMA], (instregex "^FMLAv", "^FMLSv")>;
@@ -1305,9 +1305,9 @@ def : InstRW<[N3Write_4c_2V0], (instrs URECPEv4i32, URSQRTEv4i32)>;
// ASIMD reciprocal and square root estimate, D-form F32 and scalar forms
def : InstRW<[N3Write_3c_1V0], (instrs FRECPEv1f16, FRECPEv1i32,
- FRECPEv1i64, FRECPEv2f32,
+ FRECPEv1i64, FRECPEv2f32, FRECPEv2f64,
FRSQRTEv1f16, FRSQRTEv1i32,
- FRSQRTEv1i64, FRSQRTEv2f32)>;
+ FRSQRTEv1i64, FRSQRTEv2f32, FRSQRTEv2f64)>;
// ASIMD reciprocal and square root estimate, D-form F16 and Q-form F32
def : InstRW<[N3Write_4c_2V0], (instrs FRECPEv4f16, FRECPEv4f32,
@@ -1320,7 +1320,7 @@ def : InstRW<[N3Write_6c_4V0], (instrs FRECPEv8f16, FRSQRTEv8f16)>;
def : InstRW<[N3Write_3c_1V0], (instregex "^FRECPXv")>;
// ASIMD reciprocal step
-def : InstRW<[N3Write_4c_1V], (instregex "^FRECPSv", "^FRSQRTSv")>;
+def : InstRW<[N3Write_4c_1V], (instregex "^FRECPS(v|32|64)", "^FRSQRTS(v|32|64)")>;
// ASIMD table lookup, 3 table regs
def : InstRW<[N3Write_4c_2V], (instrs TBLv8i8Three, TBLv16i8Three)>;
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-neon-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-neon-instructions.s
index dddaca34f68dd..da8c0c5154cdc 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-neon-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-neon-instructions.s
@@ -1189,15 +1189,15 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 fcmlt d20, d21, #0.0
# CHECK-NEXT: 1 2 0.50 fcmlt s10, s11, #0.0
# CHECK-NEXT: 1 2 0.50 fcmlt v0.4s, v0.4s, #0.0
-# CHECK-NEXT: 1 2 0.50 fcvtas d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtas s12, s13
+# CHECK-NEXT: 1 3 1.00 fcvtas d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtas s12, s13
# CHECK-NEXT: 1 3 1.00 fcvtas v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtas v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 fcvtas v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 fcvtas v0.4s, v0.4s
# CHECK-NEXT: 4 6 4.00 fcvtas v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 fcvtau d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtau s12, s13
+# CHECK-NEXT: 1 3 1.00 fcvtau d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtau s12, s13
# CHECK-NEXT: 1 3 1.00 fcvtau v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtau v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 fcvtau v0.4h, v0.4h
@@ -1207,15 +1207,15 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 2 4 2.00 fcvtl v0.4s, v0.4h
# CHECK-NEXT: 1 3 1.00 fcvtl2 v0.2d, v0.4s
# CHECK-NEXT: 2 4 2.00 fcvtl2 v0.4s, v0.8h
-# CHECK-NEXT: 1 2 0.50 fcvtms d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtms s22, s13
+# CHECK-NEXT: 1 3 1.00 fcvtms d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtms s22, s13
# CHECK-NEXT: 1 3 1.00 fcvtms v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtms v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 fcvtms v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 fcvtms v0.4s, v0.4s
# CHECK-NEXT: 4 6 4.00 fcvtms v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 fcvtmu d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtmu s12, s13
+# CHECK-NEXT: 1 3 1.00 fcvtmu d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtmu s12, s13
# CHECK-NEXT: 1 3 1.00 fcvtmu v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtmu v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 fcvtmu v0.4h, v0.4h
@@ -1225,60 +1225,60 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 2 4 2.00 fcvtn v0.4h, v0.4s
# CHECK-NEXT: 1 3 1.00 fcvtn2 v0.4s, v0.2d
# CHECK-NEXT: 2 4 2.00 fcvtn2 v0.8h, v0.4s
-# CHECK-NEXT: 1 2 0.50 fcvtns d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtns s22, s13
+# CHECK-NEXT: 1 3 1.00 fcvtns d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtns s22, s13
# CHECK-NEXT: 1 3 1.00 fcvtns v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtns v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 fcvtns v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 fcvtns v0.4s, v0.4s
# CHECK-NEXT: 4 6 4.00 fcvtns v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 fcvtnu d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtnu s12, s13
+# CHECK-NEXT: 1 3 1.00 fcvtnu d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtnu s12, s13
# CHECK-NEXT: 1 3 1.00 fcvtnu v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtnu v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 fcvtnu v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 fcvtnu v0.4s, v0.4s
# CHECK-NEXT: 4 6 4.00 fcvtnu v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 fcvtps d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtps s22, s13
+# CHECK-NEXT: 1 3 1.00 fcvtps d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtps s22, s13
# CHECK-NEXT: 1 3 1.00 fcvtps v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtps v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 fcvtps v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 fcvtps v0.4s, v0.4s
# CHECK-NEXT: 4 6 4.00 fcvtps v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 fcvtpu d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtpu s12, s13
+# CHECK-NEXT: 1 3 1.00 fcvtpu d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtpu s12, s13
# CHECK-NEXT: 1 3 1.00 fcvtpu v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtpu v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 fcvtpu v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 fcvtpu v0.4s, v0.4s
# CHECK-NEXT: 4 6 4.00 fcvtpu v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 fcvtxn s22, d13
+# CHECK-NEXT: 1 3 1.00 fcvtxn s22, d13
# CHECK-NEXT: 1 3 1.00 fcvtxn v0.2s, v0.2d
# CHECK-NEXT: 1 3 1.00 fcvtxn2 v0.4s, v0.2d
-# CHECK-NEXT: 1 2 0.50 fcvtzs d21, d12, #1
-# CHECK-NEXT: 1 2 0.50 fcvtzs d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtzs s12, s13
-# CHECK-NEXT: 1 2 0.50 fcvtzs s21, s12, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzs d21, d12, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzs d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtzs s12, s13
+# CHECK-NEXT: 1 3 1.00 fcvtzs s21, s12, #1
# CHECK-NEXT: 1 3 1.00 fcvtzs v0.2d, v0.2d
-# CHECK-NEXT: 1 2 0.50 fcvtzs v0.2d, v0.2d, #3
+# CHECK-NEXT: 1 3 1.00 fcvtzs v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 1.00 fcvtzs v0.2s, v0.2s
-# CHECK-NEXT: 1 2 0.50 fcvtzs v0.2s, v0.2s, #3
+# CHECK-NEXT: 1 3 1.00 fcvtzs v0.2s, v0.2s, #3
# CHECK-NEXT: 2 4 2.00 fcvtzs v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 fcvtzs v0.4s, v0.4s
-# CHECK-NEXT: 1 2 0.50 fcvtzs v0.4s, v0.4s, #3
+# CHECK-NEXT: 2 4 2.00 fcvtzs v0.4s, v0.4s, #3
# CHECK-NEXT: 4 6 4.00 fcvtzs v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 fcvtzu d21, d12, #1
-# CHECK-NEXT: 1 2 0.50 fcvtzu d21, d14
-# CHECK-NEXT: 1 2 0.50 fcvtzu s12, s13
-# CHECK-NEXT: 1 2 0.50 fcvtzu s21, s12, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzu d21, d12, #1
+# CHECK-NEXT: 1 3 1.00 fcvtzu d21, d14
+# CHECK-NEXT: 1 3 1.00 fcvtzu s12, s13
+# CHECK-NEXT: 1 3 1.00 fcvtzu s21, s12, #1
# CHECK-NEXT: 1 3 1.00 fcvtzu v0.2d, v0.2d
-# CHECK-NEXT: 1 2 0.50 fcvtzu v0.2d, v0.2d, #3
+# CHECK-NEXT: 1 3 1.00 fcvtzu v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 1.00 fcvtzu v0.2s, v0.2s
-# CHECK-NEXT: 1 2 0.50 fcvtzu v0.2s, v0.2s, #3
+# CHECK-NEXT: 1 3 1.00 fcvtzu v0.2s, v0.2s, #3
# CHECK-NEXT: 2 4 2.00 fcvtzu v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 fcvtzu v0.4s, v0.4s
-# CHECK-NEXT: 1 2 0.50 fcvtzu v0.4s, v0.4s, #3
+# CHECK-NEXT: 2 4 2.00 fcvtzu v0.4s, v0.4s, #3
# CHECK-NEXT: 4 6 4.00 fcvtzu v0.8h, v0.8h
# CHECK-NEXT: 2 8 2.00 fdiv v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 2 0.50 fmax v0.2d, v0.2d, v0.2d
@@ -1318,8 +1318,8 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 3 0.50 fmul s0, s1, v0.s[3]
# CHECK-NEXT: 1 3 0.50 fmul v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 3 0.50 fmulx d0, d4, v0.d[1]
-# CHECK-NEXT: 1 2 0.50 fmulx d23, d11, d1
-# CHECK-NEXT: 1 2 0.50 fmulx s20, s22, s15
+# CHECK-NEXT: 1 3 0.50 fmulx d23, d11, d1
+# CHECK-NEXT: 1 3 0.50 fmulx s20, s22, s15
# CHECK-NEXT: 1 3 0.50 fmulx s3, s5, v0.s[3]
# CHECK-NEXT: 1 3 0.50 fmulx v0.2d, v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 fmulx v0.2s, v0.2s, v0.2s
@@ -1331,14 +1331,14 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 fneg v0.8h, v0.8h
# CHECK-NEXT: 1 3 1.00 frecpe d13, d13
# CHECK-NEXT: 1 3 1.00 frecpe s19, s14
-# CHECK-NEXT: 1 2 0.50 frecpe v0.2d, v0.2d
+# CHECK-NEXT: 1 3 1.00 frecpe v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frecpe v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frecpe v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 frecpe v0.4s, v0.4s
# CHECK-NEXT: 4 6 4.00 frecpe v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.50 frecps v0.4s, v0.4s, v0.4s
-# CHECK-NEXT: 1 2 0.50 frecps d22, d30, d21
-# CHECK-NEXT: 1 2 0.50 frecps s21, s16, s13
+# CHECK-NEXT: 1 4 0.50 frecps d22, d30, d21
+# CHECK-NEXT: 1 4 0.50 frecps s21, s16, s13
# CHECK-NEXT: 1 3 1.00 frecpx d16, d19
# CHECK-NEXT: 1 3 1.00 frecpx s18, s10
# CHECK-NEXT: 1 3 1.00 frinta v0.2d, v0.2d
@@ -1378,13 +1378,13 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 4 6 4.00 frintz v0.8h, v0.8h
# CHECK-NEXT: 1 3 1.00 frsqrte d21, d12
# CHECK-NEXT: 1 3 1.00 frsqrte s22, s13
-# CHECK-NEXT: 1 2 0.50 frsqrte v0.2d, v0.2d
+# CHECK-NEXT: 1 3 1.00 frsqrte v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frsqrte v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frsqrte v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 frsqrte v0.4s, v0.4s
# CHECK-NEXT: 4 6 4.00 frsqrte v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 frsqrts d8, d22, d18
-# CHECK-NEXT: 1 2 0.50 frsqrts s21, s5, s12
+# CHECK-NEXT: 1 4 0.50 frsqrts d8, d22, d18
+# CHECK-NEXT: 1 4 0.50 frsqrts s21, s5, s12
# CHECK-NEXT: 1 4 0.50 frsqrts v0.2d, v0.2d, v0.2d
# CHECK-NEXT: 2 13 2.00 fsqrt v0.2d, v0.2d
# CHECK-NEXT: 2 8 2.00 fsqrt v0.2s, v0.2s
@@ -1543,20 +1543,20 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 saddw2 v0.2d, v0.2d, v0.4s
# CHECK-NEXT: 1 2 0.50 saddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: 1 2 0.50 saddw2 v0.8h, v0.8h, v0.16b
-# CHECK-NEXT: 1 2 0.50 scvtf d21, d12
-# CHECK-NEXT: 1 2 0.50 scvtf d21, d12, #64
-# CHECK-NEXT: 1 2 0.50 scvtf s22, s13
-# CHECK-NEXT: 1 2 0.50 scvtf s22, s13, #32
+# CHECK-NEXT: 1 3 1.00 scvtf d21, d12
+# CHECK-NEXT: 1 3 1.00 scvtf d21, d12, #64
+# CHECK-NEXT: 1 3 1.00 scvtf s22, s13
+# CHECK-NEXT: 1 3 1.00 scvtf s22, s13, #32
# CHECK-NEXT: 1 3 1.00 scvtf v0.2d, v0.2d
-# CHECK-NEXT: 1 2 0.50 scvtf v0.2d, v0.2d, #3
+# CHECK-NEXT: 1 3 1.00 scvtf v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 1.00 scvtf v0.2s, v0.2s
-# CHECK-NEXT: 1 2 0.50 scvtf v0.2s, v0.2s, #3
+# CHECK-NEXT: 1 3 1.00 scvtf v0.2s, v0.2s, #3
# CHECK-NEXT: 2 4 2.00 scvtf v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 scvtf v0.4s, v0.4s
-# CHECK-NEXT: 1 2 0.50 scvtf v0.4s, v0.4s, #3
+# CHECK-NEXT: 2 4 2.00 scvtf v0.4s, v0.4s, #3
# CHECK-NEXT: 4 6 4.00 scvtf v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 shadd v0.8b, v0.8b, v0.8b
-# CHECK-NEXT: 1 2 0.50 shl d7, d10, #12
+# CHECK-NEXT: 1 2 1.00 shl d7, d10, #12
# CHECK-NEXT: 1 2 1.00 shl v0.16b, v0.16b, #3
# CHECK-NEXT: 1 2 1.00 shl v0.2d, v0.2d, #3
# CHECK-NEXT: 1 2 1.00 shl v0.4h, v0.4h, #3
@@ -1581,7 +1581,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 1.00 shrn2 v0.8h, v0.4s, #3
# CHECK-NEXT: 1 2 0.50 shsub v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 2 0.50 shsub v0.4h, v0.4h, v0.4h
-# CHECK-NEXT: 1 2 0.50 sli d10, d14, #12
+# CHECK-NEXT: 1 2 1.00 sli d10, d14, #12
# CHECK-NEXT: 1 2 1.00 sli v0.16b, v0.16b, #3
# CHECK-NEXT: 1 2 1.00 sli v0.2d, v0.2d, #3
# CHECK-NEXT: 1 2 1.00 sli v0.2s, v0.2s, #3
@@ -1633,18 +1633,18 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 sqadd b20, b11, b15
# CHECK-NEXT: 1 2 0.50 sqadd v0.16b, v0.16b, v0.16b
# CHECK-NEXT: 1 2 0.50 sqadd v0.2s, v0.2s, v0.2s
-# CHECK-NEXT: 1 2 0.50 sqdmlal d19, s24, s12
+# CHECK-NEXT: 1 4 1.00 sqdmlal d19, s24, s12
# CHECK-NEXT: 1 4 1.00 sqdmlal d8, s9, v0.s[1]
# CHECK-NEXT: 1 4 1.00 sqdmlal s0, h0, v0.h[3]
-# CHECK-NEXT: 1 2 0.50 sqdmlal s17, h27, h12
+# CHECK-NEXT: 1 4 1.00 sqdmlal s17, h27, h12
# CHECK-NEXT: 1 4 1.00 sqdmlal v0.2d, v0.2s, v0.2s
# CHECK-NEXT: 1 4 1.00 sqdmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 1.00 sqdmlal2 v0.2d, v0.4s, v0.4s
# CHECK-NEXT: 1 4 1.00 sqdmlal2 v0.4s, v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 sqdmlsl d12, s23, s13
+# CHECK-NEXT: 1 4 1.00 sqdmlsl d12, s23, s13
# CHECK-NEXT: 1 4 1.00 sqdmlsl d8, s9, v0.s[1]
# CHECK-NEXT: 1 4 1.00 sqdmlsl s0, h0, v0.h[3]
-# CHECK-NEXT: 1 2 0.50 sqdmlsl s14, h12, h25
+# CHECK-NEXT: 1 4 1.00 sqdmlsl s14, h12, h25
# CHECK-NEXT: 1 4 1.00 sqdmlsl v0.2d, v0.2s, v0.2s
# CHECK-NEXT: 1 4 1.00 sqdmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 1.00 sqdmlsl2 v0.2d, v0.4s, v0.4s
@@ -1656,9 +1656,9 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 sqdmulh v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 4 1.00 sqdmulh v0.4s, v0.4s, v0.4s
# CHECK-NEXT: 1 4 1.00 sqdmull d1, s1, v0.s[1]
-# CHECK-NEXT: 1 2 0.50 sqdmull d15, s22, s12
+# CHECK-NEXT: 1 4 1.00 sqdmull d15, s22, s12
# CHECK-NEXT: 1 4 1.00 sqdmull s1, h1, v0.h[3]
-# CHECK-NEXT: 1 2 0.50 sqdmull s12, h22, h12
+# CHECK-NEXT: 1 4 1.00 sqdmull s12, h22, h12
# CHECK-NEXT: 1 4 1.00 sqdmull v0.2d, v0.2s, v0.2s
# CHECK-NEXT: 1 4 1.00 sqdmull v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 1.00 sqdmull2 v0.2d, v0.4s, v0.4s
@@ -1685,18 +1685,18 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 sqrshl v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 4 1.00 sqrshl v0.4h, v0.4h, v0.4h
# CHECK-NEXT: 1 4 1.00 sqrshl v0.8b, v0.8b, v0.8b
-# CHECK-NEXT: 1 2 0.50 sqrshrn b10, h13, #2
-# CHECK-NEXT: 1 2 0.50 sqrshrn h15, s10, #6
-# CHECK-NEXT: 1 2 0.50 sqrshrn s15, d12, #9
+# CHECK-NEXT: 1 4 1.00 sqrshrn b10, h13, #2
+# CHECK-NEXT: 1 4 1.00 sqrshrn h15, s10, #6
+# CHECK-NEXT: 1 4 1.00 sqrshrn s15, d12, #9
# CHECK-NEXT: 1 4 1.00 sqrshrn v0.2s, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 sqrshrn v0.4h, v0.4s, #3
# CHECK-NEXT: 1 4 1.00 sqrshrn v0.8b, v0.8h, #3
# CHECK-NEXT: 1 4 1.00 sqrshrn2 v0.16b, v0.8h, #3
# CHECK-NEXT: 1 4 1.00 sqrshrn2 v0.4s, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 sqrshrn2 v0.8h, v0.4s, #3
-# CHECK-NEXT: 1 2 0.50 sqrshrun b17, h10, #6
-# CHECK-NEXT: 1 2 0.50 sqrshrun h10, s13, #15
-# CHECK-NEXT: 1 2 0.50 sqrshrun s22, d16, #31
+# CHECK-NEXT: 1 4 1.00 sqrshrun b17, h10, #6
+# CHECK-NEXT: 1 4 1.00 sqrshrun h10, s13, #15
+# CHECK-NEXT: 1 4 1.00 sqrshrun s22, d16, #31
# CHECK-NEXT: 1 4 1.00 sqrshrun v0.2s, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 sqrshrun v0.4h, v0.4s, #3
# CHECK-NEXT: 1 4 1.00 sqrshrun v0.8b, v0.8h, #3
@@ -1730,18 +1730,18 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 sqshlu v0.4s, v0.4s, #3
# CHECK-NEXT: 1 4 1.00 sqshlu v0.8b, v0.8b, #3
# CHECK-NEXT: 1 4 1.00 sqshlu v0.8h, v0.8h, #3
-# CHECK-NEXT: 1 2 0.50 sqshrn b10, h15, #5
-# CHECK-NEXT: 1 2 0.50 sqshrn h17, s10, #4
-# CHECK-NEXT: 1 2 0.50 sqshrn s18, d10, #31
+# CHECK-NEXT: 1 4 1.00 sqshrn b10, h15, #5
+# CHECK-NEXT: 1 4 1.00 sqshrn h17, s10, #4
+# CHECK-NEXT: 1 4 1.00 sqshrn s18, d10, #31
# CHECK-NEXT: 1 4 1.00 sqshrn v0.2s, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 sqshrn v0.4h, v0.4s, #3
# CHECK-NEXT: 1 4 1.00 sqshrn v0.8b, v0.8h, #3
# CHECK-NEXT: 1 4 1.00 sqshrn2 v0.16b, v0.8h, #3
# CHECK-NEXT: 1 4 1.00 sqshrn2 v0.4s, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 sqshrn2 v0.8h, v0.4s, #3
-# CHECK-NEXT: 1 2 0.50 sqshrun b15, h10, #7
-# CHECK-NEXT: 1 2 0.50 sqshrun h20, s14, #3
-# CHECK-NEXT: 1 2 0.50 sqshrun s10, d15, #15
+# CHECK-NEXT: 1 4 1.00 sqshrun b15, h10, #7
+# CHECK-NEXT: 1 4 1.00 sqshrun h20, s14, #3
+# CHECK-NEXT: 1 4 1.00 sqshrun s10, d15, #15
# CHECK-NEXT: 1 4 1.00 sqshrun v0.2s, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 sqshrun v0.4h, v0.4s, #3
# CHECK-NEXT: 1 4 1.00 sqshrun v0.8b, v0.8h, #3
@@ -1773,7 +1773,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 srhadd v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 2 0.50 srhadd v0.4h, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.50 srhadd v0.8b, v0.8b, v0.8b
-# CHECK-NEXT: 1 2 0.50 sri d10, d12, #14
+# CHECK-NEXT: 1 2 1.00 sri d10, d12, #14
# CHECK-NEXT: 1 2 1.00 sri v0.16b, v0.16b, #3
# CHECK-NEXT: 1 2 1.00 sri v0.2d, v0.2d, #3
# CHECK-NEXT: 1 2 1.00 sri v0.2s, v0.2s, #3
@@ -1785,7 +1785,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 srshl v0.2s, v0.2s, v0.2s
# CHECK-NEXT: 1 4 1.00 srshl v0.4h, v0.4h, v0.4h
# CHECK-NEXT: 1 4 1.00 srshl v0.8b, v0.8b, v0.8b
-# CHECK-NEXT: 1 2 0.50 srshr d19, d18, #7
+# CHECK-NEXT: 1 4 1.00 srshr d19, d18, #7
# CHECK-NEXT: 1 4 1.00 srshr v0.16b, v0.16b, #3
# CHECK-NEXT: 1 4 1.00 srshr v0.2d, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 srshr v0.2s, v0.2s, #3
@@ -1793,7 +1793,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 srshr v0.4s, v0.4s, #3
# CHECK-NEXT: 1 4 1.00 srshr v0.8b, v0.8b, #3
# CHECK-NEXT: 1 4 1.00 srshr v0.8h, v0.8h, #3
-# CHECK-NEXT: 1 2 0.50 srsra d15, d11, #19
+# CHECK-NEXT: 1 4 1.00 srsra d15, d11, #19
# CHECK-NEXT: 1 4 1.00 srsra v0.16b, v0.16b, #3
# CHECK-NEXT: 1 4 1.00 srsra v0.2d, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 srsra v0.2s, v0.2s, #3
@@ -1808,7 +1808,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 1.00 sshl v0.8b, v0.8b, v0.8b
# CHECK-NEXT: 1 2 1.00 sshll v0.2d, v0.2s, #3
# CHECK-NEXT: 1 2 1.00 sshll2 v0.4s, v0.8h, #3
-# CHECK-NEXT: 1 2 0.50 sshr d15, d16, #12
+# CHECK-NEXT: 1 2 1.00 sshr d15, d16, #12
# CHECK-NEXT: 1 2 1.00 sshr v0.16b, v0.16b, #3
# CHECK-NEXT: 1 2 1.00 sshr v0.2d, v0.2d, #3
# CHECK-NEXT: 1 2 1.00 sshr v0.2s, v0.2s, #3
@@ -1816,7 +1816,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 1.00 sshr v0.4s, v0.4s, #3
# CHECK-NEXT: 1 2 1.00 sshr v0.8b, v0.8b, #3
# CHECK-NEXT: 1 2 1.00 sshr v0.8h, v0.8h, #3
-# CHECK-NEXT: 1 2 0.50 ssra d18, d12, #21
+# CHECK-NEXT: 1 4 1.00 ssra d18, d12, #21
# CHECK-NEXT: 1 4 1.00 ssra v0.16b, v0.16b, #3
# CHECK-NEXT: 1 4 1.00 ssra v0.2d, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 ssra v0.2s, v0.2s, #3
@@ -1939,17 +1939,17 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 uaddw2 v0.2d, v0.2d, v0.4s
# CHECK-NEXT: 1 2 0.50 uaddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: 1 2 0.50 uaddw2 v0.8h, v0.8h, v0.16b
-# CHECK-NEXT: 1 2 0.50 ucvtf d21, d14
-# CHECK-NEXT: 1 2 0.50 ucvtf d21, d14, #64
-# CHECK-NEXT: 1 2 0.50 ucvtf s22, s13
-# CHECK-NEXT: 1 2 0.50 ucvtf s22, s13, #32
+# CHECK-NEXT: 1 3 1.00 ucvtf d21, d14
+# CHECK-NEXT: 1 3 1.00 ucvtf d21, d14, #64
+# CHECK-NEXT: 1 3 1.00 ucvtf s22, s13
+# CHECK-NEXT: 1 3 1.00 ucvtf s22, s13, #32
# CHECK-NEXT: 1 3 1.00 ucvtf v0.2d, v0.2d
-# CHECK-NEXT: 1 2 0.50 ucvtf v0.2d, v0.2d, #3
+# CHECK-NEXT: 1 3 1.00 ucvtf v0.2d, v0.2d, #3
# CHECK-NEXT: 1 3 1.00 ucvtf v0.2s, v0.2s
-# CHECK-NEXT: 1 2 0.50 ucvtf v0.2s, v0.2s, #3
+# CHECK-NEXT: 1 3 1.00 ucvtf v0.2s, v0.2s, #3
# CHECK-NEXT: 2 4 2.00 ucvtf v0.4h, v0.4h
# CHECK-NEXT: 2 4 2.00 ucvtf v0.4s, v0.4s
-# CHECK-NEXT: 1 2 0.50 ucvtf v0.4s, v0.4s, #3
+# CHECK-NEXT: 2 4 2.00 ucvtf v0.4s, v0.4s, #3
# CHECK-NEXT: 4 6 4.00 ucvtf v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 uhadd v0.16b, v0.16b, v0.16b
# CHECK-NEXT: 1 2 0.50 uhadd v0.8h, v0.8h, v0.8h
@@ -1992,9 +1992,9 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 uqrshl v0.4s, v0.4s, v0.4s
# CHECK-NEXT: 1 4 1.00 uqrshl v0.4s, v0.4s, v0.4s
# CHECK-NEXT: 1 4 1.00 uqrshl v0.8h, v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 uqrshrn b10, h12, #5
-# CHECK-NEXT: 1 2 0.50 uqrshrn h12, s10, #14
-# CHECK-NEXT: 1 2 0.50 uqrshrn s10, d10, #25
+# CHECK-NEXT: 1 4 1.00 uqrshrn b10, h12, #5
+# CHECK-NEXT: 1 4 1.00 uqrshrn h12, s10, #14
+# CHECK-NEXT: 1 4 1.00 uqrshrn s10, d10, #25
# CHECK-NEXT: 1 4 1.00 uqrshrn v0.2s, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 uqrshrn v0.4h, v0.4s, #3
# CHECK-NEXT: 1 4 1.00 uqrshrn v0.8b, v0.8h, #3
@@ -2018,9 +2018,9 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 uqshl v0.8b, v0.8b, #3
# CHECK-NEXT: 1 4 1.00 uqshl v0.8h, v0.8h, #3
# CHECK-NEXT: 1 4 1.00 uqshl v0.8h, v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 uqshrn b12, h10, #7
-# CHECK-NEXT: 1 2 0.50 uqshrn h10, s14, #5
-# CHECK-NEXT: 1 2 0.50 uqshrn s10, d12, #13
+# CHECK-NEXT: 1 4 1.00 uqshrn b12, h10, #7
+# CHECK-NEXT: 1 4 1.00 uqshrn h10, s14, #5
+# CHECK-NEXT: 1 4 1.00 uqshrn s10, d12, #13
# CHECK-NEXT: 1 4 1.00 uqshrn v0.2s, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 uqshrn v0.4h, v0.4s, #3
# CHECK-NEXT: 1 4 1.00 uqshrn v0.8b, v0.8h, #3
@@ -2048,7 +2048,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 urshl v0.2d, v0.2d, v0.2d
# CHECK-NEXT: 1 4 1.00 urshl v0.4s, v0.4s, v0.4s
# CHECK-NEXT: 1 4 1.00 urshl v0.8h, v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 urshr d20, d23, #31
+# CHECK-NEXT: 1 4 1.00 urshr d20, d23, #31
# CHECK-NEXT: 1 4 1.00 urshr v0.16b, v0.16b, #3
# CHECK-NEXT: 1 4 1.00 urshr v0.2d, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 urshr v0.2s, v0.2s, #3
@@ -2058,7 +2058,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 4 1.00 urshr v0.8h, v0.8h, #3
# CHECK-NEXT: 1 3 1.00 ursqrte v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 ursqrte v0.4s, v0.4s
-# CHECK-NEXT: 1 2 0.50 ursra d18, d10, #13
+# CHECK-NEXT: 1 4 1.00 ursra d18, d10, #13
# CHECK-NEXT: 1 4 1.00 ursra v0.16b, v0.16b, #3
# CHECK-NEXT: 1 4 1.00 ursra v0.2d, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 ursra v0.2s, v0.2s, #3
@@ -2072,7 +2072,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 1.00 ushl v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 1.00 ushll v0.4s, v0.4h, #3
# CHECK-NEXT: 1 2 1.00 ushll2 v0.8h, v0.16b, #3
-# CHECK-NEXT: 1 2 0.50 ushr d10, d17, #18
+# CHECK-NEXT: 1 2 1.00 ushr d10, d17, #18
# CHECK-NEXT: 1 2 1.00 ushr v0.16b, v0.16b, #3
# CHECK-NEXT: 1 2 1.00 ushr v0.2d, v0.2d, #3
# CHECK-NEXT: 1 2 1.00 ushr v0.2s, v0.2s, #3
@@ -2091,7 +2091,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: 1 2 0.50 usqadd v0.4s, v0.4s
# CHECK-NEXT: 1 2 0.50 usqadd v0.8b, v0.8b
# CHECK-NEXT: 1 2 0.50 usqadd v0.8h, v0.8h
-# CHECK-NEXT: 1 2 0.50 usra d20, d13, #61
+# CHECK-NEXT: 1 4 1.00 usra d20, d13, #61
# CHECK-NEXT: 1 4 1.00 usra v0.16b, v0.16b, #3
# CHECK-NEXT: 1 4 1.00 usra v0.2d, v0.2d, #3
# CHECK-NEXT: 1 4 1.00 usra v0.2s, v0.2s, #3
@@ -2163,7 +2163,7 @@ zip2 v0.8h, v0.8h, v0.8h
# 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: - - - - 33.00 51.50 51.50 18.75 7.75 7.75 7.75 649.00 584.00
+# CHECK-NEXT: - - - - 33.00 51.50 51.50 18.75 7.75 7.75 7.75 665.00 572.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:
@@ -2278,15 +2278,15 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmlt d20, d21, #0.0
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmlt s10, s11, #0.0
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmlt v0.4s, v0.4s, #0.0
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtas d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtas s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtas d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtas s12, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtas v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtas v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtas v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtas v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 4.00 - fcvtas v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtau d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtau s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtau d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtau s12, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtau v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtau v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtau v0.4h, v0.4h
@@ -2296,15 +2296,15 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtl v0.4s, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtl2 v0.2d, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtl2 v0.4s, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtms d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtms s22, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtms d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtms s22, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtms v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtms v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtms v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtms v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 4.00 - fcvtms v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtmu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtmu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtmu d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtmu s12, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtmu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtmu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtmu v0.4h, v0.4h
@@ -2314,60 +2314,60 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtn v0.4h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtn2 v0.4s, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtn2 v0.8h, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtns d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtns s22, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtns d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtns s22, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtns v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtns v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtns v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtns v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 4.00 - fcvtns v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtnu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtnu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtnu d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtnu s12, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtnu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtnu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtnu v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtnu v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 4.00 - fcvtnu v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtps d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtps s22, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtps d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtps s22, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtps v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtps v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtps v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtps v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 4.00 - fcvtps v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtpu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtpu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtpu d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtpu s12, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtpu v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtpu v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtpu v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtpu v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 4.00 - fcvtpu v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtxn s22, d13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtxn s22, d13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtxn v0.2s, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - 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: - - - - - - - - - - - 0.50 0.50 fcvtzs s12, s13
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzs s21, s12, #1
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs d21, d12, #1
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs s21, s12, #1
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs v0.2d, v0.2d
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzs v0.2d, v0.2d, #3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs v0.2s, v0.2s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzs v0.2s, v0.2s, #3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzs v0.2s, v0.2s, #3
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtzs v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtzs v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzs v0.4s, v0.4s, #3
+# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtzs v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - 4.00 - fcvtzs v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzu d21, d12, #1
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzu d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzu s12, s13
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzu s21, s12, #1
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzu d21, d12, #1
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzu d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzu s12, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzu s21, s12, #1
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzu v0.2d, v0.2d
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzu v0.2d, v0.2d, #3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzu v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzu v0.2s, v0.2s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzu v0.2s, v0.2s, #3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - fcvtzu v0.2s, v0.2s, #3
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtzu v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtzu v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcvtzu v0.4s, v0.4s, #3
+# CHECK-NEXT: - - - - - - - - - - - 2.00 - fcvtzu v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - 4.00 - fcvtzu v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - fdiv v0.2s, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmax v0.2d, v0.2d, v0.2d
@@ -2420,7 +2420,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fneg v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frecpe d13, d13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frecpe s19, s14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 frecpe v0.2d, v0.2d
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frecpe v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frecpe v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frecpe v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frecpe v0.4s, v0.4s
@@ -2467,7 +2467,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 4.00 - frintz v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frsqrte d21, d12
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frsqrte s22, s13
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 frsqrte v0.2d, v0.2d
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - frsqrte v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frsqrte v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frsqrte v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frsqrte v0.4s, v0.4s
@@ -2632,20 +2632,20 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 saddw2 v0.2d, v0.2d, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 saddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 saddw2 v0.8h, v0.8h, v0.16b
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 scvtf d21, d12
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 scvtf d21, d12, #64
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 scvtf s22, s13
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 scvtf s22, s13, #32
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - scvtf d21, d12
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - scvtf d21, d12, #64
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - scvtf s22, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - scvtf s22, s13, #32
# CHECK-NEXT: - - - - - - - - - - - 1.00 - scvtf v0.2d, v0.2d
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 scvtf v0.2d, v0.2d, #3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - scvtf v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - 1.00 - scvtf v0.2s, v0.2s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 scvtf v0.2s, v0.2s, #3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - scvtf v0.2s, v0.2s, #3
# CHECK-NEXT: - - - - - - - - - - - 2.00 - scvtf v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - scvtf v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 scvtf v0.4s, v0.4s, #3
+# CHECK-NEXT: - - - - - - - - - - - 2.00 - scvtf v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - 4.00 - scvtf v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 shadd v0.8b, v0.8b, v0.8b
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 shl d7, d10, #12
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 shl d7, d10, #12
# CHECK-NEXT: - - - - - - - - - - - - 1.00 shl v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 shl v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 shl v0.4h, v0.4h, #3
@@ -2670,7 +2670,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 shrn2 v0.8h, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 shsub v0.2s, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 shsub v0.4h, v0.4h, v0.4h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sli d10, d14, #12
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sli d10, d14, #12
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sli v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sli v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sli v0.2s, v0.2s, #3
@@ -2722,18 +2722,18 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqadd b20, b11, b15
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqadd v0.16b, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqadd v0.2s, v0.2s, v0.2s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqdmlal d19, s24, s12
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlal d19, s24, s12
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlal d8, s9, v0.s[1]
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlal s0, h0, v0.h[3]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqdmlal s17, h27, h12
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlal s17, h27, h12
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlal v0.2d, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlal2 v0.2d, v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlal2 v0.4s, v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqdmlsl d12, s23, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlsl d12, s23, s13
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlsl d8, s9, v0.s[1]
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlsl s0, h0, v0.h[3]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqdmlsl s14, h12, h25
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlsl s14, h12, h25
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlsl v0.2d, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmlsl2 v0.2d, v0.4s, v0.4s
@@ -2745,9 +2745,9 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmulh v0.2s, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmulh v0.4s, v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmull d1, s1, v0.s[1]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqdmull d15, s22, s12
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmull d15, s22, s12
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmull s1, h1, v0.h[3]
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqdmull s12, h22, h12
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmull s12, h22, h12
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmull v0.2d, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmull v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 1.00 - sqdmull2 v0.2d, v0.4s, v0.4s
@@ -2774,18 +2774,18 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshl v0.2s, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshl v0.4h, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshl v0.8b, v0.8b, v0.8b
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqrshrn b10, h13, #2
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqrshrn h15, s10, #6
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqrshrn s15, d12, #9
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn b10, h13, #2
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn h15, s10, #6
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn s15, d12, #9
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn v0.2s, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn v0.4h, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn v0.8b, v0.8h, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn2 v0.16b, v0.8h, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn2 v0.4s, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrn2 v0.8h, v0.4s, #3
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqrshrun b17, h10, #6
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqrshrun h10, s13, #15
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqrshrun s22, d16, #31
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrun b17, h10, #6
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrun h10, s13, #15
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrun s22, d16, #31
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrun v0.2s, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrun v0.4h, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqrshrun v0.8b, v0.8h, #3
@@ -2819,18 +2819,18 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshlu v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshlu v0.8b, v0.8b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshlu v0.8h, v0.8h, #3
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqshrn b10, h15, #5
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqshrn h17, s10, #4
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqshrn s18, d10, #31
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn b10, h15, #5
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn h17, s10, #4
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn s18, d10, #31
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn v0.2s, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn v0.4h, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn v0.8b, v0.8h, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn2 v0.16b, v0.8h, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn2 v0.4s, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrn2 v0.8h, v0.4s, #3
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqshrun b15, h10, #7
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqshrun h20, s14, #3
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sqshrun s10, d15, #15
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrun b15, h10, #7
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrun h20, s14, #3
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrun s10, d15, #15
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrun v0.2s, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrun v0.4h, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sqshrun v0.8b, v0.8h, #3
@@ -2862,7 +2862,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 srhadd v0.2s, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 srhadd v0.4h, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 srhadd v0.8b, v0.8b, v0.8b
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sri d10, d12, #14
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sri d10, d12, #14
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sri v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sri v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sri v0.2s, v0.2s, #3
@@ -2874,7 +2874,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshl v0.2s, v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshl v0.4h, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshl v0.8b, v0.8b, v0.8b
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 srshr d19, d18, #7
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshr d19, d18, #7
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshr v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshr v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshr v0.2s, v0.2s, #3
@@ -2882,7 +2882,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshr v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshr v0.8b, v0.8b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srshr v0.8h, v0.8h, #3
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 srsra d15, d11, #19
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 srsra d15, d11, #19
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srsra v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srsra v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 srsra v0.2s, v0.2s, #3
@@ -2897,7 +2897,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshl v0.8b, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshll v0.2d, v0.2s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshll2 v0.4s, v0.8h, #3
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sshr d15, d16, #12
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshr d15, d16, #12
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshr v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshr v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshr v0.2s, v0.2s, #3
@@ -2905,7 +2905,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshr v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshr v0.8b, v0.8b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 sshr v0.8h, v0.8h, #3
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ssra d18, d12, #21
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 ssra d18, d12, #21
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ssra v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ssra v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ssra v0.2s, v0.2s, #3
@@ -3028,17 +3028,17 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uaddw2 v0.2d, v0.2d, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uaddw2 v0.4s, v0.4s, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uaddw2 v0.8h, v0.8h, v0.16b
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ucvtf d21, d14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ucvtf d21, d14, #64
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ucvtf s22, s13
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ucvtf s22, s13, #32
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - ucvtf d21, d14
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - ucvtf d21, d14, #64
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - ucvtf s22, s13
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - ucvtf s22, s13, #32
# CHECK-NEXT: - - - - - - - - - - - 1.00 - ucvtf v0.2d, v0.2d
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ucvtf v0.2d, v0.2d, #3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - ucvtf v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - 1.00 - ucvtf v0.2s, v0.2s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ucvtf v0.2s, v0.2s, #3
+# CHECK-NEXT: - - - - - - - - - - - 1.00 - ucvtf v0.2s, v0.2s, #3
# CHECK-NEXT: - - - - - - - - - - - 2.00 - ucvtf v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 2.00 - ucvtf v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ucvtf v0.4s, v0.4s, #3
+# CHECK-NEXT: - - - - - - - - - - - 2.00 - ucvtf v0.4s, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - 4.00 - ucvtf v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uhadd v0.16b, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uhadd v0.8h, v0.8h, v0.8h
@@ -3081,9 +3081,9 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshl v0.4s, v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshl v0.4s, v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshl v0.8h, v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uqrshrn b10, h12, #5
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uqrshrn h12, s10, #14
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uqrshrn s10, d10, #25
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshrn b10, h12, #5
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshrn h12, s10, #14
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshrn s10, d10, #25
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshrn v0.2s, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshrn v0.4h, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqrshrn v0.8b, v0.8h, #3
@@ -3107,9 +3107,9 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshl v0.8b, v0.8b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshl v0.8h, v0.8h, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshl v0.8h, v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uqshrn b12, h10, #7
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uqshrn h10, s14, #5
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 uqshrn s10, d12, #13
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshrn b12, h10, #7
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshrn h10, s14, #5
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshrn s10, d12, #13
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshrn v0.2s, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshrn v0.4h, v0.4s, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 uqshrn v0.8b, v0.8h, #3
@@ -3137,7 +3137,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 urshl v0.2d, v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - 1.00 urshl v0.4s, v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - 1.00 urshl v0.8h, v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 urshr d20, d23, #31
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 urshr d20, d23, #31
# CHECK-NEXT: - - - - - - - - - - - - 1.00 urshr v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 urshr v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 urshr v0.2s, v0.2s, #3
@@ -3147,7 +3147,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 urshr v0.8h, v0.8h, #3
# CHECK-NEXT: - - - - - - - - - - - 1.00 - ursqrte v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - ursqrte v0.4s, v0.4s
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ursra d18, d10, #13
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 ursra d18, d10, #13
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ursra v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ursra v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ursra v0.2s, v0.2s, #3
@@ -3161,7 +3161,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ushl v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ushll v0.4s, v0.4h, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ushll2 v0.8h, v0.16b, #3
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ushr d10, d17, #18
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 ushr d10, d17, #18
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ushr v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ushr v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 ushr v0.2s, v0.2s, #3
@@ -3180,7 +3180,7 @@ zip2 v0.8h, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usqadd v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usqadd v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usqadd v0.8h, v0.8h
-# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usra d20, d13, #61
+# CHECK-NEXT: - - - - - - - - - - - - 1.00 usra d20, d13, #61
# CHECK-NEXT: - - - - - - - - - - - - 1.00 usra v0.16b, v0.16b, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 usra v0.2d, v0.2d, #3
# CHECK-NEXT: - - - - - - - - - - - - 1.00 usra v0.2s, v0.2s, #3
>From 68fce05627084ef35fa4be71a05a6f0efbd64768 Mon Sep 17 00:00:00 2001
From: Ash Dobrescu <ash.dobrescu at arm.com>
Date: Thu, 27 Nov 2025 17:29:58 +0000
Subject: [PATCH 2/2] Add character class
---
llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
index beeadd4403605..e00cda8ce0c15 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
@@ -1133,11 +1133,11 @@ def : InstRW<[N3Write_2c_1V1], (instregex "^SLI(v|d)", "^SRI(v|d)")>;
// ASIMD shift by immed, complex
def : InstRW<[N3Write_4c_1V1],
- (instregex "^RSHRNv", "^SQRSHRN(v|b|h|s)", "^SQRSHRUN(v|b|h|s)",
+ (instregex "^RSHRNv", "^SQRSHRN[vbhs]", "^SQRSHRUN[vbhs]",
"^(SQSHLU?|UQSHL)[bhsd]$",
"^(SQSHLU?|UQSHL)(v8i8|v16i8|v4i16|v8i16|v2i32|v4i32|v2i64)_shift$",
- "^SQSHRN(v|b|h|s)", "^SQSHRUN(v|b|h|s)", "^SRSHR(v|d)",
- "^UQRSHRN(v|b|h|s)", "^UQSHRN(v|b|h|s)","^URSHR(v|d)")>;
+ "^SQSHRN[vbhs]", "^SQSHRUN[vbhs]", "^SRSHR(v|d)",
+ "^UQRSHRN[vbhs]", "^UQSHRN[vbhs]","^URSHR(v|d)")>;
// ASIMD shift by register, basic
def : InstRW<[N3Write_2c_1V1], (instregex "^[SU]SHLv")>;
More information about the llvm-commits
mailing list