Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JIT, SIMD Intrinsics: Recognize ~A & B as VectorXxx.AndNot(B, A) #78303

Closed
sunkin351 opened this issue Nov 14, 2022 · 3 comments
Closed

JIT, SIMD Intrinsics: Recognize ~A & B as VectorXxx.AndNot(B, A) #78303

sunkin351 opened this issue Nov 14, 2022 · 3 comments
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI good first issue Issue should be easy to implement, good for first-time contributors help wanted [up-for-grabs] Good issue for external contributors
Milestone

Comments

@sunkin351
Copy link

I love the new SIMD intrinsic surface area you guys have released with .NET 7, and would like to propose this improvement to JIT pattern recognition.

Although micro-benchmarks don't reveal any performance improvement on my CPU to use the AndNot() intrinsic over ~A & B, it does to my knowledge result in 1 or more fewer instructions and thus benefits code size.

For reference, my CPU is a Ryzen 2700.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Nov 14, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Nov 14, 2022
@ghost
Copy link

ghost commented Nov 14, 2022

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

Issue Details

I love the new SIMD intrinsic surface area you guys have released with .NET 7, and would like to propose this improvement to JIT pattern recognition.

Although micro-benchmarks don't reveal any performance improvement on my CPU to use the AndNot() intrinsic over ~A & B, it does to my knowledge result in 1 or more fewer instructions and thus benefits code size.

For reference, my CPU is a Ryzen 2700.

Author: sunkin351
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@SingleAccretion SingleAccretion added this to the Future milestone Nov 14, 2022
@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Nov 14, 2022
@SingleAccretion SingleAccretion added help wanted [up-for-grabs] Good issue for external contributors untriaged New issue has not been triaged by the area owner labels Nov 14, 2022
@SingleAccretion
Copy link
Contributor

A good place for this reduction would be in morph, fgOptimizeHWIntrinsic.

@SingleAccretion SingleAccretion removed the untriaged New issue has not been triaged by the area owner label Nov 14, 2022
@EgorBo EgorBo added the good first issue Issue should be easy to implement, good for first-time contributors label Nov 14, 2022
SkiFoD added a commit to SkiFoD/runtime that referenced this issue Feb 19, 2023
SkiFoD added a commit to SkiFoD/runtime that referenced this issue Feb 19, 2023
SkiFoD added a commit to SkiFoD/runtime that referenced this issue Mar 1, 2023
SkiFoD added a commit to SkiFoD/runtime that referenced this issue Mar 1, 2023
SkiFoD added a commit to SkiFoD/runtime that referenced this issue Mar 6, 2023
SkiFoD added a commit to SkiFoD/runtime that referenced this issue Mar 7, 2023
SkiFoD added a commit to SkiFoD/runtime that referenced this issue Mar 11, 2023
SkiFoD added a commit to SkiFoD/runtime that referenced this issue May 1, 2023
SkiFoD added a commit to SkiFoD/runtime that referenced this issue Aug 14, 2023
@EgorBo
Copy link
Member

EgorBo commented Oct 17, 2023

Closed by #81993

@EgorBo EgorBo closed this as completed Oct 17, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Nov 16, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI good first issue Issue should be easy to implement, good for first-time contributors help wanted [up-for-grabs] Good issue for external contributors
Projects
None yet
Development

No branches or pull requests

3 participants