- 
                Notifications
    You must be signed in to change notification settings 
- Fork 2.6k
Consolidate implementation of Rotate and PopCount #22584
Conversation
| @dotnet-bot test this please | 
| @dotnet-bot test coreclr-ci (Build Linux arm debug) please | 
| /azp run coreclr-ci | 
| /azp run | 
| Lots of infra failures | 
| Based on my conversation with Azure Devops folks, you have to be collaborator in order to be able to trigger builds from comments, I think contributors can't do it yet 😢 | 
| /azp run coreclr-ci | 
| Azure Pipelines successfully started running 1 pipeline(s). | 
| @dotnet-bot test OSX10.12 x64 Checked Innerloop Build and Test please | 
| @safern Are you able to make sense of all the failing Azure Pipelines tasks on this PR? Are they all infrastructure issues? | 
| @dotnet-bot test Windows_NT x64 Release CoreFX Tests please | 
| This last check is failing on a ping test, which sounds like infra. Hopefully it goes through this time | 
| Thanks! | 
| Thanks again @jkotas, once again the feedback is appreciated. Always something new to learn here. | 
* Perf: BitOps.LeadingZeroCount * Remove redundant MSIL cast, conv.u8 * Use local functions for SoftwareFallback * Target BIT32/64 Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
* Perf: BitOps.LeadingZeroCount * Remove redundant MSIL cast, conv.u8 * Use local functions for SoftwareFallback * Target BIT32/64 Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
* Perf: BitOps.LeadingZeroCount * Remove redundant MSIL cast, conv.u8 * Use local functions for SoftwareFallback * Target BIT32/64 Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
* Perf: BitOps.LeadingZeroCount * Remove redundant MSIL cast, conv.u8 * Use local functions for SoftwareFallback * Target BIT32/64 Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
* Perf: BitOps.LeadingZeroCount * Remove redundant MSIL cast, conv.u8 * Use local functions for SoftwareFallback * Target BIT32/64 Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
* Perf: BitOps.LeadingZeroCount * Remove redundant MSIL cast, conv.u8 * Use local functions for SoftwareFallback * Target BIT32/64 Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
* Perf: BitOps.LeadingZeroCount * Remove redundant MSIL cast, conv.u8 * Use local functions for SoftwareFallback * Target BIT32/64 Commit migrated from dotnet/coreclr@b4f99f2
RotateLeft, RotateRight
There are several implementations of
RotateLeftandRotateRightin the stack.BitOpsmethods pass unitsUnlike the related PRs (LZCNT, TZCNT) where the goal was to fix & optimize the code,
the benefits here are:
Note related JIT optimization which makes all such methods pseudo-intrinsic: #1830
PopCount
For
PopCount, the goal is to:TrailingZeroCount
TrailingZeroCountrelated to MSIL generation (removing redundantconv.u8)cc @tannergooding