[llvm] 3c8f327 - [AArch64] Fix sched model for tsv110
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 25 04:22:56 PDT 2022
Author: zhongyunde
Date: 2022-08-25T19:20:07+08:00
New Revision: 3c8f327ce94fd706ec11d927b22a3642b98adad1
URL: https://github.com/llvm/llvm-project/commit/3c8f327ce94fd706ec11d927b22a3642b98adad1
DIFF: https://github.com/llvm/llvm-project/commit/3c8f327ce94fd706ec11d927b22a3642b98adad1.diff
LOG: [AArch64] Fix sched model for tsv110
Update three changes:
1.Split the Load/Store resources into two, Ld0St and Ld1,
since only one of them is capable of stores.
2.Integer ADD and SUB instructions have different latencies
and processor resource usage (pipeline) when they have a shift of
zero vs. non-zero, refer to D8043
3.The throughout of scalar DIV instruction.
Reviewed By: dmgreen, bryanpkc
Differential Revision: https://reviews.llvm.org/D132529
Added:
Modified:
llvm/lib/Target/AArch64/AArch64SchedTSV110.td
llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-basic-instructions.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/AArch64SchedTSV110.td b/llvm/lib/Target/AArch64/AArch64SchedTSV110.td
index 9c1bf3231a555..542d9afb59753 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedTSV110.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedTSV110.td
@@ -34,25 +34,29 @@ def TSV110Model : SchedMachineModel {
// which has 8 pipelines, each with its own queue where micro-ops wait for
// their operands and issue out-of-order to one of eight execution pipelines.
let SchedModel = TSV110Model in {
- def TSV110UnitALU : ProcResource<1>; // Int ALU
- def TSV110UnitAB : ProcResource<2>; // Int ALU/BRU
- def TSV110UnitMDU : ProcResource<1>; // Multi-Cycle
- def TSV110UnitFSU1 : ProcResource<1>; // FP/ASIMD
- def TSV110UnitFSU2 : ProcResource<1>; // FP/ASIMD
- def TSV110UnitLdSt : ProcResource<2>; // Load/Store
-
+ def TSV110UnitALU : ProcResource<1>; // Int ALU
+ def TSV110UnitAB : ProcResource<2>; // Int ALU/BRU
+ def TSV110UnitMDU : ProcResource<1>; // Multi-Cycle
+ def TSV110UnitFSU1 : ProcResource<1>; // FP/ASIMD
+ def TSV110UnitFSU2 : ProcResource<1>; // FP/ASIMD
+ def TSV110UnitLd0St : ProcResource<1>; // Load/Store
+ def TSV110UnitLd1 : ProcResource<1>; // Load
+
+ def TSV110UnitLd : ProcResGroup<[TSV110UnitLd0St, TSV110UnitLd1]>; // Any load
def TSV110UnitF : ProcResGroup<[TSV110UnitFSU1, TSV110UnitFSU2]>;
def TSV110UnitALUAB : ProcResGroup<[TSV110UnitALU, TSV110UnitAB]>;
- def TSV110UnitFLdSt : ProcResGroup<[TSV110UnitFSU1, TSV110UnitFSU2, TSV110UnitLdSt]>;
}
let SchedModel = TSV110Model in {
//===----------------------------------------------------------------------===//
-// Map the target-defined scheduler read/write resources and latency for
-// TSV110
+// Map the target-defined scheduler read/write resources and latency for TSV110
// Integer ALU
+// TODO: Use SchedVariant to select BRU for ALU ops that sets NZCV flags
+// (including ops that shift and/or extend):
+// 1cyc_1BRU: ADDS, ADCS, ANDS, BICS, SUBS, SBCS, CCMN, CCMP
+// 2cyc_1BRU: ADDSshfr, SUBSshfr, ANDSshfr, ADDSextr, SUBSextr
def : WriteRes<WriteImm, [TSV110UnitALUAB]> { let Latency = 1; }
def : WriteRes<WriteI, [TSV110UnitALUAB]> { let Latency = 1; }
def : WriteRes<WriteISReg, [TSV110UnitMDU]> { let Latency = 2; }
@@ -69,17 +73,17 @@ def : WriteRes<WriteIM32, [TSV110UnitMDU]> { let Latency = 3; }
def : WriteRes<WriteIM64, [TSV110UnitMDU]> { let Latency = 4; }
// Load
-def : WriteRes<WriteLD, [TSV110UnitLdSt]> { let Latency = 4; }
-def : WriteRes<WriteLDIdx, [TSV110UnitLdSt]> { let Latency = 4; }
+def : WriteRes<WriteLD, [TSV110UnitLd]> { let Latency = 4; }
+def : WriteRes<WriteLDIdx, [TSV110UnitLd]> { let Latency = 4; }
def : WriteRes<WriteLDHi, []> { let Latency = 4; }
// Pre/Post Indexing
def : WriteRes<WriteAdr, [TSV110UnitALUAB]> { let Latency = 1; }
// Store
-def : WriteRes<WriteST, [TSV110UnitLdSt]> { let Latency = 1; }
-def : WriteRes<WriteSTP, [TSV110UnitLdSt]> { let Latency = 1; }
-def : WriteRes<WriteSTIdx, [TSV110UnitLdSt]> { let Latency = 1; }
+def : WriteRes<WriteST, [TSV110UnitLd0St]> { let Latency = 1; }
+def : WriteRes<WriteSTP, [TSV110UnitLd0St]> { let Latency = 1; }
+def : WriteRes<WriteSTIdx, [TSV110UnitLd0St]> { let Latency = 1; }
// FP
def : WriteRes<WriteF, [TSV110UnitF]> { let Latency = 2; }
@@ -90,11 +94,10 @@ def : WriteRes<WriteFImm, [TSV110UnitF]> { let Latency = 2; }
def : WriteRes<WriteFMul, [TSV110UnitF]> { let Latency = 5; }
// FP Div, Sqrt
-def : WriteRes<WriteFDiv, [TSV110UnitFSU1]> { let Latency = 18; }
+def : WriteRes<WriteFDiv, [TSV110UnitFSU1]> { let Latency = 18; let ResourceCycles = [18]; }
def : WriteRes<WriteVd, [TSV110UnitF]> { let Latency = 4; }
def : WriteRes<WriteVq, [TSV110UnitF]> { let Latency = 4; }
-def : WriteRes<WriteVLD, [TSV110UnitFLdSt]> { let Latency = 5; }
def : WriteRes<WriteVST, [TSV110UnitF]> { let Latency = 1; }
// Branch
@@ -141,11 +144,10 @@ def : InstRW<[WriteI], (instrs COPY)>;
def TSV110Wr_1cyc_1AB : SchedWriteRes<[TSV110UnitAB]> { let Latency = 1; }
def TSV110Wr_1cyc_1ALU : SchedWriteRes<[TSV110UnitALU]> { let Latency = 1; }
def TSV110Wr_1cyc_1ALUAB : SchedWriteRes<[TSV110UnitALUAB]> { let Latency = 1; }
-def TSV110Wr_1cyc_1LdSt : SchedWriteRes<[TSV110UnitLdSt]> { let Latency = 1; }
+def TSV110Wr_1cyc_1LdSt : SchedWriteRes<[TSV110UnitLd0St]> { let Latency = 1; }
-def TSV110Wr_2cyc_1AB : SchedWriteRes<[TSV110UnitAB]> { let Latency = 2; }
+def TSV110Wr_2cyc_1AB : SchedWriteRes<[TSV110UnitAB]> { let Latency = 2; let ResourceCycles = [2]; }
def TSV110Wr_2cyc_1ALU : SchedWriteRes<[TSV110UnitALU]> { let Latency = 2; }
-def TSV110Wr_2cyc_1LdSt : SchedWriteRes<[TSV110UnitLdSt]> { let Latency = 2; }
def TSV110Wr_2cyc_1MDU : SchedWriteRes<[TSV110UnitMDU]> { let Latency = 2; }
def TSV110Wr_2cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 2; }
def TSV110Wr_2cyc_1F : SchedWriteRes<[TSV110UnitF]> { let Latency = 2; }
@@ -156,13 +158,13 @@ def TSV110Wr_3cyc_1MDU : SchedWriteRes<[TSV110UnitMDU]> { let Latency = 3; }
def TSV110Wr_4cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 4; }
def TSV110Wr_4cyc_1F : SchedWriteRes<[TSV110UnitF]> { let Latency = 4; }
-def TSV110Wr_4cyc_1LdSt : SchedWriteRes<[TSV110UnitLdSt]> { let Latency = 4; }
+def TSV110Wr_4cyc_1LdSt : SchedWriteRes<[TSV110UnitLd]> { let Latency = 4; }
def TSV110Wr_4cyc_1MDU : SchedWriteRes<[TSV110UnitMDU]> { let Latency = 4; }
def TSV110Wr_5cyc_1F : SchedWriteRes<[TSV110UnitF]> { let Latency = 5; }
def TSV110Wr_5cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 5; }
def TSV110Wr_5cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 5; }
-def TSV110Wr_5cyc_1LdSt : SchedWriteRes<[TSV110UnitLdSt]> { let Latency = 5; }
+def TSV110Wr_5cyc_1LdSt : SchedWriteRes<[TSV110UnitLd]> { let Latency = 5; }
def TSV110Wr_6cyc_1F : SchedWriteRes<[TSV110UnitF]> { let Latency = 6; }
@@ -170,43 +172,43 @@ def TSV110Wr_7cyc_1F : SchedWriteRes<[TSV110UnitF]> { let Latency = 7; }
def TSV110Wr_8cyc_1F : SchedWriteRes<[TSV110UnitF]> { let Latency = 8; }
-def TSV110Wr_11cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 11; }
+def TSV110Wr_11cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 11; let ResourceCycles = [11]; }
-def TSV110Wr_12cyc_1MDU : SchedWriteRes<[TSV110UnitMDU]> { let Latency = 12; }
+def TSV110Wr_12cyc_1MDU : SchedWriteRes<[TSV110UnitMDU]> { let Latency = 12; let ResourceCycles = [12]; }
-def TSV110Wr_17cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 17; }
+def TSV110Wr_17cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 17; let ResourceCycles = [17]; }
-def TSV110Wr_18cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 18; }
+def TSV110Wr_18cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 18; let ResourceCycles = [18]; }
-def TSV110Wr_20cyc_1MDU : SchedWriteRes<[TSV110UnitMDU]> { let Latency = 20; }
+def TSV110Wr_20cyc_1MDU : SchedWriteRes<[TSV110UnitMDU]> { let Latency = 20; let ResourceCycles = [20]; }
-def TSV110Wr_24cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 24; }
+def TSV110Wr_24cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 24; let ResourceCycles = [24]; }
-def TSV110Wr_31cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 31; }
+def TSV110Wr_31cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 31; let ResourceCycles = [31]; }
-def TSV110Wr_36cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 36; }
+def TSV110Wr_36cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 36; let ResourceCycles = [36]; }
-def TSV110Wr_38cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 38; }
+def TSV110Wr_38cyc_1FSU1 : SchedWriteRes<[TSV110UnitFSU1]> { let Latency = 38; let ResourceCycles = [38]; }
-def TSV110Wr_64cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 64; }
+def TSV110Wr_64cyc_1FSU2 : SchedWriteRes<[TSV110UnitFSU2]> { let Latency = 64; let ResourceCycles = [64]; }
//===----------------------------------------------------------------------===//
// Define Generic 2 micro-op types
-def TSV110Wr_1cyc_1LdSt_1ALUAB : SchedWriteRes<[TSV110UnitLdSt,
+def TSV110Wr_1cyc_1LdSt_1ALUAB : SchedWriteRes<[TSV110UnitLd0St,
TSV110UnitALUAB]> {
let Latency = 1;
let NumMicroOps = 2;
}
-def TSV110Wr_2cyc_1LdSt_1ALUAB : SchedWriteRes<[TSV110UnitLdSt,
- TSV110UnitALUAB]> {
+def TSV110Wr_2cyc_1LdSt_1ALUAB : SchedWriteRes<[TSV110UnitLd0St,
+ TSV110UnitALUAB]> {
let Latency = 2;
let NumMicroOps = 2;
}
-def TSV110Wr_2cyc_2LdSt : SchedWriteRes<[TSV110UnitLdSt,
- TSV110UnitLdSt]> {
+def TSV110Wr_2cyc_2LdSt : SchedWriteRes<[TSV110UnitLd0St,
+ TSV110UnitLd0St]> {
let Latency = 2;
let NumMicroOps = 2;
}
@@ -235,7 +237,7 @@ def TSV110Wr_4cyc_1FSU1_1FSU2 : SchedWriteRes<[TSV110UnitFSU1,
let NumMicroOps = 2;
}
-def TSV110Wr_4cyc_1LdSt_1ALUAB : SchedWriteRes<[TSV110UnitLdSt,
+def TSV110Wr_4cyc_1LdSt_1ALUAB : SchedWriteRes<[TSV110UnitLd,
TSV110UnitALUAB]> {
let Latency = 4;
let NumMicroOps = 2;
@@ -247,20 +249,20 @@ def TSV110Wr_5cyc_1ALU_1F : SchedWriteRes<[TSV110UnitALU,
let NumMicroOps = 2;
}
-def TSV110Wr_6cyc_2LdSt : SchedWriteRes<[TSV110UnitLdSt,
- TSV110UnitLdSt]> {
+def TSV110Wr_6cyc_2LdSt : SchedWriteRes<[TSV110UnitLd,
+ TSV110UnitLd]> {
let Latency = 6;
let NumMicroOps = 2;
}
-def TSV110Wr_6cyc_1LdSt_1ALUAB : SchedWriteRes<[TSV110UnitLdSt,
+def TSV110Wr_6cyc_1LdSt_1ALUAB : SchedWriteRes<[TSV110UnitLd,
TSV110UnitALUAB]> {
let Latency = 6;
let NumMicroOps = 2;
}
def TSV110Wr_7cyc_1F_1LdSt : SchedWriteRes<[TSV110UnitF,
- TSV110UnitLdSt]> {
+ TSV110UnitLd]> {
let Latency = 7;
let NumMicroOps = 2;
}
@@ -287,14 +289,14 @@ def TSV110Wr_6cyc_3F : SchedWriteRes<[TSV110UnitF, TSV110UnitF,
let NumMicroOps = 3;
}
-def TSV110Wr_6cyc_3LdSt : SchedWriteRes<[TSV110UnitLdSt, TSV110UnitLdSt,
- TSV110UnitLdSt]> {
+def TSV110Wr_6cyc_3LdSt : SchedWriteRes<[TSV110UnitLd, TSV110UnitLd,
+ TSV110UnitLd]> {
let Latency = 6;
let NumMicroOps = 3;
}
def TSV110Wr_7cyc_2F_1LdSt : SchedWriteRes<[TSV110UnitF, TSV110UnitF,
- TSV110UnitLdSt]> {
+ TSV110UnitLd]> {
let Latency = 7;
let NumMicroOps = 3;
}
@@ -309,7 +311,7 @@ def TSV110Wr_8cyc_4F : SchedWriteRes<[TSV110UnitF, TSV110UnitF,
}
def TSV110Wr_8cyc_3F_1LdSt : SchedWriteRes<[TSV110UnitF, TSV110UnitF,
- TSV110UnitF, TSV110UnitLdSt]> {
+ TSV110UnitF, TSV110UnitLd]> {
let Latency = 8;
let NumMicroOps = 4;
}
@@ -318,7 +320,7 @@ def TSV110Wr_8cyc_3F_1LdSt : SchedWriteRes<[TSV110UnitF, TSV110UnitF,
// Define Generic 5 micro-op types
def TSV110Wr_8cyc_3F_2LdSt : SchedWriteRes<[TSV110UnitF, TSV110UnitF, TSV110UnitF,
- TSV110UnitLdSt, TSV110UnitLdSt]> {
+ TSV110UnitLd, TSV110UnitLd]> {
let Latency = 8;
let NumMicroOps = 5;
}
@@ -328,8 +330,8 @@ def TSV110Wr_8cyc_3F_2LdSt : SchedWriteRes<[TSV110UnitF, TSV110UnitF, TSV110Unit
def TSV110Wr_10cyc_4F_4LdSt : SchedWriteRes<[TSV110UnitF, TSV110UnitF,
TSV110UnitF, TSV110UnitF,
- TSV110UnitLdSt, TSV110UnitLdSt,
- TSV110UnitLdSt, TSV110UnitLdSt]> {
+ TSV110UnitLd, TSV110UnitLd,
+ TSV110UnitLd, TSV110UnitLd]> {
let Latency = 10;
let NumMicroOps = 8;
}
@@ -371,10 +373,32 @@ def : InstRW<[TSV110Wr_1cyc_1AB], (instregex "(ADD|AND|EOR|ORR|SUB)S[WX]r(r|i
def : InstRW<[TSV110Wr_1cyc_1ALUAB], (instregex "^(ADC|SBC|BIC)[WX]r$")>;
def : InstRW<[TSV110Wr_1cyc_1AB], (instregex "^(ADC|SBC)S[WX]r$")>;
-def : InstRW<[TSV110Wr_2cyc_1MDU], (instregex "^(AND|BIC|EON|EOR|ORN|ORR)[WX]rs$")>;
-def : InstRW<[TSV110Wr_2cyc_1AB], (instregex "^(AND|BIC|EON|EOR|ORN|ORR)S[WX]rs$")>;
-def : InstRW<[TSV110Wr_2cyc_1MDU], (instregex "^(ADD|SUB)[WX]r(s|x|x64)$")>;
-def : InstRW<[TSV110Wr_2cyc_1AB], (instregex "^(ADD|SUB)S[WX]r(s|x|x64)$")>;
+
+// Shifted Register with Shift == 0
+// ----------------------------------------------------------------------------
+
+def TSV110WrISReg : SchedWriteVariant<[
+ SchedVar<RegShiftedPred, [WriteISReg]>,
+ SchedVar<NoSchedPred, [WriteI]>]>;
+def : InstRW<[TSV110WrISReg], (instregex "^(ADD|AND|BIC|EON|EOR|ORN|ORR|SUB)[WX]rs$")>;
+
+def TSV110WrISRegBr : SchedWriteVariant<[
+ SchedVar<RegShiftedPred, [TSV110Wr_2cyc_1AB]>,
+ SchedVar<NoSchedPred, [WriteBr]>]>;
+def : InstRW<[TSV110WrISRegBr], (instregex "^(ADD|AND|BIC|EON|EOR|ORN|ORR|SUB)S[WX]rs$")>;
+
+// Extended Register with Extend == 0
+// ----------------------------------------------------------------------------
+
+def TSV110WrIEReg : SchedWriteVariant<[
+ SchedVar<RegExtendedPred, [WriteISReg]>,
+ SchedVar<NoSchedPred, [WriteI]>]>;
+def : InstRW<[TSV110WrIEReg], (instregex "^(ADD|SUB)[WX]r(x|x64)$")>;
+
+def TSV110WrIERegBr : SchedWriteVariant<[
+ SchedVar<RegExtendedPred, [TSV110Wr_2cyc_1AB]>,
+ SchedVar<NoSchedPred, [WriteBr]>]>;
+def : InstRW<[TSV110WrIERegBr], (instregex "^(ADD|SUB)S[WX]r(x|x64)$")>;
def : InstRW<[TSV110Wr_1cyc_1AB], (instregex "^(CCMN|CCMP)(W|X)(r|i)$")>;
def : InstRW<[TSV110Wr_1cyc_1ALUAB], (instregex "^(CSEL|CSINC|CSINV|CSNEG)(W|X)r$")>;
diff --git a/llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-basic-instructions.s
index c6083db4ea6fe..6eb5d02ffb28f 100644
--- a/llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-basic-instructions.s
@@ -65,6 +65,14 @@ add x27, x28, x29, lsr #63
add x2, x3, x4, asr #0
add x5, x6, x7, asr #21
add x8, x9, x10, asr #63
+add x1, x4, w5, uxtb #4
+add x2, x2, w2, uxth #3
+add x9, x10, w11, uxtw #1
+add x18, x19, x20, uxtx #4
+add x12, x13, w14, sxtb #0
+add x15, x16, w17, sxth #1
+add x18, x19, w20, sxtw #2
+add x10, x19, x20, sxtx #4
adds w3, w5, w7
cmn w3, w5
adds w20, wzr, w4
@@ -91,6 +99,8 @@ adds x27, x28, x29, lsr #63
adds x2, x3, x4, asr #0
adds x5, x6, x7, asr #21
adds x8, x9, x10, asr #63
+adds x21, x22, x23, sxtx #0
+adds x1, x2, x3, uxtx #4
sub w3, w5, w7
sub wzr, w3, w5
sub w4, w6, wzr
@@ -1401,11 +1411,11 @@ br x20
# CHECK-NEXT: 1 1 0.33 mov wsp, w20
# CHECK-NEXT: 1 1 0.33 mov x11, sp
# CHECK-NEXT: 1 1 0.33 mov w24, wsp
-# CHECK-NEXT: 1 2 1.00 add w3, w5, w7
-# CHECK-NEXT: 1 2 1.00 add wzr, w3, w5
-# CHECK-NEXT: 1 2 1.00 add w20, wzr, w4
-# CHECK-NEXT: 1 2 1.00 add w4, w6, wzr
-# CHECK-NEXT: 1 2 1.00 add w11, w13, w15
+# CHECK-NEXT: 1 1 0.33 add w3, w5, w7
+# CHECK-NEXT: 1 1 0.33 add wzr, w3, w5
+# CHECK-NEXT: 1 1 0.33 add w20, wzr, w4
+# CHECK-NEXT: 1 1 0.33 add w4, w6, wzr
+# CHECK-NEXT: 1 1 0.33 add w11, w13, w15
# CHECK-NEXT: 1 2 1.00 add w9, w3, wzr, lsl #10
# CHECK-NEXT: 1 2 1.00 add w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 1.00 add w21, w22, w23, lsr #0
@@ -1414,11 +1424,11 @@ br x20
# CHECK-NEXT: 1 2 1.00 add w2, w3, w4, asr #0
# CHECK-NEXT: 1 2 1.00 add w5, w6, w7, asr #21
# CHECK-NEXT: 1 2 1.00 add w8, w9, w10, asr #31
-# CHECK-NEXT: 1 2 1.00 add x3, x5, x7
-# CHECK-NEXT: 1 2 1.00 add xzr, x3, x5
-# CHECK-NEXT: 1 2 1.00 add x20, xzr, x4
-# CHECK-NEXT: 1 2 1.00 add x4, x6, xzr
-# CHECK-NEXT: 1 2 1.00 add x11, x13, x15
+# CHECK-NEXT: 1 1 0.33 add x3, x5, x7
+# CHECK-NEXT: 1 1 0.33 add xzr, x3, x5
+# CHECK-NEXT: 1 1 0.33 add x20, xzr, x4
+# CHECK-NEXT: 1 1 0.33 add x4, x6, xzr
+# CHECK-NEXT: 1 1 0.33 add x11, x13, x15
# CHECK-NEXT: 1 2 1.00 add x9, x3, xzr, lsl #10
# CHECK-NEXT: 1 2 1.00 add x17, x29, x20, lsl #63
# CHECK-NEXT: 1 2 1.00 add x21, x22, x23, lsr #0
@@ -1427,36 +1437,46 @@ br x20
# CHECK-NEXT: 1 2 1.00 add x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 1.00 add x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 1.00 add x8, x9, x10, asr #63
-# CHECK-NEXT: 1 2 0.50 adds w3, w5, w7
-# CHECK-NEXT: 1 2 0.50 cmn w3, w5
-# CHECK-NEXT: 1 2 0.50 adds w20, wzr, w4
-# CHECK-NEXT: 1 2 0.50 adds w4, w6, wzr
-# CHECK-NEXT: 1 2 0.50 adds w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 adds w9, w3, wzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 adds w17, w29, w20, lsl #31
-# CHECK-NEXT: 1 2 0.50 adds w21, w22, w23, lsr #0
-# CHECK-NEXT: 1 2 0.50 adds w24, w25, w26, lsr #18
-# CHECK-NEXT: 1 2 0.50 adds w27, w28, w29, lsr #31
-# CHECK-NEXT: 1 2 0.50 adds w2, w3, w4, asr #0
-# CHECK-NEXT: 1 2 0.50 adds w5, w6, w7, asr #21
-# CHECK-NEXT: 1 2 0.50 adds w8, w9, w10, asr #31
-# CHECK-NEXT: 1 2 0.50 adds x3, x5, x7
-# CHECK-NEXT: 1 2 0.50 cmn x3, x5
-# CHECK-NEXT: 1 2 0.50 adds x20, xzr, x4
-# CHECK-NEXT: 1 2 0.50 adds x4, x6, xzr
-# CHECK-NEXT: 1 2 0.50 adds x11, x13, x15
-# CHECK-NEXT: 1 2 0.50 adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 adds x17, x29, x20, lsl #63
-# CHECK-NEXT: 1 2 0.50 adds x21, x22, x23, lsr #0
-# CHECK-NEXT: 1 2 0.50 adds x24, x25, x26, lsr #18
-# CHECK-NEXT: 1 2 0.50 adds x27, x28, x29, lsr #63
-# CHECK-NEXT: 1 2 0.50 adds x2, x3, x4, asr #0
-# CHECK-NEXT: 1 2 0.50 adds x5, x6, x7, asr #21
-# CHECK-NEXT: 1 2 0.50 adds x8, x9, x10, asr #63
-# CHECK-NEXT: 1 2 1.00 sub w3, w5, w7
-# CHECK-NEXT: 1 2 1.00 sub wzr, w3, w5
-# CHECK-NEXT: 1 2 1.00 sub w4, w6, wzr
-# CHECK-NEXT: 1 2 1.00 sub w11, w13, w15
+# CHECK-NEXT: 1 2 1.00 add x1, x4, w5, uxtb #4
+# CHECK-NEXT: 1 2 1.00 add x2, x2, w2, uxth #3
+# CHECK-NEXT: 1 2 1.00 add x9, x10, w11, uxtw #1
+# CHECK-NEXT: 1 2 1.00 add x18, x19, x20, uxtx #4
+# CHECK-NEXT: 1 2 1.00 add x12, x13, w14, sxtb
+# CHECK-NEXT: 1 2 1.00 add x15, x16, w17, sxth #1
+# CHECK-NEXT: 1 2 1.00 add x18, x19, w20, sxtw #2
+# CHECK-NEXT: 1 2 1.00 add x10, x19, x20, sxtx #4
+# CHECK-NEXT: 1 1 0.50 adds w3, w5, w7
+# CHECK-NEXT: 1 1 0.50 cmn w3, w5
+# CHECK-NEXT: 1 1 0.50 adds w20, wzr, w4
+# CHECK-NEXT: 1 1 0.50 adds w4, w6, wzr
+# CHECK-NEXT: 1 1 0.50 adds w11, w13, w15
+# CHECK-NEXT: 1 2 1.00 adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 2 1.00 adds w17, w29, w20, lsl #31
+# CHECK-NEXT: 1 2 1.00 adds w21, w22, w23, lsr #0
+# CHECK-NEXT: 1 2 1.00 adds w24, w25, w26, lsr #18
+# CHECK-NEXT: 1 2 1.00 adds w27, w28, w29, lsr #31
+# CHECK-NEXT: 1 2 1.00 adds w2, w3, w4, asr #0
+# CHECK-NEXT: 1 2 1.00 adds w5, w6, w7, asr #21
+# CHECK-NEXT: 1 2 1.00 adds w8, w9, w10, asr #31
+# CHECK-NEXT: 1 1 0.50 adds x3, x5, x7
+# CHECK-NEXT: 1 1 0.50 cmn x3, x5
+# CHECK-NEXT: 1 1 0.50 adds x20, xzr, x4
+# CHECK-NEXT: 1 1 0.50 adds x4, x6, xzr
+# CHECK-NEXT: 1 1 0.50 adds x11, x13, x15
+# CHECK-NEXT: 1 2 1.00 adds x9, x3, xzr, lsl #10
+# CHECK-NEXT: 1 2 1.00 adds x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 2 1.00 adds x21, x22, x23, lsr #0
+# CHECK-NEXT: 1 2 1.00 adds x24, x25, x26, lsr #18
+# CHECK-NEXT: 1 2 1.00 adds x27, x28, x29, lsr #63
+# CHECK-NEXT: 1 2 1.00 adds x2, x3, x4, asr #0
+# CHECK-NEXT: 1 2 1.00 adds x5, x6, x7, asr #21
+# CHECK-NEXT: 1 2 1.00 adds x8, x9, x10, asr #63
+# CHECK-NEXT: 1 2 1.00 adds x21, x22, x23, sxtx
+# CHECK-NEXT: 1 2 1.00 adds x1, x2, x3, uxtx #4
+# CHECK-NEXT: 1 1 0.33 sub w3, w5, w7
+# CHECK-NEXT: 1 1 0.33 sub wzr, w3, w5
+# CHECK-NEXT: 1 1 0.33 sub w4, w6, wzr
+# CHECK-NEXT: 1 1 0.33 sub w11, w13, w15
# CHECK-NEXT: 1 2 1.00 sub w9, w3, wzr, lsl #10
# CHECK-NEXT: 1 2 1.00 sub w17, w29, w20, lsl #31
# CHECK-NEXT: 1 2 1.00 sub w21, w22, w23, lsr #0
@@ -1465,10 +1485,10 @@ br x20
# CHECK-NEXT: 1 2 1.00 sub w2, w3, w4, asr #0
# CHECK-NEXT: 1 2 1.00 sub w5, w6, w7, asr #21
# CHECK-NEXT: 1 2 1.00 sub w8, w9, w10, asr #31
-# CHECK-NEXT: 1 2 1.00 sub x3, x5, x7
-# CHECK-NEXT: 1 2 1.00 sub xzr, x3, x5
-# CHECK-NEXT: 1 2 1.00 sub x4, x6, xzr
-# CHECK-NEXT: 1 2 1.00 sub x11, x13, x15
+# CHECK-NEXT: 1 1 0.33 sub x3, x5, x7
+# CHECK-NEXT: 1 1 0.33 sub xzr, x3, x5
+# CHECK-NEXT: 1 1 0.33 sub x4, x6, xzr
+# CHECK-NEXT: 1 1 0.33 sub x11, x13, x15
# CHECK-NEXT: 1 2 1.00 sub x9, x3, xzr, lsl #10
# CHECK-NEXT: 1 2 1.00 sub x17, x29, x20, lsl #63
# CHECK-NEXT: 1 2 1.00 sub x21, x22, x23, lsr #0
@@ -1477,78 +1497,78 @@ br x20
# CHECK-NEXT: 1 2 1.00 sub x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 1.00 sub x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 1.00 sub x8, x9, x10, asr #63
-# CHECK-NEXT: 1 2 0.50 subs w3, w5, w7
-# CHECK-NEXT: 1 2 0.50 cmp w3, w5
-# CHECK-NEXT: 1 2 0.50 subs w4, w6, wzr
-# CHECK-NEXT: 1 2 0.50 subs w11, w13, w15
-# CHECK-NEXT: 1 2 0.50 subs w9, w3, wzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 subs w17, w29, w20, lsl #31
-# CHECK-NEXT: 1 2 0.50 subs w21, w22, w23, lsr #0
-# CHECK-NEXT: 1 2 0.50 subs w24, w25, w26, lsr #18
-# CHECK-NEXT: 1 2 0.50 subs w27, w28, w29, lsr #31
-# CHECK-NEXT: 1 2 0.50 subs w2, w3, w4, asr #0
-# CHECK-NEXT: 1 2 0.50 subs w5, w6, w7, asr #21
-# CHECK-NEXT: 1 2 0.50 subs w8, w9, w10, asr #31
-# CHECK-NEXT: 1 2 0.50 subs x3, x5, x7
-# CHECK-NEXT: 1 2 0.50 cmp x3, x5
-# CHECK-NEXT: 1 2 0.50 subs x4, x6, xzr
-# CHECK-NEXT: 1 2 0.50 subs x11, x13, x15
-# CHECK-NEXT: 1 2 0.50 subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: 1 2 0.50 subs x17, x29, x20, lsl #63
-# CHECK-NEXT: 1 2 0.50 subs x21, x22, x23, lsr #0
-# CHECK-NEXT: 1 2 0.50 subs x24, x25, x26, lsr #18
-# CHECK-NEXT: 1 2 0.50 subs x27, x28, x29, lsr #63
-# CHECK-NEXT: 1 2 0.50 subs x2, x3, x4, asr #0
-# CHECK-NEXT: 1 2 0.50 subs x5, x6, x7, asr #21
-# CHECK-NEXT: 1 2 0.50 subs x8, x9, x10, asr #63
-# CHECK-NEXT: 1 2 0.50 cmn wzr, w4
-# CHECK-NEXT: 1 2 0.50 cmn w5, wzr
-# CHECK-NEXT: 1 2 0.50 cmn w6, w7
-# CHECK-NEXT: 1 2 0.50 cmn w8, w9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmn w10, w11, lsl #31
-# CHECK-NEXT: 1 2 0.50 cmn w12, w13, lsr #0
-# CHECK-NEXT: 1 2 0.50 cmn w14, w15, lsr #21
-# CHECK-NEXT: 1 2 0.50 cmn w16, w17, lsr #31
-# CHECK-NEXT: 1 2 0.50 cmn w18, w19, asr #0
-# CHECK-NEXT: 1 2 0.50 cmn w20, w21, asr #22
-# CHECK-NEXT: 1 2 0.50 cmn w22, w23, asr #31
-# CHECK-NEXT: 1 2 0.50 cmn x0, x3
-# CHECK-NEXT: 1 2 0.50 cmn xzr, x4
-# CHECK-NEXT: 1 2 0.50 cmn x5, xzr
-# CHECK-NEXT: 1 2 0.50 cmn x6, x7
-# CHECK-NEXT: 1 2 0.50 cmn x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmn x10, x11, lsl #63
-# CHECK-NEXT: 1 2 0.50 cmn x12, x13, lsr #0
-# CHECK-NEXT: 1 2 0.50 cmn x14, x15, lsr #41
-# CHECK-NEXT: 1 2 0.50 cmn x16, x17, lsr #63
-# CHECK-NEXT: 1 2 0.50 cmn x18, x19, asr #0
-# CHECK-NEXT: 1 2 0.50 cmn x20, x21, asr #55
-# CHECK-NEXT: 1 2 0.50 cmn x22, x23, asr #63
-# CHECK-NEXT: 1 2 0.50 cmp w0, w3
-# CHECK-NEXT: 1 2 0.50 cmp wzr, w4
-# CHECK-NEXT: 1 2 0.50 cmp w5, wzr
-# CHECK-NEXT: 1 2 0.50 cmp w6, w7
-# CHECK-NEXT: 1 2 0.50 cmp w8, w9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmp w10, w11, lsl #31
-# CHECK-NEXT: 1 2 0.50 cmp w12, w13, lsr #0
-# CHECK-NEXT: 1 2 0.50 cmp w14, w15, lsr #21
-# CHECK-NEXT: 1 2 0.50 cmp w18, w19, asr #0
-# CHECK-NEXT: 1 2 0.50 cmp w20, w21, asr #22
-# CHECK-NEXT: 1 2 0.50 cmp w22, w23, asr #31
-# CHECK-NEXT: 1 2 0.50 cmp x0, x3
-# CHECK-NEXT: 1 2 0.50 cmp xzr, x4
-# CHECK-NEXT: 1 2 0.50 cmp x5, xzr
-# CHECK-NEXT: 1 2 0.50 cmp x6, x7
-# CHECK-NEXT: 1 2 0.50 cmp x8, x9, lsl #15
-# CHECK-NEXT: 1 2 0.50 cmp x10, x11, lsl #63
-# CHECK-NEXT: 1 2 0.50 cmp x12, x13, lsr #0
-# CHECK-NEXT: 1 2 0.50 cmp x14, x15, lsr #41
-# CHECK-NEXT: 1 2 0.50 cmp x16, x17, lsr #63
-# CHECK-NEXT: 1 2 0.50 cmp x18, x19, asr #0
-# CHECK-NEXT: 1 2 0.50 cmp x20, x21, asr #55
-# CHECK-NEXT: 1 2 0.50 cmp x22, x23, asr #63
-# CHECK-NEXT: 1 2 0.50 cmp wzr, w0
-# CHECK-NEXT: 1 2 0.50 cmp xzr, x0
+# CHECK-NEXT: 1 1 0.50 subs w3, w5, w7
+# CHECK-NEXT: 1 1 0.50 cmp w3, w5
+# CHECK-NEXT: 1 1 0.50 subs w4, w6, wzr
+# CHECK-NEXT: 1 1 0.50 subs w11, w13, w15
+# CHECK-NEXT: 1 2 1.00 subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1 2 1.00 subs w17, w29, w20, lsl #31
+# CHECK-NEXT: 1 2 1.00 subs w21, w22, w23, lsr #0
+# CHECK-NEXT: 1 2 1.00 subs w24, w25, w26, lsr #18
+# CHECK-NEXT: 1 2 1.00 subs w27, w28, w29, lsr #31
+# CHECK-NEXT: 1 2 1.00 subs w2, w3, w4, asr #0
+# CHECK-NEXT: 1 2 1.00 subs w5, w6, w7, asr #21
+# CHECK-NEXT: 1 2 1.00 subs w8, w9, w10, asr #31
+# CHECK-NEXT: 1 1 0.50 subs x3, x5, x7
+# CHECK-NEXT: 1 1 0.50 cmp x3, x5
+# CHECK-NEXT: 1 1 0.50 subs x4, x6, xzr
+# CHECK-NEXT: 1 1 0.50 subs x11, x13, x15
+# CHECK-NEXT: 1 2 1.00 subs x9, x3, xzr, lsl #10
+# CHECK-NEXT: 1 2 1.00 subs x17, x29, x20, lsl #63
+# CHECK-NEXT: 1 2 1.00 subs x21, x22, x23, lsr #0
+# CHECK-NEXT: 1 2 1.00 subs x24, x25, x26, lsr #18
+# CHECK-NEXT: 1 2 1.00 subs x27, x28, x29, lsr #63
+# CHECK-NEXT: 1 2 1.00 subs x2, x3, x4, asr #0
+# CHECK-NEXT: 1 2 1.00 subs x5, x6, x7, asr #21
+# CHECK-NEXT: 1 2 1.00 subs x8, x9, x10, asr #63
+# CHECK-NEXT: 1 1 0.50 cmn wzr, w4
+# CHECK-NEXT: 1 1 0.50 cmn w5, wzr
+# CHECK-NEXT: 1 1 0.50 cmn w6, w7
+# CHECK-NEXT: 1 2 1.00 cmn w8, w9, lsl #15
+# CHECK-NEXT: 1 2 1.00 cmn w10, w11, lsl #31
+# CHECK-NEXT: 1 2 1.00 cmn w12, w13, lsr #0
+# CHECK-NEXT: 1 2 1.00 cmn w14, w15, lsr #21
+# CHECK-NEXT: 1 2 1.00 cmn w16, w17, lsr #31
+# CHECK-NEXT: 1 2 1.00 cmn w18, w19, asr #0
+# CHECK-NEXT: 1 2 1.00 cmn w20, w21, asr #22
+# CHECK-NEXT: 1 2 1.00 cmn w22, w23, asr #31
+# CHECK-NEXT: 1 1 0.50 cmn x0, x3
+# CHECK-NEXT: 1 1 0.50 cmn xzr, x4
+# CHECK-NEXT: 1 1 0.50 cmn x5, xzr
+# CHECK-NEXT: 1 1 0.50 cmn x6, x7
+# CHECK-NEXT: 1 2 1.00 cmn x8, x9, lsl #15
+# CHECK-NEXT: 1 2 1.00 cmn x10, x11, lsl #63
+# CHECK-NEXT: 1 2 1.00 cmn x12, x13, lsr #0
+# CHECK-NEXT: 1 2 1.00 cmn x14, x15, lsr #41
+# CHECK-NEXT: 1 2 1.00 cmn x16, x17, lsr #63
+# CHECK-NEXT: 1 2 1.00 cmn x18, x19, asr #0
+# CHECK-NEXT: 1 2 1.00 cmn x20, x21, asr #55
+# CHECK-NEXT: 1 2 1.00 cmn x22, x23, asr #63
+# CHECK-NEXT: 1 1 0.50 cmp w0, w3
+# CHECK-NEXT: 1 1 0.50 cmp wzr, w4
+# CHECK-NEXT: 1 1 0.50 cmp w5, wzr
+# CHECK-NEXT: 1 1 0.50 cmp w6, w7
+# CHECK-NEXT: 1 2 1.00 cmp w8, w9, lsl #15
+# CHECK-NEXT: 1 2 1.00 cmp w10, w11, lsl #31
+# CHECK-NEXT: 1 2 1.00 cmp w12, w13, lsr #0
+# CHECK-NEXT: 1 2 1.00 cmp w14, w15, lsr #21
+# CHECK-NEXT: 1 2 1.00 cmp w18, w19, asr #0
+# CHECK-NEXT: 1 2 1.00 cmp w20, w21, asr #22
+# CHECK-NEXT: 1 2 1.00 cmp w22, w23, asr #31
+# CHECK-NEXT: 1 1 0.50 cmp x0, x3
+# CHECK-NEXT: 1 1 0.50 cmp xzr, x4
+# CHECK-NEXT: 1 1 0.50 cmp x5, xzr
+# CHECK-NEXT: 1 1 0.50 cmp x6, x7
+# CHECK-NEXT: 1 2 1.00 cmp x8, x9, lsl #15
+# CHECK-NEXT: 1 2 1.00 cmp x10, x11, lsl #63
+# CHECK-NEXT: 1 2 1.00 cmp x12, x13, lsr #0
+# CHECK-NEXT: 1 2 1.00 cmp x14, x15, lsr #41
+# CHECK-NEXT: 1 2 1.00 cmp x16, x17, lsr #63
+# CHECK-NEXT: 1 2 1.00 cmp x18, x19, asr #0
+# CHECK-NEXT: 1 2 1.00 cmp x20, x21, asr #55
+# CHECK-NEXT: 1 2 1.00 cmp x22, x23, asr #63
+# CHECK-NEXT: 1 1 0.50 cmp wzr, w0
+# CHECK-NEXT: 1 1 0.50 cmp xzr, x0
# CHECK-NEXT: 1 1 0.33 adc w29, w27, w25
# CHECK-NEXT: 1 1 0.33 adc wzr, w3, w4
# CHECK-NEXT: 1 1 0.33 adc w9, wzr, w10
@@ -1779,10 +1799,10 @@ br x20
# CHECK-NEXT: 1 1 0.33 clz x26, x4
# CHECK-NEXT: 1 1 0.33 cls w3, w5
# CHECK-NEXT: 1 1 0.33 cls x20, x5
-# CHECK-NEXT: 1 12 1.00 udiv w0, w7, w10
-# CHECK-NEXT: 1 20 1.00 udiv x9, x22, x4
-# CHECK-NEXT: 1 12 1.00 sdiv w12, w21, w0
-# CHECK-NEXT: 1 20 1.00 sdiv x13, x2, x1
+# CHECK-NEXT: 1 12 12.00 udiv w0, w7, w10
+# CHECK-NEXT: 1 20 20.00 udiv x9, x22, x4
+# CHECK-NEXT: 1 12 12.00 sdiv w12, w21, w0
+# CHECK-NEXT: 1 20 20.00 sdiv x13, x2, x1
# CHECK-NEXT: 1 1 0.33 lsl w11, w12, w13
# CHECK-NEXT: 1 1 0.33 lsl x14, x15, x16
# CHECK-NEXT: 1 1 0.33 lsr w17, w18, w19
@@ -1886,7 +1906,7 @@ br x20
# CHECK-NEXT: 1 2 0.50 fmov s0, s1
# CHECK-NEXT: 1 2 0.50 fabs s2, s3
# CHECK-NEXT: 1 2 0.50 fneg s4, s5
-# CHECK-NEXT: 1 17 1.00 fsqrt s6, s7
+# CHECK-NEXT: 1 17 17.00 fsqrt s6, s7
# CHECK-NEXT: 1 3 0.50 fcvt d8, s9
# CHECK-NEXT: 1 3 0.50 fcvt h10, s11
# CHECK-NEXT: 1 3 0.50 frintn s12, s13
@@ -1899,7 +1919,7 @@ br x20
# CHECK-NEXT: 1 2 0.50 fmov d0, d1
# CHECK-NEXT: 1 2 0.50 fabs d2, d3
# CHECK-NEXT: 1 2 0.50 fneg d4, d5
-# CHECK-NEXT: 1 31 1.00 fsqrt d6, d7
+# CHECK-NEXT: 1 31 31.00 fsqrt d6, d7
# CHECK-NEXT: 1 3 0.50 fcvt s8, d9
# CHECK-NEXT: 1 3 0.50 fcvt h10, d11
# CHECK-NEXT: 1 3 0.50 frintn d12, d13
@@ -1912,7 +1932,7 @@ br x20
# CHECK-NEXT: 1 3 0.50 fcvt s26, h27
# CHECK-NEXT: 1 3 0.50 fcvt d28, h29
# CHECK-NEXT: 1 5 0.50 fmul s20, s19, s17
-# CHECK-NEXT: 1 11 1.00 fdiv s1, s2, s3
+# CHECK-NEXT: 1 11 11.00 fdiv s1, s2, s3
# CHECK-NEXT: 1 5 0.50 fadd s4, s5, s6
# CHECK-NEXT: 1 5 0.50 fsub s7, s8, s9
# CHECK-NEXT: 1 2 0.50 fmax s10, s11, s12
@@ -1921,7 +1941,7 @@ br x20
# CHECK-NEXT: 1 2 0.50 fminnm s19, s20, s21
# CHECK-NEXT: 1 5 0.50 fnmul s22, s23, s2
# CHECK-NEXT: 1 5 0.50 fmul d20, d19, d17
-# CHECK-NEXT: 1 18 1.00 fdiv d1, d2, d3
+# CHECK-NEXT: 1 18 18.00 fdiv d1, d2, d3
# CHECK-NEXT: 1 4 0.50 fadd d4, d5, d6
# CHECK-NEXT: 1 4 0.50 fsub d7, d8, d9
# CHECK-NEXT: 1 2 0.50 fmax d10, d11, d12
@@ -2132,22 +2152,22 @@ br x20
# CHECK-NEXT: 2 4 0.50 * * U ldaxp w5, w18, [sp]
# CHECK-NEXT: 2 4 0.50 * * U ldaxp x6, x19, [x22]
# CHECK-NEXT: 2 4 0.50 * * U ldaxp x6, x19, [x22]
-# CHECK-NEXT: 1 1 0.50 * U stlrb w24, [sp]
-# CHECK-NEXT: 1 1 0.50 * U stlrh w25, [x30]
-# CHECK-NEXT: 1 1 0.50 * U stlr w26, [x29]
-# CHECK-NEXT: 1 1 0.50 * U stlr x27, [x28]
-# CHECK-NEXT: 1 1 0.50 * U stlr x27, [x28]
-# CHECK-NEXT: 1 1 0.50 * U stlr x27, [x28]
+# CHECK-NEXT: 1 1 1.00 * U stlrb w24, [sp]
+# CHECK-NEXT: 1 1 1.00 * U stlrh w25, [x30]
+# CHECK-NEXT: 1 1 1.00 * U stlr w26, [x29]
+# CHECK-NEXT: 1 1 1.00 * U stlr x27, [x28]
+# CHECK-NEXT: 1 1 1.00 * U stlr x27, [x28]
+# CHECK-NEXT: 1 1 1.00 * U stlr x27, [x28]
# CHECK-NEXT: 1 4 0.50 * U ldarb w23, [sp]
# CHECK-NEXT: 1 4 0.50 * U ldarh w22, [x30]
# CHECK-NEXT: 1 4 0.50 * U ldar wzr, [x29]
# CHECK-NEXT: 1 4 0.50 * U ldar x21, [x28]
# CHECK-NEXT: 1 4 0.50 * U ldar x21, [x28]
# CHECK-NEXT: 1 4 0.50 * U ldar x21, [x28]
-# CHECK-NEXT: 1 1 0.50 * sturb w9, [sp]
-# CHECK-NEXT: 1 1 0.50 * sturh wzr, [x12, #255]
-# CHECK-NEXT: 1 1 0.50 * stur w16, [x0, #-256]
-# CHECK-NEXT: 1 1 0.50 * stur x28, [x14, #1]
+# CHECK-NEXT: 1 1 1.00 * sturb w9, [sp]
+# CHECK-NEXT: 1 1 1.00 * sturh wzr, [x12, #255]
+# CHECK-NEXT: 1 1 1.00 * stur w16, [x0, #-256]
+# CHECK-NEXT: 1 1 1.00 * stur x28, [x14, #1]
# CHECK-NEXT: 1 4 0.50 * ldurb w1, [x20, #255]
# CHECK-NEXT: 1 4 0.50 * ldurh w20, [x1, #255]
# CHECK-NEXT: 1 4 0.50 * ldur w12, [sp, #255]
@@ -2158,28 +2178,28 @@ br x20
# CHECK-NEXT: 1 4 0.50 U prfum pldl2keep, [sp, #-256]
# CHECK-NEXT: 1 4 0.50 * ldursb w19, [x1, #-256]
# CHECK-NEXT: 1 4 0.50 * ldursh w15, [x21, #-256]
-# CHECK-NEXT: 1 1 0.50 * stur b0, [sp, #1]
-# CHECK-NEXT: 1 1 0.50 * stur h12, [x12, #-1]
-# CHECK-NEXT: 1 1 0.50 * stur s15, [x0, #255]
-# CHECK-NEXT: 1 1 0.50 * stur d31, [x5, #25]
-# CHECK-NEXT: 1 1 0.50 * stur q9, [x5]
+# CHECK-NEXT: 1 1 1.00 * stur b0, [sp, #1]
+# CHECK-NEXT: 1 1 1.00 * stur h12, [x12, #-1]
+# CHECK-NEXT: 1 1 1.00 * stur s15, [x0, #255]
+# CHECK-NEXT: 1 1 1.00 * stur d31, [x5, #25]
+# CHECK-NEXT: 1 1 1.00 * stur q9, [x5]
# CHECK-NEXT: 1 5 0.50 * ldur b3, [sp]
# CHECK-NEXT: 1 5 0.50 * ldur h5, [x4, #-256]
# CHECK-NEXT: 1 5 0.50 * ldur s7, [x12, #-1]
# CHECK-NEXT: 1 5 0.50 * ldur d11, [x19, #4]
# CHECK-NEXT: 1 5 0.50 * ldur q13, [x1, #2]
-# CHECK-NEXT: 2 1 0.50 * strb w9, [x2], #255
-# CHECK-NEXT: 2 1 0.50 * strb w10, [x3], #1
-# CHECK-NEXT: 2 1 0.50 * strb w10, [x3], #-256
-# CHECK-NEXT: 2 1 0.50 * strh w9, [x2], #255
-# CHECK-NEXT: 2 1 0.50 * strh w9, [x2], #1
-# CHECK-NEXT: 2 1 0.50 * strh w10, [x3], #-256
-# CHECK-NEXT: 2 1 0.50 * str w19, [sp], #255
-# CHECK-NEXT: 2 1 0.50 * str w20, [x30], #1
-# CHECK-NEXT: 2 1 0.50 * str w21, [x12], #-256
-# CHECK-NEXT: 2 1 0.50 * str xzr, [x9], #255
-# CHECK-NEXT: 2 1 0.50 * str x2, [x3], #1
-# CHECK-NEXT: 2 1 0.50 * str x19, [x12], #-256
+# CHECK-NEXT: 2 1 1.00 * strb w9, [x2], #255
+# CHECK-NEXT: 2 1 1.00 * strb w10, [x3], #1
+# CHECK-NEXT: 2 1 1.00 * strb w10, [x3], #-256
+# CHECK-NEXT: 2 1 1.00 * strh w9, [x2], #255
+# CHECK-NEXT: 2 1 1.00 * strh w9, [x2], #1
+# CHECK-NEXT: 2 1 1.00 * strh w10, [x3], #-256
+# CHECK-NEXT: 2 1 1.00 * str w19, [sp], #255
+# CHECK-NEXT: 2 1 1.00 * str w20, [x30], #1
+# CHECK-NEXT: 2 1 1.00 * str w21, [x12], #-256
+# CHECK-NEXT: 2 1 1.00 * str xzr, [x9], #255
+# CHECK-NEXT: 2 1 1.00 * str x2, [x3], #1
+# CHECK-NEXT: 2 1 1.00 * str x19, [x12], #-256
# CHECK-NEXT: 2 4 0.50 * ldrb w9, [x2], #255
# CHECK-NEXT: 2 4 0.50 * ldrb w10, [x3], #1
# CHECK-NEXT: 2 4 0.50 * ldrb w10, [x3], #-256
@@ -2207,18 +2227,18 @@ br x20
# CHECK-NEXT: 2 4 0.50 * ldrsh wzr, [x9], #255
# CHECK-NEXT: 2 4 0.50 * ldrsh w2, [x3], #1
# CHECK-NEXT: 2 4 0.50 * ldrsh w19, [x12], #-256
-# CHECK-NEXT: 2 1 0.50 * str b0, [x0], #255
-# CHECK-NEXT: 2 1 0.50 * str b3, [x3], #1
-# CHECK-NEXT: 2 1 0.50 * str b5, [sp], #-256
-# CHECK-NEXT: 2 1 0.50 * str h10, [x10], #255
-# CHECK-NEXT: 2 1 0.50 * str h13, [x23], #1
-# CHECK-NEXT: 2 1 0.50 * str h15, [sp], #-256
-# CHECK-NEXT: 2 1 0.50 * str s20, [x20], #255
-# CHECK-NEXT: 2 1 0.50 * str s23, [x23], #1
-# CHECK-NEXT: 2 1 0.50 * str s25, [x0], #-256
-# CHECK-NEXT: 2 1 0.50 * str d20, [x20], #255
-# CHECK-NEXT: 2 1 0.50 * str d23, [x23], #1
-# CHECK-NEXT: 2 1 0.50 * str d25, [x0], #-256
+# CHECK-NEXT: 2 1 1.00 * str b0, [x0], #255
+# CHECK-NEXT: 2 1 1.00 * str b3, [x3], #1
+# CHECK-NEXT: 2 1 1.00 * str b5, [sp], #-256
+# CHECK-NEXT: 2 1 1.00 * str h10, [x10], #255
+# CHECK-NEXT: 2 1 1.00 * str h13, [x23], #1
+# CHECK-NEXT: 2 1 1.00 * str h15, [sp], #-256
+# CHECK-NEXT: 2 1 1.00 * str s20, [x20], #255
+# CHECK-NEXT: 2 1 1.00 * str s23, [x23], #1
+# CHECK-NEXT: 2 1 1.00 * str s25, [x0], #-256
+# CHECK-NEXT: 2 1 1.00 * str d20, [x20], #255
+# CHECK-NEXT: 2 1 1.00 * str d23, [x23], #1
+# CHECK-NEXT: 2 1 1.00 * str d25, [x0], #-256
# CHECK-NEXT: 2 5 0.50 * ldr b0, [x0], #255
# CHECK-NEXT: 2 5 0.50 * ldr b3, [x3], #1
# CHECK-NEXT: 2 5 0.50 * ldr b5, [sp], #-256
@@ -2234,22 +2254,22 @@ br x20
# CHECK-NEXT: 2 5 0.50 * ldr q20, [x1], #255
# CHECK-NEXT: 2 5 0.50 * ldr q23, [x9], #1
# CHECK-NEXT: 2 5 0.50 * ldr q25, [x20], #-256
-# CHECK-NEXT: 2 1 0.50 * str q10, [x1], #255
-# CHECK-NEXT: 2 1 0.50 * str q22, [sp], #1
-# CHECK-NEXT: 2 1 0.50 * str q21, [x20], #-256
+# CHECK-NEXT: 2 1 1.00 * str q10, [x1], #255
+# CHECK-NEXT: 2 1 1.00 * str q22, [sp], #1
+# CHECK-NEXT: 2 1 1.00 * str q21, [x20], #-256
# CHECK-NEXT: 2 4 0.50 * ldr x3, [x4, #0]!
-# CHECK-NEXT: 2 1 0.50 * strb w9, [x2, #255]!
-# CHECK-NEXT: 2 1 0.50 * strb w10, [x3, #1]!
-# CHECK-NEXT: 2 1 0.50 * strb w10, [x3, #-256]!
-# CHECK-NEXT: 2 1 0.50 * strh w9, [x2, #255]!
-# CHECK-NEXT: 2 1 0.50 * strh w9, [x2, #1]!
-# CHECK-NEXT: 2 1 0.50 * strh w10, [x3, #-256]!
-# CHECK-NEXT: 2 1 0.50 * str w19, [sp, #255]!
-# CHECK-NEXT: 2 1 0.50 * str w20, [x30, #1]!
-# CHECK-NEXT: 2 1 0.50 * str w21, [x12, #-256]!
-# CHECK-NEXT: 2 1 0.50 * str xzr, [x9, #255]!
-# CHECK-NEXT: 2 1 0.50 * str x2, [x3, #1]!
-# CHECK-NEXT: 2 1 0.50 * str x19, [x12, #-256]!
+# CHECK-NEXT: 2 1 1.00 * strb w9, [x2, #255]!
+# CHECK-NEXT: 2 1 1.00 * strb w10, [x3, #1]!
+# CHECK-NEXT: 2 1 1.00 * strb w10, [x3, #-256]!
+# CHECK-NEXT: 2 1 1.00 * strh w9, [x2, #255]!
+# CHECK-NEXT: 2 1 1.00 * strh w9, [x2, #1]!
+# CHECK-NEXT: 2 1 1.00 * strh w10, [x3, #-256]!
+# CHECK-NEXT: 2 1 1.00 * str w19, [sp, #255]!
+# CHECK-NEXT: 2 1 1.00 * str w20, [x30, #1]!
+# CHECK-NEXT: 2 1 1.00 * str w21, [x12, #-256]!
+# CHECK-NEXT: 2 1 1.00 * str xzr, [x9, #255]!
+# CHECK-NEXT: 2 1 1.00 * str x2, [x3, #1]!
+# CHECK-NEXT: 2 1 1.00 * str x19, [x12, #-256]!
# CHECK-NEXT: 2 4 0.50 * ldrb w9, [x2, #255]!
# CHECK-NEXT: 2 4 0.50 * ldrb w10, [x3, #1]!
# CHECK-NEXT: 2 4 0.50 * ldrb w10, [x3, #-256]!
@@ -2277,18 +2297,18 @@ br x20
# CHECK-NEXT: 2 4 0.50 * ldrsh wzr, [x9, #255]!
# CHECK-NEXT: 2 4 0.50 * ldrsh w2, [x3, #1]!
# CHECK-NEXT: 2 4 0.50 * ldrsh w19, [x12, #-256]!
-# CHECK-NEXT: 2 1 0.50 * str b0, [x0, #255]!
-# CHECK-NEXT: 2 1 0.50 * str b3, [x3, #1]!
-# CHECK-NEXT: 2 1 0.50 * str b5, [sp, #-256]!
-# CHECK-NEXT: 2 1 0.50 * str h10, [x10, #255]!
-# CHECK-NEXT: 2 1 0.50 * str h13, [x23, #1]!
-# CHECK-NEXT: 2 1 0.50 * str h15, [sp, #-256]!
-# CHECK-NEXT: 2 1 0.50 * str s20, [x20, #255]!
-# CHECK-NEXT: 2 1 0.50 * str s23, [x23, #1]!
-# CHECK-NEXT: 2 1 0.50 * str s25, [x0, #-256]!
-# CHECK-NEXT: 2 1 0.50 * str d20, [x20, #255]!
-# CHECK-NEXT: 2 1 0.50 * str d23, [x23, #1]!
-# CHECK-NEXT: 2 1 0.50 * str d25, [x0, #-256]!
+# CHECK-NEXT: 2 1 1.00 * str b0, [x0, #255]!
+# CHECK-NEXT: 2 1 1.00 * str b3, [x3, #1]!
+# CHECK-NEXT: 2 1 1.00 * str b5, [sp, #-256]!
+# CHECK-NEXT: 2 1 1.00 * str h10, [x10, #255]!
+# CHECK-NEXT: 2 1 1.00 * str h13, [x23, #1]!
+# CHECK-NEXT: 2 1 1.00 * str h15, [sp, #-256]!
+# CHECK-NEXT: 2 1 1.00 * str s20, [x20, #255]!
+# CHECK-NEXT: 2 1 1.00 * str s23, [x23, #1]!
+# CHECK-NEXT: 2 1 1.00 * str s25, [x0, #-256]!
+# CHECK-NEXT: 2 1 1.00 * str d20, [x20, #255]!
+# CHECK-NEXT: 2 1 1.00 * str d23, [x23, #1]!
+# CHECK-NEXT: 2 1 1.00 * str d25, [x0, #-256]!
# CHECK-NEXT: 2 5 0.50 * ldr b0, [x0, #255]!
# CHECK-NEXT: 2 5 0.50 * ldr b3, [x3, #1]!
# CHECK-NEXT: 2 5 0.50 * ldr b5, [sp, #-256]!
@@ -2304,13 +2324,13 @@ br x20
# CHECK-NEXT: 2 5 0.50 * ldr q20, [x1, #255]!
# CHECK-NEXT: 2 5 0.50 * ldr q23, [x9, #1]!
# CHECK-NEXT: 2 5 0.50 * ldr q25, [x20, #-256]!
-# CHECK-NEXT: 2 1 0.50 * str q10, [x1, #255]!
-# CHECK-NEXT: 2 1 0.50 * str q22, [sp, #1]!
-# CHECK-NEXT: 2 1 0.50 * str q21, [x20, #-256]!
-# CHECK-NEXT: 1 1 0.50 * sttrb w9, [sp]
-# CHECK-NEXT: 1 1 0.50 * sttrh wzr, [x12, #255]
-# CHECK-NEXT: 1 1 0.50 * sttr w16, [x0, #-256]
-# CHECK-NEXT: 1 1 0.50 * sttr x28, [x14, #1]
+# CHECK-NEXT: 2 1 1.00 * str q10, [x1, #255]!
+# CHECK-NEXT: 2 1 1.00 * str q22, [sp, #1]!
+# CHECK-NEXT: 2 1 1.00 * str q21, [x20, #-256]!
+# CHECK-NEXT: 1 1 1.00 * sttrb w9, [sp]
+# CHECK-NEXT: 1 1 1.00 * sttrh wzr, [x12, #255]
+# CHECK-NEXT: 1 1 1.00 * sttr w16, [x0, #-256]
+# CHECK-NEXT: 1 1 1.00 * sttr x28, [x14, #1]
# CHECK-NEXT: 1 4 0.50 * ldtrb w1, [x20, #255]
# CHECK-NEXT: 1 4 0.50 * ldtrh w20, [x1, #255]
# CHECK-NEXT: 1 4 0.50 * ldtr w12, [sp, #255]
@@ -2337,21 +2357,21 @@ br x20
# CHECK-NEXT: 1 4 0.50 * ldrb w12, [x2]
# CHECK-NEXT: 1 4 0.50 * ldrsb w27, [sp, #4095]
# CHECK-NEXT: 1 4 0.50 * ldrsb xzr, [x15]
-# CHECK-NEXT: 1 1 0.50 * str x30, [sp]
-# CHECK-NEXT: 1 1 0.50 * str w20, [x4, #16380]
-# CHECK-NEXT: 1 1 0.50 * strh w17, [sp, #8190]
-# CHECK-NEXT: 1 1 0.50 * strb w23, [x3, #4095]
-# CHECK-NEXT: 1 1 0.50 * strb wzr, [x2]
+# CHECK-NEXT: 1 1 1.00 * str x30, [sp]
+# CHECK-NEXT: 1 1 1.00 * str w20, [x4, #16380]
+# CHECK-NEXT: 1 1 1.00 * strh w17, [sp, #8190]
+# CHECK-NEXT: 1 1 1.00 * strb w23, [x3, #4095]
+# CHECK-NEXT: 1 1 1.00 * strb wzr, [x2]
# CHECK-NEXT: 1 5 0.50 * ldr b31, [sp, #4095]
# CHECK-NEXT: 1 5 0.50 * ldr h20, [x2, #8190]
# CHECK-NEXT: 1 5 0.50 * ldr s10, [x19, #16380]
# CHECK-NEXT: 1 5 0.50 * ldr d3, [x10, #32760]
-# CHECK-NEXT: 1 1 0.50 * str q12, [sp, #65520]
+# CHECK-NEXT: 1 1 1.00 * str q12, [sp, #65520]
# CHECK-NEXT: 1 4 0.50 * ldrb w3, [sp, x5]
# CHECK-NEXT: 1 4 0.50 * ldrb w9, [x27, x6]
# CHECK-NEXT: 1 4 0.50 * ldrsb w10, [x30, x7]
# CHECK-NEXT: 1 4 0.50 * ldrb w11, [x29, x3, sxtx]
-# CHECK-NEXT: 2 1 0.50 * strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: 2 1 1.00 * strb w12, [x28, xzr, sxtx]
# CHECK-NEXT: 1 4 0.50 * ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldrb w17, [x23, w9, sxtw]
@@ -2359,7 +2379,7 @@ br x20
# CHECK-NEXT: 1 4 0.50 * ldrsh w3, [sp, x5]
# CHECK-NEXT: 1 4 0.50 * ldrsh w9, [x27, x6]
# CHECK-NEXT: 1 4 0.50 * ldrh w10, [x30, x7, lsl #1]
-# CHECK-NEXT: 2 1 0.50 * strh w11, [x29, x3, sxtx]
+# CHECK-NEXT: 2 1 1.00 * strh w11, [x29, x3, sxtx]
# CHECK-NEXT: 1 4 0.50 * ldrh w12, [x28, xzr, sxtx]
# CHECK-NEXT: 1 4 0.50 * ldrsh x13, [x27, x5, sxtx #1]
# CHECK-NEXT: 1 4 0.50 * ldrh w14, [x26, w6, uxtw]
@@ -2367,23 +2387,23 @@ br x20
# CHECK-NEXT: 1 4 0.50 * ldrsh w16, [x24, w8, uxtw #1]
# CHECK-NEXT: 1 4 0.50 * ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.50 * ldrh w18, [x22, w10, sxtw]
-# CHECK-NEXT: 2 1 0.50 * strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 2 1 1.00 * strh w19, [x21, wzr, sxtw #1]
# CHECK-NEXT: 1 4 0.50 * ldr w3, [sp, x5]
# CHECK-NEXT: 2 6 0.50 * ldr s9, [x27, x6]
# CHECK-NEXT: 1 4 0.50 * ldr w10, [x30, x7, lsl #2]
# CHECK-NEXT: 1 4 0.50 * ldr w11, [x29, x3, sxtx]
-# CHECK-NEXT: 2 2 0.50 * str s12, [x28, xzr, sxtx]
-# CHECK-NEXT: 2 1 0.50 * str w13, [x27, x5, sxtx #2]
-# CHECK-NEXT: 2 1 0.50 * str w14, [x26, w6, uxtw]
+# CHECK-NEXT: 2 2 1.00 * str s12, [x28, xzr, sxtx]
+# CHECK-NEXT: 2 1 1.00 * str w13, [x27, x5, sxtx #2]
+# CHECK-NEXT: 2 1 1.00 * str w14, [x26, w6, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldr w15, [x25, w7, uxtw]
# CHECK-NEXT: 1 4 0.50 * ldr w16, [x24, w8, uxtw #2]
# CHECK-NEXT: 1 4 0.50 * ldrsw x17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.50 * ldr w18, [x22, w10, sxtw]
# CHECK-NEXT: 1 4 0.50 * ldrsw x19, [x21, wzr, sxtw #2]
# CHECK-NEXT: 1 4 0.50 * ldr x3, [sp, x5]
-# CHECK-NEXT: 2 1 0.50 * str x9, [x27, x6]
+# CHECK-NEXT: 2 1 1.00 * str x9, [x27, x6]
# CHECK-NEXT: 2 6 0.50 * ldr d10, [x30, x7, lsl #3]
-# CHECK-NEXT: 2 1 0.50 * str x11, [x29, x3, sxtx]
+# CHECK-NEXT: 2 1 1.00 * str x11, [x29, x3, sxtx]
# CHECK-NEXT: 1 4 0.50 * ldr x12, [x28, xzr, sxtx]
# CHECK-NEXT: 1 4 0.50 * ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: 1 4 0.50 U prfm pldl1keep, [x26, w6, uxtw]
@@ -2391,21 +2411,21 @@ br x20
# CHECK-NEXT: 1 4 0.50 * ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: 1 4 0.50 * ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: 1 4 0.50 * ldr x18, [x22, w10, sxtw]
-# CHECK-NEXT: 2 2 0.50 * str d19, [x21, wzr, sxtw #3]
+# CHECK-NEXT: 2 2 1.00 * str d19, [x21, wzr, sxtw #3]
# CHECK-NEXT: 2 6 0.50 * ldr q3, [sp, x5]
# CHECK-NEXT: 2 6 0.50 * ldr q9, [x27, x6]
# CHECK-NEXT: 2 6 0.50 * ldr q10, [x30, x7, lsl #4]
-# CHECK-NEXT: 2 2 0.50 * str q11, [x29, x3, sxtx]
-# CHECK-NEXT: 2 2 0.50 * str q12, [x28, xzr, sxtx]
-# CHECK-NEXT: 2 2 0.50 * str q13, [x27, x5, sxtx #4]
+# CHECK-NEXT: 2 2 1.00 * str q11, [x29, x3, sxtx]
+# CHECK-NEXT: 2 2 1.00 * str q12, [x28, xzr, sxtx]
+# CHECK-NEXT: 2 2 1.00 * str q13, [x27, x5, sxtx #4]
# CHECK-NEXT: 2 6 0.50 * ldr q14, [x26, w6, uxtw]
# CHECK-NEXT: 2 6 0.50 * ldr q15, [x25, w7, uxtw]
# CHECK-NEXT: 2 6 0.50 * ldr q16, [x24, w8, uxtw #4]
# CHECK-NEXT: 2 6 0.50 * ldr q17, [x23, w9, sxtw]
-# CHECK-NEXT: 2 2 0.50 * str q18, [x22, w10, sxtw]
+# CHECK-NEXT: 2 2 1.00 * str q18, [x22, w10, sxtw]
# CHECK-NEXT: 2 6 0.50 * ldr q19, [x21, wzr, sxtw #4]
# CHECK-NEXT: 2 4 0.50 * ldp w3, w5, [sp]
-# CHECK-NEXT: 1 1 0.50 * stp wzr, w9, [sp, #252]
+# CHECK-NEXT: 1 1 1.00 * stp wzr, w9, [sp, #252]
# CHECK-NEXT: 2 4 0.50 * ldp w2, wzr, [sp, #-256]
# CHECK-NEXT: 2 4 0.50 * ldp w9, w10, [sp, #4]
# CHECK-NEXT: 2 4 0.50 * ldpsw x9, x10, [sp, #4]
@@ -2415,16 +2435,16 @@ br x20
# CHECK-NEXT: 2 4 0.50 * ldp x22, x23, [x3, #-512]
# CHECK-NEXT: 2 4 0.50 * ldp x24, x25, [x4, #8]
# CHECK-NEXT: 2 5 0.50 * ldp s29, s28, [sp, #252]
-# CHECK-NEXT: 2 2 1.00 * stp s27, s26, [sp, #-256]
+# CHECK-NEXT: 2 2 2.00 * stp s27, s26, [sp, #-256]
# CHECK-NEXT: 2 5 0.50 * ldp s1, s2, [x3, #44]
-# CHECK-NEXT: 2 2 1.00 * stp d3, d5, [x9, #504]
-# CHECK-NEXT: 2 2 1.00 * stp d7, d11, [x10, #-512]
+# CHECK-NEXT: 2 2 2.00 * stp d3, d5, [x9, #504]
+# CHECK-NEXT: 2 2 2.00 * stp d7, d11, [x10, #-512]
# CHECK-NEXT: 2 5 0.50 * ldp d2, d3, [x30, #-8]
-# CHECK-NEXT: 2 2 1.00 * stp q3, q5, [sp]
-# CHECK-NEXT: 2 2 1.00 * stp q17, q19, [sp, #1008]
+# CHECK-NEXT: 2 2 2.00 * stp q3, q5, [sp]
+# CHECK-NEXT: 2 2 2.00 * stp q17, q19, [sp, #1008]
# CHECK-NEXT: 2 5 0.50 * ldp q23, q29, [x1, #-1024]
# CHECK-NEXT: 4 4 0.67 * ldp w3, w5, [sp], #0
-# CHECK-NEXT: 2 1 0.50 * stp wzr, w9, [sp], #252
+# CHECK-NEXT: 2 1 1.00 * stp wzr, w9, [sp], #252
# CHECK-NEXT: 4 4 0.67 * ldp w2, wzr, [sp], #-256
# CHECK-NEXT: 4 4 0.67 * ldp w9, w10, [sp], #4
# CHECK-NEXT: 3 4 0.50 * ldpsw x9, x10, [sp], #4
@@ -2434,16 +2454,16 @@ br x20
# CHECK-NEXT: 4 4 0.67 * ldp x22, x23, [x3], #-512
# CHECK-NEXT: 4 4 0.67 * ldp x24, x25, [x4], #8
# CHECK-NEXT: 3 5 0.50 * ldp s29, s28, [sp], #252
-# CHECK-NEXT: 3 2 1.00 * stp s27, s26, [sp], #-256
+# CHECK-NEXT: 3 2 2.00 * stp s27, s26, [sp], #-256
# CHECK-NEXT: 3 5 0.50 * ldp s1, s2, [x3], #44
-# CHECK-NEXT: 3 2 1.00 * stp d3, d5, [x9], #504
-# CHECK-NEXT: 3 2 1.00 * stp d7, d11, [x10], #-512
+# CHECK-NEXT: 3 2 2.00 * stp d3, d5, [x9], #504
+# CHECK-NEXT: 3 2 2.00 * stp d7, d11, [x10], #-512
# CHECK-NEXT: 3 5 0.50 * ldp d2, d3, [x30], #-8
-# CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp], #0
-# CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp], #1008
+# CHECK-NEXT: 3 2 2.00 * stp q3, q5, [sp], #0
+# CHECK-NEXT: 3 2 2.00 * stp q17, q19, [sp], #1008
# CHECK-NEXT: 3 5 0.50 * ldp q23, q29, [x1], #-1024
# CHECK-NEXT: 4 4 0.67 * ldp w3, w5, [sp, #0]!
-# CHECK-NEXT: 2 1 0.50 * stp wzr, w9, [sp, #252]!
+# CHECK-NEXT: 2 1 1.00 * stp wzr, w9, [sp, #252]!
# CHECK-NEXT: 4 4 0.67 * ldp w2, wzr, [sp, #-256]!
# CHECK-NEXT: 4 4 0.67 * ldp w9, w10, [sp, #4]!
# CHECK-NEXT: 3 4 0.50 * ldpsw x9, x10, [sp, #4]!
@@ -2453,60 +2473,60 @@ br x20
# CHECK-NEXT: 4 4 0.67 * ldp x22, x23, [x3, #-512]!
# CHECK-NEXT: 4 4 0.67 * ldp x24, x25, [x4, #8]!
# CHECK-NEXT: 3 5 0.50 * ldp s29, s28, [sp, #252]!
-# CHECK-NEXT: 3 2 1.00 * stp s27, s26, [sp, #-256]!
+# CHECK-NEXT: 3 2 2.00 * stp s27, s26, [sp, #-256]!
# CHECK-NEXT: 3 5 0.50 * ldp s1, s2, [x3, #44]!
-# CHECK-NEXT: 3 2 1.00 * stp d3, d5, [x9, #504]!
-# CHECK-NEXT: 3 2 1.00 * stp d7, d11, [x10, #-512]!
+# CHECK-NEXT: 3 2 2.00 * stp d3, d5, [x9, #504]!
+# CHECK-NEXT: 3 2 2.00 * stp d7, d11, [x10, #-512]!
# CHECK-NEXT: 3 5 0.50 * ldp d2, d3, [x30, #-8]!
-# CHECK-NEXT: 3 2 1.00 * stp q3, q5, [sp, #0]!
-# CHECK-NEXT: 3 2 1.00 * stp q17, q19, [sp, #1008]!
+# CHECK-NEXT: 3 2 2.00 * stp q3, q5, [sp, #0]!
+# CHECK-NEXT: 3 2 2.00 * stp q17, q19, [sp, #1008]!
# CHECK-NEXT: 3 5 0.50 * ldp q23, q29, [x1, #-1024]!
# CHECK-NEXT: 2 4 0.50 * ldnp w3, w5, [sp]
-# CHECK-NEXT: 1 1 0.50 * stnp wzr, w9, [sp, #252]
+# CHECK-NEXT: 1 1 1.00 * stnp wzr, w9, [sp, #252]
# CHECK-NEXT: 2 4 0.50 * ldnp w2, wzr, [sp, #-256]
# CHECK-NEXT: 2 4 0.50 * ldnp w9, w10, [sp, #4]
# CHECK-NEXT: 2 4 0.50 * ldnp x21, x29, [x2, #504]
# CHECK-NEXT: 2 4 0.50 * ldnp x22, x23, [x3, #-512]
# CHECK-NEXT: 2 4 0.50 * ldnp x24, x25, [x4, #8]
# CHECK-NEXT: 2 5 0.50 * ldnp s29, s28, [sp, #252]
-# CHECK-NEXT: 2 2 1.00 * stnp s27, s26, [sp, #-256]
+# CHECK-NEXT: 2 2 2.00 * stnp s27, s26, [sp, #-256]
# CHECK-NEXT: 2 5 0.50 * ldnp s1, s2, [x3, #44]
-# CHECK-NEXT: 2 2 1.00 * stnp d3, d5, [x9, #504]
-# CHECK-NEXT: 2 2 1.00 * stnp d7, d11, [x10, #-512]
+# CHECK-NEXT: 2 2 2.00 * stnp d3, d5, [x9, #504]
+# CHECK-NEXT: 2 2 2.00 * stnp d7, d11, [x10, #-512]
# CHECK-NEXT: 2 5 0.50 * ldnp d2, d3, [x30, #-8]
-# CHECK-NEXT: 2 2 1.00 * stnp q3, q5, [sp]
-# CHECK-NEXT: 2 2 1.00 * stnp q17, q19, [sp, #1008]
+# CHECK-NEXT: 2 2 2.00 * stnp q3, q5, [sp]
+# CHECK-NEXT: 2 2 2.00 * stnp q17, q19, [sp, #1008]
# CHECK-NEXT: 2 5 0.50 * ldnp q23, q29, [x1, #-1024]
# CHECK-NEXT: 1 1 0.33 mov w3, #983055
# CHECK-NEXT: 1 1 0.33 mov x10, #-6148914691236517206
-# CHECK-NEXT: 1 2 1.00 and w12, w23, w21
+# CHECK-NEXT: 1 1 0.33 and w12, w23, w21
# CHECK-NEXT: 1 2 1.00 and w16, w15, w1, lsl #1
# CHECK-NEXT: 1 2 1.00 and w9, w4, w10, lsl #31
-# CHECK-NEXT: 1 2 1.00 and w3, w30, w11
+# CHECK-NEXT: 1 1 0.33 and w3, w30, w11
# CHECK-NEXT: 1 2 1.00 and x3, x5, x7, lsl #63
# CHECK-NEXT: 1 2 1.00 and x5, x14, x19, asr #4
# CHECK-NEXT: 1 2 1.00 and w3, w17, w19, ror #31
# CHECK-NEXT: 1 2 1.00 and w0, w2, wzr, lsr #17
# CHECK-NEXT: 1 2 1.00 and w3, w30, w11, asr #2
-# CHECK-NEXT: 1 2 1.00 and xzr, x4, x26
+# CHECK-NEXT: 1 1 0.33 and xzr, x4, x26
# CHECK-NEXT: 1 2 1.00 and w3, wzr, w20, ror #2
# CHECK-NEXT: 1 2 1.00 and x7, x20, xzr, asr #63
# CHECK-NEXT: 1 2 1.00 bic x13, x20, x14, lsl #47
-# CHECK-NEXT: 1 2 1.00 bic w2, w7, w9
+# CHECK-NEXT: 1 1 0.33 bic w2, w7, w9
# CHECK-NEXT: 1 2 1.00 orr w2, w7, w0, asr #31
# CHECK-NEXT: 1 2 1.00 orr x8, x9, x10, lsl #12
# CHECK-NEXT: 1 2 1.00 orn x3, x5, x7, asr #2
-# CHECK-NEXT: 1 2 1.00 orn w2, w5, w29
-# CHECK-NEXT: 1 2 0.50 ands w7, wzr, w9, lsl #1
-# CHECK-NEXT: 1 2 0.50 ands x3, x5, x20, ror #63
-# CHECK-NEXT: 1 2 0.50 bics w3, w5, w7
-# CHECK-NEXT: 1 2 0.50 bics x3, xzr, x3, lsl #1
-# CHECK-NEXT: 1 2 0.50 tst w3, w7, lsl #31
-# CHECK-NEXT: 1 2 0.50 tst x2, x20, asr #2
-# CHECK-NEXT: 1 2 1.00 mov x3, x6
-# CHECK-NEXT: 1 2 1.00 mov x3, xzr
-# CHECK-NEXT: 1 2 1.00 mov wzr, w2
-# CHECK-NEXT: 1 2 1.00 mov w3, w5
+# CHECK-NEXT: 1 1 0.33 orn w2, w5, w29
+# CHECK-NEXT: 1 2 1.00 ands w7, wzr, w9, lsl #1
+# CHECK-NEXT: 1 2 1.00 ands x3, x5, x20, ror #63
+# CHECK-NEXT: 1 1 0.50 bics w3, w5, w7
+# CHECK-NEXT: 1 2 1.00 bics x3, xzr, x3, lsl #1
+# CHECK-NEXT: 1 2 1.00 tst w3, w7, lsl #31
+# CHECK-NEXT: 1 2 1.00 tst x2, x20, asr #2
+# CHECK-NEXT: 1 1 0.33 mov x3, x6
+# CHECK-NEXT: 1 1 0.33 mov x3, xzr
+# CHECK-NEXT: 1 1 0.33 mov wzr, w2
+# CHECK-NEXT: 1 1 0.33 mov w3, w5
# CHECK-NEXT: 1 1 0.33 movz w2, #0, lsl #16
# CHECK-NEXT: 1 1 0.33 mov w2, #-1235
# CHECK-NEXT: 1 1 0.33 mov x2, #5299989643264
@@ -2536,16 +2556,16 @@ br x20
# CHECK-NEXT: [1] - TSV110UnitALU
# CHECK-NEXT: [2] - TSV110UnitFSU1
# CHECK-NEXT: [3] - TSV110UnitFSU2
-# CHECK-NEXT: [4.0] - TSV110UnitLdSt
-# CHECK-NEXT: [4.1] - TSV110UnitLdSt
-# CHECK-NEXT: [5] - TSV110UnitMDU
+# CHECK-NEXT: [4] - TSV110UnitLd0St
+# CHECK-NEXT: [5] - TSV110UnitLd1
+# CHECK-NEXT: [6] - TSV110UnitMDU
# CHECK: Resource pressure per iteration:
-# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4.0] [4.1] [5]
-# CHECK-NEXT: 236.83 236.83 180.33 141.50 95.50 207.50 207.50 127.00
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6]
+# CHECK-NEXT: 281.83 281.83 189.33 168.50 141.50 281.50 133.50 168.00
# CHECK: Resource pressure by instruction:
-# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4.0] [4.1] [5] Instructions:
+# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add w2, w3, #4095
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add w30, w29, #1, lsl #12
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add w13, w5, #4095, lsl #12
@@ -2575,11 +2595,11 @@ br x20
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov wsp, w20
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov x11, sp
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov w24, wsp
-# CHECK-NEXT: - - - - - - - 1.00 add w3, w5, w7
-# CHECK-NEXT: - - - - - - - 1.00 add wzr, w3, w5
-# CHECK-NEXT: - - - - - - - 1.00 add w20, wzr, w4
-# CHECK-NEXT: - - - - - - - 1.00 add w4, w6, wzr
-# CHECK-NEXT: - - - - - - - 1.00 add w11, w13, w15
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add w3, w5, w7
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add wzr, w3, w5
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add w20, wzr, w4
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add w4, w6, wzr
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add w11, w13, w15
# CHECK-NEXT: - - - - - - - 1.00 add w9, w3, wzr, lsl #10
# CHECK-NEXT: - - - - - - - 1.00 add w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 1.00 add w21, w22, w23, lsr #0
@@ -2588,11 +2608,11 @@ br x20
# CHECK-NEXT: - - - - - - - 1.00 add w2, w3, w4, asr #0
# CHECK-NEXT: - - - - - - - 1.00 add w5, w6, w7, asr #21
# CHECK-NEXT: - - - - - - - 1.00 add w8, w9, w10, asr #31
-# CHECK-NEXT: - - - - - - - 1.00 add x3, x5, x7
-# CHECK-NEXT: - - - - - - - 1.00 add xzr, x3, x5
-# CHECK-NEXT: - - - - - - - 1.00 add x20, xzr, x4
-# CHECK-NEXT: - - - - - - - 1.00 add x4, x6, xzr
-# CHECK-NEXT: - - - - - - - 1.00 add x11, x13, x15
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add x3, x5, x7
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add xzr, x3, x5
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add x20, xzr, x4
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add x4, x6, xzr
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - add x11, x13, x15
# CHECK-NEXT: - - - - - - - 1.00 add x9, x3, xzr, lsl #10
# CHECK-NEXT: - - - - - - - 1.00 add x17, x29, x20, lsl #63
# CHECK-NEXT: - - - - - - - 1.00 add x21, x22, x23, lsr #0
@@ -2601,36 +2621,46 @@ br x20
# CHECK-NEXT: - - - - - - - 1.00 add x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - - - 1.00 add x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - 1.00 add x8, x9, x10, asr #63
+# CHECK-NEXT: - - - - - - - 1.00 add x1, x4, w5, uxtb #4
+# CHECK-NEXT: - - - - - - - 1.00 add x2, x2, w2, uxth #3
+# CHECK-NEXT: - - - - - - - 1.00 add x9, x10, w11, uxtw #1
+# CHECK-NEXT: - - - - - - - 1.00 add x18, x19, x20, uxtx #4
+# CHECK-NEXT: - - - - - - - 1.00 add x12, x13, w14, sxtb
+# CHECK-NEXT: - - - - - - - 1.00 add x15, x16, w17, sxth #1
+# CHECK-NEXT: - - - - - - - 1.00 add x18, x19, w20, sxtw #2
+# CHECK-NEXT: - - - - - - - 1.00 add x10, x19, x20, sxtx #4
# CHECK-NEXT: 0.50 0.50 - - - - - - adds w3, w5, w7
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w3, w5
# CHECK-NEXT: 0.50 0.50 - - - - - - adds w20, wzr, w4
# CHECK-NEXT: 0.50 0.50 - - - - - - adds w4, w6, wzr
# CHECK-NEXT: 0.50 0.50 - - - - - - adds w11, w13, w15
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds w9, w3, wzr, lsl #10
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds w17, w29, w20, lsl #31
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds w21, w22, w23, lsr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds w24, w25, w26, lsr #18
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds w27, w28, w29, lsr #31
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds w2, w3, w4, asr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds w5, w6, w7, asr #21
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds w8, w9, w10, asr #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds w17, w29, w20, lsl #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds w21, w22, w23, lsr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds w24, w25, w26, lsr #18
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds w27, w28, w29, lsr #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds w2, w3, w4, asr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds w5, w6, w7, asr #21
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds w8, w9, w10, asr #31
# CHECK-NEXT: 0.50 0.50 - - - - - - adds x3, x5, x7
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x3, x5
# CHECK-NEXT: 0.50 0.50 - - - - - - adds x20, xzr, x4
# CHECK-NEXT: 0.50 0.50 - - - - - - adds x4, x6, xzr
# CHECK-NEXT: 0.50 0.50 - - - - - - adds x11, x13, x15
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds x9, x3, xzr, lsl #10
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds x17, x29, x20, lsl #63
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds x21, x22, x23, lsr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds x24, x25, x26, lsr #18
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds x27, x28, x29, lsr #63
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds x2, x3, x4, asr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds x5, x6, x7, asr #21
-# CHECK-NEXT: 0.50 0.50 - - - - - - adds x8, x9, x10, asr #63
-# CHECK-NEXT: - - - - - - - 1.00 sub w3, w5, w7
-# CHECK-NEXT: - - - - - - - 1.00 sub wzr, w3, w5
-# CHECK-NEXT: - - - - - - - 1.00 sub w4, w6, wzr
-# CHECK-NEXT: - - - - - - - 1.00 sub w11, w13, w15
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x9, x3, xzr, lsl #10
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x17, x29, x20, lsl #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x21, x22, x23, lsr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x24, x25, x26, lsr #18
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x27, x28, x29, lsr #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x2, x3, x4, asr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x5, x6, x7, asr #21
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x8, x9, x10, asr #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x21, x22, x23, sxtx
+# CHECK-NEXT: 1.00 1.00 - - - - - - adds x1, x2, x3, uxtx #4
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - sub w3, w5, w7
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - sub wzr, w3, w5
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - sub w4, w6, wzr
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - sub w11, w13, w15
# CHECK-NEXT: - - - - - - - 1.00 sub w9, w3, wzr, lsl #10
# CHECK-NEXT: - - - - - - - 1.00 sub w17, w29, w20, lsl #31
# CHECK-NEXT: - - - - - - - 1.00 sub w21, w22, w23, lsr #0
@@ -2639,10 +2669,10 @@ br x20
# CHECK-NEXT: - - - - - - - 1.00 sub w2, w3, w4, asr #0
# CHECK-NEXT: - - - - - - - 1.00 sub w5, w6, w7, asr #21
# CHECK-NEXT: - - - - - - - 1.00 sub w8, w9, w10, asr #31
-# CHECK-NEXT: - - - - - - - 1.00 sub x3, x5, x7
-# CHECK-NEXT: - - - - - - - 1.00 sub xzr, x3, x5
-# CHECK-NEXT: - - - - - - - 1.00 sub x4, x6, xzr
-# CHECK-NEXT: - - - - - - - 1.00 sub x11, x13, x15
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - sub x3, x5, x7
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - sub xzr, x3, x5
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - sub x4, x6, xzr
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - sub x11, x13, x15
# CHECK-NEXT: - - - - - - - 1.00 sub x9, x3, xzr, lsl #10
# CHECK-NEXT: - - - - - - - 1.00 sub x17, x29, x20, lsl #63
# CHECK-NEXT: - - - - - - - 1.00 sub x21, x22, x23, lsr #0
@@ -2655,72 +2685,72 @@ br x20
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w3, w5
# CHECK-NEXT: 0.50 0.50 - - - - - - subs w4, w6, wzr
# CHECK-NEXT: 0.50 0.50 - - - - - - subs w11, w13, w15
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs w9, w3, wzr, lsl #10
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs w17, w29, w20, lsl #31
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs w21, w22, w23, lsr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs w24, w25, w26, lsr #18
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs w27, w28, w29, lsr #31
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs w2, w3, w4, asr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs w5, w6, w7, asr #21
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs w8, w9, w10, asr #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs w9, w3, wzr, lsl #10
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs w17, w29, w20, lsl #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs w21, w22, w23, lsr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs w24, w25, w26, lsr #18
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs w27, w28, w29, lsr #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs w2, w3, w4, asr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs w5, w6, w7, asr #21
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs w8, w9, w10, asr #31
# CHECK-NEXT: 0.50 0.50 - - - - - - subs x3, x5, x7
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x3, x5
# CHECK-NEXT: 0.50 0.50 - - - - - - subs x4, x6, xzr
# CHECK-NEXT: 0.50 0.50 - - - - - - subs x11, x13, x15
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs x9, x3, xzr, lsl #10
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs x17, x29, x20, lsl #63
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs x21, x22, x23, lsr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs x24, x25, x26, lsr #18
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs x27, x28, x29, lsr #63
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs x2, x3, x4, asr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs x5, x6, x7, asr #21
-# CHECK-NEXT: 0.50 0.50 - - - - - - subs x8, x9, x10, asr #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs x9, x3, xzr, lsl #10
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs x17, x29, x20, lsl #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs x21, x22, x23, lsr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs x24, x25, x26, lsr #18
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs x27, x28, x29, lsr #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs x2, x3, x4, asr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs x5, x6, x7, asr #21
+# CHECK-NEXT: 1.00 1.00 - - - - - - subs x8, x9, x10, asr #63
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn wzr, w4
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w5, wzr
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w6, w7
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w8, w9, lsl #15
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w10, w11, lsl #31
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w12, w13, lsr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w14, w15, lsr #21
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w16, w17, lsr #31
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w18, w19, asr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w20, w21, asr #22
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn w22, w23, asr #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn w8, w9, lsl #15
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn w10, w11, lsl #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn w12, w13, lsr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn w14, w15, lsr #21
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn w16, w17, lsr #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn w18, w19, asr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn w20, w21, asr #22
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn w22, w23, asr #31
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x0, x3
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn xzr, x4
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x5, xzr
# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x6, x7
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x8, x9, lsl #15
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x10, x11, lsl #63
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x12, x13, lsr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x14, x15, lsr #41
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x16, x17, lsr #63
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x18, x19, asr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x20, x21, asr #55
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmn x22, x23, asr #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn x8, x9, lsl #15
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn x10, x11, lsl #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn x12, x13, lsr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn x14, x15, lsr #41
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn x16, x17, lsr #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn x18, x19, asr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn x20, x21, asr #55
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmn x22, x23, asr #63
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w0, w3
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp wzr, w4
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w5, wzr
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w6, w7
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w8, w9, lsl #15
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w10, w11, lsl #31
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w12, w13, lsr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w14, w15, lsr #21
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w18, w19, asr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w20, w21, asr #22
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp w22, w23, asr #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp w8, w9, lsl #15
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp w10, w11, lsl #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp w12, w13, lsr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp w14, w15, lsr #21
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp w18, w19, asr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp w20, w21, asr #22
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp w22, w23, asr #31
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x0, x3
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp xzr, x4
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x5, xzr
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x6, x7
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x8, x9, lsl #15
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x10, x11, lsl #63
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x12, x13, lsr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x14, x15, lsr #41
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x16, x17, lsr #63
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x18, x19, asr #0
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x20, x21, asr #55
-# CHECK-NEXT: 0.50 0.50 - - - - - - cmp x22, x23, asr #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp x8, x9, lsl #15
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp x10, x11, lsl #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp x12, x13, lsr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp x14, x15, lsr #41
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp x16, x17, lsr #63
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp x18, x19, asr #0
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp x20, x21, asr #55
+# CHECK-NEXT: 1.00 1.00 - - - - - - cmp x22, x23, asr #63
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp wzr, w0
# CHECK-NEXT: 0.50 0.50 - - - - - - cmp xzr, x0
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - adc w29, w27, w25
@@ -2953,10 +2983,10 @@ br x20
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - clz x26, x4
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - cls w3, w5
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - cls x20, x5
-# CHECK-NEXT: - - - - - - - 1.00 udiv w0, w7, w10
-# CHECK-NEXT: - - - - - - - 1.00 udiv x9, x22, x4
-# CHECK-NEXT: - - - - - - - 1.00 sdiv w12, w21, w0
-# CHECK-NEXT: - - - - - - - 1.00 sdiv x13, x2, x1
+# CHECK-NEXT: - - - - - - - 12.00 udiv w0, w7, w10
+# CHECK-NEXT: - - - - - - - 20.00 udiv x9, x22, x4
+# CHECK-NEXT: - - - - - - - 12.00 sdiv w12, w21, w0
+# CHECK-NEXT: - - - - - - - 20.00 sdiv x13, x2, x1
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - lsl w11, w12, w13
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - lsl x14, x15, x16
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - lsr w17, w18, w19
@@ -3060,7 +3090,7 @@ br x20
# CHECK-NEXT: - - - 0.50 0.50 - - - fmov s0, s1
# CHECK-NEXT: - - - 0.50 0.50 - - - fabs s2, s3
# CHECK-NEXT: - - - 0.50 0.50 - - - fneg s4, s5
-# CHECK-NEXT: - - - - 1.00 - - - fsqrt s6, s7
+# CHECK-NEXT: - - - - 17.00 - - - fsqrt s6, s7
# CHECK-NEXT: - - - 0.50 0.50 - - - fcvt d8, s9
# CHECK-NEXT: - - - 0.50 0.50 - - - fcvt h10, s11
# CHECK-NEXT: - - - 0.50 0.50 - - - frintn s12, s13
@@ -3073,7 +3103,7 @@ br x20
# CHECK-NEXT: - - - 0.50 0.50 - - - fmov d0, d1
# CHECK-NEXT: - - - 0.50 0.50 - - - fabs d2, d3
# CHECK-NEXT: - - - 0.50 0.50 - - - fneg d4, d5
-# CHECK-NEXT: - - - - 1.00 - - - fsqrt d6, d7
+# CHECK-NEXT: - - - - 31.00 - - - fsqrt d6, d7
# CHECK-NEXT: - - - 0.50 0.50 - - - fcvt s8, d9
# CHECK-NEXT: - - - 0.50 0.50 - - - fcvt h10, d11
# CHECK-NEXT: - - - 0.50 0.50 - - - frintn d12, d13
@@ -3086,7 +3116,7 @@ br x20
# CHECK-NEXT: - - - 0.50 0.50 - - - fcvt s26, h27
# CHECK-NEXT: - - - 0.50 0.50 - - - fcvt d28, h29
# CHECK-NEXT: - - - 0.50 0.50 - - - fmul s20, s19, s17
-# CHECK-NEXT: - - - 1.00 - - - - fdiv s1, s2, s3
+# CHECK-NEXT: - - - 11.00 - - - - fdiv s1, s2, s3
# CHECK-NEXT: - - - 0.50 0.50 - - - fadd s4, s5, s6
# CHECK-NEXT: - - - 0.50 0.50 - - - fsub s7, s8, s9
# CHECK-NEXT: - - - 0.50 0.50 - - - fmax s10, s11, s12
@@ -3095,7 +3125,7 @@ br x20
# CHECK-NEXT: - - - 0.50 0.50 - - - fminnm s19, s20, s21
# CHECK-NEXT: - - - 0.50 0.50 - - - fnmul s22, s23, s2
# CHECK-NEXT: - - - 0.50 0.50 - - - fmul d20, d19, d17
-# CHECK-NEXT: - - - 1.00 - - - - fdiv d1, d2, d3
+# CHECK-NEXT: - - - 18.00 - - - - fdiv d1, d2, d3
# CHECK-NEXT: - - - 0.50 0.50 - - - fadd d4, d5, d6
# CHECK-NEXT: - - - 0.50 0.50 - - - fsub d7, d8, d9
# CHECK-NEXT: - - - 0.50 0.50 - - - fmax d10, d11, d12
@@ -3276,52 +3306,52 @@ br x20
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr q0, #-1048576
# CHECK-NEXT: - - - - - 0.50 0.50 - prfm pldl1strm, #0
# CHECK-NEXT: - - - - - 0.50 0.50 - prfm #22, #0
-# CHECK-NEXT: - - - - - 1.00 1.00 - stxrb w18, w8, [sp]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stxrh w24, w15, [x16]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stxr w5, w6, [x17]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stxr w1, x10, [x21]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stxrb w18, w8, [sp]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stxrh w24, w15, [x16]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stxr w5, w6, [x17]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stxr w1, x10, [x21]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxrb w30, [x0]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxrh w17, [x4]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxr w22, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxr x11, [x29]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxr x11, [x29]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxr x11, [x29]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stxp w12, w11, w10, [sp]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stxp wzr, x27, x9, [x12]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stxp w12, w11, w10, [sp]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stxp wzr, x27, x9, [x12]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxp w0, wzr, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxp x17, x0, [x18]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldxp x17, x0, [x18]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stlxrb w12, w22, [x0]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stlxrh w10, w1, [x1]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stlxr w9, w2, [x2]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stlxr w9, x3, [sp]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stlxrb w12, w22, [x0]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stlxrh w10, w1, [x1]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stlxr w9, w2, [x2]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stlxr w9, x3, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxrb w8, [x4]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxrh w7, [x5]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxr w6, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxr x5, [x6]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxr x5, [x6]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxr x5, [x6]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stlxp w4, w5, w6, [sp]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stlxp wzr, x6, x7, [x1]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stlxp w4, w5, w6, [sp]
+# CHECK-NEXT: - - - - - 1.50 0.50 - stlxp wzr, x6, x7, [x1]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxp w5, w18, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxp x6, x19, [x22]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldaxp x6, x19, [x22]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stlrb w24, [sp]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stlrh w25, [x30]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stlr w26, [x29]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stlr x27, [x28]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stlr x27, [x28]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stlr x27, [x28]
+# CHECK-NEXT: - - - - - 1.00 - - stlrb w24, [sp]
+# CHECK-NEXT: - - - - - 1.00 - - stlrh w25, [x30]
+# CHECK-NEXT: - - - - - 1.00 - - stlr w26, [x29]
+# CHECK-NEXT: - - - - - 1.00 - - stlr x27, [x28]
+# CHECK-NEXT: - - - - - 1.00 - - stlr x27, [x28]
+# CHECK-NEXT: - - - - - 1.00 - - stlr x27, [x28]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldarb w23, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldarh w22, [x30]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldar wzr, [x29]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldar x21, [x28]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldar x21, [x28]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldar x21, [x28]
-# CHECK-NEXT: - - - - - 0.50 0.50 - sturb w9, [sp]
-# CHECK-NEXT: - - - - - 0.50 0.50 - sturh wzr, [x12, #255]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stur w16, [x0, #-256]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stur x28, [x14, #1]
+# CHECK-NEXT: - - - - - 1.00 - - sturb w9, [sp]
+# CHECK-NEXT: - - - - - 1.00 - - sturh wzr, [x12, #255]
+# CHECK-NEXT: - - - - - 1.00 - - stur w16, [x0, #-256]
+# CHECK-NEXT: - - - - - 1.00 - - stur x28, [x14, #1]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldurb w1, [x20, #255]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldurh w20, [x1, #255]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldur w12, [sp, #255]
@@ -3332,28 +3362,28 @@ br x20
# CHECK-NEXT: - - - - - 0.50 0.50 - prfum pldl2keep, [sp, #-256]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldursb w19, [x1, #-256]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldursh w15, [x21, #-256]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stur b0, [sp, #1]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stur h12, [x12, #-1]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stur s15, [x0, #255]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stur d31, [x5, #25]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stur q9, [x5]
+# CHECK-NEXT: - - - - - 1.00 - - stur b0, [sp, #1]
+# CHECK-NEXT: - - - - - 1.00 - - stur h12, [x12, #-1]
+# CHECK-NEXT: - - - - - 1.00 - - stur s15, [x0, #255]
+# CHECK-NEXT: - - - - - 1.00 - - stur d31, [x5, #25]
+# CHECK-NEXT: - - - - - 1.00 - - stur q9, [x5]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldur b3, [sp]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldur h5, [x4, #-256]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldur s7, [x12, #-1]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldur d11, [x19, #4]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldur q13, [x1, #2]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strb w9, [x2], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strb w10, [x3], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strb w10, [x3], #-256
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strh w9, [x2], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strh w9, [x2], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strh w10, [x3], #-256
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str w19, [sp], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str w20, [x30], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str w21, [x12], #-256
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str xzr, [x9], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str x2, [x3], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str x19, [x12], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strb w9, [x2], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strb w10, [x3], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strb w10, [x3], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strh w9, [x2], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strh w9, [x2], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strh w10, [x3], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str w19, [sp], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str w20, [x30], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str w21, [x12], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str xzr, [x9], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str x2, [x3], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str x19, [x12], #-256
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrb w9, [x2], #255
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrb w10, [x3], #1
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrb w10, [x3], #-256
@@ -3381,18 +3411,18 @@ br x20
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrsh wzr, [x9], #255
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrsh w2, [x3], #1
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrsh w19, [x12], #-256
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str b0, [x0], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str b3, [x3], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str b5, [sp], #-256
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str h10, [x10], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str h13, [x23], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str h15, [sp], #-256
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str s20, [x20], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str s23, [x23], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str s25, [x0], #-256
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str d20, [x20], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str d23, [x23], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str d25, [x0], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str b0, [x0], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str b3, [x3], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str b5, [sp], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str h10, [x10], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str h13, [x23], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str h15, [sp], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str s20, [x20], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str s23, [x23], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str s25, [x0], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str d20, [x20], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str d23, [x23], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str d25, [x0], #-256
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr b0, [x0], #255
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr b3, [x3], #1
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr b5, [sp], #-256
@@ -3408,22 +3438,22 @@ br x20
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q20, [x1], #255
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q23, [x9], #1
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q25, [x20], #-256
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q10, [x1], #255
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q22, [sp], #1
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q21, [x20], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q10, [x1], #255
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q22, [sp], #1
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q21, [x20], #-256
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr x3, [x4, #0]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strb w9, [x2, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strb w10, [x3, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strb w10, [x3, #-256]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strh w9, [x2, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strh w9, [x2, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strh w10, [x3, #-256]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str w19, [sp, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str w20, [x30, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str w21, [x12, #-256]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str xzr, [x9, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str x2, [x3, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str x19, [x12, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strb w9, [x2, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strb w10, [x3, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strb w10, [x3, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strh w9, [x2, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strh w9, [x2, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strh w10, [x3, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str w19, [sp, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str w20, [x30, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str w21, [x12, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str xzr, [x9, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str x2, [x3, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str x19, [x12, #-256]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrb w9, [x2, #255]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrb w10, [x3, #1]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrb w10, [x3, #-256]!
@@ -3451,18 +3481,18 @@ br x20
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrsh wzr, [x9, #255]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrsh w2, [x3, #1]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldrsh w19, [x12, #-256]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str b0, [x0, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str b3, [x3, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str b5, [sp, #-256]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str h10, [x10, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str h13, [x23, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str h15, [sp, #-256]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str s20, [x20, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str s23, [x23, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str s25, [x0, #-256]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str d20, [x20, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str d23, [x23, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str d25, [x0, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str b0, [x0, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str b3, [x3, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str b5, [sp, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str h10, [x10, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str h13, [x23, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str h15, [sp, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str s20, [x20, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str s23, [x23, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str s25, [x0, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str d20, [x20, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str d23, [x23, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str d25, [x0, #-256]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr b0, [x0, #255]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr b3, [x3, #1]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr b5, [sp, #-256]!
@@ -3478,13 +3508,13 @@ br x20
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q20, [x1, #255]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q23, [x9, #1]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q25, [x20, #-256]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q10, [x1, #255]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q22, [sp, #1]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q21, [x20, #-256]!
-# CHECK-NEXT: - - - - - 0.50 0.50 - sttrb w9, [sp]
-# CHECK-NEXT: - - - - - 0.50 0.50 - sttrh wzr, [x12, #255]
-# CHECK-NEXT: - - - - - 0.50 0.50 - sttr w16, [x0, #-256]
-# CHECK-NEXT: - - - - - 0.50 0.50 - sttr x28, [x14, #1]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q10, [x1, #255]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q22, [sp, #1]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q21, [x20, #-256]!
+# CHECK-NEXT: - - - - - 1.00 - - sttrb w9, [sp]
+# CHECK-NEXT: - - - - - 1.00 - - sttrh wzr, [x12, #255]
+# CHECK-NEXT: - - - - - 1.00 - - sttr w16, [x0, #-256]
+# CHECK-NEXT: - - - - - 1.00 - - sttr x28, [x14, #1]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldtrb w1, [x20, #255]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldtrh w20, [x1, #255]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldtr w12, [sp, #255]
@@ -3511,21 +3541,21 @@ br x20
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrb w12, [x2]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsb w27, [sp, #4095]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsb xzr, [x15]
-# CHECK-NEXT: - - - - - 0.50 0.50 - str x30, [sp]
-# CHECK-NEXT: - - - - - 0.50 0.50 - str w20, [x4, #16380]
-# CHECK-NEXT: - - - - - 0.50 0.50 - strh w17, [sp, #8190]
-# CHECK-NEXT: - - - - - 0.50 0.50 - strb w23, [x3, #4095]
-# CHECK-NEXT: - - - - - 0.50 0.50 - strb wzr, [x2]
+# CHECK-NEXT: - - - - - 1.00 - - str x30, [sp]
+# CHECK-NEXT: - - - - - 1.00 - - str w20, [x4, #16380]
+# CHECK-NEXT: - - - - - 1.00 - - strh w17, [sp, #8190]
+# CHECK-NEXT: - - - - - 1.00 - - strb w23, [x3, #4095]
+# CHECK-NEXT: - - - - - 1.00 - - strb wzr, [x2]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr b31, [sp, #4095]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr h20, [x2, #8190]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr s10, [x19, #16380]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr d3, [x10, #32760]
-# CHECK-NEXT: - - - - - 0.50 0.50 - str q12, [sp, #65520]
+# CHECK-NEXT: - - - - - 1.00 - - str q12, [sp, #65520]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrb w3, [sp, x5]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrb w9, [x27, x6]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsb w10, [x30, x7]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrb w11, [x29, x3, sxtx]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strb w12, [x28, xzr, sxtx]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strb w12, [x28, xzr, sxtx]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrb w14, [x26, w6, uxtw]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsb w15, [x25, w7, uxtw]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrb w17, [x23, w9, sxtw]
@@ -3533,7 +3563,7 @@ br x20
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsh w3, [sp, x5]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsh w9, [x27, x6]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrh w10, [x30, x7, lsl #1]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strh w11, [x29, x3, sxtx]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strh w11, [x29, x3, sxtx]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrh w12, [x28, xzr, sxtx]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsh x13, [x27, x5, sxtx #1]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrh w14, [x26, w6, uxtw]
@@ -3541,23 +3571,23 @@ br x20
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsh w16, [x24, w8, uxtw #1]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrh w17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrh w18, [x22, w10, sxtw]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - strh w19, [x21, wzr, sxtw #1]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - strh w19, [x21, wzr, sxtw #1]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr w3, [sp, x5]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr s9, [x27, x6]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr w10, [x30, x7, lsl #2]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr w11, [x29, x3, sxtx]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str s12, [x28, xzr, sxtx]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str w13, [x27, x5, sxtx #2]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str w14, [x26, w6, uxtw]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str s12, [x28, xzr, sxtx]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str w13, [x27, x5, sxtx #2]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str w14, [x26, w6, uxtw]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr w15, [x25, w7, uxtw]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr w16, [x24, w8, uxtw #2]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsw x17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr w18, [x22, w10, sxtw]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldrsw x19, [x21, wzr, sxtw #2]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr x3, [sp, x5]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str x9, [x27, x6]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str x9, [x27, x6]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr d10, [x30, x7, lsl #3]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str x11, [x29, x3, sxtx]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str x11, [x29, x3, sxtx]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr x12, [x28, xzr, sxtx]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr x13, [x27, x5, sxtx #3]
# CHECK-NEXT: - - - - - 0.50 0.50 - prfm pldl1keep, [x26, w6, uxtw]
@@ -3565,21 +3595,21 @@ br x20
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr x16, [x24, w8, uxtw #3]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr x17, [x23, w9, sxtw]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldr x18, [x22, w10, sxtw]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str d19, [x21, wzr, sxtw #3]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str d19, [x21, wzr, sxtw #3]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q3, [sp, x5]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q9, [x27, x6]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q10, [x30, x7, lsl #4]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q11, [x29, x3, sxtx]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q12, [x28, xzr, sxtx]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q13, [x27, x5, sxtx #4]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q11, [x29, x3, sxtx]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q12, [x28, xzr, sxtx]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q13, [x27, x5, sxtx #4]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q14, [x26, w6, uxtw]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q15, [x25, w7, uxtw]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q16, [x24, w8, uxtw #4]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q17, [x23, w9, sxtw]
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - str q18, [x22, w10, sxtw]
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - str q18, [x22, w10, sxtw]
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldr q19, [x21, wzr, sxtw #4]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp w3, w5, [sp]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stp wzr, w9, [sp, #252]
+# CHECK-NEXT: - - - - - 1.00 - - stp wzr, w9, [sp, #252]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp w2, wzr, [sp, #-256]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp w9, w10, [sp, #4]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldpsw x9, x10, [sp, #4]
@@ -3589,16 +3619,16 @@ br x20
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp x22, x23, [x3, #-512]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp x24, x25, [x4, #8]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp s29, s28, [sp, #252]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stp s27, s26, [sp, #-256]
+# CHECK-NEXT: - - - - - 2.00 - - stp s27, s26, [sp, #-256]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp s1, s2, [x3, #44]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stp d3, d5, [x9, #504]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stp d7, d11, [x10, #-512]
+# CHECK-NEXT: - - - - - 2.00 - - stp d3, d5, [x9, #504]
+# CHECK-NEXT: - - - - - 2.00 - - stp d7, d11, [x10, #-512]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp d2, d3, [x30, #-8]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stp q3, q5, [sp]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stp q17, q19, [sp, #1008]
+# CHECK-NEXT: - - - - - 2.00 - - stp q3, q5, [sp]
+# CHECK-NEXT: - - - - - 2.00 - - stp q17, q19, [sp, #1008]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldp q23, q29, [x1, #-1024]
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp w3, w5, [sp], #0
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - stp wzr, w9, [sp], #252
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - stp wzr, w9, [sp], #252
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp w2, wzr, [sp], #-256
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp w9, w10, [sp], #4
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldpsw x9, x10, [sp], #4
@@ -3608,16 +3638,16 @@ br x20
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp x22, x23, [x3], #-512
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp x24, x25, [x4], #8
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldp s29, s28, [sp], #252
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp s27, s26, [sp], #-256
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp s27, s26, [sp], #-256
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldp s1, s2, [x3], #44
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp d3, d5, [x9], #504
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp d7, d11, [x10], #-512
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp d3, d5, [x9], #504
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp d7, d11, [x10], #-512
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldp d2, d3, [x30], #-8
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp q3, q5, [sp], #0
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp q17, q19, [sp], #1008
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp q3, q5, [sp], #0
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp q17, q19, [sp], #1008
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldp q23, q29, [x1], #-1024
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp w3, w5, [sp, #0]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - stp wzr, w9, [sp, #252]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 - - stp wzr, w9, [sp, #252]!
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp w2, wzr, [sp, #-256]!
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp w9, w10, [sp, #4]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldpsw x9, x10, [sp, #4]!
@@ -3627,60 +3657,60 @@ br x20
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp x22, x23, [x3, #-512]!
# CHECK-NEXT: 0.67 0.67 0.67 - - 0.50 0.50 - ldp x24, x25, [x4, #8]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldp s29, s28, [sp, #252]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp s27, s26, [sp, #-256]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp s27, s26, [sp, #-256]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldp s1, s2, [x3, #44]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp d3, d5, [x9, #504]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp d7, d11, [x10, #-512]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp d3, d5, [x9, #504]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp d7, d11, [x10, #-512]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldp d2, d3, [x30, #-8]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp q3, q5, [sp, #0]!
-# CHECK-NEXT: 0.33 0.33 0.33 - - 1.00 1.00 - stp q17, q19, [sp, #1008]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp q3, q5, [sp, #0]!
+# CHECK-NEXT: 0.33 0.33 0.33 - - 2.00 - - stp q17, q19, [sp, #1008]!
# CHECK-NEXT: 0.33 0.33 0.33 - - 0.50 0.50 - ldp q23, q29, [x1, #-1024]!
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp w3, w5, [sp]
-# CHECK-NEXT: - - - - - 0.50 0.50 - stnp wzr, w9, [sp, #252]
+# CHECK-NEXT: - - - - - 1.00 - - stnp wzr, w9, [sp, #252]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp w2, wzr, [sp, #-256]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp w9, w10, [sp, #4]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp x21, x29, [x2, #504]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp x22, x23, [x3, #-512]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp x24, x25, [x4, #8]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp s29, s28, [sp, #252]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stnp s27, s26, [sp, #-256]
+# CHECK-NEXT: - - - - - 2.00 - - stnp s27, s26, [sp, #-256]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp s1, s2, [x3, #44]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stnp d3, d5, [x9, #504]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stnp d7, d11, [x10, #-512]
+# CHECK-NEXT: - - - - - 2.00 - - stnp d3, d5, [x9, #504]
+# CHECK-NEXT: - - - - - 2.00 - - stnp d7, d11, [x10, #-512]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp d2, d3, [x30, #-8]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stnp q3, q5, [sp]
-# CHECK-NEXT: - - - - - 1.00 1.00 - stnp q17, q19, [sp, #1008]
+# CHECK-NEXT: - - - - - 2.00 - - stnp q3, q5, [sp]
+# CHECK-NEXT: - - - - - 2.00 - - stnp q17, q19, [sp, #1008]
# CHECK-NEXT: - - - - - 0.50 0.50 - ldnp q23, q29, [x1, #-1024]
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov w3, #983055
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov x10, #-6148914691236517206
-# CHECK-NEXT: - - - - - - - 1.00 and w12, w23, w21
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - and w12, w23, w21
# CHECK-NEXT: - - - - - - - 1.00 and w16, w15, w1, lsl #1
# CHECK-NEXT: - - - - - - - 1.00 and w9, w4, w10, lsl #31
-# CHECK-NEXT: - - - - - - - 1.00 and w3, w30, w11
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - and w3, w30, w11
# CHECK-NEXT: - - - - - - - 1.00 and x3, x5, x7, lsl #63
# CHECK-NEXT: - - - - - - - 1.00 and x5, x14, x19, asr #4
# CHECK-NEXT: - - - - - - - 1.00 and w3, w17, w19, ror #31
# CHECK-NEXT: - - - - - - - 1.00 and w0, w2, wzr, lsr #17
# CHECK-NEXT: - - - - - - - 1.00 and w3, w30, w11, asr #2
-# CHECK-NEXT: - - - - - - - 1.00 and xzr, x4, x26
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - and xzr, x4, x26
# CHECK-NEXT: - - - - - - - 1.00 and w3, wzr, w20, ror #2
# CHECK-NEXT: - - - - - - - 1.00 and x7, x20, xzr, asr #63
# CHECK-NEXT: - - - - - - - 1.00 bic x13, x20, x14, lsl #47
-# CHECK-NEXT: - - - - - - - 1.00 bic w2, w7, w9
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - bic w2, w7, w9
# CHECK-NEXT: - - - - - - - 1.00 orr w2, w7, w0, asr #31
# CHECK-NEXT: - - - - - - - 1.00 orr x8, x9, x10, lsl #12
# CHECK-NEXT: - - - - - - - 1.00 orn x3, x5, x7, asr #2
-# CHECK-NEXT: - - - - - - - 1.00 orn w2, w5, w29
-# CHECK-NEXT: 0.50 0.50 - - - - - - ands w7, wzr, w9, lsl #1
-# CHECK-NEXT: 0.50 0.50 - - - - - - ands x3, x5, x20, ror #63
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - orn w2, w5, w29
+# CHECK-NEXT: 1.00 1.00 - - - - - - ands w7, wzr, w9, lsl #1
+# CHECK-NEXT: 1.00 1.00 - - - - - - ands x3, x5, x20, ror #63
# CHECK-NEXT: 0.50 0.50 - - - - - - bics w3, w5, w7
-# CHECK-NEXT: 0.50 0.50 - - - - - - bics x3, xzr, x3, lsl #1
-# CHECK-NEXT: 0.50 0.50 - - - - - - tst w3, w7, lsl #31
-# CHECK-NEXT: 0.50 0.50 - - - - - - tst x2, x20, asr #2
-# CHECK-NEXT: - - - - - - - 1.00 mov x3, x6
-# CHECK-NEXT: - - - - - - - 1.00 mov x3, xzr
-# CHECK-NEXT: - - - - - - - 1.00 mov wzr, w2
-# CHECK-NEXT: - - - - - - - 1.00 mov w3, w5
+# CHECK-NEXT: 1.00 1.00 - - - - - - bics x3, xzr, x3, lsl #1
+# CHECK-NEXT: 1.00 1.00 - - - - - - tst w3, w7, lsl #31
+# CHECK-NEXT: 1.00 1.00 - - - - - - tst x2, x20, asr #2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov x3, x6
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov x3, xzr
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov wzr, w2
+# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov w3, w5
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - movz w2, #0, lsl #16
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov w2, #-1235
# CHECK-NEXT: 0.33 0.33 0.33 - - - - - mov x2, #5299989643264
More information about the llvm-commits
mailing list