Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Converting more of the x86 HWIntrinsic tests to be generated from a template #16115

Merged
merged 4 commits into from
Feb 1, 2018
Merged

Converting more of the x86 HWIntrinsic tests to be generated from a template #16115

merged 4 commits into from
Feb 1, 2018

Conversation

tannergooding
Copy link
Member

@tannergooding
Copy link
Member Author

The following Sse tests still need to be converted:

ConvertToInt32
ConvertToInt64
ConvertToInt32WithTruncation
ConvertToInt64WithTruncation
ConvertToSingle
ConvertToVector128SingleScalar
LoadAlignedVector128
LoadHigh
LoadLow
LoadScalar
LoadVector128
MoveHighToLow
MoveLowToHigh
MoveMask
MoveScalar
Reciprocal
ReciprocalScalar
ReciprocalSqrt
ReciprocalSqrtScalar
SetAllVector128
SetScalar
SetVector128
SetZeroVector
Shuffle
Sqrt
SqrtScalar
StaticCast
Store
StoreAligned
StoreAlignedNonTemporal
StoreHigh
StoreLow
StoreScalar
UnpackHigh
UnpackLow

@tannergooding
Copy link
Member Author

Fixed a bug where CompareEqualOrderedScalar, CompareEqualUnorderedScalar, CompareNotEqualOrderedScalar, and CompareNotEqualUnorderedScalar could be assigned a non-byteable temporary register, which would then fail the encoding check,

@tannergooding
Copy link
Member Author

Rebased to resolve a merge conflict.

@tannergooding
Copy link
Member Author

test Windows_NT x64 Checked jitincompletehwintrinsic
test Windows_NT x64 Checked jitx86hwintrinsicnoavx
test Windows_NT x64 Checked jitx86hwintrinsicnoavx2
test Windows_NT x64 Checked jitx86hwintrinsicnosimd
test Windows_NT x64 Checked jitnox86hwintrinsic

test Windows_NT x86 Checked jitincompletehwintrinsic
test Windows_NT x86 Checked jitx86hwintrinsicnoavx
test Windows_NT x86 Checked jitx86hwintrinsicnoavx2
test Windows_NT x86 Checked jitx86hwintrinsicnosimd
test Windows_NT x86 Checked jitnox86hwintrinsic

test Ubuntu x64 Checked jitincompletehwintrinsic
test Ubuntu x64 Checked jitx86hwintrinsicnoavx
test Ubuntu x64 Checked jitx86hwintrinsicnoavx2
test Ubuntu x64 Checked jitx86hwintrinsicnosimd
test Ubuntu x64 Checked jitnox86hwintrinsic

@tannergooding
Copy link
Member Author

Ubuntu failures are unrelated: #16134

@tannergooding
Copy link
Member Author

This should be ready for review.

@fiigii
Copy link

fiigii commented Jan 31, 2018

Thanks for the work, I will take a look by end of today.

public void RunLclFldScenario()
{{
var test = new BooleanComparisonOpTest__{1}{2}();
var result = {0}.{1}(test._fld1, test._fld2);
Copy link

Choose a reason for hiding this comment

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

Hmm.. Looks like we need another template for Avx comparisons that take two vectors and an imm value.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, I think we will end up having at least 5-10 templates to support all tests, but this is much more manageable than 500-1000 individual tests that need handling 😉

I think it is even fine if the templates are "nearly" identical in some cases, as they are still few in number and it makes the overall logic to maintain them simpler.

Copy link

@CarolEidt CarolEidt left a comment

Choose a reason for hiding this comment

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

LGTM

@tannergooding tannergooding merged commit 6739625 into dotnet:master Feb 1, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants