Skip to content

Support InstructionSet_VectorT in HWIntrinsic importer#125226

Open
snickolls-arm wants to merge 5 commits intodotnet:mainfrom
snickolls-arm:import-vectort-isa
Open

Support InstructionSet_VectorT in HWIntrinsic importer#125226
snickolls-arm wants to merge 5 commits intodotnet:mainfrom
snickolls-arm:import-vectort-isa

Conversation

@snickolls-arm
Copy link
Contributor

@snickolls-arm snickolls-arm commented Mar 5, 2026

Add an empty intrinsic table for SVE-backed Vector<T> and implement some of the plumbing required to recognize these intrinsics on import.

Add an empty intrinsic table for SVE-backed Vector<T> and implement
some of the plumbing required to recognize these intrinsics on import.
@github-actions github-actions bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Mar 5, 2026
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Mar 5, 2026
@snickolls-arm
Copy link
Contributor Author

@dotnet/arm64-contrib Please could I have a review on this patch?

snickolls-arm and others added 3 commits March 17, 2026 11:16
* Use compExactlyDependsOn
* Improve Vector class name string matching
* Remove unused sizes from assertion
* Do not change Vector class name
* Revert change to tryLookupSimdSize
*pSimdSize = lookup(id).simdSize;
succeeded = true;
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit, blank line not needed, then we dont need hwintrinsic.h in the changeset

}
#elif defined(TARGET_ARM64)
if (compExactlyDependsOn(InstructionSet_VectorT128))
#if defined(DEBUG)
Copy link
Contributor

@dhartglassMSFT dhartglassMSFT Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not clear to me why this is under ifdef DEBUG, can you explain?

return InstructionSet_Vector128;
const char* suffix = className + 6;

if ((*suffix == '\0') || (strcmp(suffix, "`1") == 0))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if ((*suffix == '\0') || (strcmp(suffix, "`1") == 0))
if ((*suffix == '\0') || (strncmp(suffix, "`1", 2) == 0))

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you happen to be in this file again, obviously not a big deal either way

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI arm-sve Work related to arm64 SVE/SVE2 support community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants