corerun MathRound3.exe
Beginning test case MathRound3 at 6/14/17 11:02:29 PM
Random seed: 20010415; set environment variable CORECLR_SEED to this value to repro
[Positive]
Beginning scenario: PosTest1: Verify Round(System.double) when decimal part of arg d < =0.5 .
Beginning scenario: PosTest2: Verify Round(System.double) when decimal part of arg d > 0.5 .
Beginning scenario: PosTest3: Verify Round(System.double) when decimal part of arg is very close to -0.5 .
Beginning scenario: PosTest4: Verify Round(System.double) when decimal part of arg is very close to 0.5 .
actual value = 0
expected value = 1
ERROR!!!-001.1: Return value is wrong!
Beginning scenario: NegTest1: OverflowException is not thrown.
Ending test case at 6/14/17 11:02:30 PM
; Assembly listing for method MathRound3:PosTest4():bool:this
; Emitting BLENDED_CODE for
; optimized code
; fp based frame
; partially interruptible
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd
; V01 loc0 [V01,T05] ( 2, 1.50) bool -> x0
;* V02 loc1 [V02,T06] ( 0, 0 ) double -> zero-ref
;* V03 loc2 [V03,T07] ( 0, 0 ) double -> zero-ref
; V04 tmp0 [V04,T00] ( 10, 10 ) ref -> x0
; V05 tmp1 [V05,T01] ( 4, 4 ) ref -> x1
; V06 tmp2 [V06,T02] ( 4, 4 ) ref -> [fp+0x18]
; V07 tmp3 [V07,T03] ( 4, 4 ) ref -> x1
; V08 tmp4 [V08,T04] ( 4, 4 ) ref -> x9
;# V09 OutArgs [V09 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00]
;
; Lcl frame size = 16
G_M29044_IG01:
A9BE7BFD stp fp, lr, [sp,#-32]!
910003FD mov fp, sp
G_M29044_IG02:
D2822E00 movz x0, #0x1170
F2A30000 movk x0, #0x1800 LSL dotnet/coreclr#16
F2DFFFE0 movk x0, #0xffff LSL dotnet/coreclr#32
F9400000 ldr x0, [x0]
97FFFE26 bl TestLibrary.TestFramework:BeginScenario(ref)
D28F4C00 movz x0, #0x7a60
F2A6ED20 movk x0, #0x3769 LSL dotnet/coreclr#16
F2DFFFE0 movk x0, #0xffff LSL dotnet/coreclr#32
97FFEE4E bl CORINFO_HELP_NEWSFAST
D2822C01 movz x1, #0x1160
F2A30001 movk x1, #0x1800 LSL dotnet/coreclr#16
F2DFFFE1 movk x1, #0xffff LSL dotnet/coreclr#32
F9400021 ldr x1, [x1]
4F00E410 movi v16.16b, #0x00
FD000410 str d16, [x0,#8]
F9000FA0 str x0, [fp,#24] // [V06 tmp2]
AA0103E0 mov x0, x1
F9400FA1 ldr x1, [fp,#24] // [V06 tmp2]
97FFEBC8 bl System.Console:WriteLine(ref,ref)
D28F4C00 movz x0, #0x7a60
F2A6ED20 movk x0, #0x3769 LSL dotnet/coreclr#16
F2DFFFE0 movk x0, #0xffff LSL dotnet/coreclr#32
97FFEE40 bl CORINFO_HELP_NEWSFAST
D2822D01 movz x1, #0x1168
F2A30001 movk x1, #0x1800 LSL dotnet/coreclr#16
F2DFFFE1 movk x1, #0xffff LSL dotnet/coreclr#32
F9400021 ldr x1, [x1]
1E6E1010 fmov d16, dotnet/coreclr#1.0000
FD000410 str d16, [x0,#8]
AA0003E9 mov x9, x0
AA0103E0 mov x0, x1
AA0903E1 mov x1, x9
97FFEBBA bl System.Console:WriteLine(ref,ref)
D2822000 movz x0, #0x1100
F2A30000 movk x0, #0x1800 LSL dotnet/coreclr#16
F2DFFFE0 movk x0, #0xffff LSL dotnet/coreclr#32
F9400000 ldr x0, [x0]
D2822101 movz x1, #0x1108
F2A30001 movk x1, #0x1800 LSL dotnet/coreclr#16
F2DFFFE1 movk x1, #0xffff LSL dotnet/coreclr#32
F9400021 ldr x1, [x1]
97FFEA9F bl TestLibrary.TestFramework:LogError(ref,ref)
2A1F03E0 mov w0, wzr
G_M29044_IG03:
A8C27BFD ldp fp, lr, [sp],#32
D65F03C0 ret lr
@dotnet/arm64-contrib @dotnet/jit-contrib @janvorli
The new test case introduced by dotnet/coreclr#12210 is not passing on arm64 tip. Also the JIT code is not hitting the revised COM*::Round() functions at all.