dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.85k stars 4.62k forks source link

JIT: SVE Cleanup - Simplify handling of RMW intrinsics in LSRA #104842

Open TIHan opened 1 month ago

TIHan commented 1 month ago

Discussion: https://github.com/dotnet/runtime/pull/104704#discussion_r1674828420

BuildHWIntrinsic in lsraarm64.cpp is getting a little complicated, especially when it comes to handling RMW intrinsics and when ConditionalSelect wraps a RMW intrinsic.

The logic that handles the RMW intrinsics makes assumptions on which operand on the intrinsic is the RMW node based on flags. Instead, as mentioned in the discussion, we really just need to have a function that tells us which operand is the RMW node and then BuildHWIntrinsic will know how to handle it in a general way.

dotnet-policy-service[bot] commented 1 month ago

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch See info in area-owners.md if you want to be subscribed.

a74nh commented 4 weeks ago

priority:3 for RC1 snap : Not required, but it'd be nice to have for maintainability.