## Top method regressions

<details>
<summary>165 (12.71 % of base) - System.Number:DiyFp128CosPi(byref):System.Number+DiyFp128</summary>

```diff
 ; Assembly listing for method System.Number:DiyFp128CosPi(byref):System.Number+DiyFp128 (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 28 single block inlinees; 3 inlinees without PGO data
+; 0 inlinees with PGO data; 24 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T00] ( 12,  7.50)    long  ->  rbx         single-def
+;  V00 RetBuf       [V00,T00] ( 13,  8   )    long  ->  rbx         single-def
 ;  V01 arg0         [V01,T03] (  3,  3   )   byref  ->  rsi         single-def
 ;  V02 loc0         [V02    ] (  3,  3   )  struct (24) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Number+DiyFp128>
-;  V03 loc1         [V03    ] (  8,  4.50)  struct (24) [rbp-0x48]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op <System.Number+DiyFp128>
+;  V03 loc1         [V03    ] ( 14,  7.50)  struct (24) [rbp-0x48]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op <System.Number+DiyFp128>
 ;  V04 loc2         [V04    ] (  3,  2   )   ubyte  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V05 loc3         [V05    ] (  2,  2   )   ubyte  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
-;  V07 loc5         [V07,T07] (  6,  3   )  struct (24) [rbp-0x70]  do-not-enreg[DAS] defined-via-address ld-addr-op <System.Number+DiyFp128>
-;  V08 loc6         [V08    ] ( 24, 12   )  struct (64) [rbp-0xB0]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Number+DiyFp128TrigReduceArg>
-;  V09 loc7         [V09    ] (  6,  3   )  struct (24) [rbp-0xC8]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op <System.Number+DiyFp128>
-;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V11 tmp1         [V11,T24] (  2,  1   )     int  ->  r15        
-;  V12 tmp2         [V12,T15] (  2,  2   )  struct (24) [rbp-0xE0]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
-;  V13 tmp3         [V13,T01] (  5,  5   )  struct (24) [rbp-0xF8]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
-;* V14 tmp4         [V14    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128>
-;  V15 tmp5         [V15,T16] (  2,  2   )  struct (24) [rbp-0x110]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
-;  V16 tmp6         [V16,T02] (  5,  5   )  struct (24) [rbp-0x128]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
-;  V17 tmp7         [V17,T17] (  2,  2   )  struct (24) [rbp-0x140]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
-;  V18 tmp8         [V18,T18] (  2,  2   )  struct (24) [rbp-0x158]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
-;* V19 tmp9         [V19    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] <System.Number+DiyFp128>
-;* V20 tmp10        [V20    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] <System.Number+DiyFp128>
-;  V21 tmp11        [V21,T25] (  2,  1   )     int  ->  rax        
-;* V22 tmp12        [V22    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.Number+DiyFp128>
-;* V23 tmp13        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V24 tmp14        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;  V25 tmp15        [V25,T19] (  2,  2   )  struct (64) [rbp-0x198]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128TrigReduceArg>
-;* V26 tmp16        [V26    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
-;* V27 tmp17        [V27    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V28 tmp18        [V28    ] (  3,  1.50)  struct (24) [rbp-0x1B0]  do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Number+DiyFp128>
-;* V29 tmp19        [V29    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[System.Number+DiyFp128]>
-;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;  V31 tmp21        [V31,T20] (  2,  2   )  struct (64) [rbp-0x1F0]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128TrigReduceArg>
-;* V32 tmp22        [V32    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
-;* V33 tmp23        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V34 tmp24        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;  V35 tmp25        [V35,T21] (  2,  2   )  struct (64) [rbp-0x230]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128TrigReduceArg>
-;* V36 tmp26        [V36    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
-;* V37 tmp27        [V37    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.Number+DiyFp128>
-;  V38 tmp28        [V38    ] (  3,  1.50)  struct (24) [rbp-0x248]  do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Number+DiyFp128>
-;* V39 tmp29        [V39    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[System.Number+DiyFp128]>
-;* V40 tmp30        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
-;  V41 tmp31        [V41,T22] (  2,  2   )  struct (64) [rbp-0x288]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128TrigReduceArg>
-;* V42 tmp32        [V42    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
-;* V43 tmp33        [V43    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.Number+DiyFp128>
-;* V44 tmp34        [V44    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.Number+DiyFp128>
-;  V45 tmp35        [V45    ] (  3,  3   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V02._sign (fldOffset=0x0)" P-DEP
-;  V46 tmp36        [V46    ] (  2,  2   )     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V02._exponent (fldOffset=0x4)" P-DEP
-;  V47 tmp37        [V47    ] (  2,  2   )    long  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "field V02._hi (fldOffset=0x8)" P-DEP
-;  V48 tmp38        [V48    ] (  2,  2   )    long  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed "field V02._lo (fldOffset=0x10)" P-DEP
-;* V49 tmp39        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V14._sign (fldOffset=0x0)" P-INDEP
-;* V50 tmp40        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V14._exponent (fldOffset=0x4)" P-INDEP
-;* V51 tmp41        [V51    ] (  0,  0   )    long  ->  zero-ref    "field V14._hi (fldOffset=0x8)" P-INDEP
-;* V52 tmp42        [V52    ] (  0,  0   )    long  ->  zero-ref    "field V14._lo (fldOffset=0x10)" P-INDEP
-;  V53 tmp43        [V53,T26] (  2,  1   )     int  ->  rax         "field V22._sign (fldOffset=0x0)" P-INDEP
-;* V54 tmp44        [V54    ] (  0,  0   )     int  ->  zero-ref    "field V22._exponent (fldOffset=0x4)" P-INDEP
-;* V55 tmp45        [V55    ] (  0,  0   )    long  ->  zero-ref    "field V22._hi (fldOffset=0x8)" P-INDEP
-;* V56 tmp46        [V56    ] (  0,  0   )    long  ->  zero-ref    "field V22._lo (fldOffset=0x10)" P-INDEP
-;* V57 tmp47        [V57    ] (  0,  0   )    long  ->  zero-ref    "field V24._lower (fldOffset=0x0)" P-INDEP
-;* V58 tmp48        [V58    ] (  0,  0   )    long  ->  zero-ref    "field V24._upper (fldOffset=0x8)" P-INDEP
-;* V59 tmp49        [V59    ] (  0,  0   )    long  ->  zero-ref    "field V26._lower (fldOffset=0x0)" P-INDEP
-;* V60 tmp50        [V60    ] (  0,  0   )    long  ->  zero-ref    "field V26._upper (fldOffset=0x8)" P-INDEP
-;* V61 tmp51        [V61,T34] (  0,  0   )   byref  ->  zero-ref    single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V62 tmp52        [V62    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0x8)" P-INDEP
-;* V63 tmp53        [V63    ] (  0,  0   )    long  ->  zero-ref    "field V30._lower (fldOffset=0x0)" P-INDEP
-;* V64 tmp54        [V64    ] (  0,  0   )    long  ->  zero-ref    "field V30._upper (fldOffset=0x8)" P-INDEP
-;* V65 tmp55        [V65    ] (  0,  0   )    long  ->  zero-ref    "field V32._lower (fldOffset=0x0)" P-INDEP
-;* V66 tmp56        [V66    ] (  0,  0   )    long  ->  zero-ref    "field V32._upper (fldOffset=0x8)" P-INDEP
-;* V67 tmp57        [V67    ] (  0,  0   )    long  ->  zero-ref    "field V34._lower (fldOffset=0x0)" P-INDEP
-;* V68 tmp58        [V68    ] (  0,  0   )    long  ->  zero-ref    "field V34._upper (fldOffset=0x8)" P-INDEP
-;* V69 tmp59        [V69    ] (  0,  0   )    long  ->  zero-ref    "field V36._lower (fldOffset=0x0)" P-INDEP
-;* V70 tmp60        [V70    ] (  0,  0   )    long  ->  zero-ref    "field V36._upper (fldOffset=0x8)" P-INDEP
-;  V71 tmp61        [V71,T11] (  4,  2   )     int  ->  rcx         "field V37._sign (fldOffset=0x0)" P-INDEP
-;  V72 tmp62        [V72,T27] (  2,  1   )     int  ->  rax         "field V37._exponent (fldOffset=0x4)" P-INDEP
-;  V73 tmp63        [V73,T28] (  2,  1   )    long  ->   r8         "field V37._hi (fldOffset=0x8)" P-INDEP
-;  V74 tmp64        [V74,T29] (  2,  1   )    long  ->  rsi         "field V37._lo (fldOffset=0x10)" P-INDEP
-;* V75 tmp65        [V75,T35] (  0,  0   )   byref  ->  zero-ref    single-def "field V39._reference (fldOffset=0x0)" P-INDEP
-;* V76 tmp66        [V76    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
-;* V77 tmp67        [V77    ] (  0,  0   )    long  ->  zero-ref    "field V40._lower (fldOffset=0x0)" P-INDEP
-;* V78 tmp68        [V78    ] (  0,  0   )    long  ->  zero-ref    "field V40._upper (fldOffset=0x8)" P-INDEP
-;* V79 tmp69        [V79    ] (  0,  0   )    long  ->  zero-ref    "field V42._lower (fldOffset=0x0)" P-INDEP
-;* V80 tmp70        [V80    ] (  0,  0   )    long  ->  zero-ref    "field V42._upper (fldOffset=0x8)" P-INDEP
-;  V81 tmp71        [V81,T12] (  4,  2   )     int  ->  rdi         "field V43._sign (fldOffset=0x0)" P-INDEP
-;  V82 tmp72        [V82,T30] (  2,  1   )     int  ->  rax         "field V43._exponent (fldOffset=0x4)" P-INDEP
-;  V83 tmp73        [V83,T31] (  2,  1   )    long  ->  rcx         "field V43._hi (fldOffset=0x8)" P-INDEP
-;  V84 tmp74        [V84,T32] (  2,  1   )    long  ->   r8         "field V43._lo (fldOffset=0x10)" P-INDEP
-;  V85 tmp75        [V85,T33] (  2,  1   )     int  ->  r15         "field V44._sign (fldOffset=0x0)" P-INDEP
-;* V86 tmp76        [V86    ] (  0,  0   )     int  ->  zero-ref    "field V44._exponent (fldOffset=0x4)" P-INDEP
-;* V87 tmp77        [V87    ] (  0,  0   )    long  ->  zero-ref    "field V44._hi (fldOffset=0x8)" P-INDEP
-;* V88 tmp78        [V88    ] (  0,  0   )    long  ->  zero-ref    "field V44._lo (fldOffset=0x10)" P-INDEP
-;* V89 tmp79        [V89    ] (  0,  0   )    long  ->  zero-ref    "V25.[032..040)"
-;* V90 tmp80        [V90    ] (  0,  0   )    long  ->  zero-ref    "V25.[040..048)"
-;* V91 tmp81        [V91    ] (  0,  0   )     int  ->  zero-ref    "V25.[048..052)"
-;* V92 tmp82        [V92    ] (  0,  0   )     int  ->  zero-ref    "V25.[052..056)"
-;* V93 tmp83        [V93    ] (  0,  0   )   ubyte  ->  zero-ref    "V25.[056..057)"
-;* V94 tmp84        [V94    ] (  0,  0   )    long  ->  zero-ref    "V31.[032..040)"
-;* V95 tmp85        [V95    ] (  0,  0   )    long  ->  zero-ref    "V31.[040..048)"
-;* V96 tmp86        [V96    ] (  0,  0   )     int  ->  zero-ref    "V31.[048..052)"
-;* V97 tmp87        [V97    ] (  0,  0   )     int  ->  zero-ref    "V31.[052..056)"
-;* V98 tmp88        [V98    ] (  0,  0   )   ubyte  ->  zero-ref    "V31.[056..057)"
-;* V99 tmp89        [V99    ] (  0,  0   )    long  ->  zero-ref    "V35.[032..040)"
-;* V100 tmp90       [V100    ] (  0,  0   )    long  ->  zero-ref    "V35.[040..048)"
-;* V101 tmp91       [V101    ] (  0,  0   )     int  ->  zero-ref    "V35.[048..052)"
-;* V102 tmp92       [V102    ] (  0,  0   )     int  ->  zero-ref    "V35.[052..056)"
-;* V103 tmp93       [V103    ] (  0,  0   )   ubyte  ->  zero-ref    "V35.[056..057)"
-;* V104 tmp94       [V104    ] (  0,  0   )    long  ->  zero-ref    "V41.[032..040)"
-;* V105 tmp95       [V105    ] (  0,  0   )    long  ->  zero-ref    "V41.[040..048)"
-;* V106 tmp96       [V106    ] (  0,  0   )     int  ->  zero-ref    "V41.[048..052)"
-;* V107 tmp97       [V107    ] (  0,  0   )     int  ->  zero-ref    "V41.[052..056)"
-;* V108 tmp98       [V108    ] (  0,  0   )   ubyte  ->  zero-ref    "V41.[056..057)"
-;  V109 tmp99       [V109,T13] (  4,  2   )     int  ->  r14         "V07.[000..004)"
-;  V110 tmp100      [V110,T14] (  4,  2   )     int  ->  rax         "V07.[004..008)"
-;  V111 tmp101      [V111,T08] (  5,  2.50)    long  ->  rcx         "V07.[008..016)"
-;  V112 tmp102      [V112,T09] (  5,  2.50)    long  ->   r8         "V07.[016..024)"
-;* V113 tmp103      [V113,T38] (  0,  0   )     int  ->  zero-ref    "V20.[000..004)"
-;* V114 tmp104      [V114,T39] (  0,  0   )     int  ->  zero-ref    "V20.[004..008)"
-;* V115 tmp105      [V115,T40] (  0,  0   )    long  ->  zero-ref    "V20.[008..016)"
-;* V116 tmp106      [V116,T41] (  0,  0   )    long  ->  zero-ref    "V20.[016..024)"
-;  V117 cse0        [V117,T04] (  8,  4   )     ref  ->  rdx         multi-def "CSE #06: aggressive"
-;  V118 cse1        [V118,T05] (  8,  4   )    long  ->  rcx         "CSE #04: aggressive"
-;  V119 cse2        [V119,T06] (  7,  3.50)     int  ->  rsi         "CSE #02: aggressive"
-;  V120 cse3        [V120,T23] (  2,  1   )   byref  ->  rdi         "CSE #07: aggressive"
-;* V121 cse4        [V121,T36] (  0,  0   )   byref  ->  zero-ref    "CSE #03: moderate"
-;* V122 cse5        [V122,T37] (  0,  0   )   byref  ->  zero-ref    "CSE #09: moderate"
-;  V123 cse6        [V123,T10] (  5,  2.50)    long  ->   r8         "CSE #05: moderate"
+;  V07 loc5         [V07,T04] (  6,  3   )  struct (24) [rbp-0x70]  do-not-enreg[DAS] defined-via-address ld-addr-op <System.Number+DiyFp128>
+;  V08 loc6         [V08    ] ( 18,  9   )  struct (24) [rbp-0x88]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op <System.Number+DiyFp128>
+;  V09 loc7         [V09    ] ( 24, 12   )  struct (64) [rbp-0xC8]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Number+DiyFp128TrigReduceArg>
+;  V10 loc8         [V10    ] (  6,  3   )  struct (24) [rbp-0xE0]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op <System.Number+DiyFp128>
+;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
+;  V12 tmp1         [V12,T38] (  2,  1   )     int  ->  r15        
+;  V13 tmp2         [V13,T18] (  2,  2   )  struct (24) [rbp-0xF8]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
+;  V14 tmp3         [V14,T01] (  5,  5   )  struct (24) [rbp-0x110]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
+;* V15 tmp4         [V15    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128>
+;  V16 tmp5         [V16,T19] (  2,  2   )  struct (24) [rbp-0x128]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
+;  V17 tmp6         [V17,T02] (  5,  5   )  struct (24) [rbp-0x140]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
+;  V18 tmp7         [V18,T20] (  2,  2   )  struct (24) [rbp-0x158]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
+;  V19 tmp8         [V19,T21] (  2,  2   )  struct (24) [rbp-0x170]  do-not-enreg[DAS] defined-via-address "spilled call-like call argument" <System.Number+DiyFp128>
+;  V20 tmp9         [V20,T05] (  5,  2.50)  struct (24) [rbp-0x188]  do-not-enreg[DAS] defined-via-address <System.Number+DiyFp128>
+;* V21 tmp10        [V21    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] <System.Number+DiyFp128>
+;  V22 tmp11        [V22,T39] (  2,  1   )     int  ->  rsi        
+;* V23 tmp12        [V23    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.Number+DiyFp128>
+;* V24 tmp13        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V25 tmp14        [V25    ] (  2,  1   )  struct (24) [rbp-0x1A0]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op "Inline stloc first use temp" <System.Number+DiyFp128>
+;* V26 tmp15        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;  V27 tmp16        [V27,T22] (  2,  2   )  struct (64) [rbp-0x1E0]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128TrigReduceArg>
+;* V28 tmp17        [V28    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
+;* V29 tmp18        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V30 tmp19        [V30    ] (  2,  1   )  struct (24) [rbp-0x1F8]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op "Inline stloc first use temp" <System.Number+DiyFp128>
+;* V31 tmp20        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;  V32 tmp21        [V32,T23] (  2,  2   )  struct (64) [rbp-0x238]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128TrigReduceArg>
+;* V33 tmp22        [V33    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
+;* V34 tmp23        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V35 tmp24        [V35    ] (  2,  1   )  struct (24) [rbp-0x250]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op "Inline stloc first use temp" <System.Number+DiyFp128>
+;* V36 tmp25        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;  V37 tmp26        [V37,T24] (  2,  2   )  struct (64) [rbp-0x290]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128TrigReduceArg>
+;* V38 tmp27        [V38    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
+;* V39 tmp28        [V39    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.Number+DiyFp128>
+;  V40 tmp29        [V40    ] (  2,  1   )  struct (24) [rbp-0x2A8]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op "Inline stloc first use temp" <System.Number+DiyFp128>
+;* V41 tmp30        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;  V42 tmp31        [V42,T25] (  2,  2   )  struct (64) [rbp-0x2E8]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Number+DiyFp128TrigReduceArg>
+;* V43 tmp32        [V43    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
+;* V44 tmp33        [V44    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.Number+DiyFp128>
+;* V45 tmp34        [V45    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.Number+DiyFp128>
+;  V46 tmp35        [V46    ] (  3,  3   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V02._sign (fldOffset=0x0)" P-DEP
+;  V47 tmp36        [V47    ] (  2,  2   )     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V02._exponent (fldOffset=0x4)" P-DEP
+;  V48 tmp37        [V48    ] (  2,  2   )    long  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "field V02._hi (fldOffset=0x8)" P-DEP
+;  V49 tmp38        [V49    ] (  2,  2   )    long  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed "field V02._lo (fldOffset=0x10)" P-DEP
+;* V50 tmp39        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V15._sign (fldOffset=0x0)" P-INDEP
+;* V51 tmp40        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V15._exponent (fldOffset=0x4)" P-INDEP
+;* V52 tmp41        [V52    ] (  0,  0   )    long  ->  zero-ref    "field V15._hi (fldOffset=0x8)" P-INDEP
+;* V53 tmp42        [V53    ] (  0,  0   )    long  ->  zero-ref    "field V15._lo (fldOffset=0x10)" P-INDEP
+;  V54 tmp43        [V54,T40] (  2,  1   )     int  ->  rax         "field V23._sign (fldOffset=0x0)" P-INDEP
+;* V55 tmp44        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V23._exponent (fldOffset=0x4)" P-INDEP
+;* V56 tmp45        [V56    ] (  0,  0   )    long  ->  zero-ref    "field V23._hi (fldOffset=0x8)" P-INDEP
+;* V57 tmp46        [V57    ] (  0,  0   )    long  ->  zero-ref    "field V23._lo (fldOffset=0x10)" P-INDEP
+;* V58 tmp47        [V58    ] (  0,  0   )    long  ->  zero-ref    "field V26._lower (fldOffset=0x0)" P-INDEP
+;* V59 tmp48        [V59    ] (  0,  0   )    long  ->  zero-ref    "field V26._upper (fldOffset=0x8)" P-INDEP
+;* V60 tmp49        [V60    ] (  0,  0   )    long  ->  zero-ref    "field V28._lower (fldOffset=0x0)" P-INDEP
+;* V61 tmp50        [V61    ] (  0,  0   )    long  ->  zero-ref    "field V28._upper (fldOffset=0x8)" P-INDEP
+;* V62 tmp51        [V62    ] (  0,  0   )    long  ->  zero-ref    "field V31._lower (fldOffset=0x0)" P-INDEP
+;* V63 tmp52        [V63    ] (  0,  0   )    long  ->  zero-ref    "field V31._upper (fldOffset=0x8)" P-INDEP
+;* V64 tmp53        [V64    ] (  0,  0   )    long  ->  zero-ref    "field V33._lower (fldOffset=0x0)" P-INDEP
+;* V65 tmp54        [V65    ] (  0,  0   )    long  ->  zero-ref    "field V33._upper (fldOffset=0x8)" P-INDEP
+;* V66 tmp55        [V66    ] (  0,  0   )    long  ->  zero-ref    "field V36._lower (fldOffset=0x0)" P-INDEP
+;* V67 tmp56        [V67    ] (  0,  0   )    long  ->  zero-ref    "field V36._upper (fldOffset=0x8)" P-INDEP
+;* V68 tmp57        [V68    ] (  0,  0   )    long  ->  zero-ref    "field V38._lower (fldOffset=0x0)" P-INDEP
+;* V69 tmp58        [V69    ] (  0,  0   )    long  ->  zero-ref    "field V38._upper (fldOffset=0x8)" P-INDEP
+;  V70 tmp59        [V70,T08] (  4,  2   )     int  ->  rdi         "field V39._sign (fldOffset=0x0)" P-INDEP
+;  V71 tmp60        [V71,T41] (  2,  1   )     int  ->  rax         "field V39._exponent (fldOffset=0x4)" P-INDEP
+;  V72 tmp61        [V72,T42] (  2,  1   )    long  ->  rcx         "field V39._hi (fldOffset=0x8)" P-INDEP
+;  V73 tmp62        [V73,T43] (  2,  1   )    long  ->  rdx         "field V39._lo (fldOffset=0x10)" P-INDEP
+;* V74 tmp63        [V74    ] (  0,  0   )    long  ->  zero-ref    "field V41._lower (fldOffset=0x0)" P-INDEP
+;* V75 tmp64        [V75    ] (  0,  0   )    long  ->  zero-ref    "field V41._upper (fldOffset=0x8)" P-INDEP
+;* V76 tmp65        [V76    ] (  0,  0   )    long  ->  zero-ref    "field V43._lower (fldOffset=0x0)" P-INDEP
+;* V77 tmp66        [V77    ] (  0,  0   )    long  ->  zero-ref    "field V43._upper (fldOffset=0x8)" P-INDEP
+;  V78 tmp67        [V78,T09] (  4,  2   )     int  ->  rdi         "field V44._sign (fldOffset=0x0)" P-INDEP
+;  V79 tmp68        [V79,T44] (  2,  1   )     int  ->  rax         "field V44._exponent (fldOffset=0x4)" P-INDEP
+;  V80 tmp69        [V80,T45] (  2,  1   )    long  ->  rcx         "field V44._hi (fldOffset=0x8)" P-INDEP
+;  V81 tmp70        [V81,T46] (  2,  1   )    long  ->  rdx         "field V44._lo (fldOffset=0x10)" P-INDEP
+;  V82 tmp71        [V82,T47] (  2,  1   )     int  ->  r15         "field V45._sign (fldOffset=0x0)" P-INDEP
+;* V83 tmp72        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V45._exponent (fldOffset=0x4)" P-INDEP
+;* V84 tmp73        [V84    ] (  0,  0   )    long  ->  zero-ref    "field V45._hi (fldOffset=0x8)" P-INDEP
+;* V85 tmp74        [V85    ] (  0,  0   )    long  ->  zero-ref    "field V45._lo (fldOffset=0x10)" P-INDEP
+;* V86 tmp75        [V86    ] (  0,  0   )    long  ->  zero-ref    "V27.[032..040)"
+;* V87 tmp76        [V87    ] (  0,  0   )    long  ->  zero-ref    "V27.[040..048)"
+;* V88 tmp77        [V88    ] (  0,  0   )     int  ->  zero-ref    "V27.[048..052)"
+;* V89 tmp78        [V89    ] (  0,  0   )     int  ->  zero-ref    "V27.[052..056)"
+;* V90 tmp79        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    "V27.[056..057)"
+;* V91 tmp80        [V91    ] (  0,  0   )    long  ->  zero-ref    "V32.[032..040)"
+;* V92 tmp81        [V92    ] (  0,  0   )    long  ->  zero-ref    "V32.[040..048)"
+;* V93 tmp82        [V93    ] (  0,  0   )     int  ->  zero-ref    "V32.[048..052)"
+;* V94 tmp83        [V94    ] (  0,  0   )     int  ->  zero-ref    "V32.[052..056)"
+;* V95 tmp84        [V95    ] (  0,  0   )   ubyte  ->  zero-ref    "V32.[056..057)"
+;* V96 tmp85        [V96    ] (  0,  0   )    long  ->  zero-ref    "V37.[032..040)"
+;* V97 tmp86        [V97    ] (  0,  0   )    long  ->  zero-ref    "V37.[040..048)"
+;* V98 tmp87        [V98    ] (  0,  0   )     int  ->  zero-ref    "V37.[048..052)"
+;* V99 tmp88        [V99    ] (  0,  0   )     int  ->  zero-ref    "V37.[052..056)"
+;* V100 tmp89       [V100    ] (  0,  0   )   ubyte  ->  zero-ref    "V37.[056..057)"
+;* V101 tmp90       [V101    ] (  0,  0   )    long  ->  zero-ref    "V42.[032..040)"
+;* V102 tmp91       [V102    ] (  0,  0   )    long  ->  zero-ref    "V42.[040..048)"
+;* V103 tmp92       [V103    ] (  0,  0   )     int  ->  zero-ref    "V42.[048..052)"
+;* V104 tmp93       [V104    ] (  0,  0   )     int  ->  zero-ref    "V42.[052..056)"
+;* V105 tmp94       [V105    ] (  0,  0   )   ubyte  ->  zero-ref    "V42.[056..057)"
+;  V106 tmp95       [V106,T10] (  4,  2   )     int  ->  r14         "V07.[000..004)"
+;  V107 tmp96       [V107,T11] (  4,  2   )     int  ->  rax         "V07.[004..008)"
+;  V108 tmp97       [V108,T06] (  5,  2.50)    long  ->  rcx         "V07.[008..016)"
+;  V109 tmp98       [V109,T07] (  5,  2.50)    long  ->  rdx         "V07.[016..024)"
+;  V110 tmp99       [V110,T48] (  2,  1   )     int  ->  rax         "V21.[000..004)"
+;  V111 tmp100      [V111,T49] (  2,  1   )     int  ->  rcx         "V21.[004..008)"
+;  V112 tmp101      [V112,T50] (  2,  1   )    long  ->  rdx         "V21.[008..016)"
+;  V113 tmp102      [V113,T51] (  2,  1   )    long  ->  rdi         "V21.[016..024)"
+;  V114 cse0        [V114,T12] (  4,  2   )    long  ->  rdi         "CSE #03: moderate"
+;  V115 cse1        [V115,T13] (  4,  2   )    long  ->  rcx         "CSE #04: moderate"
+;  V116 cse2        [V116,T14] (  4,  2   )    long  ->  rdi         "CSE #09: moderate"
+;  V117 cse3        [V117,T15] (  4,  2   )    long  ->  rcx         "CSE #10: moderate"
+;  V118 cse4        [V118,T16] (  4,  2   )    long  ->  rdi         "CSE #15: moderate"
+;  V119 cse5        [V119,T17] (  4,  2   )    long  ->  rcx         "CSE #16: moderate"
+;  V120 cse6        [V120,T26] (  3,  1.50)     int  ->  rsi         "CSE #01: moderate"
+;  V121 cse7        [V121,T27] (  3,  1.50)     int  ->   r8         "CSE #02: moderate"
+;  V122 cse8        [V122,T28] (  3,  1.50)    long  ->  rax         "CSE #05: moderate"
+;  V123 cse9        [V123,T29] (  3,  1.50)    long  ->  rdx         "CSE #06: moderate"
+;  V124 cse10       [V124,T30] (  3,  1.50)     int  ->  rsi         "CSE #07: moderate"
+;  V125 cse11       [V125,T31] (  3,  1.50)     int  ->   r8         "CSE #08: moderate"
+;  V126 cse12       [V126,T32] (  3,  1.50)    long  ->  rax         "CSE #11: moderate"
+;  V127 cse13       [V127,T33] (  3,  1.50)    long  ->  rdx         "CSE #12: moderate"
+;  V128 cse14       [V128,T34] (  3,  1.50)     int  ->  rsi         "CSE #13: moderate"
+;  V129 cse15       [V129,T35] (  3,  1.50)     int  ->   r8         "CSE #14: moderate"
+;  V130 cse16       [V130,T36] (  3,  1.50)    long  ->  rax         "CSE #17: moderate"
+;  V131 cse17       [V131,T37] (  3,  1.50)    long  ->  rdx         "CSE #18: moderate"
 ;
-; Lcl frame size = 632
+; Lcl frame size = 728
 
 G_M55388_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
-       sub      rsp, 632
-       lea      rbp, [rsp+0x290]
+       sub      rsp, 728
+       lea      rbp, [rsp+0x2F0]
        mov      rbx, rdi
 						;; size=24 bbWeight=1 PerfScore 5.00
 G_M55388_IG02:
        vmovdqu  xmm0, xmmword ptr [rsi]
        vmovdqu  xmmword ptr [rbp-0x30], xmm0
        mov      rdi, qword ptr [rsi+0x10]
        mov      qword ptr [rbp-0x20], rdi
        xor      edi, edi
        mov      dword ptr [rbp-0x30], edi
        lea      rdi, [rbp-0x48]
        lea      rsi, [rbp-0x30]
        lea      rdx, [rbp-0x50]
        lea      rcx, [rbp-0x58]
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128SplitInteger(byref,byref,byref):System.Number+DiyFp128
        call     [rax]System.Number:DiyFp128SplitInteger(byref,byref,byref):System.Number+DiyFp128
        cmp      byte  ptr [rbp-0x58], 0
        jne      G_M55388_IG27
 						;; size=60 bbWeight=1 PerfScore 14.50
 G_M55388_IG03:
        mov      r15d, 0xD1FFAB1E
-       xor      ecx, ecx
+       xor      edi, edi
        cmp      byte  ptr [rbp-0x50], 0
-       cmove    r15d, ecx
-       mov      rcx, qword ptr [rbp-0x40]
-       mov      r8, qword ptr [rbp-0x38]
-       mov      rsi, rcx
-       or       rsi, r8
+       cmove    r15d, edi
+       lea      rdi, [rbp-0x88]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:get_UxQuarter():System.Number+DiyFp128
+       call     [rax]System.Number:get_UxQuarter():System.Number+DiyFp128
+       mov      rdi, qword ptr [rbp-0x40]
+       mov      rax, qword ptr [rbp-0x38]
+       mov      rcx, rdi
+       or       rcx, rax
        je       SHORT G_M55388_IG04
+       mov      rcx, qword ptr [rbp-0x80]
+       mov      rdx, qword ptr [rbp-0x78]
+       mov      rsi, rcx
+       or       rsi, rdx
+       je       G_M55388_IG09
        mov      esi, dword ptr [rbp-0x44]
-       cmp      esi, -1
+       mov      r8d, dword ptr [rbp-0x84]
+       cmp      esi, r8d
        jne      G_M55388_IG08
-       mov      rdi, 0xD1FFAB1E
-       cmp      rcx, rdi
+       cmp      rdi, rcx
        jne      G_M55388_IG07
-       test     r8, r8
-       jne      G_M55388_IG09
-						;; size=72 bbWeight=0.50 PerfScore 5.25
+       cmp      rax, rdx
+       ja       G_M55388_IG09
+						;; size=108 bbWeight=0.50 PerfScore 9.25
 G_M55388_IG04:
-       mov      rdx, 0xD1FFAB1E      ; const ptr
-       mov      rdx, gword ptr [rdx]
-       add      rdx, 112
+       lea      rdi, [rbp-0x1A0]
+       mov      esi, 4
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       call     [rax]System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       lea      rdi, [rbp-0x170]
        lea      rsi, [rbp-0x48]
-       lea      rdi, [rbp-0x158]
+       lea      rdx, [rbp-0x1A0]
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
        call     [rax]System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
-       vmovdqu  xmm0, xmmword ptr [rbp-0x158]
-       vmovdqu  xmmword ptr [rbp-0x198], xmm0
-       mov      rdi, qword ptr [rbp-0x148]
-       mov      qword ptr [rbp-0x188], rdi
-       vmovdqu32 zmm0, zmmword ptr [rbp-0x198]
-       vmovdqu32 zmmword ptr [rbp-0xB0], zmm0
+       vmovdqu32 xmm0, xmmword ptr [rbp-0x170]
+       vmovdqu32 xmmword ptr [rbp-0x1E0], xmm0
+       mov      rdi, qword ptr [rbp-0x160]
+       mov      qword ptr [rbp-0x1D0], rdi
+       vmovdqu32 zmm0, zmmword ptr [rbp-0x1E0]
+       vmovdqu32 zmmword ptr [rbp-0xC8], zmm0
        xor      edi, edi
-       mov      qword ptr [rbp-0x90], rdi
-						;; size=99 bbWeight=0.50 PerfScore 8.00
+       mov      qword ptr [rbp-0xA8], rdi
+						;; size=111 bbWeight=0.50 PerfScore 9.00
 G_M55388_IG05:
-       mov      qword ptr [rbp-0x88], rdi
+       mov      qword ptr [rbp-0xA0], rdi
 						;; size=7 bbWeight=0.50 PerfScore 0.50
 G_M55388_IG06:
-       mov      qword ptr [rbp-0x80], rdi
-       mov      byte  ptr [rbp-0x78], 0
+       mov      qword ptr [rbp-0x98], rdi
+       mov      byte  ptr [rbp-0x90], 0
        lea      rdi, [rbp-0x70]
-       lea      rsi, [rbp-0xB0]
+       lea      rsi, [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Cos(byref):System.Number+DiyFp128
        call     [rax]System.Number:DiyFp128Cos(byref):System.Number+DiyFp128
        jmp      G_M55388_IG13
-						;; size=36 bbWeight=0.50 PerfScore 4.12
+						;; size=42 bbWeight=0.50 PerfScore 4.12
 G_M55388_IG07:
-       mov      rdi, 0xD1FFAB1E
-       cmp      rcx, rdi
+       cmp      rdi, rcx
        jae      SHORT G_M55388_IG09
        jmp      G_M55388_IG04
-						;; size=20 bbWeight=0.50 PerfScore 1.75
+						;; size=10 bbWeight=0.50 PerfScore 1.62
 G_M55388_IG08:
-       cmp      esi, -1
+       cmp      esi, r8d
        jl       G_M55388_IG04
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M55388_IG09:
-       mov      rdi, 0xD1FFAB1E      ; static handle
-       test     esi, esi
+       lea      rdi, [rbp-0x88]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:get_UxHalf():System.Number+DiyFp128
+       call     [rax]System.Number:get_UxHalf():System.Number+DiyFp128
+       mov      rdi, qword ptr [rbp-0x40]
+       mov      rax, qword ptr [rbp-0x38]
+       mov      rcx, rdi
+       or       rcx, rax
+       je       SHORT G_M55388_IG10
+       mov      rcx, qword ptr [rbp-0x80]
+       mov      rdx, qword ptr [rbp-0x78]
+       mov      rsi, rcx
+       or       rsi, rdx
+       je       G_M55388_IG16
+       mov      esi, dword ptr [rbp-0x44]
+       mov      r8d, dword ptr [rbp-0x84]
+       cmp      esi, r8d
        jne      G_M55388_IG15
-       mov      rdx, 0xD1FFAB1E
-       cmp      rcx, rdx
+       cmp      rdi, rcx
        jne      G_M55388_IG14
-       test     r8, r8
-       jne      G_M55388_IG16
-						;; size=46 bbWeight=0.50 PerfScore 2.12
+       cmp      rax, rdx
+       ja       G_M55388_IG16
+						;; size=92 bbWeight=0.50 PerfScore 8.25
 G_M55388_IG10:
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu32 xmmword ptr [rbp-0x1B0], xmm0
-       vmovdqu  xmmword ptr [rbp-0x1A8], xmm0
-       lea      rcx, bword ptr [rbp-0x1B0]
-       mov      r8d, 1
-       lea      rsi, [rbp-0x48]
-       mov      edx, 1
-       mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128AddSub(byref,byref,int,System.Span`1[System.Number+DiyFp128])
-       call     [rax]System.Number:DiyFp128AddSub(byref,byref,int,System.Span`1[System.Number+DiyFp128])
-       vmovdqu32 xmm0, xmmword ptr [rbp-0x1B0]
-       vmovdqu  xmmword ptr [rbp-0xC8], xmm0
-       mov      rdx, qword ptr [rbp-0x1A0]
-       mov      qword ptr [rbp-0xB8], rdx
-       mov      rdx, 0xD1FFAB1E      ; const ptr
-       mov      rdx, gword ptr [rdx]
-       add      rdx, 112
-       lea      rsi, [rbp-0xC8]
-       lea      rdi, [rbp-0x140]
+       lea      rdi, [rbp-0x88]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:get_UxHalf():System.Number+DiyFp128
+       call     [rax]System.Number:get_UxHalf():System.Number+DiyFp128
+       lea      rdi, [rbp-0xE0]
+       lea      rsi, [rbp-0x88]
+       lea      rdx, [rbp-0x48]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Difference(byref,byref):System.Number+DiyFp128
+       call     [rax]System.Number:DiyFp128Difference(byref,byref):System.Number+DiyFp128
+       lea      rdi, [rbp-0x1F8]
+       mov      esi, 4
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       call     [rax]System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       lea      rdi, [rbp-0x158]
+       lea      rsi, [rbp-0xE0]
+       lea      rdx, [rbp-0x1F8]
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
        call     [rax]System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
-       vmovdqu32 xmm0, xmmword ptr [rbp-0x140]
-       vmovdqu32 xmmword ptr [rbp-0x1F0], xmm0
-       mov      rdi, qword ptr [rbp-0x130]
-       mov      qword ptr [rbp-0x1E0], rdi
-       vmovdqu32 zmm0, zmmword ptr [rbp-0x1F0]
-       vmovdqu32 zmmword ptr [rbp-0xB0], zmm0
+       vmovdqu  xmm0, xmmword ptr [rbp-0x158]
+       vmovdqu  xmmword ptr [rbp-0x238], xmm0
+       mov      rdi, qword ptr [rbp-0x148]
+       mov      qword ptr [rbp-0x228], rdi
+       vmovdqu32 zmm0, zmmword ptr [rbp-0x238]
+       vmovdqu32 zmmword ptr [rbp-0xC8], zmm0
        xor      edi, edi
-       mov      qword ptr [rbp-0x90], rdi
-						;; size=182 bbWeight=0.50 PerfScore 13.54
+       mov      qword ptr [rbp-0xA8], rdi
+						;; size=165 bbWeight=0.50 PerfScore 13.25
 G_M55388_IG11:
-       mov      qword ptr [rbp-0x88], rdi
+       mov      qword ptr [rbp-0xA0], rdi
 						;; size=7 bbWeight=0.50 PerfScore 0.50
 G_M55388_IG12:
-       mov      qword ptr [rbp-0x80], rdi
-       mov      byte  ptr [rbp-0x78], 0
+       mov      qword ptr [rbp-0x98], rdi
+       mov      byte  ptr [rbp-0x90], 0
        lea      rdi, [rbp-0x70]
-       lea      rsi, [rbp-0xB0]
+       lea      rsi, [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Sin(byref):System.Number+DiyFp128
        call     [rax]System.Number:DiyFp128Sin(byref):System.Number+DiyFp128
-						;; size=31 bbWeight=0.50 PerfScore 3.12
+						;; size=37 bbWeight=0.50 PerfScore 3.12
 G_M55388_IG13:
        mov      r14d, dword ptr [rbp-0x70]
        mov      eax, dword ptr [rbp-0x6C]
        mov      rcx, qword ptr [rbp-0x68]
-       mov      r8, qword ptr [rbp-0x60]
+       mov      rdx, qword ptr [rbp-0x60]
        jmp      G_M55388_IG25
 						;; size=20 bbWeight=0.50 PerfScore 3.00
 G_M55388_IG14:
-       mov      rdx, 0xD1FFAB1E
-       cmp      rcx, rdx
+       cmp      rdi, rcx
        jae      SHORT G_M55388_IG16
        jmp      G_M55388_IG10
-						;; size=20 bbWeight=0.50 PerfScore 1.75
+						;; size=10 bbWeight=0.50 PerfScore 1.62
 G_M55388_IG15:
-       test     esi, esi
+       cmp      esi, r8d
        jl       G_M55388_IG10
-						;; size=8 bbWeight=0.50 PerfScore 0.62
+						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M55388_IG16:
-       test     esi, esi
+       lea      rdi, [rbp-0x88]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:get_UxThreeQuarter():System.Number+DiyFp128
+       call     [rax]System.Number:get_UxThreeQuarter():System.Number+DiyFp128
+       mov      rdi, qword ptr [rbp-0x40]
+       mov      rax, qword ptr [rbp-0x38]
+       mov      rcx, rdi
+       or       rcx, rax
+       je       SHORT G_M55388_IG17
+       mov      rcx, qword ptr [rbp-0x80]
+       mov      rdx, qword ptr [rbp-0x78]
+       mov      rsi, rcx
+       or       rsi, rdx
+       je       G_M55388_IG22
+       mov      esi, dword ptr [rbp-0x44]
+       mov      r8d, dword ptr [rbp-0x84]
+       cmp      esi, r8d
        jne      G_M55388_IG21
-       mov      rsi, 0xD1FFAB1E
-       cmp      rcx, rsi
+       cmp      rdi, rcx
        jne      G_M55388_IG20
-       test     r8, r8
-       jne      G_M55388_IG22
-						;; size=36 bbWeight=0.50 PerfScore 2.00
+       cmp      rax, rdx
+       ja       G_M55388_IG22
+						;; size=92 bbWeight=0.50 PerfScore 8.25
 G_M55388_IG17:
-       lea      rdi, [rbp-0xC8]
+       lea      rdi, [rbp-0x88]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:get_UxHalf():System.Number+DiyFp128
+       call     [rax]System.Number:get_UxHalf():System.Number+DiyFp128
+       lea      rdi, [rbp-0xE0]
        lea      rsi, [rbp-0x48]
-       mov      rdx, 0xD1FFAB1E      ; data for System.Number:UxHalf
+       lea      rdx, [rbp-0x88]
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Difference(byref,byref):System.Number+DiyFp128
        call     [rax]System.Number:DiyFp128Difference(byref,byref):System.Number+DiyFp128
-       mov      rdx, 0xD1FFAB1E      ; const ptr
-       mov      rdx, gword ptr [rdx]
-       add      rdx, 112
-       lea      rsi, [rbp-0xC8]
-       lea      rdi, [rbp-0x110]
+       lea      rdi, [rbp-0x250]
+       mov      esi, 4
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       call     [rax]System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       lea      rdi, [rbp-0x128]
+       lea      rsi, [rbp-0xE0]
+       lea      rdx, [rbp-0x250]
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
        call     [rax]System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
-       vmovdqu32 xmm0, xmmword ptr [rbp-0x110]
-       vmovdqu32 xmmword ptr [rbp-0x230], xmm0
-       mov      rdi, qword ptr [rbp-0x100]
-       mov      qword ptr [rbp-0x220], rdi
-       vmovdqu32 zmm0, zmmword ptr [rbp-0x230]
-       vmovdqu32 zmmword ptr [rbp-0xB0], zmm0
+       vmovdqu  xmm0, xmmword ptr [rbp-0x128]
+       vmovdqu32 xmmword ptr [rbp-0x290], xmm0
+       mov      rdi, qword ptr [rbp-0x118]
+       mov      qword ptr [rbp-0x280], rdi
+       vmovdqu32 zmm0, zmmword ptr [rbp-0x290]
+       vmovdqu32 zmmword ptr [rbp-0xC8], zmm0
        xor      edi, edi
-       mov      qword ptr [rbp-0x90], rdi
-						;; size=133 bbWeight=0.50 PerfScore 10.25
+       mov      qword ptr [rbp-0xA8], rdi
+						;; size=164 bbWeight=0.50 PerfScore 13.25
 G_M55388_IG18:
-       mov      qword ptr [rbp-0x88], rdi
+       mov      qword ptr [rbp-0xA0], rdi
 						;; size=7 bbWeight=0.50 PerfScore 0.50
 G_M55388_IG19:
-       mov      qword ptr [rbp-0x80], rdi
-       mov      byte  ptr [rbp-0x78], 0
-       lea      rdi, [rbp-0x128]
-       lea      rsi, [rbp-0xB0]
+       mov      qword ptr [rbp-0x98], rdi
+       mov      byte  ptr [rbp-0x90], 0
+       lea      rdi, [rbp-0x140]
+       lea      rsi, [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Sin(byref):System.Number+DiyFp128
        call     [rax]System.Number:DiyFp128Sin(byref):System.Number+DiyFp128
-       mov      ecx, dword ptr [rbp-0x128]
-       mov      eax, dword ptr [rbp-0x124]
-       mov      r8, qword ptr [rbp-0x120]
-       mov      rsi, qword ptr [rbp-0x118]
-       xor      ecx, 0xD1FFAB1E
-       mov      r14d, ecx
-       mov      rcx, r8
-       mov      r8, rsi
-       jmp      G_M55388_IG25
-						;; size=80 bbWeight=0.50 PerfScore 6.62
-G_M55388_IG20:
-       mov      r8, 0xD1FFAB1E
-       cmp      rcx, r8
-       jae      SHORT G_M55388_IG22
-       jmp      G_M55388_IG17
-						;; size=20 bbWeight=0.50 PerfScore 1.75
-G_M55388_IG21:
-       test     esi, esi
-       jl       G_M55388_IG17
-						;; size=8 bbWeight=0.50 PerfScore 0.62
-G_M55388_IG22:
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x248], xmm0
-       vmovdqu32 xmmword ptr [rbp-0x240], xmm0
-       lea      rcx, bword ptr [rbp-0x248]
-       mov      r8d, 1
-       lea      rsi, [rbp-0x48]
-       mov      rdi, 0xD1FFAB1E      ; static handle
-       mov      edx, 1
-       mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128AddSub(byref,byref,int,System.Span`1[System.Number+DiyFp128])
-       call     [rax]System.Number:DiyFp128AddSub(byref,byref,int,System.Span`1[System.Number+DiyFp128])
-       vmovdqu  xmm0, xmmword ptr [rbp-0x248]
-       vmovdqu  xmmword ptr [rbp-0xC8], xmm0
-       mov      rdx, qword ptr [rbp-0x238]
-       mov      qword ptr [rbp-0xB8], rdx
-       mov      rdx, 0xD1FFAB1E      ; const ptr
-       mov      rdx, gword ptr [rdx]
-       add      rdx, 112
-       lea      rsi, [rbp-0xC8]
-       lea      rdi, [rbp-0xE0]
-       mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
-       call     [rax]System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
-       vmovdqu32 xmm0, xmmword ptr [rbp-0xE0]
-       vmovdqu  xmmword ptr [rbp-0x288], xmm0
-       mov      rdi, qword ptr [rbp-0xD0]
-       mov      qword ptr [rbp-0x278], rdi
-       vmovdqu32 zmm0, zmmword ptr [rbp-0x288]
-       vmovdqu32 zmmword ptr [rbp-0xB0], zmm0
-       xor      edi, edi
-       mov      qword ptr [rbp-0x90], rdi
-						;; size=194 bbWeight=0.50 PerfScore 13.67
-G_M55388_IG23:
-       mov      qword ptr [rbp-0x88], rdi
-						;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M55388_IG24:
-       mov      qword ptr [rbp-0x80], rdi
-       mov      byte  ptr [rbp-0x78], 0
-       lea      rdi, [rbp-0xF8]
-       lea      rsi, [rbp-0xB0]
-       mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Cos(byref):System.Number+DiyFp128
-       call     [rax]System.Number:DiyFp128Cos(byref):System.Number+DiyFp128
-       mov      edi, dword ptr [rbp-0xF8]
-       mov      eax, dword ptr [rbp-0xF4]
-       mov      rcx, qword ptr [rbp-0xF0]
-       mov      r8, qword ptr [rbp-0xE8]
+       mov      edi, dword ptr [rbp-0x140]
+       mov      eax, dword ptr [rbp-0x13C]
+       mov      rcx, qword ptr [rbp-0x138]
+       mov      rdx, qword ptr [rbp-0x130]
        xor      edi, 0xD1FFAB1E
        mov      r14d, edi
-						;; size=69 bbWeight=0.50 PerfScore 5.38
+       jmp      G_M55388_IG25
+						;; size=80 bbWeight=0.50 PerfScore 6.38
+G_M55388_IG20:
+       cmp      rdi, rcx
+       jae      SHORT G_M55388_IG22
+       jmp      G_M55388_IG17
+						;; size=10 bbWeight=0.50 PerfScore 1.62
+G_M55388_IG21:
+       cmp      esi, r8d
+       jl       G_M55388_IG17
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M55388_IG22:
+       lea      rdi, [rbp-0x88]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:get_UxOne():System.Number+DiyFp128
+       call     [rax]System.Number:get_UxOne():System.Number+DiyFp128
+       lea      rdi, [rbp-0xE0]
+       lea      rsi, [rbp-0x88]
+       lea      rdx, [rbp-0x48]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Difference(byref,byref):System.Number+DiyFp128
+       call     [rax]System.Number:DiyFp128Difference(byref,byref):System.Number+DiyFp128
+       lea      rdi, [rbp-0x2A8]
+       mov      esi, 4
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       call     [rax]System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       lea      rdi, [rbp-0xF8]
+       lea      rsi, [rbp-0xE0]
+       lea      rdx, [rbp-0x2A8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
+       call     [rax]System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
+       vmovdqu  xmm0, xmmword ptr [rbp-0xF8]
+       vmovdqu  xmmword ptr [rbp-0x2E8], xmm0
+       mov      rdi, qword ptr [rbp-0xE8]
+       mov      qword ptr [rbp-0x2D8], rdi
+       vmovdqu32 zmm0, zmmword ptr [rbp-0x2E8]
+       vmovdqu32 zmmword ptr [rbp-0xC8], zmm0
+       xor      edi, edi
+       mov      qword ptr [rbp-0xA8], rdi
+						;; size=165 bbWeight=0.50 PerfScore 13.25
+G_M55388_IG23:
+       mov      qword ptr [rbp-0xA0], rdi
+						;; size=7 bbWeight=0.50 PerfScore 0.50
+G_M55388_IG24:
+       mov      qword ptr [rbp-0x98], rdi
+       mov      byte  ptr [rbp-0x90], 0
+       lea      rdi, [rbp-0x110]
+       lea      rsi, [rbp-0xC8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Cos(byref):System.Number+DiyFp128
+       call     [rax]System.Number:DiyFp128Cos(byref):System.Number+DiyFp128
+       mov      edi, dword ptr [rbp-0x110]
+       mov      eax, dword ptr [rbp-0x10C]
+       mov      rcx, qword ptr [rbp-0x108]
+       mov      rdx, qword ptr [rbp-0x100]
+       xor      edi, 0xD1FFAB1E
+       mov      r14d, edi
+						;; size=75 bbWeight=0.50 PerfScore 5.38
 G_M55388_IG25:
-       mov      rdx, rcx
-       or       rdx, r8
+       mov      rdi, rcx
+       or       rdi, rdx
        je       SHORT G_M55388_IG26
        xor      r15d, r14d
        mov      dword ptr [rbx], r15d
        mov      dword ptr [rbx+0x04], eax
        mov      qword ptr [rbx+0x08], rcx
-       mov      qword ptr [rbx+0x10], r8
+       mov      qword ptr [rbx+0x10], rdx
        jmp      SHORT G_M55388_IG28
 						;; size=27 bbWeight=0.50 PerfScore 3.88
 G_M55388_IG26:
        vmovsd   xmm0, qword ptr [reloc @RWD00]
        vmovups  xmmword ptr [rbx], xmm0
-       xor      eax, eax
-       mov      qword ptr [rbx+0x10], rax
+       xor      edi, edi
+       mov      qword ptr [rbx+0x10], rdi
        jmp      SHORT G_M55388_IG28
 						;; size=20 bbWeight=0.50 PerfScore 3.12
 G_M55388_IG27:
-       mov      eax, 0xD1FFAB1E
-       xor      ecx, ecx
+       lea      rdi, [rbp-0x188]
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:get_UxOne():System.Number+DiyFp128
+       call     [rax]System.Number:get_UxOne():System.Number+DiyFp128
+       mov      eax, dword ptr [rbp-0x188]
+       mov      ecx, dword ptr [rbp-0x184]
+       mov      rdx, qword ptr [rbp-0x180]
+       mov      rdi, qword ptr [rbp-0x178]
+       mov      esi, 0xD1FFAB1E
+       xor      r8d, r8d
        cmp      byte  ptr [rbp-0x50], 0
-       cmove    eax, ecx
+       cmove    esi, r8d
+       xor      eax, esi
        mov      dword ptr [rbx], eax
-       mov      dword ptr [rbx+0x04], 1
-       vmovsd   xmm0, qword ptr [reloc @RWD08]
-       vmovups  xmmword ptr [rbx+0x08], xmm0
-						;; size=36 bbWeight=0.50 PerfScore 3.50
+       mov      dword ptr [rbx+0x04], ecx
+       mov      qword ptr [rbx+0x08], rdx
+       mov      qword ptr [rbx+0x10], rdi
+						;; size=76 bbWeight=0.50 PerfScore 7.00
 G_M55388_IG28:
        mov      rax, rbx
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M55388_IG29:
        vzeroupper 
-       add      rsp, 632
+       add      rsp, 728
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=17 bbWeight=1 PerfScore 4.25
 RWD00  	dq	FFFE000000000000h
-RWD08  	dq	8000000000000000h
 
 
-; Total bytes of code 1298, prolog size 21, PerfScore 120.71, instruction count 242, allocated bytes for code 1298 (MethodHash=f4b427a3) for method System.Number:DiyFp128CosPi(byref):System.Number+DiyFp128 (FullOpts)
+; Total bytes of code 1463, prolog size 21, PerfScore 143.25, instruction count 280, allocated bytes for code 1463 (MethodHash=f4b427a3) for method System.Number:DiyFp128CosPi(byref):System.Number+DiyFp128 (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>44 (146.67 % of base) - System.Number:DiyFp128TimesPi(byref):System.Number+DiyFp128</summary>

```diff
 ; Assembly listing for method System.Number:DiyFp128TimesPi(byref):System.Number+DiyFp128 (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
-; fully interruptible
+; rbp based frame
+; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T01] (  3,  3   )    long  ->  rdi         single-def
-;  V01 arg0         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V03 cse0         [V03,T02] (  2,  2   )     ref  ->  rdx         "CSE #01: aggressive"
+;  V00 RetBuf       [V00,T00] (  4,  4   )    long  ->  rbx         single-def
+;  V01 arg0         [V01,T01] (  3,  3   )   byref  ->  r15         single-def
+;  V02 loc0         [V02    ] (  2,  2   )  struct (24) [rbp-0x28]  do-not-enreg[XDAS] addr-exposed defined-via-address ld-addr-op <System.Number+DiyFp128>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;
-; Lcl frame size = 0
+; Lcl frame size = 32
 
 G_M25573_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbp
+       push     r15
+       push     rbx
+       sub      rsp, 32
+       lea      rbp, [rsp+0x30]
+       mov      rbx, rdi
+       mov      r15, rsi
+						;; size=19 bbWeight=1 PerfScore 4.25
 G_M25573_IG02:
-       mov      rdx, 0xD1FFAB1E      ; const ptr
-       mov      rdx, gword ptr [rdx]
-       add      rdx, 112
+       lea      rdi, [rbp-0x28]
+       mov      esi, 4
+       mov      rax, 0xD1FFAB1E      ; code for System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       call     [rax]System.Number:GetInvTrigConstant(int):System.Number+DiyFp128
+       lea      rdx, [rbp-0x28]
+       mov      rdi, rbx
+       mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
-						;; size=27 bbWeight=1 PerfScore 2.75
+       call     [rax]System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
+       mov      rax, rbx
+						;; size=46 bbWeight=1 PerfScore 8.50
 G_M25573_IG03:
-       tail.jmp [rax]System.Number:DiyFp128Product(byref,byref):System.Number+DiyFp128
-						;; size=3 bbWeight=1 PerfScore 2.00
+       add      rsp, 32
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+						;; size=9 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 30, prolog size 0, PerfScore 4.75, instruction count 5, allocated bytes for code 30 (MethodHash=1c9b9c1a) for method System.Number:DiyFp128TimesPi(byref):System.Number+DiyFp128 (FullOpts)
+; Total bytes of code 74, prolog size 13, PerfScore 15.50, instruction count 22, allocated bytes for code 74 (MethodHash=1c9b9c1a) for method System.Number:DiyFp128TimesPi(byref):System.Number+DiyFp128 (FullOpts)
 ; ============================================================
```

</details>



