Skip to content

Conversation

tomeksowi
Copy link
Member

@tomeksowi tomeksowi commented Oct 10, 2025

Remove RISC-V-specific jump distance binding. Re-using common code simplifies the emitter and improves binding accuracy near the limits.

Part of #84834, cc @dotnet/samsung

@github-actions github-actions bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Oct 10, 2025
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Oct 10, 2025
@dotnet-policy-service
Copy link
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

@tomeksowi
Copy link
Member Author

No regressions, improvements come from fuller use of instruction immediates, which matters with RISC-V short branch offsets.

Diffs are based on 340,504 contexts (100,281 MinOpts, 240,223 FullOpts).

Overall (-908,020 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
linux.riscv64.Checked.mch 292,055,268 -908,020 -0.18%
MinOpts (-646,744 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
linux.riscv64.Checked.mch 139,132,734 -646,744 -0.02%
FullOpts (-261,276 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
linux.riscv64.Checked.mch 152,922,534 -261,276 -0.19%
Example diffs
linux.riscv64.Checked.mch
-48 (-1.15%) : 62365.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:ValidateImplementedInterfaces(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.ImplementsStatementSyntax],Roslyn.Utilities.SetWithInsertionOrder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
@@ -394,10 +394,9 @@ G_M41614_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[s1]
 						;; size=104 bbWeight=1 PerfScore 72.50
 G_M41614_IG02:        ; bbWeight=1, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7}, byrefRegs=0000 {}, byref, isz
-            bnez           s5, G_M41614_IG62
-            j              G_M41614_IG62
-						;; size=8 bbWeight=1 PerfScore 4.50
-G_M41614_IG03:        ; bbWeight=0.50, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7}, byrefRegs=0000 {}, byref
+            beqz           s5, G_M41614_IG62
+						;; size=4 bbWeight=1 PerfScore 3.50
+G_M41614_IG03:        ; bbWeight=0.50, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7}, byrefRegs=0000 {}, byref, isz
             ld             a0, 0xD1FFAB1E(s5)
             ; gcrRegs +[a0]
             mv             a1, a0
@@ -425,9 +424,8 @@ G_M41614_IG04:        ; bbWeight=0.50, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7},
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M41614_IG05:        ; bbWeight=0.50, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7}, byrefRegs=0000 {}, byref, isz
             sext.w         t6, a0
-            bnez           t6, G_M41614_IG62
-            j              G_M41614_IG62
-						;; size=12 bbWeight=0.50 PerfScore 2.50
+            beqz           t6, G_M41614_IG62
+						;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M41614_IG06:        ; bbWeight=0.50, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7}, byrefRegs=0000 {}, byref, isz
             bnez           s7, G_M41614_IG08
             fence          3, 3
@@ -439,9 +437,8 @@ G_M41614_IG06:        ; bbWeight=0.50, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7},
             lw             a0, 0xD1FFAB1E(t6)
             andi           a0, a0, 1
             sext.w         t6, a0
-            bnez           t6, G_M41614_IG63
-            j              G_M41614_IG63
-						;; size=48 bbWeight=0.50 PerfScore 10.50
+            beqz           t6, G_M41614_IG63
+						;; size=44 bbWeight=0.50 PerfScore 10.00
 G_M41614_IG07:        ; bbWeight=0.50, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
             ; gcrRegs -[s7]
             lui            t6, 0xD1FFAB1E
@@ -463,9 +460,8 @@ G_M41614_IG08:        ; bbWeight=0.50, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7},
             lw             a0, 0xD1FFAB1E(t6)
             andi           a0, a0, 1
             sext.w         t6, a0
-            bnez           t6, G_M41614_IG64
-            j              G_M41614_IG64
-						;; size=48 bbWeight=0.50 PerfScore 10.50
+            beqz           t6, G_M41614_IG64
+						;; size=44 bbWeight=0.50 PerfScore 10.00
 G_M41614_IG09:        ; bbWeight=0.50, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
             ; gcrRegs -[s7]
             lui            t6, 0xD1FFAB1E
@@ -569,7 +565,7 @@ G_M41614_IG10:        ; bbWeight=0.50, gcrefRegs=FC0200 {s1 s2 s3 s4 s5 s6 s7},
             ; gcrRegs -[a0]
             addi           s7, zero, 0xD1FFAB1E
 						;; size=260 bbWeight=0.50 PerfScore 38.25
-G_M41614_IG11:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
+G_M41614_IG11:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref, isz
             addiw          s7, s7, 0xD1FFAB1E
             ld             a0, 0xD1FFAB1E(s5)
             ; gcrRegs +[a0]
@@ -596,7 +592,7 @@ G_M41614_IG11:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefR
 G_M41614_IG12:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
             sext.w         a0, s8
 						;; size=4 bbWeight=2 PerfScore 1.00
-G_M41614_IG13:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
+G_M41614_IG13:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref, isz
             j              G_M41614_IG15
 						;; size=4 bbWeight=2 PerfScore 3.00
 G_M41614_IG14:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
@@ -605,10 +601,9 @@ G_M41614_IG14:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefR
 G_M41614_IG15:        ; bbWeight=4, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref, isz
             sext.w         ra, s7
             sext.w         t6, a0
-            blt            ra, t6, G_M41614_IG62
-            j              G_M41614_IG62
-						;; size=16 bbWeight=4 PerfScore 22.00
-G_M41614_IG16:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
+            bge            ra, t6, G_M41614_IG62
+						;; size=12 bbWeight=4 PerfScore 18.00
+G_M41614_IG16:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref, isz
             ld             a0, 0xD1FFAB1E(s5)
             ; gcrRegs +[a0]
             lhu            a0, 0xD1FFAB1E(a0)
@@ -632,7 +627,7 @@ G_M41614_IG17:        ; bbWeight=2, gcrefRegs=7C0200 {s1 s2 s3 s4 s5 s6}, byrefR
             mv             a1, a0
             ; gcrRegs +[a1]
 						;; size=28 bbWeight=2 PerfScore 21.00
-G_M41614_IG18:        ; bbWeight=4, gcrefRegs=7C0A00 {s1 a1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
+G_M41614_IG18:        ; bbWeight=4, gcrefRegs=7C0A00 {s1 a1 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a0]
             mv             a0, a1
             ; gcrRegs +[a0]
@@ -645,10 +640,9 @@ G_M41614_IG19:        ; bbWeight=2, gcrefRegs=7C0E00 {s1 a0 a1 s2 s3 s4 s5 s6},
             addi           a2, a2, 0xD1FFAB1E
             slli           a2, a2, 1
             ld             a3, 0xD1FFAB1E(a0)
-            beq            a2, a3, G_M41614_IG65
-            j              G_M41614_IG65
-						;; size=32 bbWeight=2 PerfScore 23.00
-G_M41614_IG20:        ; bbWeight=4, gcrefRegs=7C0600 {s1 a0 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref
+            bne            a2, a3, G_M41614_IG65
+						;; size=28 bbWeight=2 PerfScore 21.00
+G_M41614_IG20:        ; bbWeight=4, gcrefRegs=7C0600 {s1 a0 s2 s3 s4 s5 s6}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a1]
             addi           a1, fp, -24
             lui            t6, 0xD1FFAB1E
@@ -692,15 +686,14 @@ G_M41614_IG21:        ; bbWeight=16, gcrefRegs=27C1200 {s1 a2 s2 s3 s4 s5 s6 s9}
             jalr           a2		// Roslyn.Utilities.SetWithInsertionOrder`1[System.__Canon]:Add(System.__Canon):bool:this
             ; gcrRegs -[a0-a1]
 						;; size=80 bbWeight=16 PerfScore 392.00
-G_M41614_IG22:        ; bbWeight=32, gcrefRegs=27C0200 {s1 s2 s3 s4 s5 s6 s9}, byrefRegs=0000 {}, byref
+G_M41614_IG22:        ; bbWeight=32, gcrefRegs=27C0200 {s1 s2 s3 s4 s5 s6 s9}, byrefRegs=0000 {}, byref, isz
             addiw          s10, s10, 0xD1FFAB1E
             sext.w         ra, s10
             sext.w         t6, s8
             bge            ra, t6, G_M41614_IG11
 						;; size=16 bbWeight=32 PerfScore 160.00
 G_M41614_IG23:        ; bbWeight=16, gcrefRegs=27C0200 {s1 s2 s3 s4 s5 s6 s9}, byrefRegs=0000 {}, byref, isz
-            bnez           s9, G_M41614_IG77
-            j              G_M41614_IG77
+            beqz           s9, G_M41614_IG77
             ld             a1, 0xD1FFAB1E(s9)
             ; gcrRegs +[a1]
             lhu            a1, 0xD1FFAB1E(a1)
@@ -708,12 +701,11 @@ G_M41614_IG23:        ; bbWeight=16, gcrefRegs=27C0200 {s1 s2 s3 s4 s5 s6 s9}, b
             sext.w         t6, a1
             addi           ra, zero, 0xD1FFAB1E
             bne            t6, ra, G_M41614_IG25
-						;; size=28 bbWeight=16 PerfScore 224.00
+						;; size=24 bbWeight=16 PerfScore 208.00
 G_M41614_IG24:        ; bbWeight=8, gcrefRegs=27C0200 {s1 s2 s3 s4 s5 s6 s9}, byrefRegs=0000 {}, byref, isz
             sext.w         ra, s10
             sext.w         t6, s8
-            bltu           ra, t6, G_M41614_IG77
-            j              G_M41614_IG77
+            bgeu           ra, t6, G_M41614_IG77
             slliw          a1, s10, 1
             mv             a0, s9
             ; gcrRegs +[a0]
@@ -739,12 +731,11 @@ G_M41614_IG24:        ; bbWeight=8, gcrefRegs=27C0200 {s1 s2 s3 s4 s5 s6 s9}, by
             mv             s11, a0
             ; gcrRegs +[s11]
             j              G_M41614_IG26
-						;; size=96 bbWeight=8 PerfScore 248.00
+						;; size=92 bbWeight=8 PerfScore 240.00
 G_M41614_IG25:        ; bbWeight=8, gcrefRegs=27C0200 {s1 s2 s3 s4 s5 s6 s9}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a0 s11]
             sext.w         t6, s10
-            beqz           t6, G_M41614_IG77
-            j              G_M41614_IG77
+            bnez           t6, G_M41614_IG77
             mv             a1, s9
             ; gcrRegs +[a1]
             lui            a0, 0xD1FFAB1E
@@ -761,8 +752,8 @@ G_M41614_IG25:        ; bbWeight=8, gcrefRegs=27C0200 {s1 s2 s3 s4 s5 s6 s9}, by
             ; gcrRegs -[a1] +[a0]
             mv             s11, a0
             ; gcrRegs +[s11]
-						;; size=64 bbWeight=8 PerfScore 152.00
-G_M41614_IG26:        ; bbWeight=16, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref
+						;; size=60 bbWeight=8 PerfScore 144.00
+G_M41614_IG26:        ; bbWeight=16, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a0]
             mv             a0, s11
             ; gcrRegs +[a0]
@@ -785,7 +776,7 @@ G_M41614_IG26:        ; bbWeight=16, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11
             ; gcrRegs +[a1]
             beqz           a1, G_M41614_IG31
 						;; size=60 bbWeight=16 PerfScore 272.00
-G_M41614_IG27:        ; bbWeight=8, gcrefRegs=A7C0A00 {s1 a1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref
+G_M41614_IG27:        ; bbWeight=8, gcrefRegs=A7C0A00 {s1 a1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a0]
             mv             a0, a1
             ; gcrRegs +[a0]
@@ -799,7 +790,7 @@ G_M41614_IG27:        ; bbWeight=8, gcrefRegs=A7C0A00 {s1 a1 s2 s3 s4 s5 s6 s9 s
             sext.w         t6, a0
             beqz           t6, G_M41614_IG29
 						;; size=32 bbWeight=8 PerfScore 140.00
-G_M41614_IG28:        ; bbWeight=4, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref
+G_M41614_IG28:        ; bbWeight=4, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref, isz
             ld             a1, -96(fp)
             ; gcrRegs +[a1]
             j              G_M41614_IG31
@@ -816,9 +807,8 @@ G_M41614_IG29:        ; bbWeight=4, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}
             addi           a0, a0, 0xD1FFAB1E
             slli           a0, a0, 3
             ld             a3, 0xD1FFAB1E(a1)
-            beq            a0, a3, G_M41614_IG66
-            j              G_M41614_IG66
-						;; size=40 bbWeight=4 PerfScore 56.00
+            bne            a0, a3, G_M41614_IG66
+						;; size=36 bbWeight=4 PerfScore 52.00
 G_M41614_IG30:        ; bbWeight=8, gcVars=00000000000000000000000000000000 {}, gcrefRegs=A7C0A00 {s1 a1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[a2]
             ; GC ptr vars -{V62}
@@ -826,7 +816,7 @@ G_M41614_IG30:        ; bbWeight=8, gcVars=00000000000000000000000000000000 {},
             ; gcrRegs +[a2]
             mv             a1, a2
 						;; size=8 bbWeight=8 PerfScore 20.00
-G_M41614_IG31:        ; bbWeight=16, gcrefRegs=A7C0A00 {s1 a1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref
+G_M41614_IG31:        ; bbWeight=16, gcrefRegs=A7C0A00 {s1 a1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a2]
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -892,7 +882,7 @@ G_M41614_IG31:        ; bbWeight=16, gcrefRegs=A7C0A00 {s1 a1 s2 s3 s4 s5 s6 s9
             beq            t6, ra, G_M41614_IG42
             beqz           s11, G_M41614_IG33
 						;; size=204 bbWeight=16 PerfScore 1264.00
-G_M41614_IG32:        ; bbWeight=8, gcVars=00000000000000000000000000000000 {}, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, gcvars, byref
+G_M41614_IG32:        ; bbWeight=8, gcVars=00000000000000000000000000000000 {}, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[a2]
             ; GC ptr vars -{V60}
             addi           a1, zero, 0xD1FFAB1E
@@ -928,9 +918,8 @@ G_M41614_IG34:        ; bbWeight=16, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11
             ; gcrRegs -[a0]
             andi           a0, a0, 1
             sext.w         t6, a0
-            bnez           t6, G_M41614_IG73
-            j              G_M41614_IG73
-						;; size=84 bbWeight=16 PerfScore 520.00
+            beqz           t6, G_M41614_IG73
+						;; size=80 bbWeight=16 PerfScore 504.00
 G_M41614_IG35:        ; bbWeight=16, gcVars=00000000000000000000000000000004 {V144}, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, gcvars, byref, isz
             lui            t6, 0xD1FFAB1E
             addiw          t6, t6, 0xD1FFAB1E
@@ -949,11 +938,10 @@ G_M41614_IG35:        ; bbWeight=16, gcVars=00000000000000000000000000000004 {V1
             lw             a0, 0xD1FFAB1E(t6)
             andi           a0, a0, 1
             sext.w         t6, a0
-            bnez           t6, G_M41614_IG74
-            j              G_M41614_IG74
+            beqz           t6, G_M41614_IG74
             ld             a2, -160(fp)
-						;; size=72 bbWeight=16 PerfScore 472.00
-G_M41614_IG36:        ; bbWeight=16, gcVars=00000000000000000000000000004004 {V144 V145}, gcrefRegs=A7C1200 {s1 a2 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, gcvars, byref
+						;; size=68 bbWeight=16 PerfScore 456.00
+G_M41614_IG36:        ; bbWeight=16, gcVars=00000000000000000000000000004004 {V144 V145}, gcrefRegs=A7C1200 {s1 a2 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, gcvars, byref, isz
             lui            t6, 0xD1FFAB1E
             addiw          t6, t6, 0xD1FFAB1E
             slli           t6, t6, 13
@@ -1010,7 +998,7 @@ G_M41614_IG36:        ; bbWeight=16, gcVars=00000000000000000000000000004004 {V1
             sext.w         t6, a0
             bge            t6, zero, G_M41614_IG39
 						;; size=148 bbWeight=16 PerfScore 1008.00
-G_M41614_IG37:        ; bbWeight=8, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref
+G_M41614_IG37:        ; bbWeight=8, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}, byrefRegs=0000 {}, byref, isz
             beqz           s11, G_M41614_IG38
             mv             a0, s11
             ; gcrRegs +[a0]
@@ -1026,13 +1014,13 @@ G_M41614_IG37:        ; bbWeight=8, gcrefRegs=A7C0200 {s1 s2 s3 s4 s5 s6 s9 s11}
             ; gcrRegs +[s11]
...
-48 (-1.11%) : 65340.dasm - Microsoft.CodeAnalysis.VisualBasic.CommandLineDiagnosticFormatter:Format(Microsoft.CodeAnalysis.Diagnostic,System.IFormatProvider):System.String:this (FullOpts)
@@ -253,14 +253,12 @@ G_M52255_IG02:        ; bbWeight=1, gcrefRegs=C0200 {s1 s2 s3}, byrefRegs=0000 {
             lw             s4, -20(fp)
             lw             s5, -16(fp)
             sext.w         t6, a0
-            bnez           t6, G_M52255_IG82
-            j              G_M52255_IG82
-						;; size=72 bbWeight=1 PerfScore 31.50
+            beqz           t6, G_M52255_IG82
+						;; size=68 bbWeight=1 PerfScore 30.50
 G_M52255_IG03:        ; bbWeight=0.50, gcrefRegs=C0200 {s1 s2 s3}, byrefRegs=0000 {}, byref, isz
             ld             a0, -8(fp)
             ; gcrRegs +[a0]
-            bnez           a0, G_M52255_IG82
-            j              G_M52255_IG82
+            beqz           a0, G_M52255_IG82
             ld             a0, -8(fp)
             ld             a1, -8(fp)
             ; gcrRegs +[a1]
@@ -273,8 +271,7 @@ G_M52255_IG03:        ; bbWeight=0.50, gcrefRegs=C0200 {s1 s2 s3}, byrefRegs=000
             addw           a1, s4, s5
             sext.w         ra, a1
             sext.w         t6, a0
-            bge            t6, ra, G_M52255_IG82
-            j              G_M52255_IG82
+            blt            t6, ra, G_M52255_IG82
             mv             a0, s2
             ; gcrRegs +[a0]
             mv             a1, s1
@@ -328,7 +325,7 @@ G_M52255_IG03:        ; bbWeight=0.50, gcrefRegs=C0200 {s1 s2 s3}, byrefRegs=000
             ; gcrRegs -[a0 t4]
             ; byrRegs -[t3]
             beqz           s1, G_M52255_IG05
-						;; size=212 bbWeight=0.50 PerfScore 37.50
+						;; size=204 bbWeight=0.50 PerfScore 36.50
 G_M52255_IG04:        ; bbWeight=0.50, gcrefRegs=40200 {s1 s2}, byrefRegs=0000 {}, byref
             lw             a2, 0xD1FFAB1E(s1)
             addi           a1, s1, 0xD1FFAB1E
@@ -355,9 +352,8 @@ G_M52255_IG05:        ; bbWeight=0.50, gcrefRegs=40000 {s2}, byrefRegs=0000 {},
             addiw          a2, s1, 0xD1FFAB1E
             sext.w         ra, a0
             sext.w         t6, a2
-            bltu           ra, t6, G_M52255_IG88
-            j              G_M52255_IG88
-						;; size=40 bbWeight=0.50 PerfScore 7.00
+            bgeu           ra, t6, G_M52255_IG88
+						;; size=36 bbWeight=0.50 PerfScore 6.50
 G_M52255_IG06:        ; bbWeight=0.31, gcrefRegs=40000 {s2}, byrefRegs=0800 {a1}, byref
             ; gcrRegs -[s3]
             ; byrRegs +[a1]
@@ -390,8 +386,7 @@ G_M52255_IG07:        ; bbWeight=0.50, gcrefRegs=40000 {s2}, byrefRegs=0000 {},
             jalr           a1		// <unknown method>
             mv             s6, a0
             ; gcrRegs +[s6]
-            bnez           s3, G_M52255_IG93
-            j              G_M52255_IG93
+            beqz           s3, G_M52255_IG93
             mv             a0, s3
             ; gcrRegs -[a0]
             ; byrRegs +[a0]
@@ -410,8 +405,8 @@ G_M52255_IG07:        ; bbWeight=0.50, gcrefRegs=40000 {s2}, byrefRegs=0000 {},
             ; gcrRegs +[a1]
             mv             a0, a1
             beqz           a0, G_M52255_IG09
-						;; size=96 bbWeight=0.50 PerfScore 18.25
-G_M52255_IG08:        ; bbWeight=0.25, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {}, byref
+						;; size=92 bbWeight=0.50 PerfScore 17.75
+G_M52255_IG08:        ; bbWeight=0.25, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a1 s6]
             mv             a1, a0
             ; gcrRegs +[a1]
@@ -456,8 +451,7 @@ G_M52255_IG10:        ; bbWeight=0.50, gcrefRegs=40800 {a1 s2}, byrefRegs=0000 {
             jalr           a1		// <unknown method>
             mv             s7, a0
             ; gcrRegs +[s7]
-            bnez           s6, G_M52255_IG93
-            j              G_M52255_IG93
+            beqz           s6, G_M52255_IG93
             mv             a0, s6
             ; gcrRegs -[a0]
             ; byrRegs +[a0]
@@ -476,8 +470,8 @@ G_M52255_IG10:        ; bbWeight=0.50, gcrefRegs=40800 {a1 s2}, byrefRegs=0000 {
             ; gcrRegs +[a1]
             mv             a0, a1
             beqz           a0, G_M52255_IG12
-						;; size=128 bbWeight=0.50 PerfScore 26.25
-G_M52255_IG11:        ; bbWeight=0.25, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {}, byref
+						;; size=124 bbWeight=0.50 PerfScore 25.75
+G_M52255_IG11:        ; bbWeight=0.25, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a1 s7]
             mv             a1, a0
             ; gcrRegs +[a1]
@@ -509,17 +503,14 @@ G_M52255_IG13:        ; bbWeight=0.50, gcrefRegs=40800 {a1 s2}, byrefRegs=0000 {
             sd             a0, -40(fp)
             sd             a1, -32(fp)
             sext.w         t6, s5
-            beqz           t6, G_M52255_IG80
-            j              G_M52255_IG80
+            bnez           t6, G_M52255_IG80
             lw             a0, -32(fp)
             ; gcrRegs -[a0]
             sext.w         ra, a0
             sext.w         t6, s1
-            beq            t6, ra, G_M52255_IG80
-            j              G_M52255_IG80
+            bne            t6, ra, G_M52255_IG80
             sext.w         t6, s3
-            blt            zero, t6, G_M52255_IG80
-            j              G_M52255_IG80
+            bge            zero, t6, G_M52255_IG80
             addiw          s3, s3, 0xD1FFAB1E
             ld             a0, -8(fp)
             ; gcrRegs +[a0]
@@ -535,8 +526,7 @@ G_M52255_IG13:        ; bbWeight=0.50, gcrefRegs=40800 {a1 s2}, byrefRegs=0000 {
             jalr           a1		// <unknown method>
             mv             s7, a0
             ; gcrRegs +[s7]
-            bnez           s6, G_M52255_IG93
-            j              G_M52255_IG93
+            beqz           s6, G_M52255_IG93
             mv             a0, s6
             ; gcrRegs -[a0]
             ; byrRegs +[a0]
@@ -555,8 +545,8 @@ G_M52255_IG13:        ; bbWeight=0.50, gcrefRegs=40800 {a1 s2}, byrefRegs=0000 {
             ; gcrRegs +[a1]
             mv             a0, a1
             beqz           a0, G_M52255_IG15
-						;; size=180 bbWeight=0.50 PerfScore 39.00
-G_M52255_IG14:        ; bbWeight=0.25, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {}, byref
+						;; size=164 bbWeight=0.50 PerfScore 37.00
+G_M52255_IG14:        ; bbWeight=0.25, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a1 s7]
             mv             a1, a0
             ; gcrRegs +[a1]
@@ -591,10 +581,9 @@ G_M52255_IG16:        ; bbWeight=0.50, gcrefRegs=40800 {a1 s2}, byrefRegs=0000 {
             ; gcrRegs -[a0]
             sext.w         ra, a0
             sext.w         t6, s1
-            blt            ra, t6, G_M52255_IG81
-            j              G_M52255_IG81
-						;; size=60 bbWeight=0.50 PerfScore 15.75
-G_M52255_IG17:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+            bge            ra, t6, G_M52255_IG81
+						;; size=56 bbWeight=0.50 PerfScore 15.25
+G_M52255_IG17:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             auipc          a1, 0xD1FFAB1E
             ld             a1, 0xD1FFAB1E(a1)
             ld             s6, 0xD1FFAB1E(s2)
@@ -606,7 +595,7 @@ G_M52255_IG17:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byr
             sext.w         t6, a2
             bgeu           ra, t6, G_M52255_IG19
 						;; size=36 bbWeight=4 PerfScore 52.00
-G_M52255_IG18:        ; bbWeight=0.50, gcrefRegs=40000 {s2}, byrefRegs=0800 {a1}, byref
+G_M52255_IG18:        ; bbWeight=0.50, gcrefRegs=40000 {s2}, byrefRegs=0800 {a1}, byref, isz
             ; gcrRegs -[s6]
             ; byrRegs +[a1]
             mv             a0, s2
@@ -634,14 +623,14 @@ G_M52255_IG19:        ; bbWeight=0.75, gcrefRegs=440000 {s2 s6}, byrefRegs=0000
             addiw          a0, s7, 0xD1FFAB1E
             sw             a0, 0xD1FFAB1E(s2)
 						;; size=28 bbWeight=0.75 PerfScore 7.88
-G_M52255_IG20:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+G_M52255_IG20:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[s6]
             ; byrRegs -[a2]
             ld             a0, -40(fp)
             ; gcrRegs +[a0]
             beqz           a0, G_M52255_IG24
 						;; size=8 bbWeight=4 PerfScore 22.00
-G_M52255_IG21:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+G_M52255_IG21:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a0]
             ld             a0, -40(fp)
             ; gcrRegs +[a0]
@@ -694,7 +683,7 @@ G_M52255_IG21:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byr
 G_M52255_IG22:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
             sext.w         a1, zero
 						;; size=4 bbWeight=2 PerfScore 1.00
-G_M52255_IG23:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+G_M52255_IG23:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             lw             a0, -28(fp)
             subw           a1, a0, a1
             lw             a0, -32(fp)
@@ -724,7 +713,7 @@ G_M52255_IG24:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byr
             addi           a0, a0, 0xD1FFAB1E
             slli           a0, a0, 1
 						;; size=20 bbWeight=2 PerfScore 10.00
-G_M52255_IG25:        ; bbWeight=4, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {}, byref
+G_M52255_IG25:        ; bbWeight=4, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[a0]
             lui            a1, 0xD1FFAB1E
             addiw          a1, a1, 0xD1FFAB1E
@@ -761,7 +750,7 @@ G_M52255_IG26:        ; bbWeight=2.00, gcrefRegs=40400 {a0 s2}, byrefRegs=0000 {
             ; gcrRegs -[a0]
             ; byrRegs -[a1]
 						;; size=40 bbWeight=2.00 PerfScore 25.97
-G_M52255_IG27:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+G_M52255_IG27:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             auipc          a1, 0xD1FFAB1E
             ld             a1, 0xD1FFAB1E(a1)
             ld             s6, 0xD1FFAB1E(s2)
@@ -773,7 +762,7 @@ G_M52255_IG27:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byr
             sext.w         t6, a2
             bgeu           ra, t6, G_M52255_IG29
 						;; size=36 bbWeight=4 PerfScore 52.00
-G_M52255_IG28:        ; bbWeight=0.50, gcrefRegs=40000 {s2}, byrefRegs=0800 {a1}, byref
+G_M52255_IG28:        ; bbWeight=0.50, gcrefRegs=40000 {s2}, byrefRegs=0800 {a1}, byref, isz
             ; gcrRegs -[s6]
             ; byrRegs +[a1]
             mv             a0, s2
@@ -801,7 +790,7 @@ G_M52255_IG29:        ; bbWeight=0.75, gcrefRegs=440000 {s2 s6}, byrefRegs=0000
             addiw          a0, s7, 0xD1FFAB1E
             sw             a0, 0xD1FFAB1E(s2)
 						;; size=28 bbWeight=0.75 PerfScore 7.88
-G_M52255_IG30:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+G_M52255_IG30:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[s6]
             ; byrRegs -[a2]
             sext.w         a0, s4
@@ -814,7 +803,7 @@ G_M52255_IG30:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byr
             ; gcrRegs +[a0]
             beqz           a0, G_M52255_IG32
 						;; size=32 bbWeight=4 PerfScore 68.00
-G_M52255_IG31:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+G_M52255_IG31:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a0]
             ld             a0, -40(fp)
             ; gcrRegs +[a0]
@@ -853,7 +842,7 @@ G_M52255_IG31:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byr
 G_M52255_IG32:        ; bbWeight=2, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
             sext.w         a0, zero
 						;; size=4 bbWeight=2 PerfScore 1.00
-G_M52255_IG33:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+G_M52255_IG33:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             lw             a1, -28(fp)
             subw           a0, a1, a0
             sext.w         a0, a0
@@ -865,7 +854,7 @@ G_M52255_IG33:        ; bbWeight=4, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byr
             sext.w         t6, s7
             blt            t6, ra, G_M52255_IG42
 						;; size=40 bbWeight=4 PerfScore 38.00
-G_M52255_IG34:        ; bbWeight=16, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
+G_M52255_IG34:        ; bbWeight=16, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref, isz
             ld             a0, -8(fp)
             ; gcrRegs +[a0]
             sext.w         a1, s6
@@ -907,7 +896,7 @@ G_M52255_IG34:        ; bbWeight=16, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, by
             sext.w         t6, a0
             beqz           t6, G_M52255_IG38
 						;; size=136 bbWeight=16 PerfScore 784.00
-G_M52255_IG35:        ; bbWeight=8, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, byref
...
-48 (-1.09%) : 49522.dasm - System.Security.Cryptography.Asn1.Pkcs7.CertificateChoiceAsn:DecodeCore(byref,System.ReadOnlyMemory`1[byte],byref) (FullOpts)
@@ -434,7 +434,7 @@ G_M49407_IG02:        ; bbWeight=1, gcrefRegs=0800 {a1}, byrefRegs=40200 {s1 s2}
             addi           a0, zero, 0xD1FFAB1E
             add            a0, s2, a0
 						;; size=28 bbWeight=1 PerfScore 7.00
-G_M49407_IG03:        ; bbWeight=1, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref, nogc
+G_M49407_IG03:        ; bbWeight=1, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref, nogc, isz
             ; gcrRegs -[a1]
             sd             zero, 0xD1FFAB1E(a0)
             addi           a0, a0, 0xD1FFAB1E
@@ -455,16 +455,15 @@ G_M49407_IG04:        ; bbWeight=1, isz, extend
             jalr           a4		// <unknown method>
             ; byrRegs -[a0]
             sext.w         t6, a0
-            bnez           t6, G_M49407_IG77
-            j              G_M49407_IG77
+            beqz           t6, G_M49407_IG77
             lbu            s6, -88(fp)
             lw             s7, -84(fp)
             mv             s8, zero
             ; byrRegs +[s8]
             sext.w         s9, zero
             beqz           s3, G_M49407_IG12
-						;; size=76 bbWeight=1 PerfScore 29.50
-G_M49407_IG05:        ; bbWeight=0.31, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref
+						;; size=72 bbWeight=1 PerfScore 28.50
+G_M49407_IG05:        ; bbWeight=0.31, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref, isz
             ; byrRegs -[s8]
             ld             a1, 0xD1FFAB1E(s3)
             lw             a1, 0xD1FFAB1E(a1)
@@ -474,7 +473,7 @@ G_M49407_IG05:        ; bbWeight=0.31, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1
             sext.w         t6, a1
             bnez           t6, G_M49407_IG08
 						;; size=26 bbWeight=0.31 PerfScore 3.12
-G_M49407_IG06:        ; bbWeight=0.09, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref
+G_M49407_IG06:        ; bbWeight=0.09, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref, isz
             mv             a1, s3
             ; gcrRegs +[a1]
             lui            a0, 0xD1FFAB1E
@@ -508,7 +507,7 @@ G_M49407_IG06:        ; bbWeight=0.09, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=116 bbWeight=0.09 PerfScore 3.38
-G_M49407_IG07:        ; bbWeight=0.09, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref
+G_M49407_IG07:        ; bbWeight=0.09, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref, isz
             mv             a0, s3
             ; gcrRegs +[a0]
             ld             a1, 0xD1FFAB1E(s3)
@@ -522,7 +521,7 @@ G_M49407_IG07:        ; bbWeight=0.09, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1
             sext.w         s9, a1
             j              G_M49407_IG10
 						;; size=32 bbWeight=0.09 PerfScore 1.12
-G_M49407_IG08:        ; bbWeight=0.09, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref
+G_M49407_IG08:        ; bbWeight=0.09, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1 s2}, byref, isz
             ; byrRegs -[a0 s8]
             mv             a1, s3
             ; gcrRegs +[a1]
@@ -570,14 +569,13 @@ G_M49407_IG10:        ; bbWeight=0.25, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
             zext.w         a0, a0
             add.uw         a1, s5, a0
             zext.w         a2, s9
-            bgeu           a2, a1, G_M49407_IG76
-            j              G_M49407_IG76
-						;; size=36 bbWeight=0.25 PerfScore 2.25
+            bltu           a2, a1, G_M49407_IG76
+						;; size=32 bbWeight=0.25 PerfScore 2.00
 G_M49407_IG11:        ; bbWeight=0.12, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref
             add            s8, s8, a0
             sext.w         s9, s5
 						;; size=6 bbWeight=0.12 PerfScore 0.12
-G_M49407_IG12:        ; bbWeight=1, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref
+G_M49407_IG12:        ; bbWeight=1, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref, isz
             sext.w         t6, s9
             bge            t6, zero, G_M49407_IG14
 						;; size=8 bbWeight=1 PerfScore 4.00
@@ -598,7 +596,7 @@ G_M49407_IG13:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=60 bbWeight=0.50 PerfScore 9.00
-G_M49407_IG14:        ; bbWeight=1, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref
+G_M49407_IG14:        ; bbWeight=1, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref, isz
             sext.w         t6, s7
             addi           ra, zero, 0xD1FFAB1E
             bne            t6, ra, G_M49407_IG16
@@ -607,10 +605,9 @@ G_M49407_IG15:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
             andi           a2, s6, 255
             andi           a2, a2, 192
             sext.w         t6, a2
-            bnez           t6, G_M49407_IG62
-            j              G_M49407_IG62
-						;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M49407_IG16:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref
+            beqz           t6, G_M49407_IG62
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M49407_IG16:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref, isz
             sext.w         t6, s7
             bnez           t6, G_M49407_IG17
             andi           a2, s6, 255
@@ -619,7 +616,7 @@ G_M49407_IG16:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
             addi           ra, zero, 0xD1FFAB1E
             beq            t6, ra, G_M49407_IG49
 						;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M49407_IG17:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref
+G_M49407_IG17:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref, isz
             sext.w         t6, s7
             addi           ra, zero, 0xD1FFAB1E
             bne            t6, ra, G_M49407_IG18
@@ -629,7 +626,7 @@ G_M49407_IG17:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
             addi           ra, zero, 0xD1FFAB1E
             beq            t6, ra, G_M49407_IG36
 						;; size=32 bbWeight=0.50 PerfScore 5.00
-G_M49407_IG18:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref
+G_M49407_IG18:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {s1 s2 s8}, byref, isz
             sext.w         t6, s7
             addi           ra, zero, 0xD1FFAB1E
             bne            t6, ra, G_M49407_IG19
@@ -643,14 +640,12 @@ G_M49407_IG19:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1
             ; byrRegs -[s8]
             sext.w         t6, s7
             addi           ra, zero, 0xD1FFAB1E
-            beq            t6, ra, G_M49407_IG87
-            j              G_M49407_IG87
+            bne            t6, ra, G_M49407_IG87
             andi           a2, s6, 255
             andi           a2, a2, 192
             sext.w         t6, a2
             addi           ra, zero, 0xD1FFAB1E
-            beq            t6, ra, G_M49407_IG87
-            j              G_M49407_IG87
+            bne            t6, ra, G_M49407_IG87
             sd             zero, -40(fp)
             addi           a2, zero, 0xD1FFAB1E
             sb             a2, -40(fp)
@@ -674,7 +669,7 @@ G_M49407_IG19:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40200 {s1
             jalr           a5		// System.Security.Cryptography.Asn1.Pkcs7.OtherCertificateFormat:Decode(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[byte],byref)
             ; gcrRegs -[a2 s3]
             ; byrRegs -[s1-a0]
-						;; size=116 bbWeight=0.50 PerfScore 20.00
+						;; size=108 bbWeight=0.50 PerfScore 19.00
 G_M49407_IG20:        ; bbWeight=0.50, nogc, extend
             ld             t3, -32(fp)
             ld             ra, -24(fp)
@@ -683,7 +678,7 @@ G_M49407_IG20:        ; bbWeight=0.50, nogc, extend
             ld             t3, -16(fp)
             sd             t3, -48(fp)
 						;; size=24 bbWeight=0.50 PerfScore 9.00
-G_M49407_IG21:        ; bbWeight=0.50, extend
+G_M49407_IG21:        ; bbWeight=0.50, isz, extend
             addi           a0, s2, 0xD1FFAB1E
             ; byrRegs +[a0]
             mv             t3, a0
@@ -730,8 +725,7 @@ G_M49407_IG22:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
             lw             a0, 0xD1FFAB1E(s1)
             sext.w         ra, s6
             sext.w         t6, a0
-            bgeu           t6, ra, G_M49407_IG76
-            j              G_M49407_IG76
+            bltu           t6, ra, G_M49407_IG76
             ld             s7, 0xD1FFAB1E(s1)
             ; byrRegs +[s7]
             sext.w         t6, s6
@@ -751,15 +745,14 @@ G_M49407_IG22:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
             srli           t6, t6, 18
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
-						;; size=144 bbWeight=0.50 PerfScore 25.00
+						;; size=140 bbWeight=0.50 PerfScore 24.50
 G_M49407_IG23:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1840200 {s1 s2 s7 s8}, byref, isz
             lw             a0, 0xD1FFAB1E(s1)
             sext.w         ra, s6
             sext.w         t6, a0
-            bgeu           t6, ra, G_M49407_IG76
-            j              G_M49407_IG76
-						;; size=20 bbWeight=0.50 PerfScore 3.75
-G_M49407_IG24:        ; bbWeight=0.38, gcrefRegs=80000 {s3}, byrefRegs=1840200 {s1 s2 s7 s8}, byref
+            bltu           t6, ra, G_M49407_IG76
+						;; size=16 bbWeight=0.50 PerfScore 3.25
+G_M49407_IG24:        ; bbWeight=0.38, gcrefRegs=80000 {s3}, byrefRegs=1840200 {s1 s2 s7 s8}, byref, isz
             ld             a0, 0xD1FFAB1E(s1)
             ; byrRegs +[a0]
             zext.w         a1, s6
@@ -810,8 +803,7 @@ G_M49407_IG26:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=5840200 {
             zext.w         a0, s6
             add.uw         a0, a1, a0
             zext.w         a2, s5
-            bgeu           a2, a0, G_M49407_IG86
-            j              G_M49407_IG86
+            bltu           a2, a0, G_M49407_IG86
             addw           s1, s4, a1
             beqz           s3, G_M49407_IG27
             mv             a1, s3
@@ -863,11 +855,11 @@ G_M49407_IG26:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=5840200 {
             srli           t6, t6, 18
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
-						;; size=256 bbWeight=0.50 PerfScore 43.75
-G_M49407_IG27:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40000 {s2}, byref
+						;; size=252 bbWeight=0.50 PerfScore 43.25
+G_M49407_IG27:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40000 {s2}, byref, isz
             j              G_M49407_IG33
 						;; size=4 bbWeight=0.50 PerfScore 0.75
-G_M49407_IG28:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=840000 {s2 s7}, byref
+G_M49407_IG28:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=840000 {s2 s7}, byref, isz
             ; gcrRegs -[s3]
             ; byrRegs +[s7]
             sext.w         t6, s6
@@ -902,16 +894,15 @@ G_M49407_IG29:        ; bbWeight=0.47, gcrefRegs=0000 {}, byrefRegs=840000 {s2 s
             ; byrRegs -[a0-a1 s7]
 						;; size=80 bbWeight=0.47 PerfScore 10.67
 G_M49407_IG30:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40000 {s2}, byref, isz
-            bnez           s3, G_M49407_IG85
-            j              G_M49407_IG85
-						;; size=8 bbWeight=0.50 PerfScore 2.25
+            beqz           s3, G_M49407_IG85
+						;; size=4 bbWeight=0.50 PerfScore 1.75
 G_M49407_IG31:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40000 {s2}, byref
             lw             s6, 0xD1FFAB1E(s3)
 						;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M49407_IG32:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40000 {s2}, byref
             sext.w         s1, zero
 						;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M49407_IG33:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40000 {s2}, byref
+G_M49407_IG33:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=40000 {s2}, byref, isz
             addi           a0, s2, 0xD1FFAB1E
             ; byrRegs +[a0]
             addi           t3, zero, 0xD1FFAB1E
@@ -939,10 +930,9 @@ G_M49407_IG34:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=40000 {s2},
             lw             a0, 0xD1FFAB1E(t6)
             andi           a0, a0, 1
             sext.w         t6, a0
-            bnez           t6, G_M49407_IG84
-            j              G_M49407_IG84
-						;; size=44 bbWeight=0.03 PerfScore 0.45
-G_M49407_IG35:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=40000 {s2}, byref
+            beqz           t6, G_M49407_IG84
+						;; size=40 bbWeight=0.03 PerfScore 0.42
+G_M49407_IG35:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=40000 {s2}, byref, isz
             lui            t6, 0xD1FFAB1E
             addiw          t6, t6, 0xD1FFAB1E
             slli           t6, t6, 22
@@ -970,8 +960,7 @@ G_M49407_IG36:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
             lw             a0, 0xD1FFAB1E(s1)
             sext.w         ra, s6
             sext.w         t6, a0
-            bgeu           t6, ra, G_M49407_IG76
-            j              G_M49407_IG76
+            bltu           t6, ra, G_M49407_IG76
             ld             s7, 0xD1FFAB1E(s1)
             ; byrRegs +[s7]
             sext.w         t6, s6
@@ -991,14 +980,14 @@ G_M49407_IG36:        ; bbWeight=0.50, gcrefRegs=80000 {s3}, byrefRegs=1040200 {
...
+0 (0.00%) : 337280.dasm - GCTest.GCTestC:LoadData(int):this (FullOpts)
@@ -170,7 +170,7 @@ G_M42005_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             sd             zero, -40(fp)
             sw             a1, -4(fp)
 						;; size=52 bbWeight=1 PerfScore 45.00
-G_M42005_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             fence          3, 3
             lui            t6, 0xD1FFAB1E
             addiw          t6, t6, 0xD1FFAB1E
@@ -182,7 +182,7 @@ G_M42005_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             sext.w         t6, a0
             beqz           t6, G_M42005_IG38
 						;; size=40 bbWeight=1 PerfScore 16.50
-G_M42005_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            t6, 0xD1FFAB1E
             addiw          t6, t6, 0xD1FFAB1E
             slli           t6, t6, 12
@@ -255,7 +255,7 @@ G_M42005_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             sext.w         t6, a1
             beqz           t6, G_M42005_IG05
 						;; size=232 bbWeight=1 PerfScore 91.50
-G_M42005_IG04:        ; bbWeight=0.47, gcrefRegs=0400 {a0}, byrefRegs=0000 {}, byref
+G_M42005_IG04:        ; bbWeight=0.47, gcrefRegs=0400 {a0}, byrefRegs=0000 {}, byref, isz
             addi           a1, a0, 0xD1FFAB1E
             ; byrRegs +[a1]
             lw             a2, 0xD1FFAB1E(a0)
@@ -294,7 +294,7 @@ G_M42005_IG05:        ; bbWeight=0.49, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             addi           s1, s1, 0xD1FFAB1E
             slli           s1, s1, 2
 						;; size=20 bbWeight=0.49 PerfScore 2.44
-G_M42005_IG06:        ; bbWeight=1, gcrefRegs=0200 {s1}, byrefRegs=0000 {}, byref
+G_M42005_IG06:        ; bbWeight=1, gcrefRegs=0200 {s1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[s1]
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -310,7 +310,7 @@ G_M42005_IG06:        ; bbWeight=1, gcrefRegs=0200 {s1}, byrefRegs=0000 {}, byre
             ; gcrRegs +[s2]
             beqz           s1, G_M42005_IG37
 						;; size=40 bbWeight=1 PerfScore 14.00
-G_M42005_IG07:        ; bbWeight=0.65, gcrefRegs=40200 {s1 s2}, byrefRegs=0000 {}, byref
+G_M42005_IG07:        ; bbWeight=0.65, gcrefRegs=40200 {s1 s2}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[a0]
             lw             a0, 0xD1FFAB1E(s1)
             sext.w         t6, a0
@@ -485,11 +485,11 @@ G_M42005_IG08:        ; bbWeight=1, gcVars=0000001002400000 {V02 V03 V05}, gcref
             ; gcrRegs -[s1-a1]
             ; gcr arg pop 0
 						;; size=120 bbWeight=1 PerfScore 50.50
-G_M42005_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc
+G_M42005_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc, isz
             jal            G_M42005_IG44
             nop
 						;; size=8 bbWeight=1 PerfScore 2.00
-G_M42005_IG10:        ; bbWeight=1, gcVars=0000000002400000 {V02 V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG10:        ; bbWeight=1, gcVars=0000000002400000 {V02 V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars -{V05}
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -526,7 +526,7 @@ G_M42005_IG10:        ; bbWeight=1, gcVars=0000000002400000 {V02 V03}, gcrefRegs
             sd             a0, -48(fp)
             ; GC ptr vars +{V06}
 						;; size=92 bbWeight=1 PerfScore 47.50
-G_M42005_IG11:        ; bbWeight=1, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG11:        ; bbWeight=1, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[a0]
             ; GC ptr vars -{V03}
             fence          3, 3
@@ -550,7 +550,7 @@ G_M42005_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; GC ptr vars +{V87}
             sd             zero, 0xD1FFAB1E(s1)
 						;; size=24 bbWeight=1 PerfScore 13.00
-G_M42005_IG13:        ; bbWeight=1, gcVars=0000000000500040 {V02 V06 V87}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG13:        ; bbWeight=1, gcVars=0000000000500040 {V02 V06 V87}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[s1]
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -576,7 +576,7 @@ G_M42005_IG13:        ; bbWeight=1, gcVars=0000000000500040 {V02 V06 V87}, gcref
             beqz           t6, G_M42005_IG25
             j              G_M42005_IG28
 						;; size=80 bbWeight=1 PerfScore 31.50
-G_M42005_IG14:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG14:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars -{V87}
             mv             a0, zero
             lui            t6, 0xD1FFAB1E
@@ -778,7 +778,7 @@ G_M42005_IG14:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs
 G_M42005_IG15:        ; bbWeight=2, gcVars=0000000000400048 {V02 V06 V95}, gcrefRegs=40000 {s2}, byrefRegs=0000 {}, gcvars, byref
             ld             s3, 0xD1FFAB1E(s2)
 						;; size=4 bbWeight=2 PerfScore 4.00
-G_M42005_IG16:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG16:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[s2]
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -803,7 +803,7 @@ G_M42005_IG16:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             sext.w         t6, a0
             bnez           t6, G_M42005_IG29
 						;; size=78 bbWeight=2 PerfScore 64.00
-G_M42005_IG17:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG17:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[s2]
             ; GC ptr vars -{V95}
             lui            t6, 0xD1FFAB1E
@@ -818,7 +818,7 @@ G_M42005_IG17:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs
             sext.w         t6, a0
             beqz           t6, G_M42005_IG19
 						;; size=36 bbWeight=8 PerfScore 144.00
-G_M42005_IG18:        ; bbWeight=3.96, gcVars=0000000000400044 {V02 V06 V97}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG18:        ; bbWeight=3.96, gcVars=0000000000400044 {V02 V06 V97}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[s2]
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -841,7 +841,7 @@ G_M42005_IG18:        ; bbWeight=3.96, gcVars=0000000000400044 {V02 V06 V97}, gc
             sext.w         t6, a0
             bnez           t6, G_M42005_IG30
 						;; size=70 bbWeight=3.96 PerfScore 94.93
-G_M42005_IG19:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG19:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[s2]
             ; GC ptr vars -{V02 V97}
             fcvt.d.l       fs6, s3
@@ -854,7 +854,7 @@ G_M42005_IG19:        ; bbWeight=8, gcVars=0000000000400040 {V02 V06}, gcrefRegs
             sext.w         t6, a0
             beqz           t6, G_M42005_IG31
 						;; size=36 bbWeight=8 PerfScore 156.00
-G_M42005_IG20:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG20:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            t6, 0xD1FFAB1E
             addiw          t6, t6, 0xD1FFAB1E
             slli           t6, t6, 12
@@ -875,7 +875,7 @@ G_M42005_IG20:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ld             a1, -16(fp)
             bge            a1, a0, G_M42005_IG24
 						;; size=72 bbWeight=8 PerfScore 248.00
-G_M42005_IG21:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG21:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            t6, 0xD1FFAB1E
             addiw          t6, t6, 0xD1FFAB1E
             slli           t6, t6, 22
@@ -888,7 +888,7 @@ G_M42005_IG21:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             sext.w         t6, a0
             beqz           t6, G_M42005_IG23
 						;; size=36 bbWeight=4 PerfScore 72.00
-G_M42005_IG22:        ; bbWeight=3.96, gcVars=0000000000401040 {V02 V06 V99}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG22:        ; bbWeight=3.96, gcVars=0000000000401040 {V02 V06 V99}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[s2]
             ; GC ptr vars +{V02}
             lui            a0, 0xD1FFAB1E
@@ -938,13 +938,13 @@ G_M42005_IG23:        ; bbWeight=4, gcVars=0000000000400040 {V02 V06}, gcrefRegs
 G_M42005_IG24:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             addiw          s1, s1, 0xD1FFAB1E
 						;; size=4 bbWeight=8 PerfScore 4.00
-G_M42005_IG25:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG25:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lw             a1, -4(fp)
             sext.w         ra, s1
             sext.w         t6, a1
             blt            ra, t6, G_M42005_IG14
 						;; size=16 bbWeight=8 PerfScore 52.00
-G_M42005_IG26:        ; bbWeight=1, gcVars=0000000000000040 {V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG26:        ; bbWeight=1, gcVars=0000000000000040 {V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars -{V02}
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -995,7 +995,7 @@ G_M42005_IG26:        ; bbWeight=1, gcVars=0000000000000040 {V06}, gcrefRegs=000
             ; gcr arg pop 0
             j              G_M42005_IG34
 						;; size=148 bbWeight=1 PerfScore 51.00
-G_M42005_IG27:        ; bbWeight=0, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG27:        ; bbWeight=0, gcVars=0000000000400040 {V02 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars +{V02}
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -1011,7 +1011,7 @@ G_M42005_IG27:        ; bbWeight=0, gcVars=0000000000400040 {V02 V06}, gcrefRegs
             ; gcr arg pop 0
             j              G_M42005_IG12
 						;; size=48 bbWeight=0 PerfScore 0.00
-G_M42005_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
             slli           a0, a0, 16
@@ -1019,7 +1019,7 @@ G_M42005_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             j              G_M42005_IG25
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M42005_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
             slli           a0, a0, 16
@@ -1027,7 +1027,7 @@ G_M42005_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             j              G_M42005_IG17
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M42005_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
             slli           a0, a0, 16
@@ -1035,7 +1035,7 @@ G_M42005_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             j              G_M42005_IG19
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M42005_IG31:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG31:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
             slli           a0, a0, 15
@@ -1049,7 +1049,7 @@ G_M42005_IG31:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             j              G_M42005_IG20
 						;; size=44 bbWeight=0 PerfScore 0.00
-G_M42005_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
             slli           a0, a0, 16
@@ -1069,7 +1069,7 @@ G_M42005_IG33:        ; bbWeight=0, gcVars=0000000000000040 {V06}, gcrefRegs=000
             ; gcr arg pop 0
             ebreak
 						;; size=32 bbWeight=0 PerfScore 0.00
-G_M42005_IG34:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG34:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ld             a1, -48(fp)
             ; gcrRegs +[a1]
             sb             zero, 0xD1FFAB1E(a1)
@@ -1135,7 +1135,7 @@ G_M42005_IG37:        ; bbWeight=0.35, gcVars=0000000000000000 {}, gcrefRegs=020
             ; gcr arg pop 0
             ebreak
 						;; size=88 bbWeight=0.35 PerfScore 9.32
-G_M42005_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42005_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
             slli           a0, a0, 14
@@ -1242,21 +1242,21 @@ G_M42005_IG44:        ; bbWeight=1.00, gcVars=0000001002400000 {V02 V03 V05}, gc
             sd             s4, 40(sp)
             fsd            fs6, 48(sp)
 						;; size=32 bbWeight=1.00 PerfScore 28.50
-G_M42005_IG45:        ; bbWeight=1.00, gcVars=0000001002400000 {V02 V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42005_IG45:        ; bbWeight=1.00, gcVars=0000001002400000 {V02 V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ld             a0, -40(fp)
             ; gcrRegs +[a0]
             lbu            a1, 0xD1FFAB1E(a0)
             sext.w         t6, a1
             bnez           t6, G_M42005_IG59
 						;; size=16 bbWeight=1.00 PerfScore 9.00
-G_M42005_IG46:        ; bbWeight=0.53, gcrefRegs=0400 {a0}, byrefRegs=0000 {}, byref
...
+0 (0.00%) : 336416.dasm - JIT.HardwareIntrinsics.X86._Avx512BW.ImmUnaryOpTest__ShiftLeftLogical128BitLaneByte1:ValidateResult(byte[],byte[],System.String):this (FullOpts)
@@ -192,7 +192,7 @@ G_M54748_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mv             s2, a3
             ; gcrRegs +[s2]
 						;; size=84 bbWeight=1 PerfScore 59.50
-G_M54748_IG02:        ; bbWeight=1, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG02:        ; bbWeight=1, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             mv             a0, zero
             lw             s5, 0xD1FFAB1E(s1)
             sext.w         a1, s5
@@ -202,7 +202,7 @@ G_M54748_IG02:        ; bbWeight=1, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=00
             sext.w         t6, a0
             bnez           t6, G_M54748_IG07
 						;; size=32 bbWeight=1 PerfScore 14.00
-G_M54748_IG03:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG03:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             addi           s6, zero, 0xD1FFAB1E
             fence          3, 3
             lui            t6, 0xD1FFAB1E
@@ -215,7 +215,7 @@ G_M54748_IG03:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             sext.w         t6, a0
             beqz           t6, G_M54748_IG31
 						;; size=44 bbWeight=0.50 PerfScore 8.50
-G_M54748_IG04:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG04:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             lui            t6, 0xD1FFAB1E
             addiw          t6, t6, 0xD1FFAB1E
             slli           t6, t6, 12
@@ -226,12 +226,12 @@ G_M54748_IG04:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             addi           ra, zero, 0xD1FFAB1E
             bge            ra, t6, G_M54748_IG30
 						;; size=36 bbWeight=0.50 PerfScore 5.75
-G_M54748_IG05:        ; bbWeight=4, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG05:        ; bbWeight=4, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             andi           a1, s6, 15
             sext.w         t6, a1
             bnez           t6, G_M54748_IG28
 						;; size=12 bbWeight=4 PerfScore 18.00
-G_M54748_IG06:        ; bbWeight=2, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG06:        ; bbWeight=2, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             sext.w         a1, s5
             sext.w         a2, s6
             bgeu           a2, a1, G_M54748_IG40
@@ -242,7 +242,7 @@ G_M54748_IG06:        ; bbWeight=2, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=00
             sext.w         t6, a1
             beqz           t6, G_M54748_IG29
 						;; size=28 bbWeight=2 PerfScore 24.00
-G_M54748_IG07:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG07:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             sd             zero, -40(fp)
             addi           a0, zero, 0xD1FFAB1E
             addi           a1, zero, 0xD1FFAB1E
@@ -275,7 +275,7 @@ G_M54748_IG07:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             lw             a0, 0xD1FFAB1E(a0)
             ; gcrRegs -[a0]
 						;; size=104 bbWeight=0.50 PerfScore 20.25
-G_M54748_IG08:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0800 {a1}, byref
+G_M54748_IG08:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0800 {a1}, byref, isz
             sd             a1, -16(fp)
             sw             a0, -8(fp)
             sw             zero, -24(fp)
@@ -315,7 +315,7 @@ G_M54748_IG08:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             jalr           a2		// <unknown method>
             ; gcr arg pop 0
 						;; size=132 bbWeight=0.50 PerfScore 28.50
-G_M54748_IG09:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref
+G_M54748_IG09:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref, isz
             sext.w         t6, s6
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M54748_IG33
@@ -331,7 +331,7 @@ G_M54748_IG10:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=36 bbWeight=0.50 PerfScore 9.21
-G_M54748_IG11:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG11:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[s5]
             lw             a0, -24(fp)
             lw             a1, -8(fp)
@@ -364,7 +364,7 @@ G_M54748_IG11:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             jalr           a2		// <unknown method>
             ; gcr arg pop 0
 						;; size=104 bbWeight=0.50 PerfScore 17.00
-G_M54748_IG12:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref
+G_M54748_IG12:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref, isz
             sext.w         t6, s6
             beqz           t6, G_M54748_IG34
 						;; size=8 bbWeight=0.50 PerfScore 2.00
@@ -375,7 +375,7 @@ G_M54748_IG13:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=20 bbWeight=0.50 PerfScore 5.49
-G_M54748_IG14:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG14:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[s5]
             lbu            a0, -20(fp)
             sext.w         t6, a0
@@ -411,7 +411,7 @@ G_M54748_IG14:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             jalr           a2		// <unknown method>
             ; gcr arg pop 0
 						;; size=116 bbWeight=0.50 PerfScore 20.50
-G_M54748_IG15:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref
+G_M54748_IG15:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref, isz
             sext.w         t6, s6
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M54748_IG35
@@ -434,7 +434,7 @@ G_M54748_IG16:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=52 bbWeight=0.50 PerfScore 9.21
-G_M54748_IG17:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG17:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             lw             a0, -24(fp)
             lw             a1, -8(fp)
             sext.w         ra, a0
@@ -466,7 +466,7 @@ G_M54748_IG17:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             jalr           a2		// <unknown method>
             ; gcr arg pop 0
 						;; size=104 bbWeight=0.50 PerfScore 17.00
-G_M54748_IG18:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref
+G_M54748_IG18:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref, isz
             sext.w         t6, s6
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M54748_IG36
@@ -489,13 +489,13 @@ G_M54748_IG19:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=52 bbWeight=0.50 PerfScore 9.23
-G_M54748_IG20:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG20:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             lbu            a0, -20(fp)
             sext.w         t6, a0
             bnez           t6, G_M54748_IG37
             beqz           s2, G_M54748_IG37
 						;; size=16 bbWeight=0.50 PerfScore 5.25
-G_M54748_IG21:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG21:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             lw             a0, -24(fp)
             lw             a1, -8(fp)
             sext.w         ra, a0
@@ -528,7 +528,7 @@ G_M54748_IG21:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             jalr           a2		// <unknown method>
             ; gcr arg pop 0
 						;; size=108 bbWeight=0.50 PerfScore 17.97
-G_M54748_IG22:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref
+G_M54748_IG22:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=200000 {s5}, byref, isz
             lw             s7, 0xD1FFAB1E(s2)
             sext.w         ra, s7
             sext.w         t6, s6
@@ -553,7 +553,7 @@ G_M54748_IG23:        ; bbWeight=0.50, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             addw           a0, a0, s7
             sw             a0, -24(fp)
 						;; size=48 bbWeight=0.50 PerfScore 8.47
-G_M54748_IG24:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG24:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000 {}, byref, isz
             lw             a0, -24(fp)
             lw             a1, -8(fp)
             sext.w         ra, a0
@@ -585,7 +585,7 @@ G_M54748_IG24:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=00
             jalr           a2		// <unknown method>
             ; gcr arg pop 0
 						;; size=104 bbWeight=0.50 PerfScore 17.00
-G_M54748_IG25:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=40000 {s2}, byref
+G_M54748_IG25:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=40000 {s2}, byref, isz
             sext.w         t6, s5
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M54748_IG39
@@ -601,7 +601,7 @@ G_M54748_IG26:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=40
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=36 bbWeight=0.50 PerfScore 9.23
-G_M54748_IG27:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG27:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[s2]
             addi           a0, fp, -40
             lui            t6, 0xD1FFAB1E
@@ -726,7 +726,7 @@ G_M54748_IG27:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=00
             sb             zero, 0xD1FFAB1E(s3)
             j              G_M54748_IG30
 						;; size=396 bbWeight=0.50 PerfScore 63.00
-G_M54748_IG28:        ; bbWeight=2, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG28:        ; bbWeight=2, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[s1 s2 s4]
             sext.w         a1, s5
             sext.w         a2, s6
@@ -739,7 +739,7 @@ G_M54748_IG28:        ; bbWeight=2, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=00
             addi           ra, zero, 0xD1FFAB1E
             bne            t6, ra, G_M54748_IG07
 						;; size=32 bbWeight=2 PerfScore 25.00
-G_M54748_IG29:        ; bbWeight=4, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG29:        ; bbWeight=4, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             addiw          s6, s6, 0xD1FFAB1E
             sext.w         ra, s6
             sext.w         t6, a0
@@ -758,7 +758,7 @@ G_M54748_IG30:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ld             fp, 40(sp)
             addi           sp, sp, 112
             ret						;; size=44 bbWeight=1 PerfScore 21.50
-G_M54748_IG31:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, gcvars, byref
+G_M54748_IG31:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[s1 s2-s4]
             lui            a0, 0xD1FFAB1E
             addiw          a0, a0, 0xD1FFAB1E
@@ -774,13 +774,13 @@ G_M54748_IG31:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1C0200
             ; gcr arg pop 0
             j              G_M54748_IG04
 						;; size=48 bbWeight=0 PerfScore 0.00
-G_M54748_IG32:        ; bbWeight=0, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG32:        ; bbWeight=0, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             mv             a1, zero
             ; byrRegs +[a1]
             sext.w         a0, zero
             j              G_M54748_IG08
 						;; size=12 bbWeight=0 PerfScore 0.00
-G_M54748_IG33:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG33:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[a1]
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
@@ -796,7 +796,7 @@ G_M54748_IG33:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             ; gcr arg pop 0
             j              G_M54748_IG11
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M54748_IG34:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG34:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
             addiw          a1, a1, 0xD1FFAB1E
@@ -811,7 +811,7 @@ G_M54748_IG34:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             ; gcr arg pop 0
             j              G_M54748_IG14
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M54748_IG35:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG35:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
             addiw          a1, a1, 0xD1FFAB1E
@@ -826,7 +826,7 @@ G_M54748_IG35:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             ; gcr arg pop 0
             j              G_M54748_IG17
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M54748_IG36:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
+G_M54748_IG36:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref, isz
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
             addiw          a1, a1, 0xD1FFAB1E
@@ -841,7 +841,7 @@ G_M54748_IG36:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs
             ; gcr arg pop 0
             j              G_M54748_IG20
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M54748_IG37:        ; bbWeight=0.00, gcrefRegs=1C0200 {s1 s2 s3 s4}, byrefRegs=0000 {}, byref
...
+0 (0.00%) : 336016.dasm - JIT.HardwareIntrinsics.X86._Avx512BW.SimdScalarUnaryOpConvertTest__MoveMaskVector256SByte:ValidateResult(sbyte[],int,System.String):this (FullOpts)
@@ -204,7 +204,7 @@ G_M62086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mv             s3, a3
             ; gcrRegs +[s3]
 						;; size=108 bbWeight=1 PerfScore 83.50
-G_M62086_IG02:        ; bbWeight=1, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000 {}, byref
+G_M62086_IG02:        ; bbWeight=1, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000 {}, byref, isz
             mv             a0, s1
             ; gcrRegs +[a0]
             lui            t6, 0xD1FFAB1E
@@ -217,7 +217,7 @@ G_M62086_IG02:        ; bbWeight=1, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000
             zext.w         a1, s2
             beq            a1, a0, G_M62086_IG28
 						;; size=36 bbWeight=1 PerfScore 13.50
-G_M62086_IG03:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000 {}, byref
+G_M62086_IG03:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=0000 {}, byref, isz
             sd             zero, -40(fp)
             addi           a0, zero, 0xD1FFAB1E
             addi           a1, zero, 0xD1FFAB1E
@@ -250,7 +250,7 @@ G_M62086_IG03:        ; bbWeight=0.50, gcrefRegs=180200 {s1 s3 s4}, byrefRegs=00
             lw             a0, 0xD1FFAB1E(a0)
             ; gcrRegs -[a0]
 						;; size=108 bbWeight=0.50 PerfScore 20.50
-G_M62086_IG04:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0800 {a1}, byref
+G_M62086_IG04:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0800 {a1}, byref, isz
             sd             a1, -16(fp)
             sw             a0, -8(fp)
             sw             zero, -24(fp)
@@ -290,7 +290,7 @@ G_M62086_IG04:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=136 bbWeight=0.50 PerfScore 29.50
-G_M62086_IG05:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref
+G_M62086_IG05:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref, isz
             sext.w         t6, s7
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M62086_IG30
@@ -306,7 +306,7 @@ G_M62086_IG06:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=36 bbWeight=0.50 PerfScore 9.21
-G_M62086_IG07:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG07:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[s6]
             lw             a0, -24(fp)
             lw             a1, -8(fp)
@@ -339,7 +339,7 @@ G_M62086_IG07:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=108 bbWeight=0.50 PerfScore 18.00
-G_M62086_IG08:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref
+G_M62086_IG08:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref, isz
             sext.w         t6, s7
             beqz           t6, G_M62086_IG31
 						;; size=8 bbWeight=0.50 PerfScore 2.00
@@ -350,7 +350,7 @@ G_M62086_IG09:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=20 bbWeight=0.50 PerfScore 5.49
-G_M62086_IG10:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG10:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[s6]
             lbu            a0, -20(fp)
             sext.w         t6, a0
@@ -386,7 +386,7 @@ G_M62086_IG10:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=120 bbWeight=0.50 PerfScore 21.50
-G_M62086_IG11:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref
+G_M62086_IG11:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref, isz
             sext.w         t6, s7
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M62086_IG32
@@ -402,7 +402,7 @@ G_M62086_IG12:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=36 bbWeight=0.50 PerfScore 9.21
-G_M62086_IG13:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG13:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[s6]
             lw             a0, -24(fp)
             lw             a1, -8(fp)
@@ -435,7 +435,7 @@ G_M62086_IG13:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=108 bbWeight=0.50 PerfScore 18.00
-G_M62086_IG14:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref
+G_M62086_IG14:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref, isz
             sext.w         t6, s7
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M62086_IG33
@@ -457,13 +457,13 @@ G_M62086_IG15:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=52 bbWeight=0.50 PerfScore 9.23
-G_M62086_IG16:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG16:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             lbu            a0, -20(fp)
             sext.w         t6, a0
             bnez           t6, G_M62086_IG34
             beqz           s3, G_M62086_IG34
 						;; size=16 bbWeight=0.50 PerfScore 5.25
-G_M62086_IG17:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG17:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             lw             a0, -24(fp)
             lw             a1, -8(fp)
             sext.w         ra, a0
@@ -495,7 +495,7 @@ G_M62086_IG17:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=108 bbWeight=0.50 PerfScore 17.97
-G_M62086_IG18:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref
+G_M62086_IG18:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=400000 {s6}, byref, isz
             lw             s8, 0xD1FFAB1E(s3)
             sext.w         ra, s8
             sext.w         t6, s7
@@ -519,7 +519,7 @@ G_M62086_IG19:        ; bbWeight=0.50, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             addw           a0, a0, s8
             sw             a0, -24(fp)
 						;; size=48 bbWeight=0.50 PerfScore 8.47
-G_M62086_IG20:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG20:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=0000 {}, byref, isz
             lw             a0, -24(fp)
             lw             a1, -8(fp)
             sext.w         ra, a0
@@ -551,7 +551,7 @@ G_M62086_IG20:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=00
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=108 bbWeight=0.50 PerfScore 18.00
-G_M62086_IG21:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=80000 {s3}, byref
+G_M62086_IG21:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=80000 {s3}, byref, isz
             sext.w         t6, s6
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M62086_IG35
@@ -567,7 +567,7 @@ G_M62086_IG22:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=80
             addiw          a0, a0, 0xD1FFAB1E
             sw             a0, -24(fp)
 						;; size=36 bbWeight=0.50 PerfScore 9.23
-G_M62086_IG23:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG23:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[s3]
             addi           a0, fp, -40
             lui            t6, 0xD1FFAB1E
@@ -654,7 +654,7 @@ G_M62086_IG23:        ; bbWeight=0.50, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=00
             lw             a0, 0xD1FFAB1E(a0)
             ; gcrRegs -[a0]
 						;; size=288 bbWeight=0.50 PerfScore 49.00
-G_M62086_IG24:        ; bbWeight=0.50, gcrefRegs=100000 {s4}, byrefRegs=0800 {a1}, byref
+G_M62086_IG24:        ; bbWeight=0.50, gcrefRegs=100000 {s4}, byrefRegs=0800 {a1}, byref, isz
             sd             a1, -56(fp)
             sw             a0, -48(fp)
             sw             zero, -64(fp)
@@ -691,7 +691,7 @@ G_M62086_IG24:        ; bbWeight=0.50, gcrefRegs=100000 {s4}, byrefRegs=0800 {a1
             ld             a2, 0xD1FFAB1E(t6)
             jalr           a2		// <unknown method>
 						;; size=124 bbWeight=0.50 PerfScore 26.00
-G_M62086_IG25:        ; bbWeight=0.50, gcrefRegs=100000 {s4}, byrefRegs=0200 {s1}, byref
+G_M62086_IG25:        ; bbWeight=0.50, gcrefRegs=100000 {s4}, byrefRegs=0200 {s1}, byref, isz
             sext.w         t6, s3
             addi           ra, zero, 0xD1FFAB1E
             bltu           t6, ra, G_M62086_IG38
@@ -767,14 +767,14 @@ G_M62086_IG28:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ld             fp, 80(sp)
             addi           sp, sp, 160
             ret						;; size=48 bbWeight=1 PerfScore 23.50
-G_M62086_IG29:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, gcvars, byref
+G_M62086_IG29:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[s1 s3-s5]
             mv             a1, zero
             ; byrRegs +[a1]
             sext.w         a0, zero
             j              G_M62086_IG04
 						;; size=12 bbWeight=0 PerfScore 0.00
-G_M62086_IG30:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG30:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[a1]
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
@@ -789,7 +789,7 @@ G_M62086_IG30:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             jalr           a2		// <unknown method>
             j              G_M62086_IG07
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M62086_IG31:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG31:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
             addiw          a1, a1, 0xD1FFAB1E
@@ -803,7 +803,7 @@ G_M62086_IG31:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             jalr           a2		// <unknown method>
             j              G_M62086_IG10
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M62086_IG32:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG32:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
             addiw          a1, a1, 0xD1FFAB1E
@@ -817,7 +817,7 @@ G_M62086_IG32:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             jalr           a2		// <unknown method>
             j              G_M62086_IG13
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M62086_IG33:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG33:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
             addiw          a1, a1, 0xD1FFAB1E
@@ -831,7 +831,7 @@ G_M62086_IG33:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             jalr           a2		// <unknown method>
             j              G_M62086_IG16
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M62086_IG34:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG34:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs=0000 {}, byref, isz
             addi           a0, fp, -40
             mv             a1, s3
             ; gcrRegs +[a1]
@@ -843,7 +843,7 @@ G_M62086_IG34:        ; bbWeight=0.00, gcrefRegs=380200 {s1 s3 s4 s5}, byrefRegs
             ; gcrRegs -[a1 s3]
             j              G_M62086_IG20
 						;; size=32 bbWeight=0.00 PerfScore 0.02
-G_M62086_IG35:        ; bbWeight=0.00, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=0000 {}, byref
+G_M62086_IG35:        ; bbWeight=0.00, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=0000 {}, byref, isz
             addi           a0, fp, -40
             lui            a1, 0xD1FFAB1E
             addiw          a1, a1, 0xD1FFAB1E
@@ -857,7 +857,7 @@ G_M62086_IG35:        ; bbWeight=0.00, gcrefRegs=300200 {s1 s4 s5}, byrefRegs=00
             jalr           a2		// <unknown method>
             j              G_M62086_IG23
 						;; size=48 bbWeight=0.00 PerfScore 0.02
-G_M62086_IG36:        ; bbWeight=0, gcrefRegs=100000 {s4}, byrefRegs=0000 {}, byref
+G_M62086_IG36:        ; bbWeight=0, gcrefRegs=100000 {s4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[s1 s5]
             mv             a1, zero
             ; byrRegs +[a1]
@@ -876,7 +876,7 @@ G_M62086_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             jalr           a0		// System.ThrowHelper:ThrowArgumentOutOfRangeException()
             ebreak
 						;; size=32 bbWeight=0 PerfScore 0.00
-G_M62086_IG38:        ; bbWeight=0.00, gcrefRegs=100000 {s4}, byrefRegs=0000 {}, byref
+G_M62086_IG38:        ; bbWeight=0.00, gcrefRegs=100000 {s4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[s4]
             addi           a0, fp, -80
             lui            a1, 0xD1FFAB1E
Details

Size improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
linux.riscv64.Checked.mch 13,291 1,391 0 11,900 -908,020 +0

PerfScore improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same PerfScore Improvements (PerfScore) Regressions (PerfScore) PerfScore Overall in FullOpts
linux.riscv64.Checked.mch 13,291 1,386 0 11,905 -1.70% 0.00% -0.0098%

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
linux.riscv64.Checked.mch 340,504 100,281 240,223 0 (0.00%) 0 (0.00%)

jit-analyze output

@tomeksowi tomeksowi force-pushed the common-emitJumpDistBind branch from b050e7b to 594f834 Compare October 13, 2025 15:03
@tomeksowi tomeksowi marked this pull request as ready for review October 14, 2025 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arch-riscv Related to the RISC-V architecture area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants