## Top method improvements

<details>
<summary>-474 (-79.80 % of base) - MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix`1[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this</summary>

```diff
 ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix`1[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 12,  7   )     ref  ->  rbx         this class-hnd single-def <MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]>
-;  V01 arg1         [V01,T03] (  3,  3   )     ref  ->  rsi         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Matrix`1[double]>
-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  ->  r15         single-def
-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  ->  r14         single-def
-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  ->  r13         single-def
-;  V05 loc0         [V05,T08] (  4,  3   )     ref  ->  r12         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[double]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]>
+;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Matrix`1[double]>
+;  V02 arg2         [V02,T03] (  4,  4   )     int  ->  r15         single-def
+;  V03 arg3         [V03,T04] (  4,  4   )     int  ->  r14         single-def
+;* V04 arg4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
+;* V05 loc0         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[double]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
+;  V07 tmp1         [V07,T00] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;  V11 tmp5         [V11,T11] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]>
-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]>
-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
-;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    "Single return block return value"
 ;
 ; Lcl frame size = 8
 
 G_M60348_IG01:
-       push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
        push     rax
-       lea      rbp, [rsp+0x30]
        mov      rbx, rdi
        mov      r15d, edx
        mov      r14d, ecx
-       mov      r13d, r8d
-						;; size=28 bbWeight=1 PerfScore 8.50
+						;; size=17 bbWeight=1 PerfScore 5.75
 G_M60348_IG02:
-       mov      r12, gword ptr [rsi+0x08]
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      G_M60348_IG11
-						;; size=38 bbWeight=1 PerfScore 7.00
-G_M60348_IG03:
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      G_M60348_IG07
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      SHORT G_M60348_IG05
+       cmp      byte  ptr [rsi], sil
        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, r13
        mov      esi, r15d
        mov      edx, r14d
        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
        imul     r15d, r14d
        movsxd   rsi, r15d
        mov      rdi, 0xD1FFAB1E      ; byte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      rsi, rax
        lea      rdi, bword ptr [r13+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, rbx
        mov      rsi, r13
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
-						;; size=150 bbWeight=0.50 PerfScore 12.62
-G_M60348_IG04:
+						;; size=89 bbWeight=1 PerfScore 17.25
+G_M60348_IG03:
        add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
-       pop      rbp
        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M60348_IG05:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=52 bbWeight=0.50 PerfScore 5.00
-G_M60348_IG06:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M60348_IG07:
-       test     r13b, r13b
-       je       SHORT G_M60348_IG09
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=57 bbWeight=0.50 PerfScore 5.62
-G_M60348_IG08:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M60348_IG09:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       cmp      r15d, r14d
-       mov      esi, r14d
-       cmovle   esi, r15d
-       movsxd   rsi, esi
-       mov      rdi, 0xD1FFAB1E      ; byte[]
-       call     CORINFO_HELP_NEWARR_1_VC
-       mov      rsi, rax
-       lea      rdi, bword ptr [r13+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=92 bbWeight=0.50 PerfScore 7.12
-G_M60348_IG10:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M60348_IG11:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       mov      esi, r15d
-       imul     esi, r14d
-       movsxd   rsi, esi
-       mov      rdi, 0xD1FFAB1E      ; byte[]
-       call     CORINFO_HELP_NEWARR_1_VC
-       mov      rsi, rax
-       lea      rdi, bword ptr [r13+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=89 bbWeight=0.50 PerfScore 7.75
-G_M60348_IG12:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=17 bbWeight=0.50 PerfScore 2.62
+						;; size=14 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=10511443) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix`1[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=10511443) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[double](MathNet.Numerics.LinearAlgebra.Matrix`1[double],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-474 (-79.80 % of base) - MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix`1[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this</summary>

```diff
 ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix`1[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 12,  7   )     ref  ->  rbx         this class-hnd single-def <MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]>
-;  V01 arg1         [V01,T03] (  3,  3   )     ref  ->  rsi         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Matrix`1[int]>
-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  ->  r15         single-def
-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  ->  r14         single-def
-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  ->  r13         single-def
-;  V05 loc0         [V05,T08] (  4,  3   )     ref  ->  r12         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[int]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]>
+;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Matrix`1[int]>
+;  V02 arg2         [V02,T03] (  4,  4   )     int  ->  r15         single-def
+;  V03 arg3         [V03,T04] (  4,  4   )     int  ->  r14         single-def
+;* V04 arg4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
+;* V05 loc0         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[int]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
+;  V07 tmp1         [V07,T00] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;  V11 tmp5         [V11,T11] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]>
-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]>
-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
-;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    "Single return block return value"
 ;
 ; Lcl frame size = 8
 
 G_M2076_IG01:
-       push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
        push     rax
-       lea      rbp, [rsp+0x30]
        mov      rbx, rdi
        mov      r15d, edx
        mov      r14d, ecx
-       mov      r13d, r8d
-						;; size=28 bbWeight=1 PerfScore 8.50
+						;; size=17 bbWeight=1 PerfScore 5.75
 G_M2076_IG02:
-       mov      r12, gword ptr [rsi+0x08]
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      G_M2076_IG11
-						;; size=38 bbWeight=1 PerfScore 7.00
-G_M2076_IG03:
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      G_M2076_IG07
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      SHORT G_M2076_IG05
+       cmp      byte  ptr [rsi], sil
        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, r13
        mov      esi, r15d
        mov      edx, r14d
        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
        imul     r15d, r14d
        movsxd   rsi, r15d
        mov      rdi, 0xD1FFAB1E      ; byte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      rsi, rax
        lea      rdi, bword ptr [r13+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, rbx
        mov      rsi, r13
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
-						;; size=150 bbWeight=0.50 PerfScore 12.62
-G_M2076_IG04:
+						;; size=89 bbWeight=1 PerfScore 17.25
+G_M2076_IG03:
        add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
-       pop      rbp
        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M2076_IG05:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=52 bbWeight=0.50 PerfScore 5.00
-G_M2076_IG06:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M2076_IG07:
-       test     r13b, r13b
-       je       SHORT G_M2076_IG09
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=57 bbWeight=0.50 PerfScore 5.62
-G_M2076_IG08:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M2076_IG09:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       cmp      r15d, r14d
-       mov      esi, r14d
-       cmovle   esi, r15d
-       movsxd   rsi, esi
-       mov      rdi, 0xD1FFAB1E      ; byte[]
-       call     CORINFO_HELP_NEWARR_1_VC
-       mov      rsi, rax
-       lea      rdi, bword ptr [r13+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=92 bbWeight=0.50 PerfScore 7.12
-G_M2076_IG10:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M2076_IG11:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       mov      esi, r15d
-       imul     esi, r14d
-       movsxd   rsi, esi
-       mov      rdi, 0xD1FFAB1E      ; byte[]
-       call     CORINFO_HELP_NEWARR_1_VC
-       mov      rsi, rax
-       lea      rdi, bword ptr [r13+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=89 bbWeight=0.50 PerfScore 7.75
-G_M2076_IG12:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=17 bbWeight=0.50 PerfScore 2.62
+						;; size=14 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=d99df7e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix`1[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=d99df7e3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[int](MathNet.Numerics.LinearAlgebra.Matrix`1[int],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-474 (-79.80 % of base) - MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix`1[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this</summary>

```diff
 ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix`1[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 12,  7   )     ref  ->  rbx         this class-hnd single-def <MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]>
-;  V01 arg1         [V01,T03] (  3,  3   )     ref  ->  rsi         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Matrix`1[long]>
-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  ->  r15         single-def
-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  ->  r14         single-def
-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  ->  r13         single-def
-;  V05 loc0         [V05,T08] (  4,  3   )     ref  ->  r12         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[long]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]>
+;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Matrix`1[long]>
+;  V02 arg2         [V02,T03] (  4,  4   )     int  ->  r15         single-def
+;  V03 arg3         [V03,T04] (  4,  4   )     int  ->  r14         single-def
+;* V04 arg4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
+;* V05 loc0         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[long]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
+;  V07 tmp1         [V07,T00] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;  V11 tmp5         [V11,T11] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]>
-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]>
-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
-;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    "Single return block return value"
 ;
 ; Lcl frame size = 8
 
 G_M27772_IG01:
-       push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
        push     rax
-       lea      rbp, [rsp+0x30]
        mov      rbx, rdi
        mov      r15d, edx
        mov      r14d, ecx
-       mov      r13d, r8d
-						;; size=28 bbWeight=1 PerfScore 8.50
+						;; size=17 bbWeight=1 PerfScore 5.75
 G_M27772_IG02:
-       mov      r12, gword ptr [rsi+0x08]
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      G_M27772_IG11
-						;; size=38 bbWeight=1 PerfScore 7.00
-G_M27772_IG03:
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      G_M27772_IG07
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      SHORT G_M27772_IG05
+       cmp      byte  ptr [rsi], sil
        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, r13
        mov      esi, r15d
        mov      edx, r14d
        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
        imul     r15d, r14d
        movsxd   rsi, r15d
        mov      rdi, 0xD1FFAB1E      ; byte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      rsi, rax
        lea      rdi, bword ptr [r13+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, rbx
        mov      rsi, r13
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
-						;; size=150 bbWeight=0.50 PerfScore 12.62
-G_M27772_IG04:
+						;; size=89 bbWeight=1 PerfScore 17.25
+G_M27772_IG03:
        add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
-       pop      rbp
        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M27772_IG05:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=52 bbWeight=0.50 PerfScore 5.00
-G_M27772_IG06:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M27772_IG07:
-       test     r13b, r13b
-       je       SHORT G_M27772_IG09
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=57 bbWeight=0.50 PerfScore 5.62
-G_M27772_IG08:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M27772_IG09:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       cmp      r15d, r14d
-       mov      esi, r14d
-       cmovle   esi, r15d
-       movsxd   rsi, esi
-       mov      rdi, 0xD1FFAB1E      ; byte[]
-       call     CORINFO_HELP_NEWARR_1_VC
-       mov      rsi, rax
-       lea      rdi, bword ptr [r13+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=92 bbWeight=0.50 PerfScore 7.12
-G_M27772_IG10:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M27772_IG11:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       mov      esi, r15d
-       imul     esi, r14d
-       movsxd   rsi, esi
-       mov      rdi, 0xD1FFAB1E      ; byte[]
-       call     CORINFO_HELP_NEWARR_1_VC
-       mov      rsi, rax
-       lea      rdi, bword ptr [r13+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=89 bbWeight=0.50 PerfScore 7.75
-G_M27772_IG12:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=17 bbWeight=0.50 PerfScore 2.62
+						;; size=14 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=eab09383) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix`1[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=eab09383) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[long](MathNet.Numerics.LinearAlgebra.Matrix`1[long],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-474 (-79.80 % of base) - MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix`1[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this</summary>

```diff
 ; Assembly listing for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix`1[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 12,  7   )     ref  ->  rbx         this class-hnd single-def <MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]>
-;  V01 arg1         [V01,T03] (  3,  3   )     ref  ->  rsi         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Matrix`1[short]>
-;  V02 arg2         [V02,T01] ( 11,  6.50)     int  ->  r15         single-def
-;  V03 arg3         [V03,T02] ( 11,  6.50)     int  ->  r14         single-def
-;  V04 arg4         [V04,T04] (  3,  2.50)   ubyte  ->  r13         single-def
-;  V05 loc0         [V05,T08] (  4,  3   )     ref  ->  r12         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[short]>
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]>
+;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <MathNet.Numerics.LinearAlgebra.Matrix`1[short]>
+;  V02 arg2         [V02,T03] (  4,  4   )     int  ->  r15         single-def
+;  V03 arg3         [V03,T04] (  4,  4   )     int  ->  r14         single-def
+;* V04 arg4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
+;* V05 loc0         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[short]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V07 tmp1         [V07,T05] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
+;  V07 tmp1         [V07,T00] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;  V09 tmp3         [V09,T06] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;  V11 tmp5         [V11,T11] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
-;  V12 tmp6         [V12,T09] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]>
-;  V13 tmp7         [V13,T10] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]>
-;  V14 tmp8         [V14,T07] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]>
-;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <byte[]>
-;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    "Single return block return value"
 ;
 ; Lcl frame size = 8
 
 G_M52284_IG01:
-       push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
        push     rax
-       lea      rbp, [rsp+0x30]
        mov      rbx, rdi
        mov      r15d, edx
        mov      r14d, ecx
-       mov      r13d, r8d
-						;; size=28 bbWeight=1 PerfScore 8.50
+						;; size=17 bbWeight=1 PerfScore 5.75
 G_M52284_IG02:
-       mov      r12, gword ptr [rsi+0x08]
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      G_M52284_IG11
-						;; size=38 bbWeight=1 PerfScore 7.00
-G_M52284_IG03:
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      G_M52284_IG07
-       mov      rsi, r12
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       test     rax, rax
-       jne      SHORT G_M52284_IG05
+       cmp      byte  ptr [rsi], sil
        mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, r13
        mov      esi, r15d
        mov      edx, r14d
        mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
        call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
        imul     r15d, r14d
        movsxd   rsi, r15d
        mov      rdi, 0xD1FFAB1E      ; byte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      rsi, rax
        lea      rdi, bword ptr [r13+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, rbx
        mov      rsi, r13
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
-						;; size=150 bbWeight=0.50 PerfScore 12.62
-G_M52284_IG04:
+						;; size=89 bbWeight=1 PerfScore 17.25
+G_M52284_IG03:
        add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
-       pop      rbp
        tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M52284_IG05:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=52 bbWeight=0.50 PerfScore 5.00
-G_M52284_IG06:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M52284_IG07:
-       test     r13b, r13b
-       je       SHORT G_M52284_IG09
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]:.ctor(int,int):this
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=57 bbWeight=0.50 PerfScore 5.62
-G_M52284_IG08:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x08]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Sparse(MathNet.Numerics.LinearAlgebra.Storage.SparseCompressedRowMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M52284_IG09:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       cmp      r15d, r14d
-       mov      esi, r14d
-       cmovle   esi, r15d
-       movsxd   rsi, esi
-       mov      rdi, 0xD1FFAB1E      ; byte[]
-       call     CORINFO_HELP_NEWARR_1_VC
-       mov      rsi, rax
-       lea      rdi, bword ptr [r13+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=92 bbWeight=0.50 PerfScore 7.12
-G_M52284_IG10:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x10]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Diagonal(MathNet.Numerics.LinearAlgebra.Storage.DiagonalMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M52284_IG11:
-       mov      rdi, 0xD1FFAB1E      ; MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       mov      rdi, r13
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       call     [rax]MathNet.Numerics.LinearAlgebra.Storage.MatrixStorage`1[byte]:.ctor(int,int):this
-       mov      esi, r15d
-       imul     esi, r14d
-       movsxd   rsi, esi
-       mov      rdi, 0xD1FFAB1E      ; byte[]
-       call     CORINFO_HELP_NEWARR_1_VC
-       mov      rsi, rax
-       lea      rdi, bword ptr [r13+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, r13
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-						;; size=89 bbWeight=0.50 PerfScore 7.75
-G_M52284_IG12:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax]MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:Dense(MathNet.Numerics.LinearAlgebra.Storage.DenseColumnMajorMatrixStorage`1[byte]):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this
-						;; size=17 bbWeight=0.50 PerfScore 2.62
+						;; size=14 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 594, prolog size 16, PerfScore 66.75, instruction count 157, allocated bytes for code 594 (MethodHash=b4c033c3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix`1[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 27.25, instruction count 34, allocated bytes for code 120 (MethodHash=b4c033c3) for method MathNet.Numerics.LinearAlgebra.MatrixBuilder`1[byte]:SameAs[short](MathNet.Numerics.LinearAlgebra.Matrix`1[short],int,int,bool):MathNet.Numerics.LinearAlgebra.Matrix`1[byte]:this (FullOpts)
 ; ============================================================
```

</details>



Note: some changes were skipped as they were too large to fit into a comment.

