[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