-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Move remaining HIR SIMDIntrinsics to SimdAsHWIntrinsic #79720
Merged
Merged
Changes from 20 commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
e89c0ab
Updating SimdAsHWIntrinsic to handle the InitN methods
tannergooding 3826f05
Remove SIMDIntrinsicInitN as it is dead
tannergooding 664b347
Remove SIMDIntrinsicShiftLeftInternal and SIMDIntrinsicShiftRightInte…
tannergooding 3302452
Remove some other dead functions from the legacy SIMD support
tannergooding 09b4b3c
Improve the codegen for float Sse41.Insert when zero is involved
tannergooding 471d67e
Preserve the handling around InitN for Vector2/3/4 and operands that …
tannergooding 40e2499
Extend the contiguous argument handling to Vector64/128/256
tannergooding 257a7a7
Fixing how `this` is spilled for the SimdAsHWIntrinsic constructors
tannergooding 064832c
Remove SIMDIntrinsicInitArray* and SIMDIntrinsicCopyToArray*, they ar…
tannergooding e689ad2
Move SIMDIntrinsicInitFixed to be implemented via SimdAsHWIntrinsic a…
tannergooding 1c68011
Apply formatting patch
tannergooding e27fb6d
Ensure the Unsafe.Add occurs in the right position
tannergooding e9fe0e1
Ensure the Vector<T> APIs that take Span<byte> and ROSpan<byte> use s…
tannergooding 2299bd7
Ensure the Vector<T> APIs that take Span<byte>/ROSpan<byte> check for…
tannergooding 14203ab
Wokaround an aliasing bug in GetArrayDataReference
tannergooding ca171fc
Ensure the right size/type is used for Vector###_Create contiguous ar…
tannergooding 095666f
Merge remote-tracking branch 'dotnet/main'
tannergooding 24e9525
Ensure that jitdiff --diff --pmi doesn't assert
tannergooding 28e2366
Applying formatting patch
tannergooding 38149d5
Ensure we don't return nullptr for a lowered node
tannergooding 4af700e
Merge remote-tracking branch 'dotnet/main'
tannergooding 1332a01
Ensure TYP_SIMD8 bitcast is handled in VN
tannergooding File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1075,33 +1075,11 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | |
void genCompareInt(GenTree* treeNode); | ||
|
||
#ifdef FEATURE_SIMD | ||
enum SIMDScalarMoveType{ | ||
SMT_ZeroInitUpper, // zero initlaize target upper bits | ||
SMT_ZeroInitUpper_SrcHasUpperZeros, // zero initialize target upper bits; source upper bits are known to be zero | ||
SMT_PreserveUpper // preserve target upper bits | ||
}; | ||
|
||
#ifdef TARGET_ARM64 | ||
insOpts genGetSimdInsOpt(emitAttr size, var_types elementType); | ||
#endif | ||
#ifdef TARGET_XARCH | ||
instruction getOpForSIMDIntrinsic(SIMDIntrinsicID intrinsicId, var_types baseType, unsigned* ival = nullptr); | ||
#endif | ||
void genSIMDScalarMove( | ||
var_types targetType, var_types type, regNumber target, regNumber src, SIMDScalarMoveType moveType); | ||
void genSIMDZero(var_types targetType, var_types baseType, regNumber targetReg); | ||
void genSIMDIntrinsicInitN(GenTreeSIMD* simdNode); | ||
void genSIMDIntrinsicUpperSave(GenTreeSIMD* simdNode); | ||
void genSIMDIntrinsicUpperRestore(GenTreeSIMD* simdNode); | ||
void genSIMDLo64BitConvert(SIMDIntrinsicID intrinsicID, | ||
var_types simdType, | ||
var_types baseType, | ||
regNumber tmpReg, | ||
regNumber tmpIntReg, | ||
regNumber targetReg); | ||
void genSIMDIntrinsic32BitConvert(GenTreeSIMD* simdNode); | ||
void genSIMDIntrinsic64BitConvert(GenTreeSIMD* simdNode); | ||
void genSIMDExtractUpperHalf(GenTreeSIMD* simdNode, regNumber srcReg, regNumber tgtReg); | ||
void genSIMDIntrinsic(GenTreeSIMD* simdNode); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can go away once we handle UpperSave/UpperRestore in a follow up PR. |
||
|
||
// TYP_SIMD12 (i.e Vector3 of size 12 bytes) is not a hardware supported size and requires | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These two only exist in LIR and are created by LSRA