[llvm] [AArch64] Fix scheduling information for arithmetic and logical instructions. (PR #113542)
Rin Dobrescu via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 24 03:24:16 PDT 2024
https://github.com/Rin18 created https://github.com/llvm/llvm-project/pull/113542
This patch corrects scheduling information relating to Neoverse-V2 arithmetic and logical instructions.
>From f70762734a373c65e0eb5d6e427095fbd72b673f Mon Sep 17 00:00:00 2001
From: Rin Dobrescu <rin.dobrescu at arm.com>
Date: Thu, 24 Oct 2024 08:55:17 +0000
Subject: [PATCH] [AArch64] Fix scheduling information for arithmetic and
logical instructions.
---
.../Target/AArch64/AArch64SchedNeoverseV2.td | 25 +-
.../AArch64/Neoverse/V2-basic-instructions.s | 378 +++++++++---------
2 files changed, 205 insertions(+), 198 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
index f884d20ab7eda9..054fd2a382e720 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
@@ -56,6 +56,7 @@ def V2UnitD : ProcResource<2>; // Store data 0/1
def V2UnitR : ProcResGroup<[V2UnitS0, V2UnitS1]>; // Integer single-cycle 0/1
def V2UnitS : ProcResGroup<[V2UnitS0, V2UnitS1, V2UnitS2, V2UnitS3]>; // Integer single-cycle 0/1/2/3
def V2UnitF : ProcResGroup<[V2UnitS0, V2UnitS1, V2UnitM0, V2UnitM1]>; // Integer single-cycle 0/1 and single/multicycle 0/1
+def V2UnitG : ProcResGroup<[V2UnitS0, V2UnitS1, V2UnitM0]>; // Integer single-cycle 0/1 and single/multicycle 0
def V2UnitI : ProcResGroup<[V2UnitS0, V2UnitS1, V2UnitS2, V2UnitS3, V2UnitM0, V2UnitM1]>; // Integer single-cycle 0/1/2/3 and single/multicycle 0/1
def V2UnitM : ProcResGroup<[V2UnitM0, V2UnitM1]>; // Integer single/multicycle 0/1
def V2UnitL : ProcResGroup<[V2UnitL01, V2UnitL2]>; // Load/Store 0/1 and Load 2
@@ -97,6 +98,7 @@ def V2Write_0c : SchedWriteRes<[]> { let Latency = 0; }
def V2Write_1c_1B : SchedWriteRes<[V2UnitB]> { let Latency = 1; }
def V2Write_1c_1F : SchedWriteRes<[V2UnitF]> { let Latency = 1; }
+def V2Write_1c_1G : SchedWriteRes<[V2UnitG]> { let Latency = 1; }
def V2Write_1c_1I : SchedWriteRes<[V2UnitI]> { let Latency = 1; }
def V2Write_1c_1M : SchedWriteRes<[V2UnitM]> { let Latency = 1; }
def V2Write_1c_1M0 : SchedWriteRes<[V2UnitM0]> { let Latency = 1; }
@@ -886,11 +888,11 @@ def V2Write_ArithI : SchedWriteVariant<[
SchedVar<NoSchedPred, [V2Write_2c_1M]>]>;
def V2Write_ArithF : SchedWriteVariant<[
- SchedVar<IsCheapLSL, [V2Write_1c_1F]>,
+ SchedVar<IsCheapLSL, [V2Write_1c_1G]>,
SchedVar<NoSchedPred, [V2Write_2c_1M]>]>;
def V2Write_Logical : SchedWriteVariant<[
- SchedVar<NeoverseNoLSL, [V2Write_1c_1F]>,
+ SchedVar<NeoverseNoLSL, [V2Write_1c_1G]>,
SchedVar<NoSchedPred, [V2Write_2c_1M]>]>;
def V2Write_Extr : SchedWriteVariant<[
@@ -1106,19 +1108,19 @@ def : InstRW<[V2Write_1c_1B_1R], (instrs BL, BLR)>;
// -----------------------------------------------------------------------------
// ALU, basic
-// ALU, basic, flagset
def : SchedAlias<WriteI, V2Write_1c_1I>;
-def : InstRW<[V2Write_1c_1F], (instregex "^(ADD|SUB)S[WX]r[ir]$",
+
+// ALU, basic, flagset
+def : InstRW<[V2Write_1c_1G],
+ (instregex "^(ADD|SUB)S[WX]r[ir]$",
"^(ADC|SBC)S[WX]r$",
- "^ANDS[WX]ri$")>;
+ "^ANDS[WX]ri$",
+ "^(AND|BIC)S[WX]rr$")>;
def : InstRW<[V2Write_0or1c_1I], (instregex "^MOVZ[WX]i$")>;
// ALU, extend and shift
def : SchedAlias<WriteIEReg, V2Write_2c_1M>;
-// Conditional compare
-def : InstRW<[V2Write_1c_1F], (instregex "^CCM[NP][WX][ir]")>;
-
// Arithmetic, LSL shift, shift <= 4
// Arithmetic, flagset, LSL shift, shift <= 4
// Arithmetic, LSR/ASR/ROR shift or LSL shift > 4
@@ -1129,6 +1131,9 @@ def : InstRW<[V2Write_ArithF],
// Arithmetic, immediate to logical address tag
def : InstRW<[V2Write_2c_1M], (instrs ADDG, SUBG)>;
+// Conditional compare
+def : InstRW<[V2Write_1c_1G], (instregex "^CCM[NP][WX][ir]")>;
+
// Convert floating-point condition flags
// Flag manipulation instructions
def : WriteRes<WriteSys, []> { let Latency = 1; }
@@ -1138,8 +1143,10 @@ def : InstRW<[V2Write_2c_1M], (instrs IRG, IRGstack)>;
// Insert Tag Mask
// Subtract Pointer
+def : InstRW<[V2Write_1c_1I], (instrs GMI, SUBP)>;
+
// Subtract Pointer, flagset
-def : InstRW<[V2Write_1c_1I], (instrs GMI, SUBP, SUBPS)>;
+def : InstRW<[V2Write_1c_1G], (instrs SUBPS)>;
// Logical, shift, no flagset
def : InstRW<[V2Write_1c_1I], (instregex "^(AND|BIC|EON|EOR|ORN)[WX]rs$")>;
diff --git a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
index 9a3bcac69582ac..987a41d8b08eed 100644
--- a/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
+++ b/llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-basic-instructions.s
@@ -1406,16 +1406,16 @@ drps
# CHECK-NEXT: 1 1 0.17 sub w4, w20, #546, lsl #12
# CHECK-NEXT: 1 1 0.17 sub sp, sp, #288
# CHECK-NEXT: 1 1 0.17 sub wsp, w19, #16
-# CHECK-NEXT: 1 1 0.25 adds w13, w23, #291, lsl #12
-# CHECK-NEXT: 1 1 0.25 cmn w2, #4095
-# CHECK-NEXT: 1 1 0.25 adds w20, wsp, #0
-# CHECK-NEXT: 1 1 0.25 cmn x3, #1, lsl #12
-# CHECK-NEXT: 1 1 0.25 cmp sp, #20, lsl #12
-# CHECK-NEXT: 1 1 0.25 cmp x30, #4095
-# CHECK-NEXT: 1 1 0.25 subs x4, sp, #3822
-# CHECK-NEXT: 1 1 0.25 cmn w3, #291, lsl #12
-# CHECK-NEXT: 1 1 0.25 cmn wsp, #1365
-# CHECK-NEXT: 1 1 0.25 cmn sp, #1092, lsl #12
+# CHECK-NEXT: 1 1 0.33 adds w13, w23, #291, lsl #12
+# CHECK-NEXT: 1 1 0.33 cmn w2, #4095
+# CHECK-NEXT: 1 1 0.33 adds w20, wsp, #0
+# CHECK-NEXT: 1 1 0.33 cmn x3, #1, lsl #12
+# CHECK-NEXT: 1 1 0.33 cmp sp, #20, lsl #12
+# CHECK-NEXT: 1 1 0.33 cmp x30, #4095
+# CHECK-NEXT: 1 1 0.33 subs x4, sp, #3822
+# CHECK-NEXT: 1 1 0.33 cmn w3, #291, lsl #12
+# CHECK-NEXT: 1 1 0.33 cmn wsp, #1365
+# CHECK-NEXT: 1 1 0.33 cmn sp, #1092, lsl #12
# CHECK-NEXT: 1 1 0.17 mov sp, x30
# CHECK-NEXT: 1 1 0.17 mov wsp, w20
# CHECK-NEXT: 1 1 0.17 mov x11, sp
@@ -1446,11 +1446,11 @@ drps
# CHECK-NEXT: 1 2 0.50 add x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 0.50 add x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 add x8, x9, x10, asr #63
-# CHECK-NEXT: 1 1 0.25 adds w3, w5, w7
-# CHECK-NEXT: 1 1 0.25 cmn w3, w5
-# CHECK-NEXT: 1 1 0.25 adds w20, wzr, w4
-# CHECK-NEXT: 1 1 0.25 adds w4, w6, wzr
-# CHECK-NEXT: 1 1 0.25 adds w11, w13, w15
+# CHECK-NEXT: 1 1 0.33 adds w3, w5, w7
+# CHECK-NEXT: 1 1 0.33 cmn w3, w5
+# CHECK-NEXT: 1 1 0.33 adds w20, wzr, w4
+# CHECK-NEXT: 1 1 0.33 adds w4, w6, wzr
+# CHECK-NEXT: 1 1 0.33 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
@@ -1459,11 +1459,11 @@ drps
# 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 1 0.25 adds x3, x5, x7
-# CHECK-NEXT: 1 1 0.25 cmn x3, x5
-# CHECK-NEXT: 1 1 0.25 adds x20, xzr, x4
-# CHECK-NEXT: 1 1 0.25 adds x4, x6, xzr
-# CHECK-NEXT: 1 1 0.25 adds x11, x13, x15
+# CHECK-NEXT: 1 1 0.33 adds x3, x5, x7
+# CHECK-NEXT: 1 1 0.33 cmn x3, x5
+# CHECK-NEXT: 1 1 0.33 adds x20, xzr, x4
+# CHECK-NEXT: 1 1 0.33 adds x4, x6, xzr
+# CHECK-NEXT: 1 1 0.33 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
@@ -1496,10 +1496,10 @@ drps
# CHECK-NEXT: 1 2 0.50 sub x2, x3, x4, asr #0
# CHECK-NEXT: 1 2 0.50 sub x5, x6, x7, asr #21
# CHECK-NEXT: 1 2 0.50 sub x8, x9, x10, asr #63
-# CHECK-NEXT: 1 1 0.25 subs w3, w5, w7
-# CHECK-NEXT: 1 1 0.25 cmp w3, w5
-# CHECK-NEXT: 1 1 0.25 subs w4, w6, wzr
-# CHECK-NEXT: 1 1 0.25 subs w11, w13, w15
+# CHECK-NEXT: 1 1 0.33 subs w3, w5, w7
+# CHECK-NEXT: 1 1 0.33 cmp w3, w5
+# CHECK-NEXT: 1 1 0.33 subs w4, w6, wzr
+# CHECK-NEXT: 1 1 0.33 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
@@ -1508,10 +1508,10 @@ drps
# 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 1 0.25 subs x3, x5, x7
-# CHECK-NEXT: 1 1 0.25 cmp x3, x5
-# CHECK-NEXT: 1 1 0.25 subs x4, x6, xzr
-# CHECK-NEXT: 1 1 0.25 subs x11, x13, x15
+# CHECK-NEXT: 1 1 0.33 subs x3, x5, x7
+# CHECK-NEXT: 1 1 0.33 cmp x3, x5
+# CHECK-NEXT: 1 1 0.33 subs x4, x6, xzr
+# CHECK-NEXT: 1 1 0.33 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
@@ -1520,9 +1520,9 @@ drps
# 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 1 0.25 cmn wzr, w4
-# CHECK-NEXT: 1 1 0.25 cmn w5, wzr
-# CHECK-NEXT: 1 1 0.25 cmn w6, w7
+# CHECK-NEXT: 1 1 0.33 cmn wzr, w4
+# CHECK-NEXT: 1 1 0.33 cmn w5, wzr
+# CHECK-NEXT: 1 1 0.33 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
@@ -1531,10 +1531,10 @@ drps
# 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 1 0.25 cmn x0, x3
-# CHECK-NEXT: 1 1 0.25 cmn xzr, x4
-# CHECK-NEXT: 1 1 0.25 cmn x5, xzr
-# CHECK-NEXT: 1 1 0.25 cmn x6, x7
+# CHECK-NEXT: 1 1 0.33 cmn x0, x3
+# CHECK-NEXT: 1 1 0.33 cmn xzr, x4
+# CHECK-NEXT: 1 1 0.33 cmn x5, xzr
+# CHECK-NEXT: 1 1 0.33 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
@@ -1543,10 +1543,10 @@ drps
# 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 1 0.25 cmp w0, w3
-# CHECK-NEXT: 1 1 0.25 cmp wzr, w4
-# CHECK-NEXT: 1 1 0.25 cmp w5, wzr
-# CHECK-NEXT: 1 1 0.25 cmp w6, w7
+# CHECK-NEXT: 1 1 0.33 cmp w0, w3
+# CHECK-NEXT: 1 1 0.33 cmp wzr, w4
+# CHECK-NEXT: 1 1 0.33 cmp w5, wzr
+# CHECK-NEXT: 1 1 0.33 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
@@ -1554,10 +1554,10 @@ drps
# 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 1 0.25 cmp x0, x3
-# CHECK-NEXT: 1 1 0.25 cmp xzr, x4
-# CHECK-NEXT: 1 1 0.25 cmp x5, xzr
-# CHECK-NEXT: 1 1 0.25 cmp x6, x7
+# CHECK-NEXT: 1 1 0.33 cmp x0, x3
+# CHECK-NEXT: 1 1 0.33 cmp xzr, x4
+# CHECK-NEXT: 1 1 0.33 cmp x5, xzr
+# CHECK-NEXT: 1 1 0.33 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
@@ -1566,8 +1566,8 @@ drps
# 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 1 0.25 cmp wzr, w0
-# CHECK-NEXT: 1 1 0.25 cmp xzr, x0
+# CHECK-NEXT: 1 1 0.33 cmp wzr, w0
+# CHECK-NEXT: 1 1 0.33 cmp xzr, x0
# CHECK-NEXT: 1 1 0.17 adc w29, w27, w25
# CHECK-NEXT: 1 1 0.17 adc wzr, w3, w4
# CHECK-NEXT: 1 1 0.17 adc w9, wzr, w10
@@ -1576,14 +1576,14 @@ drps
# CHECK-NEXT: 1 1 0.17 adc xzr, x3, x4
# CHECK-NEXT: 1 1 0.17 adc x9, xzr, x10
# CHECK-NEXT: 1 1 0.17 adc x20, x0, xzr
-# CHECK-NEXT: 1 1 0.25 adcs w29, w27, w25
-# CHECK-NEXT: 1 1 0.25 adcs wzr, w3, w4
-# CHECK-NEXT: 1 1 0.25 adcs w9, wzr, w10
-# CHECK-NEXT: 1 1 0.25 adcs w20, w0, wzr
-# CHECK-NEXT: 1 1 0.25 adcs x29, x27, x25
-# CHECK-NEXT: 1 1 0.25 adcs xzr, x3, x4
-# CHECK-NEXT: 1 1 0.25 adcs x9, xzr, x10
-# CHECK-NEXT: 1 1 0.25 adcs x20, x0, xzr
+# CHECK-NEXT: 1 1 0.33 adcs w29, w27, w25
+# CHECK-NEXT: 1 1 0.33 adcs wzr, w3, w4
+# CHECK-NEXT: 1 1 0.33 adcs w9, wzr, w10
+# CHECK-NEXT: 1 1 0.33 adcs w20, w0, wzr
+# CHECK-NEXT: 1 1 0.33 adcs x29, x27, x25
+# CHECK-NEXT: 1 1 0.33 adcs xzr, x3, x4
+# CHECK-NEXT: 1 1 0.33 adcs x9, xzr, x10
+# CHECK-NEXT: 1 1 0.33 adcs x20, x0, xzr
# CHECK-NEXT: 1 1 0.17 sbc w29, w27, w25
# CHECK-NEXT: 1 1 0.17 sbc wzr, w3, w4
# CHECK-NEXT: 1 1 0.17 ngc w9, w10
@@ -1592,26 +1592,26 @@ drps
# CHECK-NEXT: 1 1 0.17 sbc xzr, x3, x4
# CHECK-NEXT: 1 1 0.17 ngc x9, x10
# CHECK-NEXT: 1 1 0.17 sbc x20, x0, xzr
-# CHECK-NEXT: 1 1 0.25 sbcs w29, w27, w25
-# CHECK-NEXT: 1 1 0.25 sbcs wzr, w3, w4
-# CHECK-NEXT: 1 1 0.25 ngcs w9, w10
-# CHECK-NEXT: 1 1 0.25 sbcs w20, w0, wzr
-# CHECK-NEXT: 1 1 0.25 sbcs x29, x27, x25
-# CHECK-NEXT: 1 1 0.25 sbcs xzr, x3, x4
-# CHECK-NEXT: 1 1 0.25 ngcs x9, x10
-# CHECK-NEXT: 1 1 0.25 sbcs x20, x0, xzr
+# CHECK-NEXT: 1 1 0.33 sbcs w29, w27, w25
+# CHECK-NEXT: 1 1 0.33 sbcs wzr, w3, w4
+# CHECK-NEXT: 1 1 0.33 ngcs w9, w10
+# CHECK-NEXT: 1 1 0.33 sbcs w20, w0, wzr
+# CHECK-NEXT: 1 1 0.33 sbcs x29, x27, x25
+# CHECK-NEXT: 1 1 0.33 sbcs xzr, x3, x4
+# CHECK-NEXT: 1 1 0.33 ngcs x9, x10
+# CHECK-NEXT: 1 1 0.33 sbcs x20, x0, xzr
# CHECK-NEXT: 1 1 0.17 ngc w3, w12
# CHECK-NEXT: 1 1 0.17 ngc wzr, w9
# CHECK-NEXT: 1 1 0.17 ngc w23, wzr
# CHECK-NEXT: 1 1 0.17 ngc x29, x30
# CHECK-NEXT: 1 1 0.17 ngc xzr, x0
# CHECK-NEXT: 1 1 0.17 ngc x0, xzr
-# CHECK-NEXT: 1 1 0.25 ngcs w3, w12
-# CHECK-NEXT: 1 1 0.25 ngcs wzr, w9
-# CHECK-NEXT: 1 1 0.25 ngcs w23, wzr
-# CHECK-NEXT: 1 1 0.25 ngcs x29, x30
-# CHECK-NEXT: 1 1 0.25 ngcs xzr, x0
-# CHECK-NEXT: 1 1 0.25 ngcs x0, xzr
+# CHECK-NEXT: 1 1 0.33 ngcs w3, w12
+# CHECK-NEXT: 1 1 0.33 ngcs wzr, w9
+# CHECK-NEXT: 1 1 0.33 ngcs w23, wzr
+# CHECK-NEXT: 1 1 0.33 ngcs x29, x30
+# CHECK-NEXT: 1 1 0.33 ngcs xzr, x0
+# CHECK-NEXT: 1 1 0.33 ngcs x0, xzr
# CHECK-NEXT: 1 1 0.17 sbfx x1, x2, #3, #2
# CHECK-NEXT: 1 1 0.17 asr x3, x4, #63
# CHECK-NEXT: 1 1 0.17 asr wzr, wzr, #31
@@ -1701,30 +1701,30 @@ drps
# CHECK-NEXT: 1 1 0.50 b.ne #4
# CHECK-NEXT: 1 1 0.50 b.ge #1048572
# CHECK-NEXT: 1 1 0.50 b.ge #-4
-# CHECK-NEXT: 1 1 0.25 ccmp w1, #31, #0, eq
-# CHECK-NEXT: 1 1 0.25 ccmp w3, #0, #15, hs
-# CHECK-NEXT: 1 1 0.25 ccmp wzr, #15, #13, hs
-# CHECK-NEXT: 1 1 0.25 ccmp x9, #31, #0, le
-# CHECK-NEXT: 1 1 0.25 ccmp x3, #0, #15, gt
-# CHECK-NEXT: 1 1 0.25 ccmp xzr, #5, #7, ne
-# CHECK-NEXT: 1 1 0.25 ccmn w1, #31, #0, eq
-# CHECK-NEXT: 1 1 0.25 ccmn w3, #0, #15, hs
-# CHECK-NEXT: 1 1 0.25 ccmn wzr, #15, #13, hs
-# CHECK-NEXT: 1 1 0.25 ccmn x9, #31, #0, le
-# CHECK-NEXT: 1 1 0.25 ccmn x3, #0, #15, gt
-# CHECK-NEXT: 1 1 0.25 ccmn xzr, #5, #7, ne
-# CHECK-NEXT: 1 1 0.25 ccmp w1, wzr, #0, eq
-# CHECK-NEXT: 1 1 0.25 ccmp w3, w0, #15, hs
-# CHECK-NEXT: 1 1 0.25 ccmp wzr, w15, #13, hs
-# CHECK-NEXT: 1 1 0.25 ccmp x9, xzr, #0, le
-# CHECK-NEXT: 1 1 0.25 ccmp x3, x0, #15, gt
-# CHECK-NEXT: 1 1 0.25 ccmp xzr, x5, #7, ne
-# CHECK-NEXT: 1 1 0.25 ccmn w1, wzr, #0, eq
-# CHECK-NEXT: 1 1 0.25 ccmn w3, w0, #15, hs
-# CHECK-NEXT: 1 1 0.25 ccmn wzr, w15, #13, hs
-# CHECK-NEXT: 1 1 0.25 ccmn x9, xzr, #0, le
-# CHECK-NEXT: 1 1 0.25 ccmn x3, x0, #15, gt
-# CHECK-NEXT: 1 1 0.25 ccmn xzr, x5, #7, ne
+# CHECK-NEXT: 1 1 0.33 ccmp w1, #31, #0, eq
+# CHECK-NEXT: 1 1 0.33 ccmp w3, #0, #15, hs
+# CHECK-NEXT: 1 1 0.33 ccmp wzr, #15, #13, hs
+# CHECK-NEXT: 1 1 0.33 ccmp x9, #31, #0, le
+# CHECK-NEXT: 1 1 0.33 ccmp x3, #0, #15, gt
+# CHECK-NEXT: 1 1 0.33 ccmp xzr, #5, #7, ne
+# CHECK-NEXT: 1 1 0.33 ccmn w1, #31, #0, eq
+# CHECK-NEXT: 1 1 0.33 ccmn w3, #0, #15, hs
+# CHECK-NEXT: 1 1 0.33 ccmn wzr, #15, #13, hs
+# CHECK-NEXT: 1 1 0.33 ccmn x9, #31, #0, le
+# CHECK-NEXT: 1 1 0.33 ccmn x3, #0, #15, gt
+# CHECK-NEXT: 1 1 0.33 ccmn xzr, #5, #7, ne
+# CHECK-NEXT: 1 1 0.33 ccmp w1, wzr, #0, eq
+# CHECK-NEXT: 1 1 0.33 ccmp w3, w0, #15, hs
+# CHECK-NEXT: 1 1 0.33 ccmp wzr, w15, #13, hs
+# CHECK-NEXT: 1 1 0.33 ccmp x9, xzr, #0, le
+# CHECK-NEXT: 1 1 0.33 ccmp x3, x0, #15, gt
+# CHECK-NEXT: 1 1 0.33 ccmp xzr, x5, #7, ne
+# CHECK-NEXT: 1 1 0.33 ccmn w1, wzr, #0, eq
+# CHECK-NEXT: 1 1 0.33 ccmn w3, w0, #15, hs
+# CHECK-NEXT: 1 1 0.33 ccmn wzr, w15, #13, hs
+# CHECK-NEXT: 1 1 0.33 ccmn x9, xzr, #0, le
+# CHECK-NEXT: 1 1 0.33 ccmn x3, x0, #15, gt
+# CHECK-NEXT: 1 1 0.33 ccmn xzr, x5, #7, ne
# CHECK-NEXT: 1 1 0.17 csel w1, w0, w19, ne
# CHECK-NEXT: 1 1 0.17 csel wzr, w5, w9, eq
# CHECK-NEXT: 1 1 0.17 csel w9, wzr, w30, gt
@@ -2510,8 +2510,8 @@ drps
# CHECK-NEXT: 3 6 0.67 * ldnp q23, q29, [x1, #-1024]
# CHECK-NEXT: 1 1 0.17 mov w3, #983055
# CHECK-NEXT: 1 1 0.17 mov x10, #-6148914691236517206
-# CHECK-NEXT: 1 1 0.25 ands w4, w4, #0xf000f
-# CHECK-NEXT: 1 1 0.25 ands x11, x11, #0xaaaaaaaaaaaaaaaa
+# CHECK-NEXT: 1 1 0.33 ands w4, w4, #0xf000f
+# CHECK-NEXT: 1 1 0.33 ands x11, x11, #0xaaaaaaaaaaaaaaaa
# CHECK-NEXT: 1 1 0.17 and w12, w23, w21
# CHECK-NEXT: 1 1 0.17 and w16, w15, w1, lsl #1
# CHECK-NEXT: 1 1 0.17 and w9, w4, w10, lsl #31
@@ -2532,7 +2532,7 @@ drps
# CHECK-NEXT: 1 1 0.17 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 1 0.25 bics w3, w5, w7
+# CHECK-NEXT: 1 1 0.33 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
@@ -2589,7 +2589,7 @@ drps
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
-# CHECK-NEXT: 11.00 11.00 33.00 33.00 99.00 165.00 165.00 329.92 184.92 112.92 112.92 86.17 86.17 190.00 146.00 30.00 10.00
+# CHECK-NEXT: 11.00 11.00 33.00 33.00 99.00 165.00 165.00 337.75 161.42 120.75 120.75 86.17 86.17 190.00 146.00 30.00 10.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
@@ -2608,16 +2608,16 @@ drps
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub w4, w20, #546, lsl #12
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub sp, sp, #288
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sub wsp, w19, #16
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds w13, w23, #291, lsl #12
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w2, #4095
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds w20, wsp, #0
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x3, #1, lsl #12
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp sp, #20, lsl #12
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x30, #4095
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - subs x4, sp, #3822
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w3, #291, lsl #12
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn wsp, #1365
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn sp, #1092, lsl #12
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adds w13, w23, #291, lsl #12
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn w2, #4095
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adds w20, wsp, #0
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn x3, #1, lsl #12
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp sp, #20, lsl #12
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp x30, #4095
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - subs x4, sp, #3822
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn w3, #291, lsl #12
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn wsp, #1365
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn sp, #1092, lsl #12
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov sp, x30
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov wsp, w20
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x11, sp
@@ -2648,11 +2648,11 @@ drps
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - - - - - add x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - - - - - add x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - - - - - add x8, x9, x10, asr #63
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds w3, w5, w7
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w3, w5
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds w20, wzr, w4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds w4, w6, wzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds w11, w13, w15
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adds w3, w5, w7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn w3, w5
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adds w20, wzr, w4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adds w4, w6, wzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
@@ -2661,11 +2661,11 @@ drps
# 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: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds x3, x5, x7
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x3, x5
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds x20, xzr, x4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds x4, x6, xzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adds x11, x13, x15
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adds x3, x5, x7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn x3, x5
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adds x20, xzr, x4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adds x4, x6, xzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
@@ -2698,10 +2698,10 @@ drps
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - - - - - sub x2, x3, x4, asr #0
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - - - - - sub x5, x6, x7, asr #21
# CHECK-NEXT: - - - - - - - 0.50 0.50 - - - - - - - - sub x8, x9, x10, asr #63
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - subs w3, w5, w7
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w3, w5
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - subs w4, w6, wzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - subs w11, w13, w15
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - subs w3, w5, w7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp w3, w5
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - subs w4, w6, wzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
@@ -2710,10 +2710,10 @@ drps
# 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: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - subs x3, x5, x7
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x3, x5
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - subs x4, x6, xzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - subs x11, x13, x15
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - subs x3, x5, x7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp x3, x5
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - subs x4, x6, xzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
@@ -2722,9 +2722,9 @@ drps
# 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: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn wzr, w4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w5, wzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn w6, w7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn wzr, w4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn w5, wzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
@@ -2733,10 +2733,10 @@ drps
# 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: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x0, x3
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn xzr, x4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x5, xzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmn x6, x7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn x0, x3
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn xzr, x4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmn x5, xzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
@@ -2745,10 +2745,10 @@ drps
# 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: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w0, w3
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp wzr, w4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w5, wzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp w6, w7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp w0, w3
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp wzr, w4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp w5, wzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
@@ -2756,10 +2756,10 @@ drps
# 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: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x0, x3
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp xzr, x4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x5, xzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp x6, x7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp x0, x3
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp xzr, x4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp x5, xzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
@@ -2768,8 +2768,8 @@ drps
# 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: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp wzr, w0
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - cmp xzr, x0
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp wzr, w0
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - cmp xzr, x0
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc w29, w27, w25
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc wzr, w3, w4
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc w9, wzr, w10
@@ -2778,14 +2778,14 @@ drps
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc xzr, x3, x4
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc x9, xzr, x10
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - adc x20, x0, xzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adcs w29, w27, w25
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adcs wzr, w3, w4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adcs w9, wzr, w10
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adcs w20, w0, wzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adcs x29, x27, x25
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adcs xzr, x3, x4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adcs x9, xzr, x10
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - adcs x20, x0, xzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adcs w29, w27, w25
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adcs wzr, w3, w4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adcs w9, wzr, w10
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adcs w20, w0, wzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adcs x29, x27, x25
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adcs xzr, x3, x4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adcs x9, xzr, x10
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - adcs x20, x0, xzr
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbc w29, w27, w25
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbc wzr, w3, w4
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ngc w9, w10
@@ -2794,26 +2794,26 @@ drps
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbc xzr, x3, x4
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ngc x9, x10
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbc x20, x0, xzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - sbcs w29, w27, w25
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - sbcs wzr, w3, w4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ngcs w9, w10
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - sbcs w20, w0, wzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - sbcs x29, x27, x25
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - sbcs xzr, x3, x4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ngcs x9, x10
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - sbcs x20, x0, xzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - sbcs w29, w27, w25
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - sbcs wzr, w3, w4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ngcs w9, w10
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - sbcs w20, w0, wzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - sbcs x29, x27, x25
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - sbcs xzr, x3, x4
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ngcs x9, x10
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - sbcs x20, x0, xzr
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ngc w3, w12
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ngc wzr, w9
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ngc w23, wzr
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ngc x29, x30
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ngc xzr, x0
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - ngc x0, xzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ngcs w3, w12
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ngcs wzr, w9
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ngcs w23, wzr
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ngcs x29, x30
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ngcs xzr, x0
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ngcs x0, xzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ngcs w3, w12
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ngcs wzr, w9
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ngcs w23, wzr
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ngcs x29, x30
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ngcs xzr, x0
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ngcs x0, xzr
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - sbfx x1, x2, #3, #2
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr x3, x4, #63
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - asr wzr, wzr, #31
@@ -2903,30 +2903,30 @@ drps
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - b.ne #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - b.ge #1048572
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - b.ge #-4
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp w1, #31, #0, eq
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp w3, #0, #15, hs
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp wzr, #15, #13, hs
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp x9, #31, #0, le
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp x3, #0, #15, gt
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp xzr, #5, #7, ne
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn w1, #31, #0, eq
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn w3, #0, #15, hs
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn wzr, #15, #13, hs
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn x9, #31, #0, le
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn x3, #0, #15, gt
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn xzr, #5, #7, ne
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp w1, wzr, #0, eq
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp w3, w0, #15, hs
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp wzr, w15, #13, hs
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp x9, xzr, #0, le
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp x3, x0, #15, gt
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmp xzr, x5, #7, ne
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn w1, wzr, #0, eq
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn w3, w0, #15, hs
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn wzr, w15, #13, hs
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn x9, xzr, #0, le
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn x3, x0, #15, gt
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ccmn xzr, x5, #7, ne
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp w1, #31, #0, eq
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp w3, #0, #15, hs
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp wzr, #15, #13, hs
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp x9, #31, #0, le
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp x3, #0, #15, gt
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp xzr, #5, #7, ne
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn w1, #31, #0, eq
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn w3, #0, #15, hs
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn wzr, #15, #13, hs
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn x9, #31, #0, le
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn x3, #0, #15, gt
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn xzr, #5, #7, ne
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp w1, wzr, #0, eq
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp w3, w0, #15, hs
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp wzr, w15, #13, hs
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp x9, xzr, #0, le
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp x3, x0, #15, gt
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmp xzr, x5, #7, ne
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn w1, wzr, #0, eq
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn w3, w0, #15, hs
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn wzr, w15, #13, hs
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn x9, xzr, #0, le
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn x3, x0, #15, gt
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ccmn xzr, x5, #7, ne
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - csel w1, w0, w19, ne
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - csel wzr, w5, w9, eq
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - csel w9, wzr, w30, gt
@@ -3712,8 +3712,8 @@ drps
# CHECK-NEXT: - - - - 0.67 0.67 0.67 - - - - - - - - - - ldnp q23, q29, [x1, #-1024]
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov w3, #983055
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - mov x10, #-6148914691236517206
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ands w4, w4, #0xf000f
-# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - ands x11, x11, #0xaaaaaaaaaaaaaaaa
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ands w4, w4, #0xf000f
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - ands x11, x11, #0xaaaaaaaaaaaaaaaa
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w12, w23, w21
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w16, w15, w1, lsl #1
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - and w9, w4, w10, lsl #31
@@ -3734,7 +3734,7 @@ drps
# CHECK-NEXT: - - - - - - - 0.17 0.17 0.17 0.17 0.17 0.17 - - - - 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.25 0.25 0.25 0.25 - - - - - - bics w3, w5, w7
+# CHECK-NEXT: - - - - - - - 0.33 - 0.33 0.33 - - - - - - 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
More information about the llvm-commits
mailing list