Uh oh!
There was an error while loading. Please reload this page.
[arm64] JIT: Fix IsContainableImmed for arm64 v8.1 or higher - #61035
Conversation
ghost
commented
Oct 30, 2021
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsstaticintTest(intx)=>x+1;Current codegen on M1-arm64 is mov w1, #1add w0, w0, w1As you can see, add w0, w0, #1The issue is that we always return It's not the case for AltJit or <8.0 hardware so I can't get SPMI diffs but I expect them to be quite some big. cc @dotnet/jit-contrib
|
Codegen difff example, A few regressions due to loop alignment. |
kunalspathak
left a comment
There was a problem hiding this comment.
This is a great catch. Thank you!
kunalspathak
commented
Nov 1, 2021
Curious, what are the regressions? |
EgorBo
commented
Nov 1, 2021
I don't have those diffs at the moment, when diffs are large it takes an hour to process them, but I am 100% sure those are loop alignment artifacts just like in #61045 (e.g. https://www.diffchecker.com/La4x8Sgz) |
Current codegen on Apple M1 is
As you can see,
#1was not contained.Codegen with this PR:
The issue is that we always return
falseeven for normal GT_AND/GT_SUB when Atomics ISA is available (>=8.1 which is pretty much any modern arm hardware) here.Diffs are huge 😮
coreclr_tests.pmi.Linux.arm64.checked.mch:
Detail diffs
libraries.crossgen2.Linux.arm64.checked.mch:
Detail diffs
libraries.pmi.Linux.arm64.checked.mch:
Detail diffs
libraries_tests.pmi.Linux.arm64.checked.mch:
Detail diffs
cc @dotnet/jit-contrib