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

[mono] Share large fallback immediate-parameter workaround code sequences #43050

Open
Tracked by #43051
imhameed opened this issue Oct 5, 2020 · 3 comments
Open
Tracked by #43051
Assignees
Labels
area-Codegen-LLVM-mono runtime-mono specific to the Mono runtime
Milestone

Comments

@imhameed
Copy link
Contributor

imhameed commented Oct 5, 2020

Mostly a note to myself. Several SIMD instructions on amd64 (e.g. shuffles, dot products, blending, etc.) take immediate control masks. We currently generate large branching fallback code inline but this is not great for code size. Can use llvm.is.constant to keep the large materialized branching code sequence out of line while still allowing constant propagation to simplify shuffles with control masks that happen to be constant after optimization.

@imhameed imhameed self-assigned this Oct 5, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added area-Infrastructure-libraries untriaged New issue has not been triaged by the area owner labels Oct 5, 2020
@imhameed imhameed added area-Codegen-LLVM-mono runtime-mono specific to the Mono runtime and removed area-Infrastructure-libraries untriaged New issue has not been triaged by the area owner labels Oct 5, 2020
@EgorBo
Copy link
Member

EgorBo commented Oct 6, 2020

LLVM needs a sort of llvm.convert_to_const(value, range) so it can generate a switch itself

@SamMonoRT SamMonoRT added this to the 6.0.0 milestone Oct 7, 2020
@imhameed imhameed changed the title [mono] Add support for SIMD shuffles with non-constant masks [mono] Share large fallback immediate-parameter workaround code sequences Jun 14, 2021
@imhameed imhameed modified the milestones: 6.0.0, Future Jun 14, 2021
@dotnet dotnet deleted a comment Jun 14, 2021
@dotnet dotnet deleted a comment Jun 14, 2021
@SamMonoRT SamMonoRT modified the milestones: Future, 7.0.0 Jun 17, 2021
@SamMonoRT SamMonoRT assigned fanyang-mono and unassigned imhameed Mar 1, 2022
@fanyang-mono
Copy link
Member

Nice to have feature. Moving to 8.0.0

@ivanpovazan ivanpovazan modified the milestones: 7.0.0, 8.0.0 Aug 1, 2022
@ivanpovazan ivanpovazan modified the milestones: 8.0.0, 9.0.0 Jul 11, 2023
@ivanpovazan
Copy link
Member

Moving to 9.0.0

@ivanpovazan ivanpovazan modified the milestones: 9.0.0, Future Feb 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Codegen-LLVM-mono runtime-mono specific to the Mono runtime
Projects
None yet
Development

No branches or pull requests

6 participants