[RISC-V] Conditional simple operations#116581
Conversation
|
Diffs are based on 99,118 contexts (13,431 MinOpts, 85,687 FullOpts). Overall (-10,880 bytes)
MinOpts (+0 bytes)
FullOpts (-10,880 bytes)
Example diffslinux.riscv64.Checked.1.mch-20 (-31.25%) : 65700.dasm - System.Buffers.EmptySearchValues`1[short]:IndexOfAnyExcept(System.ReadOnlySpan`1[short]):int:this (FullOpts)@@ -12,57 +12,44 @@
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[short]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
; V03 tmp1 [V03,T01] ( 1, 1 ) byref -> a1 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V04 tmp2 [V04,T00] ( 2, 2 ) int -> a2 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V04 tmp2 [V04,T00] ( 2, 1.50) int -> a2 single-def "field V01._length (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 0
Frame info. #outsz=0; #framesz=16; lcl=0
-G_M62398_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M62398_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -16
sd fp, 0(sp)
sd ra, 8(sp)
mv fp, sp
- ;; size=16 bbWeight=1 PerfScore 9.00
-G_M62398_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- sext.w t6, a2
- bnez t6, G_M62398_IG05
- ;; size=8 bbWeight=1 PerfScore 4.00
-G_M62398_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M62398_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ld ra, 8(sp)
- ld fp, 0(sp)
- addi sp, sp, 16
- ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M62398_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mv a0, zero
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M62398_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ ;; size=16 bbWeight=0.50 PerfScore 4.50
+G_M62398_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ sext.w a0, a2
+ sltu a0, zero, a0
+ addi a0, a0, 0xD1FFAB1E
+ ;; size=12 bbWeight=0.50 PerfScore 0.75
+G_M62398_IG03: ; bbWeight=0.50, epilog, nogc, extend
ld ra, 8(sp)
ld fp, 0(sp)
addi sp, sp, 16
ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-; Total bytes of code 64, prolog size 16, PerfScore 21.00, instruction count 16, allocated bytes for code 64 (MethodHash=d5860c41) for method System.Buffers.EmptySearchValues`1[short]:IndexOfAnyExcept(System.ReadOnlySpan`1[short]):int:this (FullOpts)
+; Total bytes of code 44, prolog size 16, PerfScore 9.00, instruction count 11, allocated bytes for code 44 (MethodHash=d5860c41) for method System.Buffers.EmptySearchValues`1[short]:IndexOfAnyExcept(System.ReadOnlySpan`1[short]):int:this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 3
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
- ---- Scope 1
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; move fp, sp
---- Epilog start at index 1 -----20 (-22.73%) : 70820.dasm - TestConfig:Verify_ServerGC_Env_Enable():int (FullOpts)@@ -12,58 +12,45 @@
; Lcl frame size = 0
Frame info. #outsz=0; #framesz=16; lcl=0
-G_M31137_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M31137_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -16
sd fp, 0(sp)
sd ra, 8(sp)
mv fp, sp
- ;; size=16 bbWeight=1 PerfScore 9.00
-G_M31137_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=16 bbWeight=0.50 PerfScore 4.50
+G_M31137_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lui a0, 0xD1FFAB1E
addiw a0, a0, 0xD1FFAB1E
slli a0, a0, 12
addi a0, a0, 0xD1FFAB1E
slli a0, a0, 3
jalr ra, 0xD1FFAB1E(a0) // <unknown method>
- sext.w t6, a0
- beqz t6, G_M31137_IG05
- ;; size=32 bbWeight=1 PerfScore 12.00
-G_M31137_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M31137_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ld ra, 8(sp)
- ld fp, 0(sp)
- addi sp, sp, 16
- ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M31137_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M31137_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ sext.w a0, a0
+ sltiu a0, a0, 1
+ addi a0, a0, 0xD1FFAB1E
+ ;; size=36 bbWeight=0.50 PerfScore 4.75
+G_M31137_IG03: ; bbWeight=0.50, epilog, nogc, extend
ld ra, 8(sp)
ld fp, 0(sp)
addi sp, sp, 16
ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-; Total bytes of code 88, prolog size 16, PerfScore 29.00, instruction count 18, allocated bytes for code 88 (MethodHash=7db6865e) for method TestConfig:Verify_ServerGC_Env_Enable():int (FullOpts)
+; Total bytes of code 68, prolog size 16, PerfScore 13.00, instruction count 13, allocated bytes for code 68 (MethodHash=7db6865e) for method TestConfig:Verify_ServerGC_Env_Enable():int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 3
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 22 (0x00016) Actual length = 88 (0x000058)
+ Function Length : 17 (0x00011) Actual length = 68 (0x000044)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
- ---- Scope 1
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; move fp, sp
---- Epilog start at index 1 -----20 (-22.73%) : 70821.dasm - TestConfig:Verify_ServerGC_Env_Disable():int (FullOpts)@@ -12,58 +12,45 @@
; Lcl frame size = 0
Frame info. #outsz=0; #framesz=16; lcl=0
-G_M21748_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M21748_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -16
sd fp, 0(sp)
sd ra, 8(sp)
mv fp, sp
- ;; size=16 bbWeight=1 PerfScore 9.00
-G_M21748_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=16 bbWeight=0.50 PerfScore 4.50
+G_M21748_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lui a0, 0xD1FFAB1E
addiw a0, a0, 0xD1FFAB1E
slli a0, a0, 12
addi a0, a0, 0xD1FFAB1E
slli a0, a0, 3
jalr ra, 0xD1FFAB1E(a0) // <unknown method>
- sext.w t6, a0
- beqz t6, G_M21748_IG05
- ;; size=32 bbWeight=1 PerfScore 12.00
-G_M21748_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M21748_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ld ra, 8(sp)
- ld fp, 0(sp)
- addi sp, sp, 16
- ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M21748_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M21748_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ sext.w a0, a0
+ sltu a0, zero, a0
+ addi a0, a0, 0xD1FFAB1E
+ ;; size=36 bbWeight=0.50 PerfScore 4.75
+G_M21748_IG03: ; bbWeight=0.50, epilog, nogc, extend
ld ra, 8(sp)
ld fp, 0(sp)
addi sp, sp, 16
ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-; Total bytes of code 88, prolog size 16, PerfScore 29.00, instruction count 18, allocated bytes for code 88 (MethodHash=2045ab0b) for method TestConfig:Verify_ServerGC_Env_Disable():int (FullOpts)
+; Total bytes of code 68, prolog size 16, PerfScore 13.00, instruction count 13, allocated bytes for code 68 (MethodHash=2045ab0b) for method TestConfig:Verify_ServerGC_Env_Disable():int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 3
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 22 (0x00016) Actual length = 88 (0x000058)
+ Function Length : 17 (0x00011) Actual length = 68 (0x000044)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
- ---- Scope 1
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; move fp, sp
---- Epilog start at index 1 -----20 (-20.00%) : 80246.dasm - Runtime_74774:TestEntryPoint():int (FullOpts)@@ -15,13 +15,13 @@
; Lcl frame size = 0
Frame info. #outsz=0; #framesz=16; lcl=0
-G_M20178_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M20178_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -16
sd fp, 0(sp)
sd ra, 8(sp)
mv fp, sp
- ;; size=16 bbWeight=1 PerfScore 9.00
-G_M20178_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=16 bbWeight=0.50 PerfScore 4.50
+G_M20178_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
addi a0, zero, 0xD1FFAB1E
addi a1, zero, 0xD1FFAB1E
lui t6, 0xD1FFAB1E
@@ -31,45 +31,32 @@ G_M20178_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
slli t6, t6, 2
ld a2, 0xD1FFAB1E(t6)
jalr a2 // <unknown method>
- addi ra, zero, 0xD1FFAB1E
- beq a0, ra, G_M20178_IG05
- ;; size=44 bbWeight=1 PerfScore 15.00
-G_M20178_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M20178_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ld ra, 8(sp)
- ld fp, 0(sp)
- addi sp, sp, 16
- ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M20178_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M20178_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ addi a0, a0, 0xD1FFAB1E
+ sltu a0, zero, a0
+ addi a0, a0, 0xD1FFAB1E
+ ;; size=48 bbWeight=0.50 PerfScore 6.25
+G_M20178_IG03: ; bbWeight=0.50, epilog, nogc, extend
ld ra, 8(sp)
ld fp, 0(sp)
addi sp, sp, 16
ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-; Total bytes of code 100, prolog size 16, PerfScore 32.00, instruction count 21, allocated bytes for code 100 (MethodHash=225bb12d) for method Runtime_74774:TestEntryPoint():int (FullOpts)
+; Total bytes of code 80, prolog size 16, PerfScore 14.50, instruction count 16, allocated bytes for code 80 (MethodHash=225bb12d) for method Runtime_74774:TestEntryPoint():int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 3
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
- ---- Scope 1
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; move fp, sp
---- Epilog start at index 1 -----20 (-12.50%) : 77702.dasm - Runtime_73951:TestEntryPoint():int (FullOpts)@@ -14,13 +14,13 @@
; Lcl frame size = 0
Frame info. #outsz=0; #framesz=16; lcl=0
-G_M63164_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M63164_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -16
sd fp, 0(sp)
sd ra, 8(sp)
mv fp, sp
- ;; size=16 bbWeight=1 PerfScore 9.00
-G_M63164_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=16 bbWeight=0.50 PerfScore 4.50
+G_M63164_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lui a0, 0xD1FFAB1E
addiw a0, a0, 0xD1FFAB1E
slli a0, a0, 12
@@ -47,45 +47,32 @@ G_M63164_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
addi t6, t6, 0xD1FFAB1E
slli t6, t6, 3
lhu a0, 0xD1FFAB1E(t6)
- sext.w t6, a0
- bnez t6, G_M63164_IG05
- ;; size=104 bbWeight=1 PerfScore 35.00
-G_M63164_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M63164_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ld ra, 8(sp)
- ld fp, 0(sp)
- addi sp, sp, 16
- ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M63164_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M63164_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ sext.w a0, a0
+ sltu a0, zero, a0
+ addi a0, a0, 0xD1FFAB1E
+ ;; size=108 bbWeight=0.50 PerfScore 16.25
+G_M63164_IG03: ; bbWeight=0.50, epilog, nogc, extend
ld ra, 8(sp)
ld fp, 0(sp)
addi sp, sp, 16
ret ;; size=16 bbWeight=0.50 PerfScore 3.75
-; Total bytes of code 160, prolog size 16, PerfScore 52.00, instruction count 24, allocated bytes for code 160 (MethodHash=75cf0943) for method Runtime_73951:TestEntryPoint():int (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 24.50, instruction count 19, allocated bytes for code 140 (MethodHash=75cf0943) for method Runtime_73951:TestEntryPoint():int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 3
- Epilog Count : 2
+ Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
- ---- Scope 1
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; move fp, sp
---- Epilog start at index 1 -----8 (-3.17%) : 68430.dasm - System.Runtime.Intrinsics.Vector64:Any[long](System.Runtime.Intrinsics.Vector64`1[long],long):bool (FullOpts)@@ -9,31 +9,31 @@
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Runtime.Intrinsics.Vector64`1[long]>
-; V01 arg1 [V01,T00] ( 3, 2.50) long -> s1 single-def
+; V01 arg1 [V01,T00] ( 3, 3 ) long -> s1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Runtime.Intrinsics.Vector64`1[long]>
-; V04 tmp2 [V04 ] ( 2, 1 ) struct ( 8) [fp-0x08] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector64`1[long]>
+; V04 tmp2 [V04 ] ( 2, 2 ) struct ( 8) [fp-0x08] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector64`1[long]>
;* V05 tmp3 [V05,T05] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V06 tmp4 [V06,T06] ( 0, 0 ) int -> zero-ref
-; V07 tmp5 [V07,T02] ( 3, 2 ) ubyte -> a0 "Inline return value spill temp"
+; V07 tmp5 [V07,T03] ( 2, 2 ) ubyte -> a0 "Inline return value spill temp"
;* V08 tmp6 [V08,T07] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09 ] ( 2, 2 ) struct ( 8) [fp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[long]>
-; V10 tmp8 [V10 ] ( 2, 2 ) struct ( 8) [fp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[long]>
-; V11 tmp9 [V11,T03] ( 2, 2 ) long -> s1 "impAppendStmt"
+; V09 tmp7 [V09 ] ( 2, 4 ) struct ( 8) [fp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[long]>
+; V10 tmp8 [V10 ] ( 2, 4 ) struct ( 8) [fp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[long]>
+; V11 tmp9 [V11,T01] ( 2, 4 ) long -> s1 "impAppendStmt"
;* V12 tmp10 [V12,T08] ( 0, 0 ) int -> zero-ref
;* V13 tmp11 [V13,T09] ( 0, 0 ) int -> zero-ref
;* V14 tmp12 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp13 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V16 tmp14 [V16,T01] ( 2, 1.50) long -> s2 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
-; V17 tmp15 [V17,T04] ( 2, 1 ) long -> a0 "field V03._00 (fldOffset=0x0)" P-INDEP
-; V18 tmp16 [V18 ] ( 2, 1 ) long -> [fp-0x08] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
-; V19 tmp17 [V19 ] ( 2, 1.50) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
-; V20 tmp18 [V20 ] ( 2, 1.50) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V10._00 (fldOffset=0x0)" P-DEP
+; V16 tmp14 [V16,T02] ( 2, 2 ) long -> s2 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
+; V17 tmp15 [V17,T04] ( 2, 2 ) long -> a0 "field V03._00 (fldOffset=0x0)" P-INDEP
+; V18 tmp16 [V18 ] ( 2, 2 ) long -> [fp-0x08] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
+; V19 tmp17 [V19 ] ( 2, 3 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
+; V20 tmp18 [V20 ] ( 2, 3 ) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V10._00 (fldOffset=0x0)" P-DEP
;
; Lcl frame size = 32
Frame info. #outsz=0; #framesz=64; lcl=32
-G_M41460_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M41460_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -64
sd fp, 32(sp)
sd ra, 40(sp)
@@ -42,8 +42,8 @@ G_M41460_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
addi fp, sp, 32
mv s2, a0
mv s1, a1
- ;; size=32 bbWeight=0.50 PerfScore 9.00
-G_M41460_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=32 bbWeight=1 PerfScore 18.00
+G_M41460_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
addi a0, zero, 0xD1FFAB1E
lui a1, 0xD1FFAB1E
addiw a1, a1, 0xD1FFAB1E
@@ -89,14 +89,10 @@ G_M41460_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ld a2, 0xD1FFAB1E(t6)
jalr a2 // <unknown method>
ld a0, -24(fp)
- beq s1, a0, G_M41460_IG03
- sext.w a0, zero
- j G_M41460_IG04
- ;; size=192 bbWeight=0.50 PerfScore 35.00
-G_M41460_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M41460_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ sub a0, a0, s1
+ sltiu a0, a0, 1
+ ;; size=188 bbWeight=1 PerfScore 65.50
+G_M41460_IG03: ; bbWeight=1, epilog, nogc, extend
ld s2, 56(sp)
ld s1, 48(sp)
ld ra, 40(sp)
@@ -104,7 +100,7 @@ G_M41460_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
addi sp, sp, 64
ret ;; size=24 bbWeight=1 PerfScore 11.50
-; Total bytes of code 252, prolog size 24, PerfScore 55.75, instruction count 39, allocated bytes for code 252 (MethodHash=334a5e0b) for method System.Runtime.Intrinsics.Vector64:Any[long](System.Runtime.Intrinsics.Vector64`1[long],long):bool (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 95.00, instruction count 37, allocated bytes for code 244 (MethodHash=334a5e0b) for method System.Runtime.Intrinsics.Vector64:Any[long](System.Runtime.Intrinsics.Vector64`1[long],long):bool (FullOpts)
; ============================================================
Unwind Info:
@@ -115,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
+ Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)-8 (-3.17%) : 68422.dasm - System.Runtime.Intrinsics.Vector64:All[long](System.Runtime.Intrinsics.Vector64`1[long],long):bool (FullOpts)@@ -9,31 +9,31 @@
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Runtime.Intrinsics.Vector64`1[long]>
-; V01 arg1 [V01,T00] ( 3, 2.50) long -> s1 single-def
+; V01 arg1 [V01,T00] ( 3, 3 ) long -> s1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Runtime.Intrinsics.Vector64`1[long]>
-; V04 tmp2 [V04 ] ( 2, 1 ) struct ( 8) [fp-0x08] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector64`1[long]>
+; V04 tmp2 [V04 ] ( 2, 2 ) struct ( 8) [fp-0x08] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector64`1[long]>
;* V05 tmp3 [V05,T05] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V06 tmp4 [V06,T06] ( 0, 0 ) int -> zero-ref
-; V07 tmp5 [V07,T02] ( 3, 2 ) ubyte -> a0 "Inline return value spill temp"
+; V07 tmp5 [V07,T03] ( 2, 2 ) ubyte -> a0 "Inline return value spill temp"
;* V08 tmp6 [V08,T07] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09 ] ( 2, 2 ) struct ( 8) [fp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[long]>
-; V10 tmp8 [V10 ] ( 2, 2 ) struct ( 8) [fp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[long]>
-; V11 tmp9 [V11,T03] ( 2, 2 ) long -> s1 "impAppendStmt"
+; V09 tmp7 [V09 ] ( 2, 4 ) struct ( 8) [fp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[long]>
+; V10 tmp8 [V10 ] ( 2, 4 ) struct ( 8) [fp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[long]>
+; V11 tmp9 [V11,T01] ( 2, 4 ) long -> s1 "impAppendStmt"
;* V12 tmp10 [V12,T08] ( 0, 0 ) int -> zero-ref
;* V13 tmp11 [V13,T09] ( 0, 0 ) int -> zero-ref
;* V14 tmp12 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp13 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V16 tmp14 [V16,T01] ( 2, 1.50) long -> s2 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
-; V17 tmp15 [V17,T04] ( 2, 1 ) long -> a0 "field V03._00 (fldOffset=0x0)" P-INDEP
-; V18 tmp16 [V18 ] ( 2, 1 ) long -> [fp-0x08] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
-; V19 tmp17 [V19 ] ( 2, 1.50) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
-; V20 tmp18 [V20 ] ( 2, 1.50) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V10._00 (fldOffset=0x0)" P-DEP
+; V16 tmp14 [V16,T02] ( 2, 2 ) long -> s2 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
+; V17 tmp15 [V17,T04] ( 2, 2 ) long -> a0 "field V03._00 (fldOffset=0x0)" P-INDEP
+; V18 tmp16 [V18 ] ( 2, 2 ) long -> [fp-0x08] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
+; V19 tmp17 [V19 ] ( 2, 3 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
+; V20 tmp18 [V20 ] ( 2, 3 ) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V10._00 (fldOffset=0x0)" P-DEP
;
; Lcl frame size = 32
Frame info. #outsz=0; #framesz=64; lcl=32
-G_M29091_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M29091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -64
sd fp, 32(sp)
sd ra, 40(sp)
@@ -42,8 +42,8 @@ G_M29091_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
addi fp, sp, 32
mv s2, a0
mv s1, a1
- ;; size=32 bbWeight=0.50 PerfScore 9.00
-G_M29091_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=32 bbWeight=1 PerfScore 18.00
+G_M29091_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
addi a0, zero, 0xD1FFAB1E
lui a1, 0xD1FFAB1E
addiw a1, a1, 0xD1FFAB1E
@@ -89,14 +89,10 @@ G_M29091_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ld a2, 0xD1FFAB1E(t6)
jalr a2 // <unknown method>
ld a0, -24(fp)
- bne s1, a0, G_M29091_IG03
- addi a0, zero, 0xD1FFAB1E
- j G_M29091_IG04
- ;; size=192 bbWeight=0.50 PerfScore 35.00
-G_M29091_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- sext.w a0, zero
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M29091_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ sub a0, a0, s1
+ sltiu a0, a0, 1
+ ;; size=188 bbWeight=1 PerfScore 65.50
+G_M29091_IG03: ; bbWeight=1, epilog, nogc, extend
ld s2, 56(sp)
ld s1, 48(sp)
ld ra, 40(sp)
@@ -104,7 +100,7 @@ G_M29091_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
addi sp, sp, 64
ret ;; size=24 bbWeight=1 PerfScore 11.50
-; Total bytes of code 252, prolog size 24, PerfScore 55.75, instruction count 39, allocated bytes for code 252 (MethodHash=a6a98e5c) for method System.Runtime.Intrinsics.Vector64:All[long](System.Runtime.Intrinsics.Vector64`1[long],long):bool (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 95.00, instruction count 37, allocated bytes for code 244 (MethodHash=a6a98e5c) for method System.Runtime.Intrinsics.Vector64:All[long](System.Runtime.Intrinsics.Vector64`1[long],long):bool (FullOpts)
; ============================================================
Unwind Info:
@@ -115,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
+ Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)-20 (-7.58%) : 68420.dasm - System.Runtime.Intrinsics.Vector64:All[double](System.Runtime.Intrinsics.Vector64`1[double],double):bool (FullOpts)@@ -9,31 +9,31 @@
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Runtime.Intrinsics.Vector64`1[double]>
-; V01 arg1 [V01,T08] ( 3, 2.50) double -> [fp-0x08] single-def
+; V01 arg1 [V01,T08] ( 3, 3 ) double -> [fp-0x08] single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Runtime.Intrinsics.Vector64`1[double]>
-; V04 tmp2 [V04 ] ( 2, 1 ) struct ( 8) [fp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector64`1[double]>
+; V04 tmp2 [V04 ] ( 2, 2 ) struct ( 8) [fp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector64`1[double]>
;* V05 tmp3 [V05,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V06 tmp4 [V06,T04] ( 0, 0 ) int -> zero-ref
-; V07 tmp5 [V07,T01] ( 3, 2 ) ubyte -> a0 "Inline return value spill temp"
+; V07 tmp5 [V07,T01] ( 2, 2 ) ubyte -> a0 "Inline return value spill temp"
;* V08 tmp6 [V08,T05] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09 ] ( 2, 2 ) struct ( 8) [fp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[double]>
-; V10 tmp8 [V10 ] ( 2, 2 ) struct ( 8) [fp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[double]>
-; V11 tmp9 [V11,T09] ( 2, 2 ) double -> fs6 "impAppendStmt"
+; V09 tmp7 [V09 ] ( 2, 4 ) struct ( 8) [fp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[double]>
+; V10 tmp8 [V10 ] ( 2, 4 ) struct ( 8) [fp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[double]>
+; V11 tmp9 [V11,T09] ( 2, 4 ) double -> fs6 "impAppendStmt"
;* V12 tmp10 [V12,T06] ( 0, 0 ) int -> zero-ref
;* V13 tmp11 [V13,T07] ( 0, 0 ) int -> zero-ref
;* V14 tmp12 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp13 [V15 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V16 tmp14 [V16,T00] ( 2, 1.50) long -> s1 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
-; V17 tmp15 [V17,T02] ( 2, 1 ) long -> a0 "field V03._00 (fldOffset=0x0)" P-INDEP
-; V18 tmp16 [V18 ] ( 2, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
-; V19 tmp17 [V19 ] ( 2, 1.50) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
-; V20 tmp18 [V20 ] ( 2, 1.50) long -> [fp-0x20] do-not-enreg[X] addr-exposed "field V10._00 (fldOffset=0x0)" P-DEP
+; V16 tmp14 [V16,T00] ( 2, 2 ) long -> s1 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
+; V17 tmp15 [V17,T02] ( 2, 2 ) long -> a0 "field V03._00 (fldOffset=0x0)" P-INDEP
+; V18 tmp16 [V18 ] ( 2, 2 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
+; V19 tmp17 [V19 ] ( 2, 3 ) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
+; V20 tmp18 [V20 ] ( 2, 3 ) long -> [fp-0x20] do-not-enreg[X] addr-exposed "field V10._00 (fldOffset=0x0)" P-DEP
;
; Lcl frame size = 32
Frame info. #outsz=0; #framesz=64; lcl=32
-G_M38396_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M38396_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -64
sd fp, 32(sp)
sd ra, 40(sp)
@@ -42,8 +42,8 @@ G_M38396_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
addi fp, sp, 32
fsd fa0, -8(fp)
mv s1, a0
- ;; size=32 bbWeight=0.50 PerfScore 10.75
-G_M38396_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=32 bbWeight=1 PerfScore 21.50
+G_M38396_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
addi a0, zero, 0xD1FFAB1E
lui a1, 0xD1FFAB1E
addiw a1, a1, 0xD1FFAB1E
@@ -91,15 +91,8 @@ G_M38396_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jalr a2 // <unknown method>
fld ft4, -32(fp)
feq.d a0, ft4, fs6
- sext.w t6, a0
- beqz t6, G_M38396_IG03
- addi a0, zero, 0xD1FFAB1E
- j G_M38396_IG04
- ;; size=204 bbWeight=0.50 PerfScore 37.75
-G_M38396_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- sext.w a0, zero
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M38396_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=188 bbWeight=1 PerfScore 69.50
+G_M38396_IG03: ; bbWeight=1, epilog, nogc, extend
fld fs6, 56(sp)
ld s1, 48(sp)
ld ra, 40(sp)
@@ -107,7 +100,7 @@ G_M38396_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
addi sp, sp, 64
ret ;; size=24 bbWeight=1 PerfScore 11.50
-; Total bytes of code 264, prolog size 24, PerfScore 60.25, instruction count 42, allocated bytes for code 264 (MethodHash=17136a03) for method System.Runtime.Intrinsics.Vector64:All[double](System.Runtime.Intrinsics.Vector64`1[double],double):bool (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 102.50, instruction count 37, allocated bytes for code 244 (MethodHash=17136a03) for method System.Runtime.Intrinsics.Vector64:All[double](System.Runtime.Intrinsics.Vector64`1[double],double):bool (FullOpts)
; ============================================================
Unwind Info:
@@ -118,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 66 (0x00042) Actual length = 264 (0x000108)
+ Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)-24 (-8.96%) : 68428.dasm - System.Runtime.Intrinsics.Vector64:Any[double](System.Runtime.Intrinsics.Vector64`1[double],double):bool (FullOpts)@@ -9,31 +9,31 @@
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Runtime.Intrinsics.Vector64`1[double]>
-; V01 arg1 [V01,T08] ( 3, 2.50) double -> [fp-0x08] single-def
+; V01 arg1 [V01,T08] ( 3, 3 ) double -> [fp-0x08] single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;* V03 tmp1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Runtime.Intrinsics.Vector64`1[double]>
-; V04 tmp2 [V04 ] ( 2, 1 ) struct ( 8) [fp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector64`1[double]>
+; V04 tmp2 [V04 ] ( 2, 2 ) struct ( 8) [fp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector64`1[double]>
;* V05 tmp3 [V05,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V06 tmp4 [V06,T04] ( 0, 0 ) int -> zero-ref
-; V07 tmp5 [V07,T01] ( 3, 2 ) ubyte -> a0 "Inline return value spill temp"
+; V07 tmp5 [V07,T01] ( 2, 2 ) ubyte -> a0 "Inline return value spill temp"
;* V08 tmp6 [V08,T05] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09 ] ( 2, 2 ) struct ( 8) [fp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[double]>
-; V10 tmp8 [V10 ] ( 2, 2 ) struct ( 8) [fp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[double]>
-; V11 tmp9 [V11,T09] ( 2, 2 ) double -> fs6 "impAppendStmt"
+; V09 tmp7 [V09 ] ( 2, 4 ) struct ( 8) [fp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[double]>
+; V10 tmp8 [V10 ] ( 2, 4 ) struct ( 8) [fp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[double]>
+; V11 tmp9 [V11,T09] ( 2, 4 ) double -> fs6 "impAppendStmt"
;* V12 tmp10 [V12,T06] ( 0, 0 ) int -> zero-ref
;* V13 tmp11 [V13,T07] ( 0, 0 ) int -> zero-ref
;* V14 tmp12 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp13 [V15 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V16 tmp14 [V16,T00] ( 2, 1.50) long -> s1 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
-; V17 tmp15 [V17,T02] ( 2, 1 ) long -> a0 "field V03._00 (fldOffset=0x0)" P-INDEP
-; V18 tmp16 [V18 ] ( 2, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
-; V19 tmp17 [V19 ] ( 2, 1.50) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
-; V20 tmp18 [V20 ] ( 2, 1.50) long -> [fp-0x20] do-not-enreg[X] addr-exposed "field V10._00 (fldOffset=0x0)" P-DEP
+; V16 tmp14 [V16,T00] ( 2, 2 ) long -> s1 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
+; V17 tmp15 [V17,T02] ( 2, 2 ) long -> a0 "field V03._00 (fldOffset=0x0)" P-INDEP
+; V18 tmp16 [V18 ] ( 2, 2 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
+; V19 tmp17 [V19 ] ( 2, 3 ) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
+; V20 tmp18 [V20 ] ( 2, 3 ) long -> [fp-0x20] do-not-enreg[X] addr-exposed "field V10._00 (fldOffset=0x0)" P-DEP
;
; Lcl frame size = 32
Frame info. #outsz=0; #framesz=64; lcl=32
-G_M18987_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M18987_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -64
sd fp, 32(sp)
sd ra, 40(sp)
@@ -42,8 +42,8 @@ G_M18987_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
addi fp, sp, 32
fsd fa0, -8(fp)
mv s1, a0
- ;; size=32 bbWeight=0.50 PerfScore 10.75
-G_M18987_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=32 bbWeight=1 PerfScore 21.50
+G_M18987_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
addi a0, zero, 0xD1FFAB1E
lui a1, 0xD1FFAB1E
addiw a1, a1, 0xD1FFAB1E
@@ -91,16 +91,8 @@ G_M18987_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jalr a2 // <unknown method>
fld ft4, -32(fp)
feq.d a0, ft4, fs6
- xori a0, a0, 1
- sext.w t6, a0
- beqz t6, G_M18987_IG03
- sext.w a0, zero
- j G_M18987_IG04
- ;; size=208 bbWeight=0.50 PerfScore 38.00
-G_M18987_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi a0, zero, 0xD1FFAB1E
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M18987_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=188 bbWeight=1 PerfScore 69.50
+G_M18987_IG03: ; bbWeight=1, epilog, nogc, extend
fld fs6, 56(sp)
ld s1, 48(sp)
ld ra, 40(sp)
@@ -108,7 +100,7 @@ G_M18987_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
addi sp, sp, 64
ret ;; size=24 bbWeight=1 PerfScore 11.50
-; Total bytes of code 268, prolog size 24, PerfScore 60.50, instruction count 43, allocated bytes for code 268 (MethodHash=1034b5d4) for method System.Runtime.Intrinsics.Vector64:Any[double](System.Runtime.Intrinsics.Vector64`1[double],double):bool (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 102.50, instruction count 37, allocated bytes for code 244 (MethodHash=1034b5d4) for method System.Runtime.Intrinsics.Vector64:Any[double](System.Runtime.Intrinsics.Vector64`1[double],double):bool (FullOpts)
; ============================================================
Unwind Info:
@@ -119,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 67 (0x00043) Actual length = 268 (0x00010c)
+ Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)-8 (-1.82%) : 64734.dasm - System.Numerics.Vector:LessThan(System.Numerics.Vector`1[long],System.Numerics.Vector`1[long]):System.Numerics.Vector`1[long] (FullOpts)@@ -12,45 +12,45 @@
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Numerics.Vector`1[long]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBRM] multireg-ret multireg-dest "Return value temp for multireg return" <System.Numerics.Vector`1[long]>
-; V04 tmp2 [V04 ] ( 3, 2.50) struct (16) [fp-0x10] do-not-enreg[XSR] multireg-ret addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Vector`1[long]>
+; V04 tmp2 [V04 ] ( 3, 3 ) struct (16) [fp-0x10] do-not-enreg[XSR] multireg-ret addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Vector`1[long]>
;* V05 tmp3 [V05,T09] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V06 tmp4 [V06 ] ( 4, 4 ) struct (16) [fp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Numerics.Vector`1[long]>
-; V07 tmp5 [V07 ] ( 4, 4 ) struct (16) [fp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Numerics.Vector`1[long]>
-; V08 tmp6 [V08,T00] ( 4, 4 ) long -> s1 "impAppendStmt"
-; V09 tmp7 [V09,T05] ( 6, 3 ) long -> s2
+; V06 tmp4 [V06 ] ( 4, 8 ) struct (16) [fp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Numerics.Vector`1[long]>
+; V07 tmp5 [V07 ] ( 4, 8 ) struct (16) [fp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Numerics.Vector`1[long]>
+; V08 tmp6 [V08,T00] ( 4, 8 ) long -> s1 "impAppendStmt"
+; V09 tmp7 [V09,T01] ( 4, 4 ) long -> s2
;* V10 tmp8 [V10 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V11 tmp9 [V11 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V12 tmp10 [V12,T07] ( 0, 0 ) int -> zero-ref
-;* V13 tmp11 [V13,T08] ( 0, 0 ) int -> zero-ref
+;* V12 tmp10 [V12,T06] ( 0, 0 ) int -> zero-ref
+;* V13 tmp11 [V13,T07] ( 0, 0 ) int -> zero-ref
;* V14 tmp12 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp13 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V16 tmp14 [V16 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp"
-;* V17 tmp15 [V17,T06] ( 0, 0 ) int -> zero-ref
-; V18 tmp16 [V18,T01] ( 2, 1.50) long -> a0 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
-; V19 tmp17 [V19,T02] ( 2, 1.50) long -> a1 single-def "field V00._01 (fldOffset=0x8)" P-INDEP
-; V20 tmp18 [V20,T03] ( 2, 1.50) long -> a2 single-def "field V01._00 (fldOffset=0x0)" P-INDEP
-; V21 tmp19 [V21,T04] ( 2, 1.50) long -> a3 single-def "field V01._01 (fldOffset=0x8)" P-INDEP
+;* V17 tmp15 [V17,T08] ( 0, 0 ) int -> zero-ref
+; V18 tmp16 [V18,T02] ( 2, 2 ) long -> a0 single-def "field V00._00 (fldOffset=0x0)" P-INDEP
+; V19 tmp17 [V19,T03] ( 2, 2 ) long -> a1 single-def "field V00._01 (fldOffset=0x8)" P-INDEP
+; V20 tmp18 [V20,T04] ( 2, 2 ) long -> a2 single-def "field V01._00 (fldOffset=0x0)" P-INDEP
+; V21 tmp19 [V21,T05] ( 2, 2 ) long -> a3 single-def "field V01._01 (fldOffset=0x8)" P-INDEP
;* V22 tmp20 [V22 ] ( 0, 0 ) long -> zero-ref "field V03._00 (fldOffset=0x0)" P-DEP
;* V23 tmp21 [V23 ] ( 0, 0 ) long -> zero-ref "field V03._01 (fldOffset=0x8)" P-DEP
-; V24 tmp22 [V24 ] ( 3, 2.50) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
-; V25 tmp23 [V25 ] ( 3, 2.50) long -> [fp-0x08] do-not-enreg[X] addr-exposed "field V04._01 (fldOffset=0x8)" P-DEP
-; V26 tmp24 [V26 ] ( 3, 2.50) long -> [fp-0x20] do-not-enreg[X] addr-exposed "field V06._00 (fldOffset=0x0)" P-DEP
-; V27 tmp25 [V27 ] ( 3, 2.50) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V06._01 (fldOffset=0x8)" P-DEP
-; V28 tmp26 [V28 ] ( 3, 2.50) long -> [fp-0x30] do-not-enreg[X] addr-exposed "field V07._00 (fldOffset=0x0)" P-DEP
-; V29 tmp27 [V29 ] ( 3, 2.50) long -> [fp-0x28] do-not-enreg[X] addr-exposed "field V07._01 (fldOffset=0x8)" P-DEP
+; V24 tmp22 [V24 ] ( 3, 3 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "field V04._00 (fldOffset=0x0)" P-DEP
+; V25 tmp23 [V25 ] ( 3, 3 ) long -> [fp-0x08] do-not-enreg[X] addr-exposed "field V04._01 (fldOffset=0x8)" P-DEP
+; V26 tmp24 [V26 ] ( 3, 5 ) long -> [fp-0x20] do-not-enreg[X] addr-exposed "field V06._00 (fldOffset=0x0)" P-DEP
+; V27 tmp25 [V27 ] ( 3, 5 ) long -> [fp-0x18] do-not-enreg[X] addr-exposed "field V06._01 (fldOffset=0x8)" P-DEP
+; V28 tmp26 [V28 ] ( 3, 5 ) long -> [fp-0x30] do-not-enreg[X] addr-exposed "field V07._00 (fldOffset=0x0)" P-DEP
+; V29 tmp27 [V29 ] ( 3, 5 ) long -> [fp-0x28] do-not-enreg[X] addr-exposed "field V07._01 (fldOffset=0x8)" P-DEP
;
; Lcl frame size = 48
Frame info. #outsz=0; #framesz=80; lcl=48
-G_M2960_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M2960_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
addi sp, sp, -80
sd fp, 48(sp)
sd ra, 56(sp)
sd s1, 64(sp)
sd s2, 72(sp)
addi fp, sp, 48
- ;; size=24 bbWeight=0.50 PerfScore 8.50
-G_M2960_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=24 bbWeight=1 PerfScore 17.00
+G_M2960_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sd a0, -32(fp)
sd a1, -24(fp)
sd a2, -48(fp)
@@ -83,16 +83,9 @@ G_M2960_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ld a2, 0xD1FFAB1E(t6)
jalr a2 // <unknown method>
ld a0, -48(fp)
- bge s1, a0, G_M2960_IG04
- ;; size=132 bbWeight=0.50 PerfScore 27.25
-G_M2960_IG03: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi s2, zero, 0xD1FFAB1E
- j G_M2960_IG05
- ;; size=8 bbWeight=0.25 PerfScore 0.50
-G_M2960_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mv s2, zero
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M2960_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ slt a0, s1, a0
+ xori a0, a0, 1
+ addi s2, a0, 0xD1FFAB1E
addi a0, zero, 0xD1FFAB1E
lui a1, 0xD1FFAB1E
addiw a1, a1, 0xD1FFAB1E
@@ -135,16 +128,9 @@ G_M2960_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ld a2, 0xD1FFAB1E(t6)
jalr a2 // <unknown method>
ld a0, -40(fp)
- bge s1, a0, G_M2960_IG07
- ;; size=172 bbWeight=0.50 PerfScore 29.00
-G_M2960_IG06: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- addi s2, zero, 0xD1FFAB1E
- j G_M2960_IG08
- ;; size=8 bbWeight=0.25 PerfScore 0.50
-G_M2960_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mv s2, zero
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M2960_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ slt a0, s1, a0
+ xori a0, a0, 1
+ addi s2, a0, 0xD1FFAB1E
addi a0, zero, 0xD1FFAB1E
lui a1, 0xD1FFAB1E
addiw a1, a1, 0xD1FFAB1E
@@ -161,8 +147,8 @@ G_M2960_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sd s2, -8(fp)
ld a0, -16(fp)
ld a1, -8(fp)
- ;; size=64 bbWeight=1 PerfScore 23.50
-G_M2960_IG09: ; bbWeight=1, epilog, nogc, extend
+ ;; size=384 bbWeight=1 PerfScore 132.00
+G_M2960_IG03: ; bbWeight=1, epilog, nogc, extend
ld s2, 72(sp)
ld s1, 64(sp)
ld ra, 56(sp)
@@ -170,7 +156,7 @@ G_M2960_IG09: ; bbWeight=1, epilog, nogc, extend
addi sp, sp, 80
ret ;; size=24 bbWeight=1 PerfScore 11.50
-; Total bytes of code 440, prolog size 24, PerfScore 101.25, instruction count 62, allocated bytes for code 440 (MethodHash=d88bf46f) for method System.Numerics.Vector:LessThan(System.Numerics.Vector`1[long],System.Numerics.Vector`1[long]):System.Numerics.Vector`1[long] (FullOpts)
+; Total bytes of code 432, prolog size 24, PerfScore 160.50, instruction count 60, allocated bytes for code 432 (MethodHash=d88bf46f) for method System.Numerics.Vector:LessThan(System.Numerics.Vector`1[long],System.Numerics.Vector`1[long]):System.Numerics.Vector`1[long] (FullOpts)
; ============================================================
Unwind Info:
@@ -181,7 +167,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 110 (0x0006e) Actual length = 440 (0x0001b8)
+ Function Length : 108 (0x0006c) Actual length = 432 (0x0001b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)DetailsSize improvements/regressions per collection
PerfScore improvements/regressions per collection
Context information
jit-analyze outputLooks like the PerfScore regressions (see last 5 examples) are a consequence of weighing BBs; when the branch is removed, the weight of some BBs (even not part of the branch) is doubled inflating the PerfScore. |
RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-VF2: 9084 / 9114 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-QEMU: 256190 / 257250 (99.59%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-VF2: 271717 / 273437 (99.37%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
|
@jakobbotsch PTAL. |
RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-VF2: 9084 / 9114 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-VF2: 498489 / 500235 (99.65%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-VF2: 9084 / 9114 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
RISC-V Release-FX-QEMU: 274485 / 275565 (99.61%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-VF2: 9084 / 9114 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-QEMU: 281172 / 282248 (99.62%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-VF2: 307760 / 309509 (99.43%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-VF2: 9084 / 9114 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-QEMU: 248864 / 249942 (99.57%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-VF2: 307660 / 309413 (99.43%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
This reverts commit 749b3c5.
RISC-V Release-CLR-VF2: 9084 / 9114 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
RISC-V Release-CLR-VF2: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-QEMU: 275639 / 276719 (99.61%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
RISC-V Release-CLR-VF2: 9084 / 9114 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-QEMU: 277592 / 278689 (99.61%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-VF2: 309102 / 310844 (99.44%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
RISC-V Release-CLR-VF2: 9084 / 9114 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-QEMU: 284048 / 285123 (99.62%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-FX-VF2: 300179 / 301919 (99.42%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V Release-CLR-QEMU: 9083 / 9113 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
Yup, it is supported by kernel v6.8: https://lf-rise.atlassian.net/wiki/spaces/HOME/pages/8587962/RVA23+Profile. However, on bianbu with kernel 6.6, it's probably patched because |
The base RISC-V instruction set lacks conditional instructions (they come in Zicond extension, RVA23 profile). However, the result of non-branch comparisons is stored in a regular general-purpose register which can be fed as argument into standard instructions. For now remove branches which can be rephrased as a simple expression on the 0/1 condition result.
Part of #84834, cc @dotnet/samsung