Uh oh!
There was an error while loading. Please reload this page.
Arm64/Sve: Enable Sve only if vector length is 128 - #104174
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
kunalspathak
commented
Jun 28, 2024
@dotnet/arm64-contrib |
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Uh oh!
There was an error while loading. Please reload this page.
| @@ -1514,8 +1514,8 @@ void EEJitManager::SetCpuInfo() | |||
| uint32_t maxVectorTLength = (maxVectorTBitWidth / 8); | |||
| uint64_t sveLengthFromOS = GetSveLengthFromOS(); | |||
There was a problem hiding this comment.
This method to be adjusted to return 0 on Windows with this change as otherwise we could be in an unsupported state since it's currently hardcoded as:
;; uint64_t GetSveLengthFromOS(void); LEAF_ENTRY GetSveLengthFromOS ;; TODO-SVE: Remove the hardcoded value 128 and uncomment once CI machines are updated to use MASM 14.4 or later ;; rdvl x0, 1mov x0, #128ret lr LEAF_ENDThere was a problem hiding this comment.
hhm, so this is the case where if windows is running on 256-bit machine, we shouldn't be returning 128-bits because that will falsely turn on SVE. Let me uncomment the right way to do it to see if helix machines got the assembler upgraded to understand rdvl.
There was a problem hiding this comment.
alright, so that seemed to be working now.
In .NET 9, we will only support SVE if the system vector length of 128-bits. For supporting higher vector length, needs more work that will be done in future release.
References: